Last time, we went over the complete history of my 10-year RPG project. Now, instead of discussing a single large project we’ll be talking about many small projects. If you ever wondered “What happened to that game concept?” or “If you have a gamedev degree, where are all the games you made then?” then look no further. I’ve tried to assemble as much game footage as possible for this, since most of these games got little to no videos or screenshots in their time.
Over the years, I’ve worked on tons of smaller projects. Some were game jam titles, some homework, and yet others just demos that never really went anywhere. Today I’ve compiled over a dozen of these to discuss! Let’s get right to it, with:
Leave Black Alone
This is a game that actually predates the blog. As with art, I’ve been making games since middle school… but sadly I’ve lost much of what I produced back then. In December 2011 I joined my first gamejam, Ludum Dare 22, with a puzzle game. I even made a time-lapse:
The game is a weird match-3 where you slide tiles across a board. By clearing all of the colored tiles from the board you successfully “leave the black tiles alone” and win. Looking back, I’m a little surprised at how much I got done. I probably have GameMaker to thank for that though.
Anyway, this is sort of a fun story because for a long time I thought the game was gone. But it’s not! Last month I recovered data off of my old laptop, and found a single backup gamemaker source file. Somehow I was able to load it into ENGIMA and extract the game files… but due to ENIGMA’s shortcomings the game itself couldn’t launch. On the upside I have the source files again, if I’m ever in the position to give it another pass I have the tools to do so.
I thought that was where I’d have to leave it, but then I found a random copy of the Windows exe in one of the class projects later in this article! Finally I can finally share a laggy, audio-bereft playthrough:
Up next we have a briefly mentioned and very dead text adventure. This project hails from September 2012, around the slow death of halberd’s first attempt. I think the idea was to build a simple game in C++ to get a better grasp of the language, and with no knowledge of graphics I decided to give text adventures a try. Digging through the history, I discovered another post describing the project, but it had been deleted. That leaves us with a single mysterious blog post talking about the game as if it were a regular occurrence.
With that said, this abandoned title is a success in some ways. Even if it’s entirely linear, it manages to tell a story(?) in just a few short minutes, which is more than some of my projects:
Another fun note about this post. I mention NSFW content but I never really made any until recently. I don’t think that stuff fits well with my mostly-T-rated brand though, so I’m still thinking about where it ought to live–if anywhere.
Planets of the Plant
The very first game I ever made for school, and a game that should’ve set off some alarm bells. This was one of the early-college projects that hit around the time that I’d just decided to throw out Love2D in favor of raw C++, and suffice it to say that went very poorly:
“What followed was a couple of weeks battling OpenGL, then a couple of days whipping up a quick demo in Love. I can’t believe how simple it makes things.”
So naturally, realizing the benefits of rapid development and iteration I–HAHA NO I decided that this meant I needed to do more C++ dev because surely it will get faster soon. Still, I did still have a productive couple of days. The prototype doesn’t do much, but it looks neat:
The grand design of the game was a 2-stage setup: First, the player would use mirrors and lenses to guide sunlight onto a planet. Then, on the planet itself they’d grow little plants in crop spaces. Eventually, by raking in enough crops, a vine would grow to the next planet in the system and the process would repeat forever. This little demo did a pretty good job of simulating the “ground-level” gameplay, even if it was accelerated and had no end-state.
In the associated post I linked above, I also mention game jams. The Compohub and Fuck The Jam links are dead today, not that I wound up using them. However, the 0h Game Jam’s site still lives, and that’s what we’ll be discussing next!
Zombie Delinquent Shootout
Another game jam entry, the first since I’d started college! I’m a little surprised I got as much done as I did on this one, even though the resulting game is… barely a game. I wrote up a pretty decent post-mortem, which may be worth a look. As for the gameplay, there’s not really much to see:
One funny issue is that I tied the gameplay to the framerate. On a much newer and faster PC like mine, the game runs at hyperspeed! (NOTE: Obviously, I fixed this bug for the demo video with a 15ms delay) I also experienced a ton of problems trying to compile this C++-based game to other platforms… Take note of that, it’s a recurring theme.
Right after the last, another game jam! I wound up doing a bunch of jams in my first year of college, but that momentum sort of fell off after a while. Chainsaw Deathrace was for one of Champlain College’s local game jams around Halloween, so I made a game about teens fleeing a generic slasher movie villain with a chainsaw. The twist? One’s lost his arms, one’s lost his legs, and the third has lost his head (They get better if you win):
Chainsaw Deathrace is in an awkward spot because it got a ton of writing, but no postmortem or at-the-time documentation about the game has survived. The best we have is this passing mention from a few weeks after the jam. So where did the rest of the posts come from? As it turns out, the game was supposed to be the first big project I would undertake. A brief timeline of the ill-fated project follows:
- October 2012 - Game jam entry is made
- November/Early December - Not much happens due to schoolwork
- December 19 - My first design post, discussing how to rebalance the characters!
- December 20 - While celebrating 1000 pageviews I put out a second design post, thinking about how to make thin walls work in a tile-based game. Honestly, kind of a neat topic.
- December 29 - EVERYTHING IS ON FIRE
- December 31 - EVERYTHING IS STILL ON FIRE
- January 4 - Another design post, this time about sound as a mechanic. One concerning part of these is the relative lack of programming posts, probably due to the recent problems.
- January 4, Again! - I announce that I’ve made a working map editor for the game. This is a tad strange, given that it’s supposed to be a roguelike… I also announce that the project is going on hold in favor of…Textyventure???
- Immediately after - Both projects die silently, never to return in any meaningful fashion
It’s too bad, this seems like it could’ve been a neat little roguelike. But my ambitions got the better of me, and the project never went anywhere beyond the game jam prototype.
That last one was sad, so let’s rewind back to the end of 2012. Along with Planets of the Plant, I produced a second game for the same class! This one was also unfinished, but has slightly more meat on its bones. It also got a really nice title screen, courtesy of the team’s artist:
This game got a couple of mentions, one in a small announcement post and another in a larger “what am I up to” post (this one also mentions a number of the games I’m chronicling today!), but I never really gave the game a thorough look. Sadly, even after getting it to compile all I get is a white screen… Let this be a lesson, always document your projects at the time you develop them… there’s no guarantee they will continue to work as intended.
That last post I linked about Octocow mentioned a project called “Exclusion”. But what was it? Thankfully, the project survives:
I think this started from playing a flash puzzle platformer about folding the levels to remove or re-arrange elements. I liked the idea enough to look for similar mechanics, and settled on the idea of ‘excluding’ areas of a level, affecting the physics inside or outside of the region. I started drafting a bunch of levels based around various spins on the idea, but it never really went anywhere beyond the first demo.
A Wheelie Good Time
To finish off 2012, a game jam game. It’s interesting to see just how many game jams I joined in my first year, it’s one of things I’d like to return to. I did make FAULTSURFERS earlier this year, but it’d be nice to have more.
One strange thing about A Wheelie Good Time is that, as far as I can tell, I never actually wrote any blog posts about it at all. It just… showed up with a game page one day without fanfare. I don’t even have info on what jam it was for… maybe one hosted by the college? Regardless, I remember this being a pretty fun project. It’s the first instance of “Doomsday Darren” showing up, a character that I planned to re-use for various jam games but have only used a couple times. Otherwise, it’s a silly little arcade game about smashing buildings and shooting missiles.
This is where I’d post a video to show it off, but like Octocow above the game is basically dead today. SFML’s API has completely changed, and it took me roughly half an hour to get the code to compile at all. When that process finished, I was greeted by this:
It could be SFML changes, it could be my drivers, it honestly could be anything and short of rebuilding this game (at which point I’d rather do it with something like Love2D) I’m probably not going to be able to fix it. Such is the curse of old poorly sectioned-off C++ code.
We’re now in 2013 and we have yet another game jam entry! And it’s not the last in this list either. Unlike A Wheelie Good Time, I did post about this one. Yet still, the posts were lost. We’ll get to where they disappeared to another day, but in the meantime let’s discuss the game. To quote the game page:
“I think this is one of my better game jam entries. I recall that part of the jam’s theme was a heartbeat sound, and I didn’t want to make a game with a heart. I figured most people would just put hearts in their games, and that I needed to find a different interpretation of the sound. So, I decided that the sound was the footsteps of something huge hopping and skipping around. Then, I needed a reason to make it hop in the first place, and the story of the Diamond Titan was born.”
This kinda sums up my approach to a lot of game jams. Often the theme lends itself too well to a certain kind of game or theme, and in cases like this I’ll usually try to find ways to subvert it. This same thing happened with Leave Black Alone up above, the theme “Alone” lends itself to games about loneliness or games where the player’s alone–so I made a game about “making certain things be alone” instead.
Back to Diamond Rush, I still love the concept of a monster swarmed by tiny heroes looking for loot. That was a fun idea.
Untitled Maze Game
With that out of the way, it’s time to look at the results of Game Tech I, the main game-making class I was taking in 2013. It was only the 2nd semester of Freshman year, so they had us making Flash games instead of working with C++ or C# (as you can imagine, this decision did not age well). I remember resenting this a bit back in the day, and that opinion definitely shines through in the post itself.
We open the bounty with a mouse-based maze game. If you were around for the days of Flash you know exactly what sort of game I’m talking about, they used to be extremely common. For the uninitiated though, the idea was testing how steady your hand is by making a maze requiring you to move the mouse cursor from Point A to Point B without touching any walls
or just right-clicking to cheat. Sadly, I’ve lost this one… no video or screenshot from it survives.
Untitled vertical shmup
The first of several shmups that I made during this class. If I recall correctly, I was on a bit of a shmup kick around 2012-2013. I know I played through all of Tyrian 2000 around that time, and also got into some bullet hell games as well. The trend wouldn’t last forever, but in retrospect I suspect it’s also responsible for Sophomore Year’s Space Douchebag as well.
Anyway, this particular entry wound up unfinished. I thought I’d gotten more done, but the remaining swf file only has a scrolling map and shooting, with no enemies or anything else. There were a bunch of sprites for powerups, ‘options’, enemies… but I guess I must’ve run out of time in the end. On the other hand, the blog post about the class claims that there were enemies. It’s hard to know for sure today, the final version may simply be lost to time. One neat thing to note is that the map has some parallax going on, probably influenced by Tyrian 2000.
Untitled horizontal shmup
With those first two out of the way, we’re hitting slightly firmer ground. It’s at this point that I figured out how to compile ActionScript into .swf files, making it possible to avoid using Flash in the development process. This was probably a bad idea at the time, since it made some things much more complicated to do. On the other hand, it means that the source code can still be examined and compiled today! The classwork post from above claims that the assignment here was to make a scrolling background, and for some reason I decided to add collision to mine. Between that and a fairly merciless bullet pattern, this game is probably harder than it ought to be. It’s not impossible though:
With that said, the attempt at generated terrain in a shmup is interesting.
This game is neat, but very boring. The assignment was all about using Flash’s drawing API, hence the lack of sprites, but I think I made it look nice regardless:
That’s all the game is, sadly. It feels like it could’ve become more interesting had there been more enemies, powerups, or other things to do. But instead, you spam-click on enemies with increasing amounts of health and that’s about it.
While this wasn’t a game jam game, the same rule of finding ways to twist a boring theme apply. Snake was too basic a game, so I tried to change it up with a hex grid. Apparently this caused many headaches though, and that might explain the relative lack of polish in this one. It also doesn’t seem to function, popping an exception at startup then failing to read inputs. So, the best I can do is a screenshot:
I’m really not impressed by these Game Tech I projects today. I remember being pretty happy with them at the time, and I scored high in this class, but they haven’t aged well at all.
Leave Black Alone DX
This is exactly what it sounds like. I decided to remake Leave Black Alone, and make it bigger and better! It was an unmitigated disaster :) The basic mechanics didn’t work particularly well, and the new ideas largely failed to materialize.
It does function, sort of. But as you can see here, the “sort of” is carrying a lot of weight:
This is another point where I should’ve scratched my head a little and wondered what was going wrong, given that I had more time than in the jam and didn’t need to do any design work. Instead I blamed it all on ActionScript, which isn’t entirely unfair but still a cop-out. There is one thing it did right though, the project folder held onto that copy of the original Leave Black Alone for 9-odd years. It’s only thanks to this that I was able to provide any gameplay footage above!
This game is difficult to describe without a visual aid, so I’m going to open with the gameplay first:
Confused yet? This is a “1D Platformer”, where the game is simply drawn as a line of pixels (scaled up for convenience). I’m not surewhat the assignment was, but I’m going to go out on a limb and guess that we needed to make a platformer, and I wanted to do something silly. Needless to say it’s kind of a pain to play, but I think the way I used value to indicate the height of things is cool. I do wonder if colorblind people can play it though…
Final Bullet Hell Shmup
Finally, this is the end of Freshman year. The magnum opus. The final classwork, aaaand that’s right it’s another shmup. And frankly, despite being pretty happy about it back in the day I think this is a bad game. Enemies are poorly designed, with tiny hitboxes and fast movement that makes them too hard to hit yet inexplicably large health pools. Forget killing all the enemies, even just killing one or two per wave is an accomplishment. See for yourself:
Moreover, I feel like this was the product of the “harder is better” mindset that often results in poor design. It’s one thing to make a challenging game, but balancing it to be fair and enjoyable at the same time is the hard part. There’s a lot that I could’ve done to make this game easier without making it worse–auto-bomb (a common bullet hell feature where bombs are used up on hit if you have any), respawning in place instead of restarting the game, or at least putting a checkpoint between levels 1 and 2… I think I was blinded by the extra bit of polish and personally logging hours of gameplay during testing, and the game suffered as a result. Then again…
“I might be the only person on the planet who’s actually competent at playing it, and even I’m stuck on the final boss!”
But so it goes, I was still young and inexperienced as a Freshman. Let’s see what game the summer brought.
Doomsday Darren Goes Fishing
Finally, we’re back to another game jam! And unlike the previous few, we have some surviving blog posts. Incredibly, I even recorded gameplay footage at the time! Old me’s really comin’ in clutch today, saving me the trouble of replaying the game:
As I note in my initial post, I was making this for the “Fishing Game Jam”. I have no idea how I found out about it, but it was a pretty chill time and the forums are working up too…for a certain definition of working:
Let’s look at the other posts:
- About halfway through, I posted a small progress update featuring the destruction of hundreds of seagulls! It’s hard to really judge how much gameplay was here, but I assume the basic “fly around and grab stuff” mechanic was done at this point.
- Then, at the end of the jam I announced that I was done! …with the Linux version. I claimed that the Windows builds would be ready “over the next few days”. Then I post the video along with promises to record my earlier jam games…I wish I’d done that at the time, but sadly it never got done :/
- A next few days later, I put up a postmortem and announce that I’ve given up on making a Windows port
We have a couple data points (with more on the way!!!), so let’s establish a pattern: During the early years, I never quite got this whole “release on two platforms” deal to work. This largely led to me abandoning any hope of Windows builds for my projects, something that would definitely harm my ability to get anyone playing my games. And the culprit? It’s C++, again. This is not the first time that my stubborn refusal to use game engines has harmed me in this recap series, as you may recall from the episode on Halberd. There were a lot of signs, and it’s sad to see how stubborn I was on this point that was genuinely causing problems at every level.
There is a counter-argument that with better build-system and CI/CD knowledge I could’ve avoided this, but honestly even as someone with extensive professional knowledge in buildsystems and a shipped AAA Linux (Stadia) port under my belt I still don’t really like dealing with cross-compiles like this. They’re messy, greatly increase the amount of testing and bugfixing involved (whereas with an engine you can mostly let the engine’s devs handle platform considerations), and not something I want to do without a good reason. To take that as default for every project forever is a bad call, full stop.
To Be Continued
I said I’d be covering everything, but honestly this post is getting way too long. I’ve spent almost a month on it, and I feel like I really ought to post what I have… We’re around the halfway point right now, so expect the rest in a ‘part 2’ SOON™!
As an aside, it may feel like we’ve made a ton of progress but we’ve only covered like, 1 year out of 10? And its been 5 months… I need to pick up the pace, or we’ll be recapping for years to come!