Scenery, Effects & Excruciating Bugs (To Spring: Dev Blog #4)

Old Franjo posting 2 days in a row?! Is the sky about to fall in on our heads?? Are the compasses all about to give up on magnetic directions and point down instead? Nope. Just call me hot, crispy bacon drenched in brown sauce and no butter, because I’m on a roll. Eaten by someone else of course, cause I’m a pesky pescatarian these days. I miss bacon. I’ve already veered wildly off topic.

I just can’t stop tweaking this bloody game this weekend. Yesterday I did a lot of character sprite work and today I’ve done quite a lot of scenery sprite work and functionality. I added some parallax backgrounds in the forms of different sized rocks and mounds of snow, implemented cloud and plant spawners so that the clouds and plants could be randomly scattered across the map and 3 extremely time-consuming little touches, that I’m going to get good and steamed up about if that’s alright.

The Mother Fucking Sun/Moon cycle

“How hard can it be to put in a sun and moon that rise and set with the already established day/night cycle?” I thought stupidly. Cut to 3 hours later and I’ve rigged up a circular path for them to follow and I’m smashing my head against my desk trying to work out a way of finding the length of an arc of a circle when all you know is it’s radius. For the record, it’s fucking impossible, but that didn’t stop me from trying until my brain begged me to stop. The reason I needed to find the length of an arc is that I needed to time the sun and moon’s rising and falling with the day/night cycle and for that I needed to know how far they were travelling over the course of the day or night. If they’d been on a straight line, this would be a piece of piss, but as they weren’t, it almost ruined me. The worst part is that this was the 2nd most difficult problem that I’ve had today.

In the end, I decided to scrap the fancy-shmancy arc for a more basic system, where the sun rises to the top of the screen at sunrise, travels in a straight line across the top of the screen and then lowers back down at sunset. Vice versa for the moon. This still took the horrendous maths below that took me a little while longer. I’ve managed to fudge it so that the X coordinate of the sun and Moon will start at the right hand side of my camera (I did this in the camera object so that they’d stay on screen instead of disappearing when I walked away) and then shift across to the left by the percentage of the day that’s passed. I hated this. I’m alright at maths but percentages are my kryptonite.

The lovely Straightforward Particle Effects

To be honest, this part was still time consuming and was lovely and straightforward only because I nicked most of it. There’s a Gamemaker Studio 2 youtuber that I will never stop banging on about to anyone wanting to get into game design named Shaun Spalding and during a platformer tutorial I followed along with once, he brought out a versatile particle effect that he had actually nicked himself from someone else. It’s amazing once you start coding how much of your time goes into finding stuff to nick, really.

It’s a sprite containing progressively smaller sub-images that you can summon en-masse whenever you want a cloud of dust, or in my case, snow particles. I’ve tailored this in a couple of different ways; Firstly so that the fox now kicks out bits of snow behind her as she walks or runs and secondly so that snow flies up once she dives into it. It’s ridiculous how much nicer little touches like this can make your game look and I’m really happy with it.

The Footprints That Brought Me To My Fucking Knees

I hated this. I hated hated hated this. Ever since I started this game I thought that leaving footprints in the snow that disappear after a couple of seconds would be a beautiful little touch but one that’d be really overly complicated. As it turns out, it was actually really straightforward. Seriously, it was. Let me explain why it ruined my weekend. I apologise, but I’m about to get technical. I’ll try not to get too far into the weeds, but honestly this is just going to be a rant for my own benefit. Please feel free to skip to the next section.

The theory of putting these footprints in was simple: Go through my walking/running sprites and any time the fox lifts a foot off the ground, create a separate sprite with a footprint where her foot had just been. For me, in both my walking and running animations, the fox lifts her foot on frames 1, 2, 6 and 7. So I made a sprite containing 4 sub-images of the footprints for each foot and when my fox’s animation gets to frame 1, 2, 6 or 7, it’d add in a new object that puts in the corresponding footprint frame. Does that make sense? I’m horrible at explaining things like this I think, it’s why I try not to get too technical on things like this. But anyway, the object was set up so that it’s transparency would reduce over a couple of seconds, making the footprint disappear and it all worked perfectly… For about 5 seconds.

I could not for the life of me work out why but my fox would leave pristine footprints for about 5 seconds and then it wouldn’t work for another 10, at which point it would magically work once again. I had a cooldown set up so that the fox wasn’t churning out 60 footprints per second and I disabled that, but it still didn’t work. I had the command nested inside quite a lot of conditional statements (Amateur, I know), so I tried removing it from those and having it as it’s own separate block of code, but it still didn’t work. I checked all of my sprites, all of my logic, I rewrote a lot of code that I thought could be blocking it and the fucking thing kept stopping creating footprints after 5 seconds for no bloody reason!

I eventually found the problem. It was about 3 hours in and I was a broken man. In desperation, I added the values for my sprite_index, image_index and image_speed to my debug window in the game, genuinely thinking “If I don’t fix this in the next 10 minutes, the footprints are coming out.” I was done. I noticed from here that my image_index (This is the value that corresponds to the sub-image of your sprite. The first sub-image is image_index 0, the second is image_index 1, etc) had 2 decimal places. It wasn’t supposed to have 2 decimal places. Amateur that I am, I didn’t even know the sodding thing could have decimal places! I was using a switch statement to check if my image_index was precisely 1, 2, 6 or 7 so as the image_index went out of sync and into the decimals, it stopped passing the check. Then presumably it would sync back up and start making footprints for a bit again, then start failing again. I changed the switch statement to an if statement that checked if the image_index was between 1 and 2, 2 and 3 etc and my gruelling day was finally over.

There. All better.

Phew, sorry about that. That was the first really paralysingly frustrating bug that I’ve had during the creation of this game and I needed to vent. I’ve had plenty of them before, on Flight of the Bluebird especially. Usually with bugs you have some idea what the root cause is but when you have absolutely no clue it’s a draining, helpless feeling. But yeah, my fox now has fucking footprints and you’d better appreciate them. I think they look nice.

Final Thoughts For The Weekend

I’ve got conflicting feelings at the moment. I’m really really proud of what I’ve made so far. I think it looks nice, plays nice and is just a really pleasant experience. Not Animal Crossing levels of pleasant, but pleasant nonetheless. However, it strikes me as an “Experience” (Gag) more than a game at this point. All you can really do is run around jumping at targets to make the score go up. 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. Any ideas, send them my way. Thoughts and advice are always appreciated. I’ll leave you with an updated demo video. See if you can spot the new bug I’ve found. I’m done for the day though, I’ll get it another time.

Oh yeah, and don’t forget to scrub your sticky palms with soap and water, you dingus.

Cheers,

Dave

Advertisement

Sprites & Animations (To Spring: Dev Blog #3)

Evening! Hope you’re all doing well, washing your hands and successfully staving off the utter boredom of isolation. I’ve been on a bit of a roll today with my sprites and animation so thought I’d make a quick post about it.

As I’ve mentioned before, my pixel art skills are old shit on a stick, so it’s a part of game design that sort of looms over me. As satisfied as I get when a particularly tricky block of code finally comes together, there’s always a nagging little voice in the back of my head saying “You’ve got to do sprites and animation at some point, you know. It’s going to be difficult and gruelling and you’ll probably just do little bits here and there to spread out the pain.” But not today.

Up until this afternoon, I only had a few bits of player art:

A walk cycle…

Half of a run cycle and a neutral pose for when the player’s standing still…

Well in the last few hours I went hammer and tongs and finished my run cycle…

Different sitting/crouching poses for when you’re charging a jump…

Which admittedly is quite similar to the new idle animation…

A jumping sprite…

A diving sprite…

And a few underground sprites for when you land a jump and dive for food…

I’m feeling pretty bloody good! Could they be more complex? Definitely and maybe one day they will be, but for now they’re perfectly serviceable. This thing’s almost starting to look like a game.

That’s all I really wanted to show off today. I’ve played with the jump mechanics a bit more and added a sound to let you know when you reach one of the jumping power levels and I’ve also made a little indicator for the food spot that you can see without debug mode on, which is useful. That last one’s probably a temporary fix and I think I’ll eventually go for something a bit more subtle, but who knows. Here’s a little demo of everything in action:

Thoughts and advice are welcome, as always. Have a great weekend, evade the boredom, wash those little flesh mittens and stay safe.

Cheers,

Dave

To Spring (To Spring: Dev Blog #2)

Ello ello ello. How are you all enjoying the apocalypse? Bit of a pisser, isn’t it? Obviously Covid-19 is having a massive effect all over the world but I’m sure you’re as exhausted as I am of hearing about the shitty things it’s doing to people’s lives, so let’s not dwell on it.. Basically what I’m trying to say is that I, like most people at the moment, have free time to burn. Some of this free time I’ve been putting towards Fox Game, or as I’ll be calling it from now on, To Spring.

I’m so fucking pleased with myself for this title. Cocky almost. Get this, right: Winter is the time when food is the most scarce for the arctic fox, which is our game’s protagonist. And as this is a food collection, 2D scroller sort of deal, it only makes sense that our game takes place over the winter, where the challenge is in finding and sniffing out food from beneath the snow. Our end goal therefore is to make it all the way through To Spring. With me? But how do we get this food? We leap into the air and dive beneath the snow to find it. Our primary gameplay loop revolves around our ability… TO SPRING!!! Right??? … Well I was impressed with myself.

The Game So Far

Since my concept post I’ve worked on a lot of basics and I’ve had a lot of fun to be honest! I’ve got a blank, minimalist looking fox protagonist who can walk and… run… ish… Fox walk and run animations are hard, OK? It’s a work in progress. As is the design of the thing. The minimalist look sort of works but I want to try and give the protagonist a bit of identity if I can, so that’s on the to-do list. I’ve implemented a blank (For now) map, a camera that tracks the player, some snow that falls and flies past you faster the quicker you’re moving and I even put in a day/night cycle that changes the lighting the longer you play. It’s a cool little touch and looks nice if I say so myself, as is the debug mode I snuck in which allows me to see different values I need for testing purposes. Also I implemented an incredibly basic tutorial system which is just text that comes up on the screen to prompt you to move, jump and dive to find food etc.

Speaking of which, let’s dive into the subject that I’ve spent the most time on, has given me the most headaches and that I am still probably the unhappiest about: Diving for food.

AAAAAAAAAARRRRRRRRRRRRRRRGGGGGGGHHH

The title about sums it up. Diving for food is the bread and butter of my game but I just can’t get it the way I like it. This mechanic has been through several iterations.

Take 1: Basic Diving

I started out by making the player able to just jump like they would in a platforming game, using the Spacebar if you’re playing with a keyboard using WASD controls, which for now is the only way to play it, although I do plan to add gamepad compatibility. Then at the height of your jump, you could press and hold S to indicate that you want to dive down to try and get food, as oppose to just landing on the ground. Once you landed, the game would look for the food, compare where you are on the map to where the food is and if you were close enough, you’d get the food. Food could spawn anywhere under the snow and it’s depth was irrelevant. It was very uncomplicated and very unsatisfying. Annoyed, I tried again.

Take 2: Charged Diving

Ok, so how about this; instead of Spacebar just making you jump the predetermined distance upwards, you could press and hold Spacebar to charge up a jump (Ticking up to a maximum of 15 jumping power, keep this in mind) and then charge your dive on the way back down by holding S (Again, to a max power of 15). This way, if food was deeper under the snow, you had to jump higher and dive down deeper as your depth was now also taken into consideration when calculating whether you’d hit the food or not. Made sense! The problem was, it felt incredibly imprecise to control and quite clunky to boot. I needed this level of complexity, but in a more simple, streamlined and precise way. So I tried again.

Take 3: Sexy Grid-Based Diving

“Alright, then how about this??” I asked my empty room, my unkempt beard and bloodshot eyes giving away my dwindling conviction in my own decisions, “A GRID-BASED SYSTEM!”

I split up the area under the ground vertically into 3 layers of depth: A surface layer, medium layer and deep layer. I also split up the entire map horizontally into 32 pixel chunks, thus creating a grid. The food would now spawn into one of these grid cells as oppose to anywhere it liked, giving me greater control. For example, I could now make sure that the first food the player had to find didn’t spawn in a 30 minute drive away, which was very handy. I suppose I could’ve done that anyway but the grid made it much simpler.

The idea was that now, when you charged your jump and then your dive (Which remember both had a max charge of 15), any dive with a lower charge value than 5 didn’t make you dive at all and just had you land normally. Between 5 and 10 meant you dived into the surface layer, between 10 and 15 meant you dived into the medium layer and a maximum strength 15 dive power meant you dived into the deep layer, hence solving the problem with precision that my freeform approach had formerly had. Once you dive to the ground, your horizontal location is rounded up or down to the nearest grid marker, depending on which you’re closest to. As a result of all this, when you dive, as long as you charged up a fair amount, you would hit a corresponding grid cell and get any food that it contained. Although this solved a lot of my problems, it also added a lot. This wasn’t simple or streamlined at all. This had gone the complete opposite way and become convoluted.

Take 4: Sexy, Charged, Grid-Based Fuck It, Use The Cursor

So what did I do with this behemoth of code that I’d built up over days, maybe weeks of tinkering? I binned it. Well, most of it. This is something that I’d highly recommend doing if you find yourself in a similar spot. Obviously save it first in case you ever need to refer back to it, but then bin it. Start completely fresh if you need to.

I kept a couple of things: Firstly, I wanted food to still spawn in a grid as it just made sense. Secondly, I kept the jump-charging meter, only this time there would be no dive button. You’d charge up your jump the same as before and once you released Spacebar, you’d fly off in the opposite direction of your mouse cursor. This way, you were sort of catapulting your fox by moving the cursor in different directions, which feels pretty cool. Then your dive depth is calculated off of your jump power as oppose to your dive power. And uh… This is how the jump/dive mechanic still works at the minute. I think it’s alright. It’s definitely sleeker and more intuitive, but it needs refining. It’s currently fairly buggy and VERY imprecise but it’s the best it’s been so far!

That’s about it. I should probably quickly mention sound before I go though. The blue circles you see in the above video are the food’s sound radii. Once you step into one, you’ll hear the chirping of rascally little lemmings get louder and louder as you approach the food, and then quieter as you walk past it. I’ve also layered a LOT of wind sound effects from Freesound, which is always an incredibly helpful tool for projects like this, on top of each other until I got the effect I wanted. The wind gets louder the faster you’re moving while the game’s opening music gets quieter as it gets drowned out by the wind. Speaking of the music, it’s a song called Heartbreaking from Incompetech, which is an equally if not even more useful website where you can find thousands of pieces of Royalty Free Music in a massive variety of genres, all written by the incomprehensibly generous Kevin MacLeod. All are usable in any project as long as you give him a credit and I’d highly recommend having a look, although you’re a braver man than I if you listen to any of the 38 tracks labelled “Erotic”.

Next up I’ll probably be looking to finish the running animation, creating a dive animation, refining the jumping mechanic some more and other bits and bobs I come across. I’ll be back when I have more progress to report and when I get around to continuing F:AJS.

Cheers,

Dave

Fox Game (To Spring: Dev Blog #1)

Hello again! It’s been a while since I’ve done anything on this site as the amount of free time I’ve had has been really quite restricted lately. Nevertheless, I’ve had an idea and I want to document my progress in bringing it to life. I’ve already outlined the tools I use for game design in my previous post here, so I’m just going to launch straight into this with no faffing about. Here’s my idea:

Concept

You are an arctic fox. Most of you will have seen the clips on nature documentaries or Youtube or your social media of choice. I was watching some such clips the other day and I realised that the thing that really intrigues me about arctic foxes are the way that they find food: They stand there on top of who knows how many feet of snow and listen. They listen and listen and listen… And BAM! They leap up, dive down headfirst and submerge half of their body in the snow, reaching down to the source of the telltale sounds of scurryings and scratchings of delicious lemmings.

I’m imagining a 2D side-scrolling game where you are a fox wandering the arctic in search of food. 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. This circle will be quite large at first, meaning you may come up empty…mouthed, but it will decrease in size as you catch more and more food and hone your skills. You’ll need to search carefully however, as polar bears may wander along to ruin your day, in which case you’ll receive a visual and audible alert telling you that you’ll need to run.

The secondary loop, or your goal from minute to minute, is to find enough food to keep yourself and your pups alive. The game will end once you’ve found enough food to keep everyone well fed, whereupon you’ll find yourself back at your den feeding the pups. The feel-good story of the year.

It won’t be a long game, or a complicated game, but as I’ve said before, my goal is still to keep things simple. I’ve made a single game so far, an arcadey sort of chaotic football simulator named Player Power which took me 2 weeks to make and so far 6 sodding months to publish to Steam. But “Fox Game” (Hit me up with a better title because I just can’t think of one at the minute) will be a significant step up on that game already in terms of difficulty to program, once you factor in all of the moving pieces.

The Plan

So far I’ve done a hell of a lot of thinking. Thinking over the structure, the features I’d want etc and I feel like the above paragraphs completely sum the game up, which is a testament to just how much I’ve restricted myself. It’ll just be the fox protagonist, a bear that can appear, some food that will appear, some kids to give it to and a shit load of snow.

Programming-wise, I don’t think there’s anything there that I haven’t already done at some point. I’ve done platforming tutorials that involved the intricacies of moving sideways and jumping and got about half way through “Flight of the Bluebird” which involved several much more complicated enemy spawners that had to create enemies on the beat of whatever song happened to be playing. Ridiculous idea for a rookie to take on in hindsight. Spawning food at random locations under the snow shouldn’t be too much trouble either, although the dive mechanic will take a bit of working out I’m sure. What I’m trying to get around to is the fact that the programming should be fine given some free time and some elbow grease. The real challenge is going to be in the art. Ridiculous hypocrite that I am, I’m planning on ignoring my own advice to keep things simple and instead trying to make this game look as pretty as possible. It just seems like the right thing to do, focusing on designing an excellent protagonist who’s animated well, to liven up the bleak, plain landscape that is the frozen tundra. If I try and get away with a shit 16 x 16 pixel sprite that vaguely resembles a dog, this isn’t going to be a nice game to look at at all.

So yes, that’s the plan. I’ll create the project in GMS2 first and work out what kind of resolution I want to work with, then I’ll start trying to get my art skills up to scratch. I’ve sort of started already actually, as you can see below. That is a 256 x 256 sprite I’ve made that could someday become the titular fox. I’m not sure if I want to commit myself to drawings that detailed and might scale back down to 128 x 128 but I’ll work all that out later.

As always, thoughts and advice are welcome, because I am shit at this (But getting better 🙂 )

Cheers,

Franjo

My Experience With Game Development (So Far)

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