Development Tools/Languages

Can someone share the tools that are used to create Oort Online? In what language will logic mods most likely be written? What development tools does the development team use to work on the 3D engine, etc.

Thanks in advance!

@lucadeltodecso, @james, @ben

1 Like

Here’s what I can think of:

Engine - Our own Turbulenz Engine and voxel tech
Docs and sheets - Google Docs
Code - Varies (I use Sublime Text 3)
2D / GUI - Adobe Photoshop
3D models / animation - Maya
Block specular and normal mapping - ZBrush
Project management - Hansoft
Source control - GitHub and SourceTree
Procrastinating tool - Varies (mine is Twitter)

1 Like

I’ve taken a look at Turbulenz. So is the 3D engine, the code that chunks and renders and occludes and loads/runs animations and manages inventory, health, etc. all written in Javascript?

Er, * shouts * @lucadeltodecso

2 Likes

Thanks for indulging me. I’m a software developer and am currently interested in how all these pieces are fitting together. :smile:

2 Likes

The Turbulenz Engine is mainly a combination of C++ and JavaScript. Like many game engines there is a split between performance / system / device code and game logic. In Turbulenz we implement game logic in JIT’d JavaScript. The open source Turbulenz Engine published on github is the HTML5 version of the engine designed to execute in an HTML5 runtime, normally a modern browser. When you play Oort Online in the browser - the game is built against this configuration of the engine. However, when we deploy the game natively (via Steam onto the Windows or OSX desktops) we substitute a big chunk of C++ engine in place of the HTML5 browser runtime. We have native drivers for Windows, OSX, Linux, iOS, and Android. We also augment the engine with a variety of C++ optimised code paths. (This is why chunk meshing is an order of magnitude faster natively than in the browser.) This all relates to the game client. The server uses a different stack of technology.

In various threads I’ve commented about future optimisations, network layers, DX12, and various other things. Most of this relates to the evolution of the game, and often specialisation of the engine specifically for Oort. For example, (roughly speaking) the game currently uses the default Scene manager from the Turbulenz Engine, but we have plans to replace this with a more efficient, specialised and ultimately fast version designed and tuned explicitly for the scene management requirements of the Oort world. Game engines are often used this way, they help you get going, before you need customise beyond their generic features. The Turbulenz Engine was designed explicitly to enable this stepping stone approach.

This is developer specific. We develop across Windows, Linux and OSX. Each developer has their own preference for editor and development environment. But ultimately it all revolves around Git source control and Makefiles (for the majority of the application generation.)

This depends on the complexity of the mod. Some mods can be pure data, some will require additional game logic. The most likely and secure solution will be for the server to deliver a C++ (or scripted) modding interface. Then the client / server engine will automatically deliver everything to the client (as the game is ultimately played on the server). This would greatly simplify the deployment of mods, as everything would come directly from the server you connect to. No client installation would be required. However this is still very much in development, and mainly reflects my personal view.

Happy to talk more about the tech if there is interest / questions.

8 Likes