upvote
I dunno if I agree it's doomcoding.

I have worked briefly in the game industry long ago (not in engine teams though) and ended up writing a few engines for myself after leaving, a couple quite complete.

It’s just a hobby like another. I have zero interest in writing a full game on top of it, or even publishing it.

But do you know who NEVER gives me grief about it? People I know who work at Unity or [previous employer] writing AAA engines.

My last monstrosity is a Rust one with zero dependencies other than the std-lib/OS, Metal/DX12/Vulkan, its own physics engine, spatial audio, vm for scripting and other stuff. I will probably do nothing with it other than having updated my skills in a lot of areas.

reply
I think we have to try these things at least once. My own attempt to write a javascript framework ended with me realising that I needed to put more effort into planning and research, which was a valuable lesson for me.
reply
Yes building tools from scratch is a great way to learn. In my carrier a rewrote bunch of front-end frameworks, but then instead of rewriting everything from scratch I decided to simplify existing structures.

Once I tried to create my own front-end framework from scratch. I created signal library, mounting/unmouting, context etc but never able to write v-dom diffing or using existing vdom libraries.

Then I decided just implement my API on top of Preact. Preact did vdom-diffing for me and mounting/unmounting which was enough for my need.

The final project looked nothing like Preact, it even had it's own context system, data loading, signals, setup + render and context which just hooks itself into Preact Context but taught me a lot about how a front-end framework work.

reply
Right, I think the usual point here that if your goal is to make a game, then this is usually the painful route and conveniently one that up-fronts the likely more exciting and comfortable part for a software engineer, namely the software engineering. It also tends to defer the very important business of learning rather quickly whether our idea even leads to a fun game in the first place

That said, it's still a worthwhile exercise that one can learn a lot from.

reply
Balance is required for everything. There was a youtuber called Randy, he tried to build everything from scratch using C and it took him 6-7 years to finally release a game. Meanwhile I watched a youtuber who just made games from fake-ads in Unity and marketed it well and earned bunch of money.

Do we want money or do we want to get the pleasure of being an engineer and make money as a side quest?

There was a video of tsoding about why he doesn't have a job, he says "when I have enough money for my needs I just go into coding instead of working". I like his vision. He likes coding for the sake of programming and earns money as a side quest.

reply
There is another angle: what if you want to express yourself, but, say, Unity is too limiting? Existing game engines were made to express existing ideas and while there is some stretch they do have hard limits.
reply
What's doomcoding? (It's not mentioned in the article and it doesn't appear to be a related term when I google it.) It sounds negative ("doom" + "we should limit ourselves" from it) but everything you said in the context before that sounds good.
reply
I took it to mean the frameworky coding you kind of get sucked into when you start a project when you realize off-the-shelf libraries are flawed or you could do so much better. Like the old trope of getting a task to write a billing system but first writing a full text mode UI framework, menu system, etc.
reply
Coding for pleasure I mean. We start a project and then get bored. Like Doomscrolling, for pleasure.
reply
I don't think I agree with this. Doomscrolling has a negative connotation - of wasting your time and being unhealthy for the mind. I don't see coding the same way. Sometimes, I code to finish a project and it's a major milestone and I feel accomplished. Other times, I just code something because it sounds like I'd enjoy it and it's fun. I feel fulfilled nonetheless, even if it goes nowhere. I wouldn't equate it to doomscrolling.
reply
Yes coding itself is not like doomscrolling. I wanted to use that term because I lost so much time bu trying to reinvent stuff.

I wanted to make a game, and had an idea, but then I thought "why not making a game framework so I make my game". It was fun to build a game framework by mixing PixiJS, Rapier2D, ECS, writing my own loop logic and state management but then I lost the motivation. I just coded a framework for pleasure but at the start my point was making a game.

The desire to build something can cause our idea to be dropped.

reply
"Pridecoding"?
reply
Maybe just “coding”?
reply
"Creating"
reply
"Hobbyhacking"?
reply
The instinct to make a game engine is it's well known how to do it and you just follow examples all over the the place and each few days you check off a box and feel like you're making progress. It's much easier than making a game itself. There is no known list of do X, do Y, do Z that leads to a game. In that sense, games are harder than game engines because a game is unknown, a game engine is well known.

IF you want to make a game engine, building one is progress

If you want to make a game, building a game engine is the illusion of progress. When you're done making the engine you'll be no further along on your game than if you'd used an existing engine. Usually you'll be behind because those other engines have so many features and tools that you have yet to implement. Sure, you don't need every feature, but you may be surprised at all of the little things you end up having to write.

reply
It helps to just write games and then over time an engine will emerge from the common code you carry across projects.

Starting from a checklist of features for a game engine almost always ends in wasted effort

reply
Exactly.
reply