3 ms·
My life's work since I was a kid in the 90s was to make a computer game. Then in the mid-2000s I started working with someone I'd met at college to make an amb
by phaedrus 4y ago
My life's work since I was a kid in the 90s was to make a computer game. Then in the mid-2000s I started working with someone I'd met at college to make an ambitious online multiplayer game, but the effort fizzled out. I continued working alone on the parts of it I had written myself.
So I was working on the same game code (eventually just the game's engine; I had lost sight of the original goal) through the 2000s and 2010s. I had an initial period of great productivity (in lines-of-code), but the more I wrote the more work it was fighting bit-rot. As operating systems, graphics technology, and the C++ standard itself changed, I was perpetually playing catch-up to build-breaking changes rather than making new progress.
Over the course of time my git history had gotten convoluted, and I had also split things into a couple of repos. I considered re-merging everything back into one repository, and was debating whether to try to consolidate all the history or start a fresh repo with existing sources. My friends suggested: do neither; don't even start with the old source files. I could always mine my old work for useful code, but I didn't need to pull it all in just because it was there.
I.e. after more than a decade and a half of life's work that had only resulted in treading water trying to keep up with the changing technology I could just... stop.
Now instead of trying to push one codebase forward against the relentless march of entropy, I'm trying to work from a simpler premise: what do I need to build a game jam submission, and back-fill what I need from that goal. Even that goalpost keeps receding before me. (Any given game jam I might target will be over before I get the first pixels on the screen.) I guess I just work at a slower pace than the world moves.
With ambitious projects there's two ways to go about them: forward-chaining or backward-chaining. You can start from the beginning and build up (forward-chaining) then attempt to bend your arc of progress back Earth for eventual release. You're always in danger of discovering you've described a wider arc than you're able to close. Or you can start from what does a released thing look like and backward-chain to putting your original ideas into it.
What I've learned is neither strategy provides any guarantee, but if I'm still having this much trouble with the latter I certainly was never going to be able to close the loop on the former.