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.

Advertisement

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

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

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

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