Monday, October 7, 2013

An Indie Speed Run 2013 Post-Mortem: Shep Hard



YO, BSCOTCHES! We recently PARTOOK in the Indie Speed Run (2013), and we were pretty pumped with how our game, SHEP HARD,  turned out. So we thought we'd take a step back and talk a bit about how we made the game, and some of the advantages/pitfalls of what we did, for those who are interesting in jamming (or game development in general).

1. The Tools
As per usual, we used Game Maker: Studio as our engine of choice, and Inkscape as our graphics tool of choice. For sound effects we used BFXR, which is great for creating 8-bit style sound effects (which in our opinion work just as well as realistic sound effects).  For fonts, we used dafont.com to find a good, free-to-use font that fit our needs. Last, we used the Free Music Archive to find suitable music for our game. The music there is licensed under the Creative Commons License, which means you can use it in stuff so long as you give credit to the artist (which we did).

2. The Process
When it comes to making games, even in our actual commercial launch titles, we basically just make crap up as we go along. Luckily for us, that approach works pretty dang well in a game jam context also. But we don't just fly by the seat of our pants -- there's some semblance of method in the madness. We use the exact same approach in a game jam as we use in our commercial games -- it's just that in our commercial games, we stretch the process out over 48 days instead of 48 hours, which allows them to be much bigger. BUT ANYWAYS, here's our approach!

Step 0: Figure out how to use the theme
Having a solid foundation for the game can basically make or break it, as we discovered during our 5-day Bscotchjam. In a jam, that foundation comes largely from your theme. We weren't happy with our first theme/element combination (Defender/Keyboard), so we rolled the danger dice and got Baldness/Shepard (yeah, spelled incorrectly). This turned out to be a much more concrete theme, because we immediately settled upon the idea of building a game around sheep shearing. There are a lot of directions you could go with that, but we wanted to focus on the act of frantically trying to shear your sheep to earn money, while also preventing the sheep from getting devoured by predators.

Shearing is caring.
Step 1: Invent the core mechanic
When making a game jam game, we find it works well to focus on coming up with a core mechanic (that's fairly simple), prototype it, and then tweak it until it just feels damn good. In Shep Hard, we first created the shepherd and some basic, mindless sheep that randomly wandered around the field. The intention was that the sheep would cost money, and you could earn money by getting the wool off them. Their wool would regenerate over time, allowing you to continually harvest it. If you lost a sheep, you would have to buy a new one to replace it. Pretty straightforward!

Step 2: Discovery
Now that we had a basic idea for our mechanic, we started to prototype. This is what we like to call the "discovery" phase, because although you have designed the mechanic on paper, you won't really understand its potential until you start to play with it. So at this point, it's good to create the mechanic and always keep the question fresh in your mind, "what would make this even better?"

I began to prototype some basic click-to-move and click-to-interact game input, while Sam created the Shepherd's sprites. Once the shepherd was done, we started to discuss how exactly the shepherd gets the wool off the sheep.
Dual eyepatches: it's a thing.
Rather than come up with a whole new "shearing" graphic, in order to save time, we opted to focus on the shepherd's enormous cane (which was already created then). The shepherd would swing the cane like a baseball bat and literally knock the wool off the sheep. This worked well because when we brought wolves into the fold as the thing that tries to eat your sheep, we already had an attack animation for dealing with them. We added a cool "knock up" effect to beating the wool off the sheep, and a solid "knock back" effect to hitting the wolves.
HUNGRY FOR SHEEEEEEEPS.
Just by luck, we had set up the game to be on a floating grid of isometric tiles, and this allowed us to use the "punting" mechanic to defeat the wolves -- punting them off the ledge became the only way to get rid of them. The original intent was to have the shepherd deal damage to the wolves and to give them HP, but the punting mechanic was fun enough that we felt it wasn't necessary.

We also realized that it would be somewhat annoying to have to run around and individually shear all these sheep as they randomly bounced around the map, so we added the ability for the player to toss down a salt lick. The sheep would sense the salt lick and then congregate around it to lick it up, and while they were bunched up, you could shear them all with ease.
MY SODIUM NEEDS ARE SATIATED.
Step 3: Juice it
About 1/3 of the way through the jam we had our axonometric grid, a basic wolf enemy that would fly in from offscreen to eat your sheep, some shearing, and a way to buy new sheep and expand your land to allow room for more sheep. So the basic core of the game was good to go. From there, it was time to JUICE IT. We've borrowed this term/concept from Edmund McMillen, creator of Super Meat Boy, because that man is a damned genius and his advice/ideas are not to be ignored.

Essentially, this is the act of looking at your mechanic from as many angles as possible and finding as many ways for the player to interact with it as you can. For us, the mechanic revolved around punting wolves away to defend your flock. So we came up with two additional wolves, which had a higher density and were therefore harder to knock back, and we had those wolf types come in a bit later in the game to give the game some sense of progression.
This single-handedly proves the theory of evolution.
However, the game still wasn't chaotic/frenzied enough. Now that we had wolves of varying density, we needed some ways for the player to punt them better and to better defend his flock. So we came up with a few new ways for that to happen:
  • A whirlwind attack, allowing the player to punt/shear everything around himself every 10 seconds.
  • A leap attack, letting the player fly to another part of the map and then smash the ground, punting/shearing everything around.
  • The ability to purchase and place land mines, which would trigger if a wolf got near them and blast him away.
  • The ability to purchase and place mortar turrets that had a finite ammo supply and would blast wolves away.
Once these elements were in, we realized that the game still needed a stronger sense of purpose. So we settled on having the sheeps' wool become more potent over time with each shearing, yielding more cash, until the sheep became platinum. Once they became platinum, you could give them a solid caneslap to bank them. To win the game, then, you had to bank 10 platinum sheep.

This idea also reinforced the need to defend your sheep, because if you lost a sheep you had sheared many times, you had to buy a new one and begin its journey toward platinum status anew.
PLATINUM SHEEP IS BEST SHEEP.
Step 4: Refine, test, balance
From there, it was just a matter of playing the crap out of the game and figuring out how to best pace it. We both played for about 30 minutes at a time and would then compare notes to see what needed adding/subtracting/adjusting. We ended up with a fairly reasonably paced game experience that became ludicrously frantic in the end, but was still very much winnable through some aggressive gameplay.

Step 5: Polish
The last step is one that we try to keep in mind as we go, but it's extremely important. Polish includes cleaning up the user interface, making sure text is well-placed and readable, and adding any cool special effects/tweening/whatever to the game. For us, this step isn't a big one, because we try to polish things a bit as we go. Last, we do a few test runs to make sure nothing is horribly broken, and BLAM! Send that bad boy off.

CLOSING THOUGHTS...
Overall we're pretty happy with how the game turned out. It was one of the more challenging jam games we've created, in large part because we had an economy system hooked into it on top of the action, so we had to devote a much larger chunk of our time to balancing and playtesting than we have in previous game jams. That also just goes to show how much the game's foundation can influence how your jam experience goes. It's important to keep things in scope!


2 comments:

  1. hey, did you guys have much of the isometric engine already set up? or do it from scratch?

    ReplyDelete
    Replies
    1. We didn't have an engine set up per se, but we did build a library of isometric tile calculation scripts a long time ago that helped us make this game.

      Delete