Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
GPUs have been general-purpose many-core processors for like fifteen years now. Please stop designing simulations that run exclusively on CPU… and especially stop tying your simulation speed to the goddamn renderer.
I’ve written a 60 Hz renderer for a game that’s allowed to chug while you glide smoothly through it, and I’ve written a 60 Hz physics engine for a game that gets fractional frames per second, and I’m just some schmuck. What is your excuse? What kind of NP-hard nightmare did you design for yourselves, instead of identifying bottlenecks and faking the hell out of them? SimCity could run on 8-bit microcomputers. You cannot possibly be struggling to reach an acceptable minimum complexity, using hardware that’s forty years newer and ten thousand times faster.
I’m pretty confident the game isn’t tied to framerate, and also the game is almost always GPU bottlenecked from what I’ve heard. From what I’ve watched of the game, it has a ton of compute shaders and other shader work. In particular, weather is apparently a large cause of framerate issues, particularly temperatures. That’s because (I’m betting) the game is computing temperatures on the GPU and using that to draw snow and other things on the terrain and also structures. I’m pretty sure they know what they’re doing. They just did too much, and now they need to try to optimize it.
They don’t work on a custom engine. So they don’t have engine programmers so they don’t know how or probably can’t (i don’t know how you would do that in Unity). That’s the price you pay for ease of development
If Unity is so dodgy that a team of professionals can’t figure out how to spread a workload over time, they should have written it off immediately. The nature of their game was not a surprise. They’re not naive in this genre - it’s a direct sequel.
Unity has its issues, especially lately, but the engine is perfectly capable of doing what they want to do. Most of the GPU load is likely just HLSL that’ll run pretty much (if not exactly) identically no matter what engine you’re using. UE would be a horrible choice for the game, especially 5. They could make their own engine, but no way they do that and don’t have to cut at least half of the features of the game.
The issue is just they did too much without enough time to optimize. They said they’re working on it and they aren’t happy with where it is. They’ve earned my trust, so I’ll take their word that it’s being worked on. Don’t just assume they’re telling the truth, but give it time.
Am engine is just a set of tools stuck together. If they have to write their own rendered, editor, interpreter/compiler, and everything else, that’s a ton of investment that you then can’t spend on game features. You don’t do that unless you have very good reason. You are also required to maintain them yourself. You don’t just get upgrades essentially for free as the engine updates.
Unity actually does have a lot of features that are useful for a city builder, like ECS. I don’t know if you’re trying to be sarcastic.
The performance probably didn’t “sneak up on them” but they almost certainly didn’t know how it’d end up. There’s likely still a lot of optimization left in there and a lot of optional things that can be enabled/disabled. There’s no way to know how the end product is going to look until you’re nearing the end and all the pieces come together and time starts running out.
“This commercial engine cannot handle our game” is a pretty good reason.
However well ECS does its thing - it’s obviously not doing enough, for this game. Even if this somehow came on by degrees, and performance got just the tiniest bit worse day after day, the time to stop tolerating that and pursue performance was a year ago. That doesn’t rule out bugfixes. That doesn’t rule out new systems. That doesn’t rule out major changes.
But they’ve surely been fighting Unity for a long damn while and this is the best they could do.
“This commercial engine cannot handle our game” is a pretty good reason.
The “engine” isn’t at fault. You can continue to add things that consume resources and you eventually use up too many resources. That’ll happen on any engine.
However well ECS does its thing - it’s obviously not doing enough, for this game.
I believe you’re wrong here actually. By all accounts I’ve heard, it’s GPU bottlenecked even with increased entity counts over C:S1. It’s likely just too many shaders doing too much work too frequently. Weather and temperature are both apparently big hogs, which to me looks like the perfect opportunity for shaders to handle a lot of the work and I’m sure that’s what’s happening.
GPUs have been general-purpose many-core processors for like fifteen years now. Please stop designing simulations that run exclusively on CPU… and especially stop tying your simulation speed to the goddamn renderer.
I’ve written a 60 Hz renderer for a game that’s allowed to chug while you glide smoothly through it, and I’ve written a 60 Hz physics engine for a game that gets fractional frames per second, and I’m just some schmuck. What is your excuse? What kind of NP-hard nightmare did you design for yourselves, instead of identifying bottlenecks and faking the hell out of them? SimCity could run on 8-bit microcomputers. You cannot possibly be struggling to reach an acceptable minimum complexity, using hardware that’s forty years newer and ten thousand times faster.
I’m pretty confident the game isn’t tied to framerate, and also the game is almost always GPU bottlenecked from what I’ve heard. From what I’ve watched of the game, it has a ton of compute shaders and other shader work. In particular, weather is apparently a large cause of framerate issues, particularly temperatures. That’s because (I’m betting) the game is computing temperatures on the GPU and using that to draw snow and other things on the terrain and also structures. I’m pretty sure they know what they’re doing. They just did too much, and now they need to try to optimize it.
They don’t work on a custom engine. So they don’t have engine programmers so they don’t know how or probably can’t (i don’t know how you would do that in Unity). That’s the price you pay for ease of development
If Unity is so dodgy that a team of professionals can’t figure out how to spread a workload over time, they should have written it off immediately. The nature of their game was not a surprise. They’re not naive in this genre - it’s a direct sequel.
Unity has its issues, especially lately, but the engine is perfectly capable of doing what they want to do. Most of the GPU load is likely just HLSL that’ll run pretty much (if not exactly) identically no matter what engine you’re using. UE would be a horrible choice for the game, especially 5. They could make their own engine, but no way they do that and don’t have to cut at least half of the features of the game.
The issue is just they did too much without enough time to optimize. They said they’re working on it and they aren’t happy with where it is. They’ve earned my trust, so I’ll take their word that it’s being worked on. Don’t just assume they’re telling the truth, but give it time.
As opposed to now, where they also can’t handle the features of the game.
Unity being famously jam-packed with features relevant to a cutting-edge city simulator.
No kidding they’re going to make it better, over time, but there is no way this snuck up on them.
Am engine is just a set of tools stuck together. If they have to write their own rendered, editor, interpreter/compiler, and everything else, that’s a ton of investment that you then can’t spend on game features. You don’t do that unless you have very good reason. You are also required to maintain them yourself. You don’t just get upgrades essentially for free as the engine updates.
Unity actually does have a lot of features that are useful for a city builder, like ECS. I don’t know if you’re trying to be sarcastic.
The performance probably didn’t “sneak up on them” but they almost certainly didn’t know how it’d end up. There’s likely still a lot of optimization left in there and a lot of optional things that can be enabled/disabled. There’s no way to know how the end product is going to look until you’re nearing the end and all the pieces come together and time starts running out.
“This commercial engine cannot handle our game” is a pretty good reason.
However well ECS does its thing - it’s obviously not doing enough, for this game. Even if this somehow came on by degrees, and performance got just the tiniest bit worse day after day, the time to stop tolerating that and pursue performance was a year ago. That doesn’t rule out bugfixes. That doesn’t rule out new systems. That doesn’t rule out major changes.
But they’ve surely been fighting Unity for a long damn while and this is the best they could do.
The “engine” isn’t at fault. You can continue to add things that consume resources and you eventually use up too many resources. That’ll happen on any engine.
I believe you’re wrong here actually. By all accounts I’ve heard, it’s GPU bottlenecked even with increased entity counts over C:S1. It’s likely just too many shaders doing too much work too frequently. Weather and temperature are both apparently big hogs, which to me looks like the perfect opportunity for shaders to handle a lot of the work and I’m sure that’s what’s happening.