The Game Development Journey Continues
I’ve been experimenting with game development in Unity for more than 2+ years (primarily on 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 in most of my devlog 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 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.
I think UE is amazing, but it not suit for mobile game development. Cause the package size after build is very big. How do you think?
There are successful games made with Unreal Engine for mobile. Fortnite and Mortal Kombat both were made with Unreal for mobile. It is possible. There are a few racing games for mobile as well.
Luckily it’s not your main job otherwise I don’t see you well.
The problem is that both Unity and Unreal like Cryengine advance and improve their technologies every month / year.
Let’s say you switch to Unreal 5 and then a higher version of unity 2022 comes out, what do you do? Do you throw it all away and start all over again?
Sooner or later you have to close your eyes and finish at least one job, because it is obvious that it will always come out and I always repeat something better.
If you want personal advice, finish what you have already done, distribute it and only then study whether to switch to a technology that you think is better.
All very valid points. Honestly, I am evaluating Unreal Engine because I want to become more familiar with it and improve my C++ skillset in the process. I have a few issues with Unity pipeline evolution, but that alone is not enough to switch to another engine. It is more about Personal Growth at the moment. The only thing I’ve done so far in Unity is developed new solutions for the physics I want in my games. Since I can continue using PhysX in Unreal, I don’t think it will be challenging to carry over. Thanks for your advice. It is appreciated, and thanks for visiting. 🙂
U are right but UE5, Nanite and Lumen too much of a jump (5-10 year at least) not a major update we see every 1-2 years
Good luck learning Unreal Engine 5!
Hey, I really appreciate your work. You’re doing such an amazing job but you’re spending too much time on it. Do note that games like Forza Horizon 4 or Bm.ng were not created by a single man.
I know that you’re a lone wolf but at the end of the day it’s just a vehicle simulator or a racing game. Nothing less than that, nothing more than that.
There’s a reason why NWH team put their asset on the store because they simply can’t finish a complete game. Thing is that, great physics doesn’t mean game success. You’re putting so much work to create the thing which is already available (unless mobile games).
Here’s the wow part. Ever wondered why valorant and csgo are so similar. Because the Riot decompiled Csgo and improved it instead of starting from scratch. Same thing is for Forza Horizon , Asseto Corsa competizione and Beamng.
Decompile them and make a better version. Instead of putting years and yet not getting the desired result.
If you’re building for pc then your game must have great graphics. Let’s be honest, You can not create a map like Forza or any other AAA. You can not fit in all the roles like audio design , licensing cars, game marketing , art direction and the list goes on.
It should be clear by now what I’m trying to explain. Whether its a lone wolf or not. It has to hunt. Finish your prototypes and make a company out of Studio Tatsu.
First, I’m making Indie Games. Not AAA Games. I’m Not directly competing with existing games.
I have a full-time career as a Senior Software developer and only work on Studio Tatsu game development nights and weekends. Most of the developers and games you mentioned work Primarily on games or assets, which means they may have deadlines. I do not have a deadline because I am the funding for my game(s).
Some assume that I am trying to release a game “Soon.” I am not planning to release any games until late 2023-2025. —no need to rush to release a game that hasn’t been announced. Part of Marketing is building an audience before announcing a game. I am developing games that I want to play and enjoy. Hopefully, others will enjoy my games too. So yes, it will take years to make, but I’m okay with that. Each month my list of followers grows across social media and YouTube. This will help market my games more organically than just buying ads and create multiple revenue streams in the future.
Also, I am working on more than driving/racing games. I don’t reveal everything. 🙂
Thanks for your advice, but I enjoy the lone wolf lifestyle. 😉
P.S. I can create maps like Forza. I was a 3D artist before I was a programmer.
Hey, Love how the game’s coming along. Wanted to know if you still had been experimenting with UE5 and how the C++ environment of unreal engine had been treating you. Using C++ with UE4 was daunting for me very recently because of the lack of proper documentation and frankly because of all the “bloatware” I had to code just to get a small thing working.
Have you converted any of your system of your Unity game to the Unreal side? If so, how was the process for you?
And what pros and cons did you come across from using Unreal coming from Unity.
I am currently writing several parts of my framework in pure C++ without Unreal Engine. I will integrate it later. So far, the most significant difference between Unity and Unreal is that most of the tools I need already exists in Unreal Engine. I will do a write-up and possibly a video next year about the process and pros/cons. Thanks for visiting.
Hi, I am Fred, a fellow indie developer also switching from a C# codebase to C++ and are doing your exact things for flight dynamics…
I released a quite successful helicopter physics library for MSFS 2020 (Google AirlandFS) I am currently porting it to pure C++ (which I will need in MSFS) and then in Unreal Engine C++.
I am an expert developer and found what I think it the perfect learning materials to do it, maybe we can exchange contacts so we can tackle problems together ?