EDIT! We’re releasing a post-jam of Kickochet soon! https://store.steampowered.com/app/1219530/Kickochet/
— — — — — -
The game described below can be found at: https://boz-float.itch.io/kickochet
I’ll try to pull out little lessons that may be helpful to you in future jams in quote form.
Howdy, I’m Casey Weeks, but my game-making moniker and general online persona is “Boz”, a name I’ve used since 1997. I’m an art director & user experience designer by trade and I’ve been a hobbyist game developer for something like… 6 years? I do a lot of game jams.
Background Info about GMTK
If you’re not familiar with GameJams or the GMTK jam this little video will catch you up: https://youtu.be/Dayzyv3tkzw
And if you want more info, go here: https://itch.io/jam/gmtk-2019
In brief, we were tasked with creating a video game in 48 hours.
Gathering the Team
I invited the usual collaborators: Mark Usmiani with his adorable gameplay art and Haberworks with his catchy music. Then started asking various creative people I know if they wanted to join. We all gathered in a Discord server, which was our base of communications.
Tip: For anyone that joins your team, make sure you develop a collaboration workflow BEFORE the jam, so you can hit the ground running when it’s time.
Project Lead, Programming, Game Design, Level Design: Casey “Boz” Weeks https://twitter.com/huminaboz
Music: Haberworks https://soundcloud.com/haberworks
AI, Level Design, & Misc Programming: John “NanoDano” Leon https://www.devdungeon.com/
Title Card/In-game card Art: c0hil https://www.instagram.com/c0hil/
Art Direction/Concepts/Logo and HUD: KFlan
I highly recommend you click the links and check out the team’s work!
Here’s the tentative Schedule I posted in the Discord before the jam.
2pm — 6pm — Theme announcement — Idea, Concept, Art Direction, Narrative Direction, World Building, etc. Who are you, what are you doing, what’s the mechanic. Something simple as fuck but makes you think in a new way. No powerups or addons or exp or levelups or bonus content etc
6pm — 3am — Proof of concept of core engine. Art concepts
Wake until 6pm-ish — Core engine finished. Put in basic visual assets.
6pm — 12am — polish mechanics. make them juicier.
12am and up. — Itch.io page banner and background — Title Screen — Ending screen? — Instructions. nap
— Bug fixes — Level Design (if there are levels. Otherwise, equivalent)
— Testing — Detail Tweaks Remaining time for polish — tighter controls, juicer game feel, sfx, etc
2pm — 3pm — Upload hour
marketing video/gifs/images to add to the itch.io pages sleep.
What usually happens: Core engine until the last hour, then shove everything else in so the game actually works.
So how well did I predict the schedule? Pretty well… if I’m referring to the last line.
Phase 1: Coming up with an idea in 4 hours
So the theme of the jam is announced at the beginning: “Only One”.
We put aside 4 hours to come up with an idea. This meant we weren’t rushing to quickly come up with an idea, but had a hard cut-off point where we know we’ve got to stop spinning our wheels and decide on something.
I’ve had brainstorming sessions before where we brought up ideas and then got frustrated and stopped talking for awhile and then I give up and force an idea on everyone. So we’ve tried a few rules-of-thumb(s) and methods that help.
Rule-of-Thumb 1: Come up with ideas that fit the strengths of the team. We don’t want to spend time in a jam learning to do new things.
Rule-of-Thumb 2: Try to focus on ideas that come from your skill set. For example, if you’re an artist, try to come up with visual ideas. If you’re a writer, try to come up with narrative ideas. Try to help other people’s ideas from the angle of your expertise.
Rule-of-Thumb 3: Focus on something that sounds like a simple system, rather than a genre.
I’ve found creativity works best in solitude, so we started with a 20 minute session with everyone on their own coming up with ideas. At the end of 20 minutes, we all got into the Discord voice channel and each presented our favorite idea one by one and riffed on the idea for a little while before going to the next.
But at the end of the riff-session, we seemed to stall out. So we broke into another solo brainstorming session to see what else we could come up with. I believe we ended up doing this three times. In the future, I would like to try a 30–40 minute solo brainstorm session and then smaller solo brainstorm sessions afterwards, each smaller than the last.
Tip: Break your brainstorming meeting into intermittent periods of solo brain-storming followed by ideas presentation and riffing.
We found that one idea seemed to stick with us — NanoDano’s idea of see how many enemies you can defeat with one bullet ricochet. And as time ran out, we had to throw out everything else and focus on the leading idea. Initially, we were all thinking in 3D first person shooter terms, but during the last solo brainstorm session, when I started planning out the logistics of a 3D shooter game with puzzle-like mechanics… I switched to a 2D version. After we discussed that possibility, the idea turned away from slow puzzle mechanics and more into real time action. That sounds like we need a ninja assassin. Kickochet was born.
Phase 2: The First 24 Hours — Making the Ninja and Shuriken Feel Awesome
Years ago, I heard a rumor that while making Zelda, Miyamoto would put Link in a sandbox environment and spend a YEAR making the controls feel perfect. That’s always stuck with me. And maybe it was fresh on my mind because the latest GMTK touched on that concept https://www.youtube.com/watch?v=yorTG9at90g .
According to the schedule, it was time to work on the core engine until 6pm on Saturday. To me, that meant making a ninja character fun to control and a ball that can be hit and bounce off of walls.
Fortunately, we have visual references from this point on, because I was making gifs to share with the team.
Around this point I started collecting videos of reference pieces for what’s in my head to communicate with the rest of the team. Heroes of Hammerwatch came up in terms of relative scale and attack animation.
It was around this point that the Celeste video was sitting in the back of my mind as an influence. Let’s make this player’s walk less slidey. Let’s be able to stop on a dime. Ninjas can change direction quickly. We’re gonna ninja run so we can get to full speed pretty fast.
At first I gave it a very high skill ceiling — the ball moves in the direction based on the angle you hit it, but also where you hit it, and the ball’s own direction. Analytically this seemed “correct”. But after hours of fiddling with it. I was feeling like a fumbly ninja that lacked control of the ball. I let the problem sit and wait for inspiration to hit. (it would be a long time)
Tip: Often, you know something is wrong, but you don’t know what a good solution might be. Let it sit, move on. Chances are, some combination of a new train of thought and some catalyst will generate the solution.
Meanwhile, you can see that NanoDano has begun dropping in some AI and exploding barrels for me to hit in the sandbox.
It was around this point that Hotline Miami’s influence started creeping in. So I started looking at Hotline Miami level design to see how the interaction might work.
The ball keeps getting away from me. I don’t have control. I’m not a damn ninja. Something feels really awkward.
Ooh a dash, that’s starting to feel better. What if I added some sort of indicator around the ball to show you where it’s going to go if you hit it? Would that give me more control?
Sleep time! I require 8 hours of sleep for myself on the first night. Though, it’s usually less because the second I wake up, I can’t stop thinking about the jam.
Tip: Don’t drink caffeine to avoid crashes — you need sustained energy. Only eat healthy to avoid the “Carb Coma” — spinach & protein smoothies are amazing. Sleep 8 hours a night in the beginning because you’ll need that energy later.
Now that we’ve slept we’re coming back to the game with fresh eyes. What if at the beginning of the game, someone tries to kill you by shooting an energy bullet at you. So when you select “Start” on the title screen, it fires the bullet and your character dodges. Then the game starts and this is the only bullet that can destroy all the evil robots in the facility. Oh wait, we have to take the time to draw and animate all of that? Put it on the back burner. Let’s get back to gameplay.
Okay, we need to stop second-guessing ourselves and get back to the vision. It’ll work out eventually. At the very least, we’ll have learned something about these mechanics at the end.
I didn’t realize it at the time, but Hotline Miami as a reference piece was failing me. The rooms are too damn square for a bouncing ball! But you can already see hints that intuitively I knew square room was a bad idea. But in fumbling with the rooms, I wanted to give the player more control. I had written a slow time mechanic in my last post-jam game ProtoDash, so I knew it wouldn’t take too long to write. Let’s try it. You can slow the time when you get close to the ball to have more time to direct it where you want it to go. It ended up being slightly buggy all the way to the end and I knew it’d have to stay that way (but it’s fixed in the post jam version).
Tip: Do post jam versions of games where you explore mechanics you wanted in your gamejam, but didn’t have time to dig in on. But afterwards you can do a learning project to add in those elements. Who knows, maybe you’ll be happy you know how to do it in the next jam.
By now I’ve also simplified the ball control to not depend on so many pieces and just go in the direction of your click, so long as your hit swoosh lines up with it. It’s feeling a lot easier to control. (Hours later, closer to the finish line, I eventually made it to where you can kick the ball as long as it’s close to you, instead of when it lines up when your hit animation. THAT is when the controls felt responsive and I felt like a ninja.)
Tip: It’s a game jam, you don’t have time to make incredibly precise controls that will take years to master (save that for the post-jam). You should probably simplify your controls.
At some point, KFlan, the art director on the team, said something to the effect of “Maybe we should be thinking of these levels like Mini Golf courses” and that was a breakthrough in the level design. Mini golf courses are made to ricochet a ball around in fun ways. So I asked him to draw up some examples that I could put together for testing. (and we will be looking at mini golf courses as reference for future levels)
And guess what? At this point, I’m still not happy with the amount of control you have over the ball, but it’s past 6pm and it’s time to start fleshing out the other parts of the game.
Phase 3: Fleshing out the game
Now we’ve got a sandbox to play in that’s more fun to bounce a ball off of. I decided that instead of killing enemies to open the exit to the level, you have to hit targets. That allows for the enemies to be a lot tougher and to only have a few in the level.
By the way, that hitbox on the target is being hit by the invisible direction indicator hitbox on the shuriken. It’s a bug that persisted til the end that made targets way easier to hit, but I think that worked in our favor.
Tip: People are only going to give your game jam game 30 seconds to 5 minutes. Make the game super lenient make you FEEL like you’re super good at it in the 30 seconds you have to learn how to play.
Oh, and the ball is now a shuriken and this badass is kicking it around like crazy. And if it was unclear, the original concept was deflecting a bullet with a blade. But Genji makes me mad in Overwatch, so I didn’t want to give him the satisfaction.
Tip: Don’t play Genji in Overwatch.
Now we’re just adding in level design pieces and making sure the level flow works start to finish. The music by Haberworks started to get dropped in around this time. Starting to feel that excitement.
It’s around here that I started to watch videos of Katana Zero. That’s when I had the breakthru: The levels can be short and tight, but difficult. Short levels would also allow the short period of time we have to design levels more forgiving — the levels don’t have to be precision designed and we don’t have time to do that anyway. Less moving parts overall.
Tip: Give yourself leeway in the game design so that a good experience doesn’t depend on you having copious hours to perfect one experience… unless that’s the entire game, of course!
And add a time constraint — the ninja can only kick the shuriken for so long before it gets destroyed. Now you’ve got pressure to dive in at the enemy and grab your shuriken when it goes off course because you don’t have time to wait. That leads to OHHH moments.
It’s around this point I know I’ve got to stay up all night to complete this. It’s due at 2pm, so I’ve got 12 hours left. Most assets have been handed off so I can just go into silent mode and put everything together.
Tip: If anything is missing, put a placeholder that can be replaced if there’s time.
Now let’s just get this game pieced together and then we can go back over the details.
I’ve just completed an 8 hour session of speaking with no one, just building, building, building. Took some time to add some juice. Implement a SMACK animation that was influenced by Lethal League and Mark built. Added screenshake. Added the SFX that Haberworks sent. Now we’ve got a satisfying bassy sound when you hit the shuriken.
Tip: Load your personal skill set up with a bag of tricks of juicy feedback mechanics so you can pull them out quickly and implement them towards the end of a jam for that extra game-feel. Bass in SFX helps a lot. Screenshake helps a ton.
KFlan shows us logo designs
Rebel idea was too far off from our existing ninja direction, so we scrapped that. Looks super cool, though. Then c0hil suggests “Kickochet” and no one argued with him.
Tip: Choose the art-direction of your game wisely in the beginning. Maybe even have one person focused on thinking about it. You will not have time to change it after the art and sound starts going into the game. If it starts with a ninja, it will probably end with a ninja.
c0hil starts dropping some title cards.
~1 hour to go. I’ve become slightly deranged since we last had a check in. I’m an implementation robot who’s only function is to make sure people will enjoy making a cartoon ninja click on a cartoon shuriken and don’t get confused in the process. I’ve channeled all my user experience knowledge from my career and game design testing experience and tried to create something that people will understand without any time to test it and fix it.
Tip: Though I broke this rule during this jam. Have a person on hand (preferably set up before the jam even started) that knows nothing about the game that can play through a couple of test levels and give you a video output of them talking through it while they play. Use this video to create your tutorial on the elements they are stuck on that you thought were obvious.
Since the previous gif, we’ve started to implement animations, title cards, title screens, button presses, build levels, build tutorial levels, build tutorial screens, an ending screen. And tons of bug fixes and level testing to make sure there’s no where you can get stuck. Oh and cursing at this one button because it would randomly break and logic had long since ceased to exist correctly in my mind.
Tip: Make the game way too easy. Not boring easy. Just easy to someone who has hours of experience playing (that’s who harder levels are for). You’ll be surprised no matter how easy you think it is that someone will think it’s hard. That’s because they don’t know what you know.
Phase 4: Submission
You know… usually I set up an Itch.io page BEFORE the jam starts so I can safely upload versions to share with the team and know that the page will be there even if the game jam site is down. I didn’t do that this time.
Tip: Get your submission set up before the jam so all you have to do is drop in your game file.
…and the site went down right as I was figuring out how to submit. So I spent the next hour watching a confusing “uploading” bar that never seemed to go anywhere.
But they gave us more time to submit. So while I had one nervous eye on the monitor with the upload, I used my idle time to add in one last level idea I had always wanted to make — a chain reaction explosion. So if you played that last level, just know that I made it in a cold sweat while waiting for our game upload that refused to go through.
Packaged it up with that level and fixed a handful of bugs that could stop the game from proceeding and it finally uploaded. We were done!
We managed to catch a few people streaming it.
They seemed to be loving it. Awesome.
I’m sure we’re all no stranger to the feeling of loving something you’ve created, sharing it, seeing a lukewarm reaction, and then realizing you’re just in love with what you’ve done. This felt a little different.
It was super fun trying out other people’s games, too! And talk to people about their games. This jam really is a good one.
Tip: Be excellent to one another.
So what happened when results came out? We got #33 in design. That felt good to me! But then they fixed up some votes from a review bomb bot so I stumbled on to the results page to discover this:
The next few days were full of us referring to ourselves as 4th place subject matter experts. “As a 4th place game jam winner it is my expert 4th place opinion that… this is a good taco. At least good enough to be 4th place.”
All that was left was to wait for the GMTK Results video to be released. Fingers crossed we make it into that. And wouldn’t you know it, while I was writing this, it dropped!
“Lots of games in the jam went for the one projectile idea… of the lot, Kickochet was the best one I played”. Wow!
We got into the top 20!! I almost wish the video had been released on Friday so I could go party.
We’ve been working on a post-jam version since the jam submission, so we’re hoping to show that off in the near future.
And so, To Be Kicktinued…
EDIT! We’re releasing a post-jam of Kickochet soon! https://store.steampowered.com/app/1219530/Kickochet/
Here’s the link if you’d like to play the jam version: https://boz-float.itch.io/kickochet