The Game Development Journey Continues
I’ve been experimenting with game development in Unity for a little more than 2+ years (primarily weekends and holidays) and learned many fundamentals of game design, separation of concerns, new design patterns, and how to optimize for games fully. I recently started using Ray tracing in my prototypes, and it seems very promising. In addition, I try to add enough polish to my Unity game graphics to most of my developer videos to compete with Unreal Engine visuals. So now, I’m asking myself, why not just use Unreal Engine?
Over the last year, I can honestly say my curiosity to explore Unreal Engine has significantly grown. I used Unreal Engine before Fortnite was popular. Since then, Unreal has become more indie developer-friendly with several built-in features I planned to develop in the Unity Engine myself.
Epic Games released Unreal Engine 5 early access a few weeks ago, and I am genuinely impressed. The UI improvements, Lumen and Nanite, the performance are all incredible. Also, access directly to Megascans is a game-changer.
I examined Unreal for a little more than a week, returned to Unity, and could not replicate the “Lumen” style lighting. I used plugins, tried baked lighting, multiple GI solutions, and many Post Processing settings. All failed, and even when I was close, the framerate dropped significantly. Raytracing helped a lot but at the cost of performance. Several light probes provided Lumen-like global illumination lighting, but moving the light at runtime kills the illusion.
Unity’s HDRP lighting isn’t terrible. It still looks fantastic when used correctly; however, I could not replicate the lighting in Unreal using Lumen with the same performance. Note: I’m not a beginner with lighting and post-processing in Unity; viewers frequently ask me if I’m using Unreal due to my visual presentation. This feature makes this even more frustrating because Unreal’s Lumen looks this great by default.
At the time of writing, Unity can not directly compete with the Nanite tech. At first, I thought it was gimmicky. Still, after I loaded the same models used in Unreal into Unity, I watched the framerate drop to 1 frame per second while the Unreal framerate was effortlessly hovering around 60+ frames per second. Removing the textures, lights and turning off shadows increased the framerate to 3. Not sure what kind of dark programming arts Unreal Engineers are using, but it is next level.
C# vs. C++ and Blueprints
Oh boy. C# has always been the main anchor holding me to Unity. Yes, I can write logic much faster in C# than C++, but I keep hearing Unreal Users screaming, “You can make the whole game in Blueprints!” Ummm, No, Thank you. Visual Scripting isn’t bad; However, I don’t think you should make an entire game with it unless your game is relatively small.
I will use blueprints similar to how I use Scriptable Objects in Unity (only as needed). I’m a programmer, and I enjoy programming the traditional way. With that said, I’m rusty with C++, need a refresher, and must learn how it works with Unreal’s API.
This is a minor setback but not a deal-breaker. The bonus is I can write everything in C++, including rewriting Unreal Engine if needed.
The plan is to explore Unreal Engine for the next 6 to 8 months, attempting to replicate what I’ve already created in Unity – Tatsu Toybox (Soft-Mesh, Dynamic Colliders, Volumetric Wheel, Vehicle System with Damage).
If I can replicate my tech, this will help me distinguish which engine is best suitable for game development to meet my needs. Currently, I use Unity daily (my day job) for software application development, not game development. So I’m not worried about losing my Unity know-how. However, learning new tech and growing my skillset is more critical.
I never thought Adobe Flash in web browsers or Microsoft’s XNA would end, but it did. There are still developers using XNA Syntax with Monogame, but it’s not the same. Learning both Unreal and Unity will benefit me with future game development and, hopefully, help me accomplish my visions if either engine decides to throw in the towel.
Game Release Dates?
Learning Game Development is why I haven’t set release dates, started a Kickstarter, Patreon, or announced games. I want to know how to fully develop games and continue developing more games full-time after releasing my first game. I don’t want to be limited by the software due to a lack of knowledge and understanding. Both engines have pros and cons; I can’t truly rely on anyone’s opinions but my own to determine the most reliable solution and tools for my upcoming games.
All my work is self-funded, currently without investors, so I don’t have to race to meet insane deadlines, and I’m not in a rush to release an unfinished, unpolished, unoptimized game. Many gamers will agree.
Will my first (Studio Tatsu) game be in Unreal?
I will answer that in 8 to 12 months. The quest to “fully” learn Unreal Engine starts today, June 20, 2021. I need to become proficient with C++ again first.
Thanks to everyone following my journey. It may be a long road ahead, but I will keep moving forward to reach my vision.