Dev Diary: Not that one, either

All of the games I’ve made so far have used software called GameMaker, which I got cheap licences for on Humble Bundle ages ago. There’s been a new version out for quite some time, but it costs more than I’m willing to spend on a hobby, so I’ve never upgraded, which means I’ve never been able to try making a mobile game, since the old version of GameMaker doesn’t produce Android games in a format that the Play Store will accept.

Over the most recent lockdown in Auckland, I started playing around with Godot, a different tool that’s free and exports to Android just fine. I’d had an idea for a mobile game for ages – I wanted a game where you tapped the screen to make explosions, which would send balls (or something) flying around the screen in a pleasingly chaotic way. Once I got to grips with Godot (it seems to assume a lot more developer knowledge than I have, so it’s not super intuitive), I whipped up a wee prototype and then started trying to turn it into an actual game.

My first thoughts were to make some sort of a Breakout game where you’re blasting balls into bricks to destroy them, but I couldn’t figure out how to make that work – either you lose when a ball goes out the bottom of the screen like in normal Breakout, which would make the game annoying and difficult; or you don’t, in which case it’d be impossible to lose. So then I thought “what if the idea is to blast the balls into targets of some kind, like getting pool balls into pockets?” And without processing the idea any further than that, I went and made EXPLODOPOOL:

Getting it onto the Google Play Store was relatively easy (and cost the princely sum of $25 to sign up for a developer account) – you can find it there now:

Explodopool on the Play Store

(I’ve been asked about an iOS version – while exporting to iOS from Godot would be trickier, but not impossible, it turns out that signing up for an Apple developer account costs $150. Per year. So I won’t be doing that.)

Dev Diary: Not that one

Haha! Fooled you all! I looked like I’d completely given up on VEIN, but all along I was actually finishing off an older game that I started and also abandoned ages ago!

Wait, “also abandoned”? Are you admitting you really have abandoned VEIN?

Quiet, you. The point is, taking a break from a game for a long time meant that when I came back to it I was reminded of all the clever stuff I’d done on it, and inspired me to do even more, to the point that it’s ready for release. I give you: PLATFORM BLITZ!

Download it for Windows or play in browser here:

Kind of a nondescript name. And why is the image glitching like that?

Aha, well, you see, it’s not just an ordinary platformer – the title is deliberately generic to contrast with the unconventional secrets lurking beneath the surface!

Which are…?

Well obviously I can’t tell you, they’re secrets. You have to play the game.

For how long?

That’s a secret.

But what if I give up before I get to them, like the majority of attention-deficient people who play it are likely to do?

I… it… level 4. Just get to level 4.

Well now I feel you’ve taken all the mystique out of it.

Why are you like this?

Amiga Disk Project

Crap, I said “watch this space”, didn’t I? And then put my new project up on a completely different space. Briefly then, this is the new reason why I’m distracted from working on VEIN, in addition to all the old “I am lazy and easily distracted” ones.

You’ll recall that back in this post, I found an old Amiga game of mine preserved online, while the rest were “basically locked in their plastic prisons, with no way of getting out to remind me of what a creative teenage dynamo I assume I used to be”. Well now I’m trying to do something about that, by way of a friend’s old Amiga 500, the right kind of cables and a fair amount of luck.

Video seemed like a more suitable format for documenting this project, which lead to this:

And then this:

And that’s where we stand for now. Until I get my hands on an Amiga Workbench disk (one is supposedly coming from the UK via eBay), we’ll just have to wait…

UPDATE 22/2/21 – Progress!

UPDATE 23/2/21 – More progress!!

Dev Diary, Part 11? Is it 11? Feels like 11

Ok, look.

I said I was going to go away and write and I did. I’ve written text for every document you might find in the game – over fifty of them. I’ve made spreadsheets – spreadsheets! Plural!! – to group them into related storylines and plan which level they should appear in, as well as to set the parameters for each level. I’ve entered every document into the game, and set up a save and load system that records your progress, including which documents you have and haven’t collected, so that they’ll be locked or unlocked on the document menu. I’ve started entering the details for each level from the spreadsheet into the game’s “set up each level” code and it’s FUCKING BORING.

Copying and pasting and then testing and then fiddling values and then dicking around with the save file to reset my progress – it’s just not fun. This is the point where I’m supposed to knuckle down and show some discipline – “motivation” is an emotional state that can’t be counted on to last – but when I was doing it for fun in the first place… Anyway, I stopped working on it altogether for a few months, but I’ve come back to it recently and IMMEDIATELY found multiple game-breaking bugs that I hadn’t even noticed before, so maybe the break was a good thing.

It’s given me some ideas for other changes to the game, as well. For instance, one of the bugs I found was that the code that was meant to randomly put empty spaces in each level wasn’t working, so I made the empty blocks always green instead of black so that I could see straight away if they were there or not. This turned out to make digging around a bit easier, so I figure I’ll add an expensive powerup that acts like a radar for blank spaces, highlighting the ones close to you. Then I could do another for gold – that’d be handy.

To try and stoke a bit of that ephemeral motivation stuff, I’ve also started setting up a page for the game with title images with a spooky background effect:

A version of that effect is in the game, and in motion (!) it’s basically the one thing that’s really pushing me to get this game in front of people – I’m genuinely happy with how it works. I’m thinking I’ll plug in a few more levels, then put up a demo, how’s that?

Disclaimer: Progress may be derailed again in the very near feature, as I look into another, related-but-quite-different project – watch this space…

Dev Diary, Part 10a

A quick update on last week’s entry: the menu works now! You can buy stuff (if you can afford it) and it has an actual effect on the game. This is another of those things where it didn’t take long to get it working, but I could spend forever tinkering with the values to tune the game properly. For now, the progression of prices from one upgrade to the next is somewhere between “educated guess” and “pulled out of thin air in its entirety”…

Dev Diary, Part 10

Well it’s been two months since I said I was going to go away and do some real work on the project instead of fiddling with mechanics – how’d that go? Slowly, for the most part. I’d be lying if I said I’ve been working consistently the whole time, but I did manage a few spurts of enthusiasm. I’ve done a bunch of writing and… an amount of thinking about how everything should work, so progress has definitely occurred.

One of the things I’ve done in the intervening period is watched all of the true crime miniseries I’ll Be Gone in the Dark, which was tragic but recommended viewing. In it, comedian Patton Oswalt talks about how his late wife would spend nine hours writing, which in practice meant one hour of writing preceded by eight hours of getting into the right space to write. That’s how I’ve felt lately – most of the progress I’ve made happened in one weekend, after weeks and weeks of thinking about it but not actually doing anything.

That progress:

  • A system for displaying documents, remembering which documents you’ve read and re-reading them at a later time.
  • A new menu that separates the shop section, the missions and the document viewer. I went with an “old school monochrome monitor” look for the menu, and then agonised about whether or not I was breaking the metaphor by then showing the actual documents over top of the “monitor screen”. What’s meant to be going on there – you’re picking a document to re-read from a computer screen but then the real document appears? Does that make sense? Then I realised I don’t care and it all works as is, so what the hell. Still not sure if I should keep the scan lines effect, though.
  • About the mission menu – you may have noticed last time that you used to be able to pick your goal for the next mission. I was thinking you’d have to weigh up the chances of successfully completing the mission versus the possible rewards, but it all just seemed like more trouble than it was worth. If I set the goals for each mission, I can have more control over how the game is paced.
  • And a bit more fiddling with those damn falling boulders. It was too easy to get killed by holding left or right and tunneling straight under a boulder. I thought about changing the controls so you couldn’t hold left or right to keep digging, but that seemed like it would slow the game down too much; instead I just increased the amount of time that the boulders wobble for before they drop – there’s a little more time to react and back off, and if you’re lucky you might make it under before they fall. I also decided to make them destructible, but it takes a bunch of hits (and therefore a bunch of your energy) to destroy one. Currently they take five hits to destroy, which seems a bit light – I might make them slightly more durable. On one hand, I want it to feel like a real penalty if you have to go through one, but on the other I don’t want to slow the game down too much.

I’m still wrestling with the concept of progression, though – how much more difficult should each level be from the one before? Do I just apply a simple equation – the goals for a level are 1.2 times the previous one or something? (And similar for the items in the shop – should each upgrade level just be double the last one?) But if I’m setting up each level manually, I can just pick values myself and fiddle them later. While I haven’t got the details in place yet, the basic system will be:

  1. The game keeps a count of how many missions you’ve completed, which goes up by one once you successfully finish a mission.
  2. When you go to the menu to see your next mission, the game uses that count to look up a list of mission goals (TBD) and finds the goals for that one.
  3. When you actually start the mission, the game uses the same count to look up a list of instructions for how to set up that level – how deep it should be, how much gold should be in it, the position of any caves and documents, etc (super TBD) – and generates it dynamically.

So the next step will be to actually write out those lists – see you in another two months…

Dev Diary, Part 9

OK. Alright. Enough is enough. You can go on adding clever mechanics from now until the end of time, but it doesn’t make a difference if there isn’t an actual game around them. And that’s going to take two things:

  1. Planning and balancing – how should the player progress through levels? How much harder should each level be than the one before it? How fast should the player lose energy? How much should extra energy should you get each time you buy some? How much should it cost? How much should it be possible to earn in a level? How much should the “early retrieval” penalty be, to discourage the player from just mining until they run out of energy every time? There a lot of questions that need answering before I can start designing the flow of the game in earnest.
  2. Actual storytelling, which means less coding and more writing. There will need to be lots of document text giving hints of what’s going on, in various voices, referencing various subplots for each character. Not sure about the voice on the other end of the walkie talkie – should they be in it with you, or should they know more than they’re letting on? I’m also still in two minds about how the story should progress – should there be a steady progression of getting weirder and more tense, or should there be a moment where “everything changes”?

It’s funny – the first game I made after I started using GameMaker was Eelementary, which was basically all about the writing, since that was something I could do, whereas I was just learning how to get the code working. Apart from sorting out the graphics and sound, it was just a simple framework for displaying text and giving choices, with a whole bunch of text behind it – delivering the text was the game. For this game, I’m finding the writing the laborious bit, while the coding is more instantly satisfying.

I’ve put together a couple of tutorial levels to get things going, with an introductory document and a bit of instruction from the walkie talkie, so there’s literally the beginnings of a game there, and I’ve added the ability to create caves or hollow spaces that can contain things for the player to find, but before I do anything else, I need to get my story straight. No more fiddling with the engine – it’s time to down tools and get writing. No more adding mechanics for the fun of it!

OK, one more: I’ve added flares that you can throw when your torch battery runs out – at the moment you have an unlimited amount of them, but you can only have one on screen at a time. You can’t carry them around, but you can take them with you by mining under them as you go. Like with the other equipment, it’ll be possible to upgrade them so you can have more at once – in fact, I’m thinking they’ll be something you don’t have to begin with, so the first purchase will be to unlock them. Take a look:

Dev Diary, Part 8

Fucking bug fixing. The more complicated it gets, the more possibilities I have for messing something up. Sometimes it’s a simple oversight (like when I forgot to stop you from falling out the side of the screen when you get blown back by an explosion) and sometimes it’s just weird, complex interactions between things that throw up effects I’m not expecting. Those bloody falling stone blocks are the bane of my existence – most of the time they work fine, but sometimes they land in slightly the wrong place, which puts everything else off. Eventually I gave up trying to figure out what was going on and just added a bit of code that just says “once you land after dropping, you WILL end up aligned with the grid that the whole game is based on, and I don’t care where you thought you were supposed to be” – not elegant, but it works. As far as I know.

I’ve been working on ways to end a level – death is one thing, but you can also just finish the level, having either succeeded or failed in your goal. My idea at the moment is to give you another thing you can throw out: a beacon that alerts your employers that it’s time for you to come up. You have a few seconds to pick it up after throwing it if you decide you don’t want to leave yet (or if you hit the wrong button by mistake). The idea is that after meeting the level’s objective, you might want to explore a bit more to find more valuables, as long as you have energy – running out of energy means instant retrieval and a costly fine.

Other updates:

  • Energy and battery values can now be changed, so buying more energy/battery power can actually do something.
  • Running out of energy has an effect now – you flop on the ground with stars circling your head, an effect that I like and put more effort into than I should.
  • A bit more sound – the radio beeps and crackles, stone goes thud, and I spent a worrying amount of time coming up with the splat/crunch sound for when you get crushed by a block. I also updated the sprite so that the blood splat changes depending on which side of the boulder you were on. Because some things are important.

And! Tentacles. I think we all knew this was coming – if you’re confronting cosmic horrors in the depths of the earth, tentacles are going to get involved at some point. I don’t actually have a place for them in the game yet, but it never hurts to be prepared.