Ranting about Games Programming

A rant with some potentially interesting points, but is not as well laid out as other posts. Take commentary here with a grain of salt.


One of my frustrations with the gaming industry is how little it learns from itself. Only by the fact that we now have essentially two engines have we gotten to a point where some of the basics are covered, and a lot of the smaller engines are starting to gain steam which is cool, because they're filling different niches.

In the non-games software industry, there's a ton of stuff that's open source and there's a ton of stuff about design patterns. The gaming industry has some of that, but like, everything has landed on the ECS pattern, and I can't really seem to find exactly why. Beyond that, you end up with game studios reinventing the wheel so much that you wonder if anyone talks.

This is clearly in part caused by the culture, as high turnover and not a lot of seniority means you end up with people who literally don't know the lessons of the past, and frequently companies focus a lot more on the higher level game design instead of people who can actually develop those systems.

Unreal's blueprint system is great. I have notes, but not from an accessibility perspective. It makes it so much easier for someone who isn't a programmer to do something and build a new system. That's cool! But, because of the high level of the system and the way people use it, it frequently gets bogged down. And, as with all "visual" programming languages, it becomes hard to follow reasonable programming patterns. An example:

Source: https://blueprintsfromhell.tumblr.com/post/180629779201/submission-construction-script-for-my-road-bp

What's cool about that is you can almost see the places that should be broken into functions and the function hierarchy. But there's also places that are crossing over in weird ways. Another example:

Source: https://old.reddit.com/r/unrealengine/comments/m4exem/blueprint_from_hell_the_config_file_from_my_voxel/

Same thing - you can see exactly where things should be broken down and the creator definitely tried to keep it well-organized, but that looks like an absolute nightmare to maintain.

I tried finding some performance comparison numbers, and found one that showed almost two order-of-magnitude speedup after converting their blueprints to C++. UE4 also has a feature called "Nativization" and there are some unsupported features, but as others will point out, if your code is bad in the first place, compiling it isn't going to magically make it better.

There was a blog post many years ago that I'll link if I can ever find it about someone who was called in last-minute, at very expensive rates, to fix up games to help them ship at acceptable framerates. I think about that a lot, and how if you slow down and build something good, you can save yourself a lot of headache.

Subscribe to Esras' Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe