So we started out wanting to make a game about defeating titans and gaining their powers, kind of like Shadow of the Colossus meets Megaman. The player would start out as a human-sized warrior fighting ‘limb’ titans (Left hand – shield, right leg – stomp), and then gaining their limb-powers as they progressed, and eventually becoming a titan themselves.
HOWEVER, once we started thinking about it more, we realized we definitely did not have enough time to make this game. So we decided to make an easier-to-make game.
We decided to do shooting, starting first with ricoheting arrows off of walls to hit targets, with certain targets requiring multiple ricochets to be destroyed. After doing some searching online, I found a physics-based game series called ‘Ricochet Kills’ on addictinggames.com, where you play as a hitman using ricocheting bullets to kill your targets. It was pretty fun, so it gave me hope that our game would be fun in that aspect to.
We turned our game into a hunting game, where you have to kill hapless animals.
(disclaimer: none of these were drawn by our artist)
@liyiming-serif came up with the idea of detection radii that would trigger the animals to run away: outer one for player detection, inner one for arrows that land near the enemies. This effectively changed our game into a stealth game instead of an action-puzzle-platformer, which ended up working really really well.
Programming – @zkwen & @liyiming-serif
Bow & Arrow Physics:
At first we had a drag-and-click control scheme like that from Bowman. It’s very intuitive, fast, and makes the player feel like they’re firing a bow. However, @monchang wanted to have a click-and-hold charging control scheme (the one we have now). I personally was against it because I really liked the Bowman control scheme, and this one was kind of sluggish because it required holding time. However, since our game turned into a stealth game, it actually worked kinda well, so that you have to aim your shots carefully, and only shoot down fast moving targets as a last resort.
We had a some trouble with arrow physics though, constantly adjusting gravity, mass, and velocity of the arrows. Our first arrows were really sluggish and didn’t feel very satisfying to shoot. But we increased the max velocity and decreased the mass. Also, our arrows didn’t bounce off of walls very much, only allowing 2-3 bounces max,
but by then we had established that bouncing arrows would not be our main gameplay mechanic.
CAMERA CAMERA CAMERA. We had much trouble with this.
At first we had the classic moving camera centered on the player, but then we discovered this didn’t fit enough content on screen, so you couldn’t see what/where you were shooting. Then we added a character-screen offset, so that you weren’t always in the center, but that made it really annoying when you were inching towards a position, then had to turn around, as the camera would suddenly swing around.
We finally settled on a hybrid (camera does the swinging when you are aiming), so that the camera switching wasn’t as annoying during platforming, but as most of you pointed out, it was still pretty wonky and really needs to change.
The blocks were really slippery and it made it super hard to jump on platforms. @liyiming-serif and @zkwen would like <this to be a challenge factor at one challenge (tbd). To make it easier, we extend the platform or put a block at the end of the platform to keep the player on the platform.>
Art – @monchang
First thoughts on art was to make something really bright and relaxing. When I considered using pixel art as a medium, I immediately wanted a beautiful seaside cliff as the background. The grass tiles used references from pokemon ruby’s end credit scene as the color palette. The sea was just a gradient from light blue to purple and in an effort to use parallax, I split up each wave as its own layer in order to create the illusion of a moving sea in game. Once I had the background figured out, I then restricted my color palette to the ones I had on screen (with some shades of brown for the trees). With the limited color palette to work with, it became easier to focus on contrast and making foreground elements pop. As a side effect, the entire scene stayed relatively uniformed and professional, which was great.
Animation wise I was focused on making the character and the projectiles fun to play around with. Taking on the teachings of Shigeru Miyamoto, the creator of Mario, I made sure to make every jump, shot, walk, and charge as fun as possible. It had to feel really good to just control the character even without the game play elements. And so I put in as much juice as I can animation wise and give the players satisfying feedback for every action.
During the entire process, I made sure to have the programmers implement each art asset as they were finished. I figured that a rolling basis was better than waiting till the end. This proved to be true because we left a lot of work to be finished at the end.
Audio – @fundamental.phantom
The sounds were all made in a couple sittings, pretty quickly. The arrow sounds are a mix of Foley and synthesis. The bird sounds are us squawking and grunting, but heavily processed using downsampling and re-pitching/warping.
However, I didn’t send the sounds to the programmers right when I finished, so they ended up being put in super last minute, and we ran into some problems, most notably the music not looping (sorry, you guys had to listen to the first few measures forever D:, but for those of you who waited, you got to hear it!!).
I really had trouble deciding an aesthetic for the music. Bossa nova was the one that seemed most ‘natural’, but I felt it was over done (I’ve played too much bossa over the past couple years). I was split between chiptune-esque Rnb and a 12-string acoustic/chip mix inspired by Super Mario Sunshine. I tried both, but didn’t really like either one. Then I tried dabbling in more ambient/moody stuff with pads, kind of reminiscent of the Fez soundtrack by Disasterpiece. Eventually I settled on some sort of swing-jazz/neo-soul chip thingy made in a few hours on the last day, but I’m still not satisfied with how it went.
I usually over-complicate things, especially the chord progressions. For this one I tried to tone it down, and go for something simpler, but that didn’t completely work. The A section is in 5/4, and B section is in 6/4. The B section was supposed to be the same time signature, but the rhythms I came up with ended up being in 6/4, so instead of changing the rhythms, I changed the time signature.
*******PS Koji Kondo and Disasterpiece are both AMAZING!!! you guys should check them out if you haven’t*******
Level Design – @zkwen & @liyiming-serif
We designed 8 levels for this game. To keep it easy for players to learn how to control the fairy, our game starts as a regular archery game. The first 3 challenges are tutorials. By the end of the third level, the player should have used arrow firing control and left/right moving control.
Then we make the future challenges much fun by adding the key platformer feature — jump. To hit the chicken that are protected by walls, the player needs to jump on platforms to gain a better position where their arrows can reach the chicken. We made Level 6 slippery bricks vs running chicken. The player can choose either carefully jump on the highest brick to gain long time window aiming at the chicken or aim and shoot chicken within an incredibly short time before the chicken notice the player and become panic then fly away. Giving the player alternative approaches to win the game and keeping difficulties balanced is challenging and fun.
After three rounds of jumping and shooting, we want to introduce a new feature to the player to keep them engaged! And this is a good timing to require the player to rely on ricochet to complete challenges 7 & 8 (given that in previous challenges they should have observed this feature when their arrows accidentally hit the grey wall).
It’s a pity that we didn’t design more challenges that blends all player control skills together due to the time limit. We would love to complete our level design some day in the near future.
Level 1: No hurdle in between the player and the chick
Level 2: Tall pile of bricks enforce the player to indirectly target at the chick
Level 3: The player can’t stand still or the chick will detect the player then flee.
Level 4: The player needs to jump on platforms to get around the wall.
Level 5: The player need to shoot when standing on the platform.
Level 6: Slippery bricks vs. Running chicken
Level 7: Create ricochet arrows.
Level 8: Harder to estimate the ricochet angle because of the moving wall.
In retrospect, we kind of spent a long time doing a lot of less-important stuff like making the ocean move, instead of fixing camera and platforming bugs.
Overall, it was a great first try, I was worried that we wouldn’t finish, let alone produce a fun game. But we learned a lot on the way about workflow, level design, physics, and stuff!
Here’s our LD36 wallpaper:
*PPS – Tori Tori Panic! is an homage to Doki Doki Panic, which is the what the American version of Super Marios Bros 2 is a reskin of (that’s why it’s so out of place compared to the other games). Also, ‘tori’ means ‘bird’ in Japanese.