Skip to main content

Design Bites: Ikaruga

The "Design Bites" series is about learning or appreciating just one design element of one game. It's about applying an analytical eye, even if it doesn't touch on everything.


What's Ikaruga?

Ikaruga is a Japanese arcade bullet hell shmup developed and released by Treasure in Late 2001. It features a color-swapping mechanic where the player can switch between blue and red, making them impervious to bullets of the same color.


What's Awesome?

When we play games, we often try to "outsmart" them. We look for broken spell combinations, overpowered guns, experience farming tactics and other things to give ourselves the edge.

In Ikaruga, the story is the same: "By staying in blue form forever I can ignore half of the danger on screen! All I need to do is kill off all red enemies."

About 2 minutes later you're presented with a pair of alternate colored enemies that slowly but surely push you to switch, as you are placed in a position where simply dodging one color is impossible. The game doesn't really tell you that you need to switch, it just sort of lets you slowly realise it yourself. Soon after you are pummelled with a wide array of different bullet patterns that require you to switch frequently.



The cool thing about Ikaruga is that it likes to gently dispel notions like these with small challenges before hitting you with the hard stuff. It's a good lesson in tutorial design.

Further encounters teach you to use color switching strategically even when its not necessary to switch, one instance is killing off the small opposite-color enemies in the first boss fight to make switching during the bosses alternating patterns uninhibited.


Popular posts from this blog

Wacom vs N-Trig - A Modern Comparison

WARNING: This post is long. I wrote this because I could not find an unbiased comparison of the modern N-Trig and Wacom technologies online. It was written in response to the artistic outcry regarding the Surface Pro 3. If you are an artist, I believe it is worth reading.

UPDATED as of 20th June 2014 to reflect N-Trig software advancements.
UPDATED as of 23rd June 2014 to reflect new direct Digitizer comparison information.


Those of you who may visit this site regularly will know that I am a game developer, but what you might not know is that I also do a lot of sketching. (Maybe one day I will post the stuff online)

Since I am a geek, I do almost all of my sketching digitally, which means I am always looking out for new developments in digitizer technology. This brings me to this post in particular:

Following the announcement of the Surface Pro 3, many artists were shocked and disappointed by the news that the SP3 would be using N-Trig technology rather than Wacom technology like the SP…

[Pre-Alpha Peek] The Adventures of Clark Doud - Where Is Dark Cloud 3?

I Got Tired of Waiting for Dark Cloud 3So, I think most of the Fans of the Dark Cloud series are tired of waiting for a third installment (That is to say: Seriously where the hell is it?). So in the mean time I've decided to throw all my love for the series into making a Fan-game, because (You guessed it)They Should Have Made A Sequel.

So this audacious blend of (almost) copyright infringement and big talk isn't about taking on the gigantic task of filling the shoes of Dark Cloud 3, this is about giving myself something to play with until they make a sequel (...hopefully). Without further ado lets get into the meaty bit, what I've got so far:

Unity: How Adapters can help you write fewer MonoBehaviours

TL;DR: You don't need to duplicate a bunch of code to do the same things to a Image and a SpriteRenderer, or RectTransform and Transform, etc. You can use a simple pattern called the Adapter Pattern. If you've never used it before, this post explains how.

The Problem: Image vs SpriteRenderer Lets say you want to make a sprite fade out, maybe its a dead monster or a collectible, but in either case you want it to gracefully depart from the screen rather than blink out of existence. Kinda like this eyeball monster from Beastly:


So that's pretty easy right, one way of doing it is with a MonoBehaviour that modifies the sprites alpha value via SpriteRenderer.color. Your class might look something like this:
public class AlphaFaderSprite : MonoBehaviour { public SpriteRenderer spr; public float fade_percentage; void Update() { spr.color = new Color(spr.color.r, spr.color.g, spr.color.b, fade_percentage); } } Now, anyone who's used Unity for more than an …