Returning to the city

Can you believe it’s Spooktober already? Time flies: I spent the entirety of September working exclusively on the ninja star fidget spinner throwing game mentioned previously. Let’s take a quick look at the progress I made on…

Ninja Stars: Iga Disciple

You are a ninja-in-training, specifically one being trained by the legendary Iga clan. Terry had actually done a surprising amount of research on ninja tactics and what they did to instill fear and confuse enemies. Using the fidget spinner as a controller, you would throw ninja stars and pilot them, skillfully navigating a dense forest and picking up the skills you’d need for the final mission.


As of right now, I’ve already designed (both the idea/logic and the actual layouts) a total of 16 levels, plus a simple tutorial. You start off maneuvering your shuriken around trees, eventually striking your target: a wooden dummy. Eventually you learn to hit more specific strike zones, such as the back of the knee, which is not protected by traditional samurai armor. The end goal is to prepare for a coordinated attack requiring you to hit eight total targets, located at various heights. This would conveniently set up a future sequel involving live targets…

Difficulty and Progression

The player’s cumulative failures would begin to rack up, à la Super Meat Boy, and the final score for each level would be simply determined by the number of ninja stars expended before fulfilling the objective. If you fail enough times during the game, you would have to spin your spinner a bunch of times to regenerate new stars — or spend a few bucks on a pack of stars to hold you over for the next few levels.

So we have a control scheme (spin and tilt a Bluetooth fidget spinner), a visual aesthetic (minimalist low-poly), a complete set of levels (16 missions increasing in required precision), a mobile monetization strategy (in-app purchases for additional stars, which are required to attempt a mission),… what next?

The Inevitable Brick Wall

Two major roadblocks stood ahead. And no, not “U” and “I” (though it’s true, I have no menu system whatsoever in place).

First, I still had technical difficulties regarding the Fidgetly CTRL device and its connection to the game. Until I could reliably pair with my laptop/phone and measure the realtime data, the core of the game was still just an assumption. For the most part, I was testing with arrow keys to simulate tilting the controller, and three arbitrary buttons to launch/throw the ninja star at various speeds: slow, medium, and fast.

Second, mobile optimization was a must. No gamer in 2017, casual or otherwise, would stand for constant lag or frame rate drops. Initial profiling indicated that I was running a lot of physics calculations, and I also found out that even my most barebones scene was exceeding the 100k verts rule of thumb several times over. Some of the post-processing effects, which I think are key to the aesthetic, didn’t help.

It turns out that the biggest waste of resources resided in the clusters of trees that served as the “boundary” of the level.

As you can see, the exterior edges consist of a bunch of trees. Even with static batching on, this wasn’t efficient.

There were a number of possible approaches:

  • Combine the clusters into one big mesh
  • “Fake” the look of a boundary using billboard sprites in the distance
  • Add a thick fog effect to serve as the level boundary (rather than the trees)
  • Simply mark the boundary with an arbitrary circle marked on the ground

Each of these presented their own set of headaches. Terry had already done great work in Blender by supplying more optimized 3D models for the tree base/trunk and wooden dummy, but it was ultimately a drop in the bucket. We still were not close to being ready to merely dropping in the fidget spinner controller and shipping.

Moving Forward

And with that, we’re forced to shelve this game momentarily. Make no mistake, I really like the spirit of this game and fell in love with designing the missions, along with their physical levels. Technically speaking, I learned a lot about elementary mobile optimization, LeanTween, billboarding, and more. Terry went from installing Blender to cranking out a convincing Mokujin in a couple of days. However, it’s time to continue where we left off with our main project: Urban Parking Simulator!


Leave a Reply