Others Unreal Engine Choosing a game engine for a 3D/2D game, what kind of systems are you guys running?

hardbones

Newbie
Game Developer
May 8, 2023
70
268
Hi guys,

Currently, I'm developing a game that combines a 3D overworld with 2D cutscenes, similar to "Summer Memories." I've already started using Unreal Engine and have most systems in place, but I'm considering changing the engine because I'm not sure about optimizing it for very low-end PCs.

I'm curious about the systems you guys are using. My goal is to potentially optimize the game for Android in the future, though that's further down the development line. If there's a chance to switch to Godot now, I'm considering it.

By the way I am only using Unreal because the sex animation on the overworld will feel a lot better with dynamic animations, I am not sure on how to do this in Godot so I will cut that part if I decided to change engine.

This is my pre-alpha footage.
1720574793441.png

Thanks,
x
 

TheExordick

Member
Sep 25, 2021
133
143
Optimization is a big task independently from the engine you are using. UE has some fancy systems that are taxing on the performance (lumen for example) but it is possible to have great performance on low end machines with UE as well.

Also UE gives you a lot of tools and profilers to optimize your game. I personally don't know about Godot but i doubt you can get the same level of insight.

The common pitfall of performance generally are:
- too many triangles in the scene, not enough LODs on the meshes
- too many draw calls ( draw calls comes from everything that needs to be rendered, different shaders, different meshes, transparencies, lights, shadows, reflections and so on)
- too many events on tick (logics and aniamtions)
- heavy particle effects
- Too many AIs
- dynamic lights

and the problem is the same with any game engine. Probably your perception is that Godot is running faster because there are no "fancy systems" to activate while on unreal engine everything is put to max quality at project creation. If you start to turn off nice and fancy system and optimize the scenes you can get very good results.
And last but not least baked lights can boost the performance tremendously. (i could never get good results though)
 
  • Like
Reactions: hardbones

hardbones

Newbie
Game Developer
May 8, 2023
70
268
Optimization is a big task independently from the engine you are using. UE has some fancy systems that are taxing on the performance (lumen for example) but it is possible to have great performance on low end machines with UE as well.

Also UE gives you a lot of tools and profilers to optimize your game. I personally don't know about Godot but i doubt you can get the same level of insight.

The common pitfall of performance generally are:
- too many triangles in the scene, not enough LODs on the meshes
- too many draw calls ( draw calls comes from everything that needs to be rendered, different shaders, different meshes, transparencies, lights, shadows, reflections and so on)
- too many events on tick (logics and aniamtions)
- heavy particle effects
- Too many AIs
- dynamic lights

and the problem is the same with any game engine. Probably your perception is that Godot is running faster because there are no "fancy systems" to activate while on unreal engine everything is put to max quality at project creation. If you start to turn off nice and fancy system and optimize the scenes you can get very good results.
And last but not least baked lights can boost the performance tremendously. (i could never get good results though)
The reason I think Godot is good for low end systems is because it is so barebones that I start with almost nothing and activate the things I need when I need them, unlike unreal a lot of things are already activated at the start and I am not sure which things I could turn off safely without breaking things.

As for the pitfalls I mostly take those things into account while developing and even when I am making the models and textures, I have a lot of knowledge and experience in optimizing models, textures and materials so this is not a problem. The only thing I am not sure about is the tick events, I mostly use 1 time ticks since this is just a adventure rpg game I don't need to have events that's active all the time, but even so I am not sure about that.

As for optimization in the future I was thinking of grouping a lot of expensive things like dynamic lights, transparency and reflection and have them under "Fancy Features" for the player to turn off if they have a low end system or if it's taxing their system.

by the way, thanks for the reply.
 
  • Like
Reactions: TheExordick

cothium

New Member
Feb 6, 2022
4
3
To answer your question I have a high-end gaming PC but I often play games just on my android. I think your idea to have the option to optimize settings is great for those with low end PCs

If you're intentional about optimization I think Godot is a fine choice it would just be more hands on than the tools that UE offers.
 
  • Like
Reactions: hardbones

kinrean

Member
May 12, 2018
197
45
i think the first Q is how very low-end PCs are we talking about?
worst then new phone? as i know unreal can be play on phone with the right optimization .

and you can buy some thing on unreal shop to optimization your game, ( they just help turn on or off some thing to optimization it).
 
  • Like
Reactions: hardbones

hardbones

Newbie
Game Developer
May 8, 2023
70
268
Thanks for the replies, I think I will just finish the game on Unreal, I'll just try to optimize the game as much as I can.

I was just thinking maybe some people are playing games using old i5 laptops with integrated graphics with how much RPGM and Ren'Py games are here on this site.

I'll upload a playable alpha at the end of the month if anyone want's to try it.
 

cothium

New Member
Feb 6, 2022
4
3
I would say the prevalence of RPGM and Ren'Py is because they are easier engines to work with for people who are new to game development, rather than performance reasons
 
  • Like
Reactions: hardbones

kinrean

Member
May 12, 2018
197
45
Thanks for the replies, I think I will just finish the game on Unreal, I'll just try to optimize the game as much as I can.

I was just thinking maybe some people are playing games using old i5 laptops with integrated graphics with how much RPGM and Ren'Py games are here on this site.

I'll upload a playable alpha at the end of the month if anyone want's to try it.
first , any 3d game engine will need more power then renpy or rpgm . so even if you change to Godot . in unreal you can turn off alot of thing and able to play on mid level phone.

in the end every thing is optimize and setting.

and there is unreal game that can play in old i5 integrated pc. but is bad look as one will though.

and a tips for unreal blueprint. try to use local variables for temp thing , as they say local is faster.
 
Last edited:
  • Like
Reactions: hardbones

hardbones

Newbie
Game Developer
May 8, 2023
70
268
first , any 3d game engine will need more power then renpy or rpgm . so even if you change to Godot . in unreal you can turn off alot of thing and able to play on mid level phone.

in the end every thing is optimize and setting.

and there is unreal game that can play in old i5 integrated pc. but is bad look as one will though.

and a tips for unreal blueprint. try to use local variables for temp thing , as they say local is faster.
Oh yeah thanks for the tip, I almost forgot about local variables being faster. I have just been coding for just a year now so I may overlook some code optimizations, or maybe I'm kinda new to blueprints that's why I forgot about them, in JS I always have some local variables when making functions.

The only reason I am making a 3D game is because I originally an 3D Artist so I am way more comfortable with it. I also prefer 2D H-games so I want to combine these 2, 3D for navigating and 2D for cutscenes.
 

kinrean

Member
May 12, 2018
197
45
Oh yeah thanks for the tip, I almost forgot about local variables being faster. I have just been coding for just a year now so I may overlook some code optimizations, or maybe I'm kinda new to blueprints that's why I forgot about them, in JS I always have some local variables when making functions.

The only reason I am making a 3D game is because I originally an 3D Artist so I am way more comfortable with it. I also prefer 2D H-games so I want to combine these 2, 3D for navigating and 2D for cutscenes.
i do understand, my game also some thing like that but i am still planning if 2d with bone animation or not as it will cost more power and time.
 

Velomous

Member
Jan 14, 2024
320
323
Godot is probably the ideal engine for a project like this just looking at your preview and reading what you say you want to do. It is also a fairly great engine for a beginner dev (better than Unreal and Unity) simply because of it's simplicity, unreal and unity have countless features that you're never gonna use in game development. Godot meanwhile almost exclusively has game dev focused features. This is just one of many things that make it less intimidating and more straightforward to master from scratch.

Also compared to unity and unreal it is the easiest to run generally speaking on lower end machines. Partly because of the many non-gaming related features that are absent from it, and because of how lightweight it is.

The biggest downside to godot however is that for very big projects it gets increasingly harder to keep it optimized. Everything Exordick said is correct, poor optimization in general as he said will affect godot worst, unity second worst and unreal least simply because of the difference of mitigations and improvements done specifically to prevent these things from affecting your performance, unreal's devs expect the users of the engine to be imbeciles so they've done everything they can to make the engine imbecile friendly. But it can only do so much.

Optimization is ulitimately dependent first and foremost on the developer, not the engine, the engine is a tool, it's your (the dev's) responsibility to use those tools responsibly and create an enjoyable experience.

Switching engines is not ever truly going to be a valid answer to optimize a game, becoming a better programmer is. You should always just use the engine that vibes best with you and has all the features you need at minimum. For me I vibed best with godot but it lacked features that were critical for me, so I'm on unreal instead now.

PS: A trick I use if i want to test performance on low end machines is force my cpu to powersave mode and run the game on my igpu instead of dgpu. That'll be representative of the performance of the game on a cheap ass laptop usually.
 
Last edited:
  • Like
Reactions: hardbones

hardbones

Newbie
Game Developer
May 8, 2023
70
268
Godot is probably the ideal engine for a project like this just looking at your preview and reading what you say you want to do. It is also a fairly great engine for a beginner dev (better than Unreal and Unity) simply because of it's simplicity, unreal and unity have countless features that you're never gonna use in game development. Godot meanwhile almost exclusively has game dev focused features. This is just one of many things that make it less intimidating and more straightforward to master from scratch.

Also compared to unity and unreal it is the easiest to run generally speaking on lower end machines. Partly because of the many non-gaming related features that are absent from it, and because of how lightweight it is.

The biggest downside to godot however is that for very big projects it gets increasingly harder to keep it optimized. Everything Exordick said is correct, poor optimization in general as he said will affect godot worst, unity second worst and unreal least simply because of the difference of mitigations and improvements done specifically to prevent these things from affecting your performance, unreal's devs expect the users of the engine to be imbeciles so they've done everything they can to make the engine imbecile friendly. But it can only do so much.

Optimization is ulitimately dependent first and foremost on the developer, not the engine, the engine is a tool, it's your (the dev's) responsibility to use those tools responsibly and create an enjoyable experience.

Switching engines is not ever truly going to be a valid answer to optimize a game, becoming a better programmer is. You should always just use the engine that vibes best with you and has all the features you need at minimum. For me I vibed best with godot but it lacked features that were critical for me, so I'm on unreal instead now.

PS: A trick I use if i want to test performance on low end machines is force my cpu to powersave mode and run the game on my igpu instead of dgpu. That'll be representative of the performance of the game on a cheap ass laptop usually.
- Unfortunately a lot has been done inside unreal so changing the engine now is not ideal, I will consider using Godot for my next game though. The main reason I didn't use Godot in the first place is because of the animation systems that Unreal has, even though the animations I plan to make are not going to be release on the alpha version I plan on releasing those on upcoming versions.

- Yes, there are a lot of non gaming features Unreal has that's one of the reason I worked with Unreal in the past.

- I plan to make the scope of this game a little bit big if there will be a good traction for my game.

- That's also one of the reason why the development time of this game is taking a bit long because I got to caught up in optimizing that I refactored most of my code without the real need to.

- The reason I wanted to change game engine in the first place is because I like how barebones Godot is, use it on some small projects and I liked how it feels, I really like it actually that's why this game was develop on Godot at first but after a week or two the animation system that Godot has left me wanting for more. If I switched engine I might have to drop the animation features I want to implement.

I plan on using my steamdeck as a test device for this game, if it can run at least 30fps on SD that would be a good indicator of the performance of the game.
 

Velomous

Member
Jan 14, 2024
320
323
- That's also one of the reason why the development time of this game is taking a bit long because I got to caught up in optimizing that I refactored most of my code without the real need to.
I'm gonna play devil's advocate here and say time spent on optimization is almost never wasted. The greener you are as a programmer the more true it is. Optimizing every line of your code early on will eventually translate to good coding habits where you just default to pumping out better optimized code later on; as opposed to not doing it where you default to pumping out unoptimized code and then you'll eventually have an entire project where almost everything needs to be rewritten if you want to optimize it.

For optimization there are certain low-hanging fruits, such as moving things away from event-tick, reducing hard references, reducing the number of executions in a function or class, reducing the amount of hardcoded values (e.g. make your code more dynamic so you don't have to rewrite it later when something else changes, tho this is more about human readability than performance optimization it's no less important), using switch statements instead of long if/else chains (I try to do this whenever I have more than 3 if/else in a row, not only is it more efficient, it also reads cleaner) and a bunch more...

Getting into the habit of seizing all that low hanging fgruit as you code by default means that at the end ofyour project if you don't just straight up end up with an optimized game, there will be a lot fewerthings for you to optimize.

It also actually means you spend less time on optimization because your mistakes will take longer to stack up before your framerates are dying andoptimizing becomes a critical issue for you.

It's part of the learning process, or at least it should be, most modern programmers seem to avoid optimization like it's some kind of cardinal sin, and I'm sure you're just loving the result of that along with the rest of us, we now live in a world where 16GB RAM tends to not be enough, 80% of recent games run below 60fps on top of the line hardware and most software of almost any kind has some manner of major performance issues. Don't be like those guys ;)