Game Creator 2 Performance Analysis
As many of you will already know, I often use the Game Creator product (GC) for much of my development to reduce the timeline and coding effort. I also create add-ons and extension assets for GC, which I sell on the Unity Asset Store. And last, but certainly not least, I host training courses for Unity using the Game Creator product at Academic and Industry conferences. So I am well dialled in to Game Creator from Catsoft Works.
Well, Game Creator has evolved. The Son of Game Creator (currently know as GC2) will be released as a beta on the Unity asset store this month. As such, I have had the honour of being part of the working group while GC2 was being developed. Most of the concepts remain the same, but some of the terms will change. For example, Actions are now called Instructions, Camera Motors are now called Camera Shots, and Conditions now have Branches instead of Clauses.
However, even though some things have changed and things have been moved from where they used to reside, there are many new cool features like Search that will find and suggest which function may work for what you want. So once you get used to the new terms and placement of code, you are good to go.
As the release of the beta is just around the corner, I thought I would do some performance tests to see if all the exciting features that Catsoft Works had added to Game Creator, would make it top heavy and slow things down. Currently I develop for Mobile, Web, and VR, and these platforms are super sensitive to overheads, and performance is key to a successful product. The GC beta only runs on Desktop in its current form, but I figured that it would be enough to show it's true colours. So let the games begin.
GC2 required Unity 2021.2 to run, and this version from Unity is also in beta. So the first thing I did was create a scene that was heavy on rendering and animation using Game Creator, and test it on Unity 2020.3 (their current production version) and compare it with Unity 2021.2 beta.
The results were almost the same in performance, but the runtime memory allocation had shrunk by 6% for Unity 2021.2. Now this may not seem to be much to some, but when you develop for the platforms that I do, any saving at all in memory allocation is a godsend, and 6% is actually quite significant. Thank you Unity.
But now back Game Creator. I composed identical scenes in GC1 and GC2 projects, both using Unity 2021.2 beta. I used the same Triggers and Actions (now called Instructions) to control the functions and Animations that I had built into the scene. I added my System Info screen from our Development Tools Assets (available on the Asset store ;) ), and did a build for Windows 64bit. This would allow me to compare apples with apples, and while the game was at runtime (and not what the Unity Editor would suggest). Mental note for any up and coming developers, always test for bugs and performance on the actual device that will be the end platform.
To summarize, I was very happy with the results. The frames per second were mostly the same, with GC2 slowing slightly when having a bit more to do with animations, but being slightly faster without animation work. This is due to GC2 characters and player character including more life-like and sophisticated animations, but I am only talking minimal numbers. In my test scene, GC1 was providing 203 frames per second (fps) with heaving animation rendering, and GC2 was giving 197fps.
However, with less animations being rendered, GC1 jumped to 224fps, and GC2 improved on this to 232fps. Some of you might think that these frame rates are slow (they are not actually, as Mobile, Web and VR will only display a maximum of 120fps), but please note that I did not optimize the scene, I did not use occlusion (meaning everything was rendered even if you could not see it), and it was at Ultra High Quality with heaps of lighting effects.
With a quick look at the player loop in the profiler, I could see that the GC2 scripting overhead had reduced by 5% over GC1, but the animation rendering overhead had increased by around the same amount. The only thing that did increase with GC2 (apart from all the cool features and functions) was the build time. Game Creator 2 took around 50% longer to build than GC1. This will be due to GC2 using ASMDEFs and Unity has not really done the best of job in developing this. See this blog post in you want more on ASMDEFs.
And that is that. Well done Catsoft Works, Game Creator 2 is a worthy successor to your legacy. I look forward to using it in future projects and updating my training courses to include it.