This is the first devlog entry for A House of Many Rooms. I’ve been working on the game since January, so there’s a bit of catching up for us to do.
In January I started watching Tom Francis’s Game Maker tutorial videos (https://www.youtube.com/user/Pentadact). Before that, I’d been playing and writing and thinking about games for years, but without the ability to code them. As a result, such things always just fell by the wayside. For years I assumed that coding was far beyond my meager capabilities and that even attempting it would be unthinkable. Suddenly, though, as a result of these videos, I almost accidentally started learning to code! I could actually make a game!
This revelation was so giddying and confusing that I sat down and actually made one.
Or rather, started to make one. See, back in those early days, I was having enough trouble just coding buttons and mouse input, and my progress was only as fast as Tom Francis’s video release schedule.
(Let me take this opportunity to rave about those videos and the Game Maker platform in general, by the way – Tom is absolutely fantastic at explaining things to a non-coder in ways that make intuitive sense, and he successfully tricked me into thinking that some very difficult and hard-to-explain things were actually very simple. Game Maker is also excellent, with extensive and easily accessible in-platform documentation and a very helpful forum. Without the twin assets of Game Maker and Tom Francis, HOMR would not have ever been made.)
To begin with, I’ll take you back to the very first iteration of HOMR. Thankfully I’ve saved the game in increments and kept all my backups, so in this devlog I can take you back through the entire process. Please bear in mind that all this is from the VERY START of this project, about 6 months ago, and the game as it stands today is virtually unrecognizable! The devlog won’t be catching up to my current progress for a while.
So if the things I’m showing you look shit or don’t work, they’ve (hopefully) been ironed out in the last half a year. The whole point of this devlog is to show the process of that shitness and brokenness being steadily chipped away!
I’m now going to load up version 0.1, the very earliest iteration of the game I still have saved. I think I’d worked on it for a few weeks at this point, though certainly not at the pace I work on it now. So let’s just open this up –
(Oh God. I just realized, I have no idea what this will look like. This is as much an adventure for me as it is for you.)
There we go! That’s it. That was the whole game back then. No GUI, no scenery, nothing but featureless darkness and two sprites – the player and an enemy.
I’m in the upper left corner, and the enemy has appeared below. It’s already moving mindlessly towards me. For some reason there is also a weird dotty background.
There are two notable things. The first is the smoke. I’m quite impressed that I managed the smoke back then – it wasn’t in Tom’s tutorials, and it’s remained basically unchanged since I added it.
Second, of course, is the lighting. None of the lighting code is my own work – it’s all taken from Binsk’s Easy Lighting Studio extension (which can be found here: http://gmc.yoyogames.com/index.php?showtopic=575264&page=4#entry4555993). Since I first added this way back then, I have never used any other extension, as I’ve always been worried about not being able to make them play nice with my own code. I’ve bought quite a few on the Game Maker marketplace, but ultimately I just learned from them and then didn’t end up using them.
Binsk’s lighting engine is the exception. It has never caused me a real problem, it was so easy to implement that even a total newbie like I was at that point could use it, and it was TOTALLY FREE, both in the monetary sense and the legal sense. Binsk doesn’t even require credit from those who use it commercially, though he asks for it politely. This is so generous it’s actually quite unreasonable, and of course I’ll be giving him credit, as his engine is fantastic and lighting is a huge part of HOMR’s mechanics. I’ve spoken to Binsk a little in person since then (asking him to help me iron out some minor shadow details) and he’s continually impressed me with his good grace.
Anyway, so that was the game. This was back in early February, I believe. Yet you’ll notice that one of the core premises – the steam-train with multiple mechanical legs – is in place! I actually did a lot of research on millipede movement to make these train sprites ‘walk’ convincingly in their animation.
In the fiction of the game, the millipede-trains are called kinetopedes – get used to that word, and words like it. (We like made-up fantasy words around these parts.)
Another core aspect of the game that had apparently been worked out at this point is the basic premise – the title of the .exe I just clicked on is “The Dark House,” so I clearly had a vague idea of what world I was creating, even if the title needed a little work. I don’t know how much worldbuilding was in place at this stage, exactly, so I’ll talk more about the House in a later entry.
What happens, you ask, when the NPC kinetopede catches up with our player?
Nothing! After a few seconds, the other kinetopede starts glitching around me as I move along. It’s found me, and it doesn’t know what to do, so it flips out.
So that is version 0.1 of the game. On reflection, these version numbers were insanely optimistic, but I wasn’t really thinking about it at the time. After reaching version 0.7, I realized that the game was going to be BIG, so I slowed my roll considerably – updating in increments of 0.01 rather than 0.1.
Next week, I open up version 0.2, which is from exactly a week after 0.1. I have no idea what I’ll find, but if there isn’t much progress, I’ll blast through the versions and find something cool. New features are going to be added thick and fast from hereon out, and hopefully I can also draw attention to some of the mistakes I made along the way.
Thanks for reading! This devlog will update every Friday.
And for more up-to-date dev progress, check out my Twitter at @pixeltrickery!