Unity 3D Short Review
* this text is 100% human. No AI is involved in generating it In the last year I've been using Unity for my studies in game development. I was able to create and publish 3 small games in quite a short time. I was totally new to Unity, never used it before but I knew that it is one of the most popular game engine on the market.
Night Dancer - A game I've created in Unity in about 3 weeks in my spare time. The game includes video rendering, procedural generation and constant shape changes of the dancing stage in run-time, user input with hand gestures using open source machine learning model for the gesture recognition, AWS dynamo DB integration for presenting a Leader Board and the usual stuff - UI, particle system, Humanoid animation, events, triggers etc. Actually I never programed a game before in any other game engine except for my own SceneMax3D engine which is based on JME3 engine and a custom made programming language. So this is my short review for what I liked and what I didn't like about Unity3D. I consider myself as a Unity beginner level programmer so in that perspective you should read this text.
The good things I'm not going to write about each and every good feature in Unity (there's a lot of them) rather I would like to focus some good general components and concepts. For the most part, I think it is a fantastic game engine, very comprehensive with an amazing assets store and eco system. If I will ever aim for developing a serious full scale game, Unity probably will be my choice for game engine to be used.
Performance - this engine has great performance. I used a lot of scene objects, expensive particle systems, video rendering, just-in-time hundreds of objects (prefabs) loading and creation, music and sound effects and the engine handled them exceptionally good performance wise. Most of the time I don't even think about the performance cost of my game objects - that good is the engine's optimizations. Of course from time to time I do hit the performance limits and the FPS is dropping, then I apply some coding best practices and usually the problem is solved.
Slider Glider - a fast arcade game where you need to slide and jump on monstrous sliders while navigating your way in a procedurally generated maze. It took me about 3 weeks to develop this game in my spare time. The sliders models are placed in run-time and the maze is randomly generated in the beginning of each stage. There is also a simple navigation system assisting you to cope with the complex maze navigation reaching the treasure. The big challenge here was using curves for the sliding movement. Unity curves editor was very helpful in this case. Ease of use - Unity IDE is superb. The technique of dragging a prefab (pre defined composite of objects) onto a public field of some other game object and having it ready to be used at run time is very easy and intuitive to use. The usage of Mono Behaviors for injecting specific logic, the animation state machine, events and triggers are all contributing to the ease of using this engine. Rendering - Unity uses the best graphics APIs available for each targeted platform such as Vulkan and DirectX12. This affects the quality, portability and performance of your project.
Assets store - This one is by far my favorite feature of Unity. Absolutely amazing assets store with every library/graphic asset you can think of for your game and with superb reliable integration to your project for installing / uninstalling it. Some of the assets costs money and some of them are free. I was able to get anything I needed for free but for serious projects I will not hesitate to spend some money for getting state of the art libraries / assets. Build system - Unity supports building your projects for all major platforms including mobile, game consoles, PCs and web. This portability in my opinion is a big advantage Coding - For those of us (myself included) who prefers to build the scene graph using coding as much as possible in run time, Unity allows that freedom leaving you only the need to setup your game's resources (pre-fabs).
Dark Chaos - my first ever Unity game. Made in 3 weeks with absolutely no prior knowledge. Tons of particle systems, no best practices used, 3D models from Mixamo, Sketchfab and some I assembled by myself using Asset Forge. I think that demonstrates the ease of creating your first game with Unity Generative AI - Unity is probably the most popular game engine in the market using one the most popular general purpose programming language available (C#) so it makes it really easy for Vibe programing - letting an LLM to create some of your coding and code reviews for you. Harnessing Gen AI for writing some of your game's code is truly a revolution in game creation. Really hard tasks which might take days or even weeks for research and implementation is reduced to minutes. Let me give you an example - in my Night Dancer game I wanted a 10 by 10 dancing floor which changes its shape in real-time from "O" shape to "X" to "Love" to "Square" etc. in random sizes at random speed. That would take me quite a bit of time to code myself and it was perfectly done by the Gen AI in just a few minutes. Absolutely amazing. The bad things
As I mentioned earlier, I consider myself as a beginner programmer in Unity and also don't have much experience in any other game engines so the "bad things" that I'm going to list here might not be that bad if I had a wider perspective. External code editor - I find it really annoying that you can't code inside Unity IDE and need to switch back and forth from Unity IDE to an external code editor such as MS Visual Studio or VS Code. Each time you switch from one IDE to another, a compilation process starts followed by a synchronization process. It take a few seconds (sometimes quite a few!) and you need to wait for those processes to end before switching IDEs. Not fun especially for developers like myself who spend a lot of their time coding. UI Canvas - I find it a little bit confusing to arrange my UI components (2D) in the game's 3D world IDE freezes - It happened to me a few times that the IDE froze for some reason and sometimes the build process was stuck forever. I suspect that it is related to the anti virus installed on my Windows machine. Anyway I needed to hard stop Unity's process and restart the system risking some state loss
Summarize
I was really impressed with what Unity offers you out of the box and as an extension from its assets store and I highly recommend using this game engine for any serious game you have in mind. it is guaranteed that the engine will not be the one stopping you from completing your game. As for myself I'll probably be back working on simple games using my SceneMax3D and JME3 because this what I enjoy most - creating tools and software engineering. Cheers!
















