GDevelop - before start questions

Hello All,
I want to start my journey with GDevelop as an alternate to what iam using now - Unity3D. But before doing so I would like to ask about some crutial things regarding usage of the engine and the engine itself.

My target platforms are mobile. In general. And Unity3D suffer unfortunately in terms of performance. There is need to do many tricks to get 60fps on android. How this looks in GDevelop? Are there any tests made to measure memory consimption? Or resource management?

I am aware that GDevelop is event based system but is there a way of procedural scene initialization? For example lets say I have 10 levels with different enemy nimber, speed and strength. Do I have to create 10 scenes with hardcoding that data? Or can I have some container with that data and load always the same scene but initialized with different properties from that container?

Do i have to always use sprites or can i generate some primitives in procedural way? Like circles filled with color or empty, only with line thickness. Or some arc shapes?

How it looks with alpha transparency and performance? Unity3D has big problems with large sprites with many transparent or semi transparent pixels. And there is need to create custom shaders. Does GDevelop handles this in some smart way?

Thank you so much.
Can’t wait to get some feedback.
Pawel

Well from my experience it depends on the game. Sometimes it’s pretty fast on smaller projects, but lots of sprites, and lots of sounds can cause frame drops.

I think you can use external events or you can duplicate scenes and the codes/events. That’s what I do for multiple levels.

I think that the Primitive Drawing extension works like that? It might can draw some quick test sprites. Circles and Rectangles. But I haven’t used it much, so I can’t be for sure.

I haven’t had any problem regarding alpha transparency. Even with lots of sprites at 960x640.

Just would like to add.

At the moment mobile platform is supported only through HTML5 which is not a good choice for complex games if you need good performance. BUT (!) native Android export is about to come in the next release which should improve the performance and also coming an experimental export option to use Cocos2D instead of Pixi.js for HTML5 which may also going to improve mobile support. So I suggest to wait for the next release before you make your decision on using GDevelop for mobile games or not.

Procedural level is totally possible. GDevelop using objects that can be created on the fly and each object store it own information that you can change, read, write at any point in your game thanks to the advanced expressions and events. GDevelop also supports external layouts that you can use to design different parts of a level and you can load them, position them on the fly as well to write any information about any object in to an external file and read the info at any point and use it in any ways you want. So if you want, yes, you can generate your levels on the fly using a single scene. But if you want to do something like this, I would suggest to use at least two scenes. Nothing need to be hard coded, it can be two empty scenes with links to external events that would be controlling the core gameplay and procedural algorithm to start generating the level using some inputs that you can provide through globals or read them from files. But the reason you might need two scenes is to make sure when you change the level, everything is going to be dropped from memory that you don’t need in the next level. So you would switch between the two scenes each time you want to generate the next level. Once a level is generated you can even write every info about the level in to a file and read it back later so for example in case of a sandbox game where the player can move back and forth between the levels, the levels would be generated only for the first time and after it can be saved and loaded so the player find the same level on return along with any changes the player has made like destroyed a building…etc. But again, it would be way too complex for an HTML5 game in my opinion. I suggest to wait for the next release of GDevelop if you want to do something like this in a mobile game.

Hello All once again!
Thank you for such detailed answers!

Performance is so important for me because I do not aim outstanding graphics or complicated animations, more in simple and intuitive arcade with not so many objects in scene. And if something is suttering while drawing explosions or complicated particles / animations its acceptable. But in other cases its not. For me.
So if with GDevelop I can aim the same or better performance than Unity3D and create games more quickly I want to go for it.

Because of that I also asked about primitives. I would like to use them as my final graphics, so, many circles, rectangles, lines and arches. And Primitive Drawing Extension seems to meet that requirements. But I didn’t test yet.

I will definitely look forward for the next release then. And do some small testing in the mid time.

The reason of why I asked about procedural level generation is that for example my current Unity3D project contains 100 rounds. And all of them are one scene. Just reloaded everytime with different input. That approach makes everything easier in case of maintenance and bug sensitivity.

One question at the end regarding native export for android.
I see in documentation that GDevelop supports ParticleSystem for native export. So, if I understand correctly, for now and HTML5 export for android particles are not handled. Will that change with native export?

Thanks,
Pawel

I don’t know if particle extension wil be included with native Android export, it is going to be only experimental so may not everything going to work on Android but it is up to Victor and 4ian to answer this question.

I’m also not 100% sure if the primitive extension can be used to build a whole level out of primitives, I have never tried to use it that way, the only thing I was use it for to create selection boxes, GUI and staff.
In GDevelop, you may better to go with some basic sprites with white fill color and change the color, scale, position, angle…etc in GD of the sprites.

To be honest I’m a bit sceptic about the performance of GDevelop on mobile devices. If you have trouble getting 60 FPS with Unity, it would surprise me if GDevelop would do any better since the Android export of Unity is a lot more optimized compared to what we going to have right now with GDevelop. Personally I would expect Unity have better mobile support, but again I can be wrong will see when the next version is out :slight_smile:

Just in case, if GDevelop may not going to fit your needs I suggest to take a look at AGK. Since the levels in your game going to be generated procedurally and you don’t really need a level editor, AGK may able to provide you with better flexibility and performance on mobile devices. and since you are using Unity, I don’t think coding would be a problem.
appgamekit.com/

The free demo version comes with no limitations except you can’t export and test mobile, but in case you want I’m more than happy to export anything to mobile and send the apk to you so you can see how is it runs on your mobile.

The particle system used by GDevelop uses OpenGL which is not available on mobile devices (only OpenGL ES is available !).

The future native android feature uses pure C++. It can’t be faster. :slight_smile:

Performances comparison : native android export (experimental, native games) [size=150]>>[/size] cocos2d export (experimental, HTML5 games) [size=150]>>[/size] Intel XDK export (HTML5 games)