The Game Development Journey Continues
I’ve been experimenting with game development in Unity for 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, which seems 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.
Epic Games released Unreal Engine 5 early access a few weeks ago, and I am genuinely impressed. The UI improvements, Lumen and Nanite, and the performance are all incredible. Also, access directly to Megascans is a game-changer.
I examined Unreal for over 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 the framerate dropped significantly even when I was close. 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 and 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 in 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 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.
The learning curve 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. 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 skill set is more critical.
I never thought Adobe Flash in web browsers or Microsoft’s XNA would end, but it did. Some developers still use 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, but I will keep moving forward to reach my vision.