Defold roadmap H2-2018

This roadmap outlines our long-term plans for the Defold engine and editor. The list of planned new features and improvements are in no particular order.

ENGINE

Resource properties

Resource properties will allow developers to define new property types referencing component resources such as atlases, sounds, models and many other things. This opens up a whole set of new possibilities for dynamic content creation.

Multi-texturing

Multi-texturing will greatly simplify the way additional textures are fed into shaders for various effects that are currently very hard or impossible to do in Defold.

Modularization

We’ll bring our system for native extensions out of alpha and into a mature beta or stable state. This means better integration of app manifests and configurations into the build pipeline, as well as improving the stability and speed of builds. We will also use the native extension system to extract non-vital parts of the engine core into native extensions, thus giving users even better control of what to include in the engine core, as well as opening up for community collaboration and improvements.

Audio

The audio support in Defold is pretty basic and unfortunately new audio features have been given low priority over the years. While there nowadays exist very capable audio extensions in our Asset Portal it is our ambition to improve on the native audio capabilities of the engine.

Metal and Vulkan

With the upcoming deprecation of OpenGL in iOS 12 and MacOS we will start looking into alternative rendering pipelines. For iOS this will mean the transition to Metal. We will also look into the feasibility of supporting Vulkan as an alternative to OpenGL on other platforms. This also means that we will look into what this means for materials and shaders and the current status of GLSL.

Improved 3D support

The Defold engine operates fully in 3D, although tools and APIs are geared towards 2D games. Our plan is to start improving the 3D support in the engine. We will do this through improvements to the vector math lib, increased 3D performance, frustum culling, custom vertex formats, dynamic mesh creation and geometry instancing to mention a few of the things we have planned. The editor support will also be improved with support for better viewing of 3D content, as well as in-editor geometry creation. This will be a long running task with new features being shipped in stages during 2018 and 2019.

New platforms

Our current set of supported platforms have remained the same since the introduction of Amazon support almost three years ago and the more recent additions of sub-platforms such as Facebook Game Room and Facebook Instant Games. The stance which we’ve taken regarding the addition of new platforms has been to explore new platforms when there’s been enough requests from our community. We are now reevaluating this decision and will start to look into the effort required to port Defold to one of the current gen game consoles.

We will also look into running Defold iOS builds on the iOS simulator. Even though this won’t replace testing on actual hardware it will be of help to developers with limited access to iOS devices.

Google Play Game Services

Google Play Game Services support has been a long requested feature of Defold. Support for will be added as a native extension.

Bug fixes and improvements

We will continue our ambition of delivering a stable and bug free editor and engine with the clear goal of no hard crashes. We will continue to work together with the community to identify, prioritize and fix bugs and crashes. During the first six months of 2018 we fixed 232 reported engine bugs and 265 editor bugs, not to mention all of the new features and improvements. If you’ve found a bug or have a feature suggestion please get in touch!

Performance

We constantly work to improve the performance of the Defold engine and editor. For the engine we focus on maintaining a low runtime memory footprint as well as a small binary size. We have also identified several areas where we can improve the speed of the engine. Besides things such as optimizations of transform updates, url resolutions and other engine internals we will also improve HTML5 builds through the use of web assembly. For the editor we’re in a slightly different position where we, while we think of and care about memory and CPU usage when creating new features, don’t feel that these things have the same impact and importance as for the engine.

EDITOR

Unified build pipeline

While the migration to the new editor can be considered almost fully completed (some very minor differences still exist) we still only provide the old build pipeline (bob.jar) for users building from the command line. The new build pipeline in the new editor is better and faster than bob.jar thanks to some really great work from the editor team with optimizations and parallelization of tasks. We want command line builds to benefit from these improvements as well and will extract the build system into a standalone tool suitable for command line use.

Improved undo workflow

The current undo functionality in the Defold editor works on a global level, meaning that there’s a single list of changes. When an undo is performed the most recent change in the history will be reverted, regardless of which editor tab that is open. This has caused some confusion in the community and because of this we have decided to revise the undo workflow.

Editor extensions

The ability to extend the editor with custom tools will be one of the next really major milestones for Defold during 2019. Editor extensions will open up many new possibilities for developers to improve their workflow and integrate custom tools to speed up content creation.

40 Likes

Few questions :smiley: : What does it mean that Vulkan will be an alternative? Will the developers be able to choose? How will this affect current projects in future? Will you guys post anything when you found out how it will affect shaders and materials? :wink: Do you already know what extensions to Editor are planned? Do you plan something to simplify selecting used native extensions?
All the rest of the roadmap seems to be great, I’m very glad abour GPGS, Audio, Undo, extensions and very curious about those resource properties! :wink:

4 Likes

All of this sounds like the right direction to go. Keep it up! I’m especially excited about multi-texturing, custom vertex formats and a potential Switch port.

Tip: As far as Metal and Vulkan goes, check out MoltenVK. They have a compiler that compiles GLSL shader code into SPIR-V or Metal Shading Language.

6 Likes

You forgot to add :sunglasses:

iOS Game Center
iOS Game Center support has been a long requested feature of Defold. Support for will be added as a native extension.

3 Likes

We are doing research right now and there are plenty of unknowns that we have yet to find answers to. @Andreas_Tadic is spearheading the RnD on this.

No. It’s likely going to be a multi-step process. At first perhaps only a system that allows developers to hook into the build process with scripts of their own, like pre and post build steps. Later we’ll move to extensions that define it’s own UI as well. We do not know yet which direction this will take. We’ve experimented with this in the past but haven’t settled on anything. Being able to write your extensions in Lua would be cool. @mats.gisselson may be able to share more insights into this. Keep in mind that editor extensions will not happen in 2018. It’s a task that we wish to work on during 2019 and hopefully ship at least an MVP of before next summer.

Integrating the Asset Portal into the editor is something we want to do, but it’s not something we have planned for yet.

6 Likes

Yes, this is on our radar.

5 Likes

We encourage the community to create this. If no one does it on their own we might open up for community collaboration/sponsorship to get this implemented.

5 Likes

PS Yes, the roadmap on defold.com will get updated!

4 Likes

What about physics improvements?
Where is immediate raycast results? Is it even planned?
Ability to make something like this within same frame is crucial:

  1. Cast some ray. Get raycast hit result with collision object and hit point at (for example) x = 100.
  2. Move collision object towards caster (dx = -10)
  3. Refresh spatial information about collision object.
  4. Cast another ray. Get hit point at x = 90.

Nothing complex here. Physics engine like Chipmunk2D can do this. Box2D probably can do that too.
Defold can’t do that right now. This is makes some games very difficult to implement.

3 Likes

We have nothing planned, BUT we are doing experiments with physics improvements. @Mathias_Westerdahl recently played around with joints and constraints in Defold (I think he posted about it somewhere). We also have plans to explore if it’s possible to move Box2D to a native extension.

Also please note that the roadmap listed above isn’t what we will exclusively work on over the course of the next 12 months. There are many other things we will work on, big and small, but at least it gives you an idea of some things to come.

5 Likes

Looking forward to improve sound engine and more control!

2 Likes

What @britzl says, not everything is listed here.
For instance, we will at some point add some (currently unplanned) physics improvements such as joint support, physics scaling and also synchronous ray casts. ETA? We’ll see.

8 Likes

It may seem insignificant, but I am looking forward to the improved undo workflow the most. :heart_eyes:

6 Likes

This looking really promising and I can say that we are eager to see most/all of listed features!!
EDIT: Removed question about Firebase/Push notification, was already answered here

3 Likes

I should have made a new forum topic for that but, what about automatically cleaning old versions of Defold ? Every update creates a new 150MB folder in C:\Users\YourName\AppData\Local\Defold\unpack.

On small SSD it is problematic and I have to regularly clean older ones myself. Is that something you’re aware of ?

5 Likes

I couldn’t find an issue for this. @mats.gisselson and eriklizzard? @Erik_Angelin

2 Likes

Think there is a jira issue. Anyhow, we’ll likely look at it when we refine the update mechanism. Maybe @eriklizzard knows more :smile:

3 Likes

Haha, yeah, maybe he does! :slight_smile:

1 Like

Awesome! Thanks a lot for giving us an updated roadmap. Really useful and interesting to know what what the rough plan is.

Is there a rough idea of which systems this is likely to include? Physics? GUI? Always nice to reduce build size by removing systems that aren’t used at all.

Great! When I started using Defold I was very surprised how lacklustre the current audio functionality is.

My vote is Nintendo Switch :slight_smile:

Suuuper useful thank you.

Good job :muscle:

Very much looking forward to this, local undo is so much more intuitive and useful. Are there plans to also snap the view to where the change occurred? Currently if I’m typing at the bottom of my script and undo something at the top there’s no feedback at all, sometimes I don’t even realise I’ve done it.

From my experience this is absolutely critical to effectively making games in Unity. All of the upvotes.

7 Likes