Sushi Roll: Design Postmortem

Posted by (twitter: @stellardoordev)
January 4th, 2016 9:46 am

LD34 was a blast for our team.  We’re extremely grateful for the ratings, comments, and feedback that people have given our game so far!  Now that we’re down to the final hours for reviews, we wanted to ask for anyone’s last-minute thoughts, and, to give that some context, we hoped it would be fun to walk through the design process that went into our game’s art and animation efforts.


After a while of grappling with the double-themes of the jam, our team got a huge creative charge out of taking the “let’s just start working” approach, which let us divide up our first technical and creative steps.

On the design side, the first thing to tackle was naturally our star and hero, Fugu the pufferfish.  The pufferfish (his name didn’t happen until mid-day Saturday or so) was the first of a few ideas meant to capture the “Growing” theme (among others such as a pig that grew by eating, a snowball that grew by rolling up more snow, and just a man that happened to fall down a hill… whose misadventures made him “grow as a person,” we joked).  While all of these were fun and funny to us, the pufferfish had a kind of instant magic once he appeared on the screen, and gave us all the laugh that sent him rolling along down our creative pipeline.


Blender (free and open source!) gave our team the full 3D production workflow we needed to produce assets for Unity — sculpture, polygon modeling, texture painting, rigging, and animating.

Our team had decided even before the jam to commit to making a fully 3D game, so the first step was to get our fish sculpted in Blender.  This was the first challenge in matching the art to the theme(s), since this meant that our star required two different base sculptures — one to represent both his puffed and unpuffed state.  (The puffed version actually came first, and was saved and then I sculpted that down to his unpuffy self for the second version.)

With a normal model, the next step would be to adapt the sculpture into a game-ready, lower-polygon model.  We actually had to do this pretty differently, essentially making the same model fit both sculptures, in order to reflect both of the puffed/unpuffed states.  This was one of our bigger design challenges, and took a good bit of finessing to get just right, but when it came together we had a version of Fugu that was able to morph (using Blender’s Shape Keys feature) between both states, using a numerical value that we would later be able to drive in Unity.


The same low-polygon mesh had to be adapted to fit both original sculptures, letting us make use of Blender’s “Shape Keys” (“BlendShapes,” in Unity) to morph between them incrementally.

The result was something both simple and perfectly suited to the second theme goal: “two-button controls.”  One button grows, one button shrinks.  The game design decisions (where growing makes you pop off the ground, and boosts your speed) all fell in line as a natural progression from that idea, giving us room to test, tune, and try to make it feel fun.

After a team vote on what would ultimately be our game’s main color palette, Fugu was given his texture pass (painted in Blender) and finalized.  …But not before we all decided to push the design one step further and give our fish even one more level of “hyperinflation” puff.  (Sadly, we didn’t get to use this extra-puffy state by the end of the jam, but ohh, do we have plans…)


(Side note: The wincing puffed face only got funnier when we realized that, as he rolls, he rolls over his face.)

With our fish all ready to go into our world, the logical next step was to fill that world with things that would try to kill him.

First up was the (slightly less-than-menacing) “foe” of the tree, which we tried to keep simple enough to pay off twice over, as the simple low-poly shapes of the leaves were easy to repurpose afterwards into the rocks and pebbles that would block the path.  Navigating over and under these obstacles is intended to set the pace for the bulk of the game’s flow, so it was important to get these into the game early, letting us start to fine-tune them into our terrain generation workflow.

Next up was the first of the true villains, who we designed as the answer to the question of: “if trees force you to shrink, what forces you to grow?”  Enter the natural enemy of fish everywhere: the cat.  Running into one would force you to puff up in order to get by unharmed — too small, and you’re cat food.


(Pretty much the sushi chefs of the animal kingdom.)

The cat was our first rigged/animated character in the game, and took a fair bit of time to get implemented.  We knew we wanted him to have a menacing pounce to avoid, but seeing him in action (in Blender), gave us all another useful creative kick, and we all laughed at the idea that this cat (when bopped by a large-enough Fugu) could be yet another thing that rolled down the hill with you.  (Poor kitty.)


With the cat modeled, rigged, animated, and finally painted, we had (most of) the main art assets we were hoping for (mostly) in place.  We started on the final assets — a quick Japanese-styled pagoda to sit on top of our hill as our deadly restaurant escape scene intro — and started to pull everything together in Unity.  This was Sunday evening.  We were getting close to the end of our art assets to-do list, and (somehow) even a bit ahead of schedule…

Which, naturally, meant it was time to go big or go home — the last idea that had been lurking in the room (initially deemed too much to hope for) was to load in the villain himself: the Sushi Chef.  It’s hard for me to imagine the game without him at this point, but even for his huge role, he was actually a fairly last-minute long-shot of an idea to try to build him by the jam deadline.  (This also meant programming him, after all.)  But, hey, we decided to go for it.

There was really only time for one round of character design, so it was important to get our chef “right” on the first try.  We agreed right away to keep him pretty cartoony, in order to let me design and sculpt him quickly, keep his rig and animation simple, and of course to match him to the cartoon style of the fish and the cat.  Thus, between trying to keep his facial features simple and trying to keep him a bit funny (he is a knife-wielding would-be fish-murderer, after all), I tried to simplify his face by pulling his headband down over his eyes, colorfully emphasizing what had become a running theme of cartoonishly-angry eyebrows in the other character designs up to that point.  He made us laugh on the first try, which we decided meant that he was probably good enough to move ahead with.


He’s a man with a dream.

By the (late) end of the night, the chef was ready to go as a low-poly game model, rigged, animated, and painted, and our fish was free to be chased by a floating placeholder-Unity-capsule no longer — and, instead, by an angry, knife-waggling chef.

Our group parted ways on early Monday morning, leaving the final design work of our game’s logo and game over screen graphics (a last-minute 3D scene modeled and rendered just in time to drop into the final jam build) to be assembled remotely.

It was amazing to see it all come together, once everything was rolling, hopping, pouncing, and knife-waggling together in one combined setting.  That, plus the final versions of the movement/controls, terrain generation, and chef-chasing functionality — and all set to the final music handed off by our team’s musician — really pulled it together into something that we were extremely proud of.


We wanted to say a huge thank you to everyone that played, rated, and commented on our game.  It’s been extremely gratifying to get all of your kind and helpful feedback, and it’s given our team the drive to keep working.  We’re happy to say that we’re already well on our way to implementing some of our next ideas, which we hope will help turn Sushi Roll from a prototype into a really fun little game.  So please stay tuned — and send us your thoughts!

  • Try out Sushi Roll here, if you haven’t already.  We’d love your review!


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]