The Year Of Reminiscing
I have recently open-sourced on the Piron Games GitHub most of the non-commercial projects I’ve worked on between 1992-1999 (and a few bits after, more on that later).
It was not the 2024 New Year Resolution. Not by a long shot. In fact, I had planned to fill my spare time with a couple of things that had no relation to computers at all, but, well, plans…
Are these projects useful or relevant? Probably not. Unless you’re into retro-programming or history of software development, Pascal, MS-DOS or x86 assembler programming.
What’s in
6 almost complete games, one big unfinished game, bunch of smaller unfinished games, 3 full demos and couple of small intros, various utility programs, and a full trove of university (lab) work, including my thesis.
But…why?
These projects are a window into my professional past, back to the beginnings of my journey as a game/software developer.
It was remembering how I’ve learned to make games. Here’s LodeJogger, the first experiment in trying to make a game for x86 PCs, with all the struggles from making the game architecture, making art, developing an art pipeline and all the associated tooling. Together with my friend and partner in game dev Alex Mazilu, we eventually learned from it and managed to make our first tool, a pixel editor, then our first game, a clone of Plotting, in a couple of months.
I’ve published in the past the story behind the development of Plotting. Looking back I’m still amazed that two teenagers, working wherever we could find a computer and synching every now and then, in a form of asynchronous development, with virtually no documentation on game dev (BBSes were unheard at that time in Romania and our parents couldn’t afford to buy us PCs let alone covering the phone bills 😀 ) managed to make this game.
It was a form of very late code review, especially because I wanted to port some of the projects to FreePascal and SDL, and you notice how much you’ve changed your programming practices in 30-something years. Really a “what advice would you give to your younger self” moment.
It was a form of legacy code refactoring, although I’ve tried to not alter the code too much during the porting process – left most of the structure intact. In some cases, it was definitely faster, however, if I’d deleted everything and start from scratch.
It was also a learning experience, or a re-learning rather of x86 and MS-DOS programming, especially with Deflector and its FPC DOS port.
It was also remembering the realization I had at that time that (hands-on) game design requires a different skill set than programming, which I didn’t natively have and that I would have to learn it by repeatedly doing it.
It was also remembering the first major failure with Skyborg, which was an ambitious (for me) project, a 3D arcade flight simulator, which I had to abandon after pouring a significant amount of work in it.
It was remembering the bad decisions I’ve made as a programmer, especially sticking with Pascal as a main programming language for so long, instead of switching to C for game development. It’s kind of funny though, because going throught the port process of some of these projects, I’ve coded Pascal yet again (after roughtly 15 years) and man, it feels such a weird language, syntax-wise (begin-end, :=, for weirdness). I just can’t believe that I used to love it so much 🙂
(Pascal as bad decision is not related to the syntax, but rather to the slowness of the generated code. Most of the perfomance critical code was written in Assembler anyways, but still, the rest was so slooow).
It was remembering the moments I’ve created a couple of intros for my friends and my dad and seeing they were happy with these digital gifts.
It was remembering people I’ve learned from who are no longer around.
What next
I have already began to prepare for release the next batch of projects developed between 1999-2008. Some of them (PPTactical Engine, Lethal Metal, Neonglow) have already been released on SourceForge a long time ago, but I want to restructure them a bit.
The plan is to release as open-source CyberNinja and ultimately Pure Power, although the later is the most work to prepare (and it will bring up a load of bitter-sweet memories).
Almost a fun fact
I did started my software dev journey years earlier (roughly 1989), by coding few simple games and programs in Basic and Z-80 assembler on various ZX Spectrum clones. Most of the work was saved on cassette tapes, but at some point, one of the computers I had was a Romanian clone of ZX called HC-88, which had a 5’25” floppy disk unit, so that work was eventually transferred to a more “stable” digital medium.
I was pretty sure I had transferred those floppies to hard-drives (although they had a different file format than DOS), but apparently I can’t find them. Or maybe I didn’t managed to do it at all? Who knows. That would have been the ultimate walk down memory lane though.
Another fun fact
Don’t you just love it when you find cringe comments you left in code tens of years ago?