Post

I hate hearing the word ‘framework’ from any engineer. You can replace that word with ‘overengineer’ and you'll be right about 90% of the time. You don't have to make frameworks for everything! Stop making everything 'robust' and 'future proof' while the project is still being iterated.

Like building a framework so that players can fire off 5 abilities at the same time, and the game designers are still iterating what the gameplay will even look like! How much time are you wasting? Or making an entire animation system for feet on staircases: Will the game even have many staircases?

Instead, build an initial version of something, with throwaway code, see if it's any good with users, adjust it, do that a few times, and then when users are happy, and you think it'll be used many times in many places, you make a framework for re-use. But not any moment sooner!

0 reposts22 likes

This implies that companies generally have management that understands the importance of throwing away prototypes to make 'the real thing'. "But we can see the pixels on screen doing the thing we want; why throw it away? Just iterate on that and ship it!"

the more senior I get as a developer the more I've switched from Don't Repeat Yourself to Write Everything Twice, writing something a second time adds very little overhead but both reduces instances of unnecessary generalisation and also makes it easier to write frameworks when you need to

The exception is if you're using an engine or API that has an existing framework, such as GAS in Unreal. Please use that framework, and do not try to reinvent it! Make it do the work for you, and stick to it from the start, as it will be intertwined in all the other already existing systems.

When people are confused about why companies like Bungie go to such insane lengths to modernise their old engines, this is the #1 reason imo - their engine contains a proven gameplay framework that is capable of delivering some of the most exceptional titles in their genre. That‘s super valuable!

I think this happens because engineers see an interesting problem and jump on it. It's a problem that's fun to work on and figure out. It doesn't add value to the project, but it sounds impressive. Pitching ‘robust’ and ‘future proof’ is easy, but it's all smoke and mirrors.