My Experience With Game Development (So Far)

Featured

Introduction

A lot of you who know me from writing Franjo: A Journeyman Story might be wondering what the fuck I’ve been doing over the last few months while I’ve dropped off the face of the Earth. Well, the purpose of this post is to reflect on what I have actually been doing in my free time, which I hope might also be of help (Even if only as a cautionary tale) to anyone trying to get started as a solo indie game dev.

It’s always been an ambition of mine to get into game development. Not an ambition that I ever thought I’d realise, but an ambition nonetheless. I’ve tried half-heartedly to get into coding for years. I did codeacademy courses about 5 years ago, took an online java course etc, but I eventually gave up on all of it. I remember getting a bollocking when I was working for a tech support company because one of the supervisors caught me trying to build a Texas Hold’em game while some poor old dear on the other end of the phone tried to work out how to plug in her pissing monitor.

For the last couple of years though I started getting serious. I self-taught javascript that I used to create little bookmarklets and chrome applications, relearned some java to make little beginner games and then found myself on Game Maker Studio 2.

GMS2 is a ridiculously friendly and powerful piece of software. It’s the software that birthed a lot of great 2D games like Hotline Miami, Spelunky and Undertale and it uses a custom coding language called Game Maker Language (GML). So that was me sold, really. I fucking loved Undertale, I love-hated Spelunky for being so bloody difficult and… To be honest, Hotline Miami isn’t my sort of thing, but I appreciate it’s merit as a game. So last Summer, after whiling away weeks of my life following tutorials, I became sort of alright at GML. It’s similar to javascript in terms of syntax too, so that certainly made the adjustment easier. This is when I hit upon my first idea

Game Attempt #1 – World Cup Thing

Yeah… I never actually came up with a name for this one, so I wasn’t sure what to put in the title. The concept here was strong, but way too large in scope. I wanted to create a Football-Manager-esque (Of course) World Cup game, but with a dramatically different set of rules to the real thing. The player would choose their national side and set their tactics and lineup. Then you’d challenge whichever team you want to a match. Should you win, you would then get to absorb all of the other team’s players into your squad for use in future matches. I felt like this made for a good strategic dilemma – Do you play all the weaker teams en route to the final, but have a dramatically lower quality squad than your eventual opponents? Or do you go the hard way, knocking out France and Germany early on and taking their stars for yourself?

I actually got as far as creating a working match engine, complete with preview screen, random (but weighted) chances created and scoreboard. You could only play as England or France as there were no other teams, but it worked well.

(Video quality gets better from now)

But then came the mammoth task of implementing other squads and tactics and the whole “absorbing other teams” thing and after a period of procrastination which saw me draw the entire England team in a sort of weird pixel art, I of course gave up on it. Those who’ve been following me for some time probably know that I have an infuriating sort of scatter gun approach to creative expression and I tend to flit between writing stories, writing poems, drawing, making videos, writing music and even (briefly) recording podcasts, so my attention turned elsewhere once again.

But earlier this year, since my break from Franjo, I got back into coding on GMS2. I got back into watching as many tutorials as I could, watching dev blogs and streams and GMC videos and post-mortems. I got so into it that I decided I was finally going to make a game. A full one. A finished one. I had upgraded the hard drive in my laptop to an SSD since World Cup Thing and couldn’t be arsed to swap it back to save the files, so it had to be something new. Something fresh. That brings me to:

Game Attempt #2 – Flight of the Bluebird

I have no excuses. I was warned. All of the videos I’d been binging, every Top 5 Tips For Amateur Game Devs and Mistakes to Avoid In Your First Game all said the same thing: Keep. It. Fucking. Simple. You idiot. I’d already seen one project crumple under it’s own ambition. The thing is though, once you start getting a little bit of success, you start getting carried away. Once you make it so that your character moves and animates in the right way and interacts with their world correctly, suddenly you’re Billy Big Bollocks and the rush of endorphins caused by watching pixels colour themselves at your every whim turns you into an ultra-optimistic, overly-ambitious monster. You start to think you can and should do everything.

Flight of the Bluebird started life as an innocent little asteroids clone where the player would fly around shooting enemies and asteroids and building up a score with each kill. But then suddenly, there was a story and different characters and boss fights and cutscenes and special abilities and difficulty settings and everything happening on the beat of whatever song happened to be playing at the time. This is known as Feature Creep and I’ve come to understand that it is your mortal enemy as a solo indie developer.

Here’s how it woks: You start with an idea of what your game will be and you set about making it, but then as development goes on, you think “Oh this would be cool!” Or “Oh this is doable!” Or “Oh trying to figure out how to make this work won’t eat up my entire fucking weekend!” You naive fool. You add more and more and more features (The features creep in, if you will) until your original concept is buried beneath layer upon layer of half-baked, tacked-on shit and your bedroom carpet is waterlogged from weeks of your frustrated tears. You’ve allowed yourself to succumb to Feature Creep and we’re all ashamed of you.

Not really, of course. It happens. We’re all undisciplined morons by design and it takes practice and refinement to become anything else. But yes, that is what happened to Flight of the Bluebird. I worked on it for about 2 months and it was… Alright. Functional. But it wasn’t even nearly finished and the whole thing was a big old bag of unfinished ideas. Here’s a bit of example footage:

See? Nothing to write home about. The artwork is something that really stuck in my craw though. I knew it wasn’t good enough, but I had the nagging sense that I’d “redo it all at the end”. What does that even mean? How are you meant to build a cohesive game if you don’t know what the bloody thing looks like? No, the game died a death thanks to over-ambition and naivety. Again.

Game Attempt #3 – Beardemic (Working Title)

This one didn’t really get off the ground to be honest, but I felt it worth including for the sake of completeness. It seems to me that there are 4 types of game idea:

1) A completely original concept, eg Return of the Obra Dinn

2) A game with a mechanical USP, eg Portal

3) A fantastic story to tell, eg A Night In The Woods

4) “Like [GameName] but…”, eg Terraria (Like Minecraft but a 2D side-scroller)

Well, Beardemic (Pronounced Beard-emic, not Bear-demic) was firmly in category 4: Like Plague Inc but with Beards. For those not familiar, Plague Inc is a game where you are a virus or bacteria or a pathogen of some kind and you need to destroy humanity. You do this by evolving (buying upgrades) to become more infectious and more dangerous, slowly infecting the whole world and then wiping us sorry sods off it’s face.

Well I envisioned Beardemic in a similar way, but confined to a town in nowheresville USA as oppose to the whole World. You play as a Scientist working for “Big Shaving Supplies” and you unlock and buy different ingredients (upgrades) to add into the town’s water supply. These ingredients make the townsfolks’ beards thicker, wilder, curlier etc, meaning they buy more supplies from your company, meaning you get more money to unlock upgrades. You could have fun with it too: Maybe ingredients to make the beards thicker could include “Two bricks” or “Two short planks”… Right? Anyway, the game window would show a local news broadcast, featuring stick figure people. It seems this was a surprisingly important decision as it was me realising that I had to work within my artistic limits, a lesson I learned from my frustration trying to create the assets for FOTB.

I created a little Beardemic prototype, but thought that for all my grand ideas, it’d be a bit boring. In the end I decided there probably just wasn’t much of a game to be had here. Feel free to steal this (Concept below) but for the love of God, change the title.

Game Attempt #4 – Player Power

To be honest, by this point I felt a bit deflated. I’d seen all my ideas and my efforts go up in smoke with nothing to show for them except a considerably more bloated hard drive(s) and some scribbles in a notepad. I needed a palette-cleanser. Something to get me excited about developing again. So I came back to football. I made a little game where you, a nondescript blue circle, could run around a football pitch scoring goals.

I liked it. It was quite cathartic just to run about, scoring in either goal with no rules or offside or VAR to spoil the party. Just you, a football and as many goals as you can imagine. I decided to whip up a random appearance generator that would select a skin-tone and a kit for our player to wear, as well as the most basic walk animation around. I also added a jolly tune into the mix to go with my new aesthetic

After the player appearance was done, I set up some NPCs, namely Agents, Managers and Referees that would get in the player’s way and had to be dribbled around. I had them spawn with increasing frequency the more goals you scored and they too used the random appearance generator to give the game a bit of colour and variety. At first, with all these people colliding with the ball, things could get… Interesting.

After the NPCs were in place, I gave each type a buff or a debuff that they’d pass on to the player if they collided. Referees for example would reduce the player’s power and speed, while agents would buff your power and reduce your speed and managers would do the opposite. This made it clear that I needed another NPC, who’d buff the player completely: Physios entered the fray. I also added a 1 minute time limit to games, which the physio would extend if you bumped into him, which really brought the whole thing together as an arcade game. And that was pretty much it. I added in some unlockable costumes and tidied everything up a bit, then almost 2 weeks after I’d started, I released my first game onto Apple’s App Store (Mac OS only. I’m working on releasing it on Steam for PC and Mac).

If all of that sounded like feature creep, it’s because that’s exactly what it was. But rather than the chaotic mess style of feature creep that I’d experienced with FOTB, this one was more controlled. It felt like the difference between carefully building the layers into a lasagne and hurling the ingredients onto a trampoline and hoping that they’d bounce into the dish.

I’m under no illusions of course. It’s no Breath of the Wild, but then it wasn’t meant to be. It was never meant to be anything. The important thing for me is that in my sea of unfinished projects, this one is functional, fun (If I say so myself) and fucking finished. Hopefully it’s the first of many.

If you own a mac, you can find Player Power here for 99p, otherwise keep an eye on my Twitter @WT_Franjo as I’ll be tweeting there when it comes out on Steam.

Summary

In summary then, I think the most important lessons I’ve learned from my year (On and off) in solo game development would be these:

  • Buy a notepad for ideas, concept art, scribbles. Seriously, if you get a bit of downtime at work it’s great to be able to jot your ideas down.
  • Watch tutorials. Watch tutorials until your eyes bleed. If you’re starting on GMS2 like me, I can’t recommend Shaun Spalding highly enough. Watch everything he’s posted and you can’t go wrong. If you’re looking at Unity, Brackeys is excellent. I’ve no idea how to use Unity and I still watch his stuff.
  • Start small for fucks sake. Don’t let yourself get carried away with massive ideas and don’t let your game be a victim of feature creep. (A bit hypocritical of me I’ll admit, but shut up, it’s good advice)
  • Experiment with different genres and styles. Don’t start off by making 3 fantasy turn-based RPGs, try out different things. You’ll learn so much.
  • Work within your limitations. This ties into starting small, but in general just find your limitations and work around them. If you’re not an artist, go for a more blocky or basic style of art and work the game around that. If you’re not a musician, go to Hooksounds (Where I licensed the Player Power song) or find other royalty-free music. Same goes for sound effects: Freesound and Zapsplat are your friends. For all music and sound, also check whether you’re allowed to use it, especially if you’re selling your game.

Shit, I think that about covers it. I hope that this has been… Helpful? Informative? To be honest this has been more for my benefit than yours. I find it helps me to write this shit out. I’ll hopefully do another one of these later on when I’m a fully fledged multi-billionaire indie dev and I’ll laugh huge, rich tears at how naive I currently am. I’m still very limited but if you have any questions, comment or email me franjofm23@gmail.com

Also, I will still be coming back to finish Franjo: A Journeyman Story. Every comment I get saying it’s died makes me break down and weep on the floor.

Cheers as always,

Dave/Franjo

Advertisement

Future Game Concept: Snipet

While I’m emptying my brain, here’s another concept that I actually created a little prototype for a few weeks back. The working title is Snipet as it’s a game in which you control a variety of household pets as they work to clear a sniper’s line of sight to their target. Sniper-Pet. Snipet. Not over the moon with it, but it’ll do for now.

I picture it starting out with you just controlling a cat, as that’s what gave me the idea in the first place. Cats love to knock shit over. There’s a vase on the mantelpiece blocking the sniper’s line of sight, so you jump up and knock it over. BLAM. The sniper shoots his target, hooray for you. Maybe in the next level though, the target has a dog, so you have to complete whatever puzzle awaits (Knocking shit over) and then after you beat the level, you recruit the dog to your team of sniper-helping animals. The dog can do some things that the cat can’t, probably knocking over much heavier things like tall lamps or TV’s or something. Then you recruit a mouse, who can crawl into a vent and unscrew a chandelier to knock it down, then you recruit an iguana, who for some reason I imagine using his prehensile tongue as sort of a grappling hook to get to other areas of the room and perform some sort of task.

It’s obviously an idea that needs some polish, but that’s the basic gist. It’s a puzzle game where you need to use your growing team of animals to perform specific tasks to solve increasingly difficult puzzles. Let me know what you think.

Future Game Concept: Drive Up

A game idea’s just popped into my head and I want to get all my thoughts down in writing while they’re fresh. The working title is “Drive Up” and that handily doubles as the instruction manual. It’d be a 2D multiplayer game where the screen is constantly shifting upwards and the players control cars who can drive up walls and on platforms that drop through the level. You can also jump, boost and perform special abilities that can be retrieved from floating bubbles. Your primary objective is to outlive your opponents, either by just continuing to stay in frame while they fuck up and drop below the bottom of the screen or by actually making them drop down by way of your special abilities. Maybe you’d be able to pick up something that blasts other cars away from you and can use this to bump them down or off of a wall. Things like that.

This concept is inspired by Rocket League, which I’ve been playing quite a lot recently, but also by Stick Fight: The Game, which is I think one of the most fun multiplayer games I’ve ever played. Maybe it can be a bit whacky like Stick Fight but I’d want to focus on making the controls really tight so that there’s a high skill ceiling, like Rocket League.

It’s also a game that I think would be very easy to add onto. Things like different obstacles and different abilities, differently shaped falling platforms but not different car stats, as I like the Rocket League model of cars being functionally exactly the same and skill being the deciding factor.

I think it’d be a fun game to work on and quite challenging, as I’ve never even attempted a multiplayer game before. Let me know if you have any thoughts.

Brainwave! (To Spring: Dev Blog #10)

Afternoon all!

Hope you’re all keeping well and safe and not having to ride fucking buses or tubes to work if you’re still in lockdown. I hope those of you who are no longer in lockdown… Erm… Just don’t rub it in.

So my plate’s been too full for To Spring lately. I know, I’m so changeable. I’ve actually been preparing Franjo: Slumberland for the last few weeks which has eaten up a fair amount of time, then I had a breakup which left me feeling quite unproductive for a while and then Player Power released, so I’ve been trying to keep on top of fixing bugs and adding little things based on feedback. It’s insane how even in a time when we’re indoors 24/7 I don’t have time to do all the indoor shit I want to do, but oh well.

Player Power’s release has got me thinking about To Spring though. PP’s a small game but I’m comfortable in the knowledge that it’s a complete game. I might add different game modes further down the line, but for now it’s a perfectly functional little arcade game. It’s been niggling me that I haven’t been able to say the same about my vision for To Spring. Currently, technically, you could complete a run in about 2 minutes by just running from left to right, hiding from the bear for 30 seconds and then running some more. Uploading a game to Steam costs £100 and as much work as I’ve put into To Spring, I just can’t talk myself into it being worth that to me in it’s current state. Luckily, this morning I had a brainwave and I want to run it past you.

I’ve Made A Third Of A Game

To Spring, in it’s current format, follows a fox running across the tundra and diving under the snow to find lemmings while evading bears. What if the game starts out with the player as the lemming! You come out from your little hidey hole to eat the frozen plants that already litter the tundra while avoiding bears and foxes. It’s the same deal though, you can find as much or as little food as you like and this will determine how many of you and your young will make it to Spring. Then you play as the fox, hunting the lemmings that you’ve hopefully grown relatively attached to and then you play as the bear, hunting both but having both try to evade you. This way there are 3 acts, you make your way up the food chain and the final “Spring Room” that I’ve still not got around to designing can just pan across and allow you to see which creatures (if any) survived, along with their young. This feels like a more complete game to me and is one that would be easily worth releasing on Steam.

So, What Still Needs To Be Done?

Right. So we’ve still got to build the Spring Room for the ending, but now we’ve got to add the following things:

  • Lemming sprites and animations
  • Lemming holes
  • Lemming mechanics, including walk, run and dive under the snow to evade predators.
  • Make foxes able to roam, similarly to how bears do at the minute.
  • Make bears controllable.
  • Bear cave.

On the face of it this looks like a hell of a lot of extra work, but I don’t really think it will be. The first 2 points I will have to make from scratch, obviously, but the last 4 I think will be just copying and pasting from objects already present in the game. The lemming and bear controlability (WordPress says that that’s not a word, but WordPress can shh) can be copy/pasted from the existing player object or even worked into the existing player object, which is probably the smarter, but more fiddly way to go as I’ll have to cordon different sections off into the different animals.

I’m still splitting my attention at the minute but I’ll have a go at implementing some of this and let you know how I get on.

Stay safe, wash your hands and Merry Christmas, you filthy animal.

Cheers,

Dave

My First Game Is On Steam!!

All gone a bit quiet on this front, hasn’t it. I’ve taken some time out the last 3 weeks ago to prepare for a new FM project which will be revealed tomorrow, but for now, Player Power’s finally live on Steam!!!

It’s been a long time coming, but I can finally tick “Release a game on Steam” off my list of life goals. Phew. Head over to https://store.steampowered.com/app/1142730/Player_Power/ if you want to have a gander.

Cheers!

Dave

Player Power is finally going on Steam!!

Ello ello! Hope you’re all alright and staying as germ-free as possible. You’ve caught me in a good mood today as not only is To Spring approaching completion, but I’ve finally got around to getting Player Power to the “In Review” stage on Steam.

It turns out that publishing your first game is just as difficult if not more difficult than creating the bloody thing. I made this simple 2D football arcade game in 2 weeks using a Macbook Pro and pretty much all of my evenings and weekends back in August. Yes that’s right, I stayed in and avoided human contact before society collapsed and it became cool. My plan was to release it on the Apple Store (OSX only, not iOS), which I did after jumping through a million different hoops which involved getting an apple developer account, downloading and wrestling with Xcode and filling in a metric tonne of forms. Then I would build the game for steam on Mac and use a friend’s PC to build it for steam on Windows. As it turns out, there’s not a lot of documentation whatsoever to help release a game on steam for OSX so after 3 actual months of banging my head against that brick wall, I gave up.

The steam page was pretty much complete from when I’d filled in all the details in August. All I needed was a working build and a trailer. Then my macbook died and I resurrected my old desktop computer in the new year, but it’s taken me 4 months to build up the strength to try and tackle this again. On Friday evening though I downloaded the extremely unintuitive video editing software named Lightworks and brute forced my way to a trailer, which you can find below, and then by lunch time the next day, the build was ready too. Turns out it’s a lot easier on Windows to upload things to Steam, although I did have to pull a little bit of my hair out and ask my mate Chris to share my screen and help me.

All this is to say that it took me a while, but we’re finally at a point where Player Power is up for review on Steam. Hopefully it’ll be released fairly soon, although there is a notice on Steamworks saying the review process is taking longer than usual, what with the apocalypse and everything. Here’s hoping To Spring doesn’t take me until bloody Christmas to release.

I’ll post again when Player Power is available to download! Until then, cover your mouth your sneeze, wash your hands and keep the drawbridge to your house raised when not in use.

Cheers,

Dave

Scary Beary & Little Touches (To Spring: Dev Blog #9)

Afternoon! Hope you’ve enjoyed your weekend and I hope even more that you’re maintaining your primary and secondary portcullises. Portculli? Who cares. I’ve just finished watching season 2 of Afterlife on Netflix. I cannot think of a single Ricky Gervais television series that doesn’t know how to punch me directly in the heart. Anyway, the game. I’ve been putting in a few little touches and tweaks the last few days, most of which won’t really be noticeable but there are a couple of things to note:

My Bear Scared The Shit Out Of Me

I got some feedback from my mate Chris that the bear could do with being able to run after the player instead of just plodding along behind you at a safe distance. To be honest, I think I always knew this deep down but I just couldn’t bring myself to make another bloody run cycle. I powered through however and the bear will now run after the player at a speed of 13 pixels per frame. The player’s run speed is 12 pixels per frame, so the bear not only chases you, but now it’s faster than you. Get hiding.

A couple of other little touches I added is that now if the bear has been alerted to you but has then lost track of you because you’ve hidden, it will come over to the last place it saw you and stand there for a moment before moving on. Also as you may have noticed, it now spawns to your right as oppose to your left. I’m not sure how I didn’t think of this earlier, but spawning the bear between you and your destination seems like a pretty obvious thing to do.

I’ve not forgotten what I called this section by the way. My bear did scare the shit out of me, but I need to tell you about another touch first…

“x Lemmings Caught” alert

This one of the more game-y touches I probably should’ve added earlier, but I’ve added a little line of text that comes up and drifts to the bottom of the screen when you catch a lemming, letting you keep track of how many you’ve caught so far. It also plays a tone to compliment the tones for charging your jump, although as this one represents the payoff of your dive, I made it a bit more special by giving it some echo and mixing in a bite sound.

But Anyway, My Bear Scared The Shit Out Of Me

So yeah, there I was testing out my new text line and tone. I went across the map catching all the food I could and seeing if I liked the way the tone sounded and how fast the text drifted down etc. All the while I’d completely forgotten about the changes I’d made to the bear. So I’m running across to the next foodspot and all of a sudden this massive fucking beast appears to the right of my screen, roaring at me as it’s feet thunder across the snow, the dissonant music wailing in my ears. I jumped out of my fucking skin, tried to run away, got hit twice in quick succession and died, after which I grinned to myself. “I’ve done alright with that bear.” I thought. It was a nice feeling.

Please enjoy the above demo. I’ve also made a new tileset for the cave, in which all I’ve really done is replace the snow with more dirt so didn’t think it worth getting into detail about. We’re really getting close to a finished game here! I’ve done everything I wanted to do in the Winter Level, now I just need to make that Spring level I mentioned last time.

Until then, keep your hands and germs to yourself and take care.

Cheers,

Dave

Welcome Home (To Spring: Dev Blog #8)

Evening all! I hope the moats that you’ve all surely built around your front doors by now are keeping the infected at bay. And if you haven’t already, erect a portcullis. Belt and braces, eh?

It’s been a funny sort of few days for me and my devving. Every day I’ve thought “Well I’ve only done this little thing today, there’s no point blogging about that.” But before you know it, here we are and I’ve got quite a backlog of shit to show you. To business then, gentlemen.

A Second (And First) Tileset

Not that I’ve come to write about my second tileset, I’m not even sure I ever mentioned my first. I made it at some point last week to replace the huge block of brown featureless dirt at the bottom of the screen and it looks a little something like this:

For those unfamiliar, a tileset is a group of sprites that you want to use for different sections of terrain: Flat bits and corners and ceilings and what have you. You can then use what’s called an autotiler in GMS2 to paint the entire area of terrain and the autotiler will put the correct part of the sprite in each tile. It’s probably easier if I just show you:

See how it’s using the different sections of my tileset depending on what the shape of the terrain is? I like it. So yes, that’s the first tileset, used for the ground, and here’s the second, used for the snow:

You may notice that I cheated slightly and used the exact same tileset, just painted grey with blue and white flecks, but as far as I’m aware there is no “Tileset Police”, so I imagine I’ll get off scot free with that one. Besides, Nintendo used a palette swap of their clouds as their bushes in the old Mario games and they’re Nintendo. They make some bizarre decisions at times, including the ongoing cloud storage saga, but they do make fucking good Mario games.

Jump Cursor

This has been a niggly little problem for me for a while and was satisfyingly quick and easy to solve. Although I’m quite happy now with how I’ve refined the jumping and diving process, I don’t think it was inherently intuitive as it was. So I added a jump cursor, which makes it obvious that your jump direction is based on your mouse cursor’s position and also makes it a bit clearer which way you’re going. As you can only jump upwards, having the cursor above the player has never had any impact on your jumping direction, but now I’ve added the option to cancel your jump by having your cursor up there.

Home

This is a big old section and this is where the bulk of my time has gone since the last post. I won’t go into agonising detail, but I’ve added a sort of cave at the end of the map which is the player’s home. This has included:

  • New text lines telling the player that they’re nearly home
  • New ending text lines, which scold or praise the player accordingly depending on how much food they’ve brought back tooooo….
  • THE PUPS! Small replicas of the player sprite that are colour blended with different shades of brown. They walk around randomly until the player lies down to sleep (end the level), at which point they gather round the player and also lie down to sleep.
  • Sloped walls and tiles + diagonal movement. This was quite the pain in my arse.
  • Fading terrain. The front wall of the cave fades as the player enters so you can still see yourself.

Do you have any idea what all of this means?!? It means the game has an ending! At long last, you can actually do well or do badly in it! We’re in the home fucking straight, people!

I’m not quite finished of course. There’s still some tweaks to be made here and there and after the player falls to sleep I want you to spawn in a second room where the snow has melted and it’s springtime, where you can run and frolic with your pups (As long as you fed them). This feels necessary due to the game’s title and I think could be quite a nice little ending. Maybe I’ll stick the credits up at the top of the screen while you run about. This does mean though that I’ve got a lot more art to do. 3 more tilesets at least – One for the cave, one for the ground in springtime and one for the grass in springtime. Plus new sprites and animations for the plants and rocks, maybe I’ll make some blossom that can drift through the air replacing the snow and some birdsong to replace the howling wind. There’s still lots to do.

But yeah, I don’t think it quite hit me until I wrote this all out just how close I am to finishing this. I’m quite excited. Demo below:

And that’s me til next time. Take care of you and yours, may your supermarket queues be ever short and your hands ever squeaky clean.

Cheers,

Dave

Goodnight, Sweet Fox (To Spring: Dev Blog #7)

Evening ladies and gents! I sincerely hope that no strangers from a rival household have touched your face since last we spoke. I’ve got a lot to catch you up on so hold tight, I’m delving straight into the deets.

Zoom, Glorious Zoom

I made the mother of all breakthroughs! Get the fuck in there! I was showing my mate Tom the newest video (Over Whatsapp, not in person. I’m not a fucking psychopath) which included the bear. His feedback was that the bear wasn’t big or imposing enough. It didn’t feel like enough of a threat. I didn’t really want to make the bear any bigger, but this did give me a fantastic idea: What if instead of making the bear bigger, the camera zoomed further in the slower you’re moving and zoomed further out the faster you go?? It’s a brilliant solution to the vision headache I’ve given myself over the last week or so, even if I say so myself. For example, if you’re running along searching for food, the view opens up and you can see more of the map, but if you’re cowering under a pile of snow as a bear passes by, the camera zooms right in, making you feel insignificant and helpless as it’s huge, beefy legs crash down in front of you. Tom then capped off his fantastic performance in our conversation by saying “Maybe too cheesy, but could the frame or the ground rumble slightly as it walks?” Yes it fucking could, Tom.

The astutest of you will notice I gave the rumble the same treatment as I’ve given the bear sounds, in that it gets “louder” (or more intense) as the bear gets closer and fades away as it walks off. So the above video is the condition I left the game in last night and I felt chuffed to bits. In about an hour and a half of extra coding I felt like I’d created much more of an atmosphere of horror in these moments where you’re hiding from predators. The thing is, the bear didn’t actually do anything if it saw you. Until today.

BEAR ATTACK!!!

I spent this afternoon writing a looooot of logic into my bear. If you get within it’s inner radius, it stops. If you get to the other side of it and it sees you, it turns around and follows you. Eventually though I took a long breath and dived back into sprite work. It didn’t take long actually, as I only ended up creating a neutral pose for the bear and moving one of his front legs up as the attack. It’s not the best animation I’ve made and I may come back to it later when I’m looking to add finishing touches, but it’ll do for now. I sorted the bear’s footprints too, as they look quite janky in the above video but now look basically fine. I’ve also added new sound effects for the bear. You may have noticed the booming footsteps before, but there’s also now a roar, a swooshing sound made when he swings his arm and a… Sort of splatter sound when he hits the player. This brings us to our next point…

Death Comes To Us All. Even Foxes :/

Now THIS sprite work took me a while longer and every moment was heartbreaking. If the bear can attack, the fox has to be able to die. Every game needs a lose condition. I made an animation that starts with the neutral player pose and sort of falls awkwardly to the floor. As it stands I think a 2 strike rule is fair enough. The player can withstand a single hit from the bear, but after the second, it’s game over.

I Feel Awful (But Fairly Smug)

Hey let’s dwell on this whole death subject for a bit longer because when the bear hits the fox, blood now spurts out too! It’s not too gory, just a few flecks that fly off in the direction you’ve been hit. I was actually quite pleased with myself for the way I implemented this. You may remember a few dev blogs back I mentioned that dust effect that I nicked from Shaun Spalding. Well the dust now takes a colour into consideration: Grey if I want snow to fly up, red if I want blood. Quite a tidy use of code if I say so myself.

Final Touches Of Note

Last couple of things before I break out the demo video tying all of this together: Firstly, I’ve added a lot of fade outs and fade ins. After deaths, before the title screen etc. And secondly, I’ve just implemented a logo screen that comes up before the game starts. The logo is a reused sprite from Player Power and is essentially an in-joke with myself until the game launches on Steam, along with my initials underneath. I call it “Sad Chicken” and it too fades in and out.

So yep, that’s been my extremely sedentary weekend. Hope you’re all keeping well and have a great week.

Soap those digits up real nice, fool.

Cheers,

Dave

May Contain Bears (To Spring: Dev Blog #6)

Hello you wonderfully resilient bastards. Hope you’re not going too stir crazy and that you’ve not yet resorted to cannibalism or worse still charades. To Spring’s undergone a bit of surgery since I last posted, including major changes to 2 of the things I mentioned in the last blog:

Goodbye Pre-Created Snowpiles

I never did solve that bug that made only 1 of the 10 snowpiles on the map work properly as a hiding place. I don’t know the problem and I no longer care, because now we hold a middle finger up to society and create snowpiles wherever we choose, like James Dean would do if he were a 2D arctic fox. Holding the Down or S key will now build up snow around the fox and hide her until she stands up or steps out of cover. You can also lie down behind snowpiles that you’ve already created to hide! I much prefer this way of hiding as it doesn’t rely on being close to a randomly generated hiding spot and offers a more organic solution. It also looks a bit better IMO.

Goodbye Spotlight

Goodness I’ve been quoting myself more than is probably healthy recently, haven’t I. Enable your manliest voice for this one:

So what did I do with this behemoth of code that I’d built up over days, maybe weeks of tinkering? I binned it.

“Fuck off, Spotlight.” I thought as my cursor hovered over the “Delete” option. I never liked it but for a short while I wanted to persist in making it work as it’d been such a pain in the arse to program and was the first time I’d ever messed with different surfaces in GMS2. My right index finger came hammering down on the left mouse button like an executioner’s axe, obliterating the shit feature from my game. It felt good. I’ve not yet decided how I’m going to achieve making the visuals more obscured while moving slowly or standing still, but it’s not like that.

Hello Menu & New Fonts

I’ve implemented a very very simple starting menu. As before, the protagonist starts lying on the floor to the left of the screen (Now covered in snow) and the menu appears in the middle, with a title and the option of New Game or Exit. I don’t think I’m going to have a save function as the game will be very short unless I decide to drastically lengthen it. The title and menu options are written in a brand new font:

And the tutorial messages now use the font:

Both of these are from http://www.1001fonts.com and are free for commercial use, unlike the previous tutorial font I had installed.

Oh yeah, also I made a bear

Now that the important stuff like menu font is out of the way, there’s just time to mention that I made a fucking bear. Finally. All he can do at the minute is spawn after the player has collected a certain amount of food and then walk slowly to the right of the map. I have also implemented the logic that means it is aware of the player when you are close by and not hidden, but as it stands this does nothing to change its behaviour. Also the walk animation is janky, but as I’ve mentioned before, I find walk and run animations reeeeally difficult so that’s a work in progress.

I think that’s all the new info I have for you today, so please enjoy this short demo and have an excellent weekend. Ciao bella, ciao bella, ciao ciao ciao.

Wash your hands you animal.

Cheers,

Dave

Vision Experimentation & Preparing For Bears (To Spring: Dev Blog #5)

Afternoon all,

I cannot believe it’s been ten days since I last posted about this. I suppose to a large extent all of the days in isolation blend into one, but still, ten days?!? It seems like only this weekend I was hammering away at sprite work and crying big fat tears over the footprint bug. Oh well. I hope you’re all washing your hands and keeping strangers out of your house at all costs by threatening them with the pointy stick you keep by your front door, as I am.

In something of a break from an extremely new tradition, I want to show you the current gameplay footage at the top of the blog today.

Hide And Weep

So, last blog I said “I need to liven up the gameplay and I think that should be the next thing I tackle. I originally thought of Polar Bears as a roaming threat that you’d need to run from, but I’m not sure that’s the way to go.” Kindly read that in a sexy voice to emulate my own. I’ve since decided, more through a lack of alternatives than anything else, that bears are indeed the way to go, but I haven’t implemented them yet. I decided instead to get everything in place so that we could deal with bears when they arrive, aka hiding. You’ll notice in the video that there are now snow piles in front of the fox that she can hide behind should a bear turn up, but this has thrown out another bug that I currently have absolutely no idea how to fix. Let me explain:

Here is pretty much the only block of code in the “obj_snowpile” object, aside from some debug stuff. It should be incredibly simple. All it’s doing is saying “If the player is in the vicinity of this snow pile and is lying down, then they are hidden. If not, they aren’t hidden.”

And here is literally the only block of code inside the “obj_snowpile_spawner” object, which randomly spawns these snow piles throughout the map at the start of the game:

Again, this should be a piece of piss. Anyone who’s done any sort of javascript, GML or java tutorial will be able to tell you how a for loop works. Essentially this is saying “Make 10 snowpiles at random x coordinates throughout the map”. Yet somehow between these 2 tiny bits of code, we have a problem. Somehow only 1 of my snow piles actually hides the player while the other 9 do not. If anyone has a solution to this, I’m all ears as I’ve tried a lot to get this to work and I’m shit out of luck so far. I’m considering doing away with these pre-created snow piles altogether and instead having the snowpiles form around the fox whenever she lies down.

Stars 🙂

I put stars in the sky. They fade in when it gets close to nighttime and fade back out as the sun’s rising. Looks pretty nice.

The Spotlight

This is the biggie really. Cast your mind back to my concept blog and sexy that voice back up for this one:

“The primary loop of the game, or your goal from second to second, is to listen for, locate and dive for food while evading predators. You’ll accomplish this with the help of your extraordinary sense of hearing – In gameplay terms, the slower you’re moving, the more obscured the visuals of the game will become but the more you’ll be able to block out the background noise of the tundra and hone in on the sounds of your prey, which will be highlighted visually under the snow, perhaps with the help of a highlighted circle that lets you know generally where the sound is coming from.

So this has been on my mind for a while. Currently the visuals of the game didn’t suffer like I’d originally envisioned and I wanted to correct that. The whole point of this game is meant to be hearing food under the ground and diving for it based on a vague idea of where it might be. So hit by a flash of inspiration at about 1am over the Easter weekend, I watched tutorials on creating a spotlight by creating an extra, darker surface that overlays the game and can be punctuated by various sizes of circles of light. I grafted and tweaked and eventually, Hey Presto! I fucked the aesthetic of my entire game.

I don’t think the spotlight will survive my recycle bin much longer but thought I’d include this for completeness’ sake. I want this to be a “warts and all” sort of blog after all so that I and any poor sods who try to follow in my footsteps can at least learn something from all of this. I do still want to make the visuals suffer more so that emphasis is placed on hearing food, but I’ll have to keep thinking about how to make that happen.

In Other News

For myriad reasons I’ve had to dump a laptop, switch to my old desktop, recover and then upgrade that desktop in recent months so in all the excitement I’ve only just had chance to redownload Github and my source code for Flight of the Bluebird and Player Power. It was genuinely an extremely nice feeling playing them both again for the first time in probably 6 months so I thought I’d just mention that. FOTB is still such a mess of ideas that I doubt I’ll ever go back to working on it, which is a shame as with fresh eyes, I reckon I did some fucking impressive things with that game. But after To Spring is completed I can focus on finishing uploading both it and Player Power to Steam. I’ll keep you updated on that once it starts rolling.

I’ve recorded a 17 minute video of me playing and commenting on the carcass of Flight of the Bluebird, sort of giving my thoughts on it and dissecting it a bit. I’m more of a writer than a talker, but if you’re interested, give it a watch.

Next time, bears. I promise.

Scrub those sausage fingers with a wire brush.

Cheers,

Dave