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.
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.
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.
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.
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.