Boss Battle

I went back to the GDD this morning and tweaked little bits of information that have “evolved” during the development of Hanami. I took a look at the list of events that I wrote right at the beginning of this project, to try to work out how to conclude the game. So far, motivations for playing the game have been about progression, so I finally needed to realise a result of the player’s hard efforts!

The best way I could think to conclude the game was to have a Boss Battle, which was something I wasn’t originally planning but feel that the player would be let down if the game ended without one final challenge. So, the final door that is opened will lead to a “battle” with the Zashiki Warashi spirit, resulting in the spirit transforming back into her Kokeshi doll form. This essentially solves the “Hanami crisis”, and the player will be able to roam the world obstacle free in order to collect the remaining blossoms. There shouldn’t be many left (about 10 or so?), but only be collecting EVERY SINGLE LAST BLOSSOM will the game truly end.

The terms “Boss” and “Battle” are strong words, but it’s the best way to describe this glorified final obstacle! I haven’t introduced any new techniques to the battle, the Zashiki Warashi spirit can be de defeated in the same way as the Deceitful Blossom, by jumping on the enemy’s head. The main difference is that this enemy has a 5 health points and a projectile attack! The battle is really based on the sort of sub-boss battles you’d fight in old Super Mario games, where jumping three times on a Koopa’s head will let you pass to the next stage. I’ll record a video to show what I mean if I get the time!


EDIT: Here you are, Boss fight footage recorded exclusively recorded for this Blog:

For this stage, I’ve created three new game assets. The first is the Za-chan object, which controls everything that the enemy does. She works with three alarms, one which instigates “attack 1”, another which instigates “attack 2” and a final alarm which determines how long she is static for when hit. She has her own health counter, which is shown by my second new asset which aligns with original HUD:


The third new asset I have (half) created is an object called obj_attack. At the moment, this object is represented by my Gunkan Sushi sprite, as I haven’t actually drawn anything to go here yet… So, when the enemy shoots her attack towards at player, she is currently shooting sushi. This has been fun to test, and I will almost be sad to see it changed! This has been the easiest to program, as it’s only job is to move steadily towards the player. If the player is hit, then the projectile is destroyed, to avoid being hit twice by the same attack.

This is by far the most complex AI controlled NPC character I’ve created so far. The character moves in relation to two objects, the player and a “block” object, which keeps the enemy within a certain space. Za-chan moves slightly slower than the player, so it is possible to catch up and jump on her head! If the player is quite far from the enemy, the enemy will move towards the player. If the player is very close to the enemy, the enemy will move away in evasion. As well as this, there is a certain distance from the player that Za-chan will simply stand still and spam the player with attacks, however this will only happen if the player is also standing completely still. This system works well enough to keep the enemy moving about, but I noticed that it was possible to defeat her too easily by trapping her in a corner. So, I’ve added a final line of code that states that the enemy must move towards the player if she gets too close to the “block” object, even if this means a collision with the player. Colliding with the enemy actually causes player damage, so this in itself acts as a sort of attack mechanism.


Za-chan’s two “attacks” are thrown when each of the first two alarms go off, and this code simply resets each one so the enemy constantly attacks at an even rate. Attack 1 throws one sushi, and attack two which is less regular throws 2 sushi!


I’ve used almost exactly the same code as the Deceitful Blossom to program what happens when Za-chan is jumped on. I’ve simply changed the squashed flower sprite to a new sprite, and ensured that during this time she can neither deal or receive damage, and she cannot move! I thought it would be appropriate to make a new sprite animation where she sits down and rubs her poorly head after having an full grown woman jump on top of it…


Once she has been defeated, I’ve also created a new “transformation” animation which turns her from spirit form to Kokeshi form. To do this, I created a cloud which passes over her to reveal the doll underneath. I’ve made this in the same style as my previous “auspicious clouds”, and drew out the animation first to make sure the swirls moved bout fluidly:


And here is the final result:


At the moment, I’ve set the battle out in the most final stage I have made, even though this is currently far from finished. The aim for the rest of this week is to finish the inside of the building and build a proper “Boss Stage” level for the battle to be held in. I’ve recorded a video of the battle so far, although I think I still need to make some tweaks to the rapidity and speed of attacks. I’ll probably have to get back onto SunVox too to create some epic Boss Battle music!

Sushi Get

Inspired be the healing properties of sushi, I’ve decided to use these various types of sushi as the health items in Hanami. Eating food to restore health in video games is quite a traditional system. For some reason, eating chicken found on the rough streets of Streets of Rage was perfectly acceptable, and in fact, good for your health. Here’s Axel, eyeing up a yummy looking apple in Streets of Rage 2:


What’s more, finding a fully cooked roast chicken in a barrel was nothing out of ordinary. It’s not really a gaming aspect that has survived, for whatever reason…

Trying to place tiny little pieces of sushi in a game where the character is only 16 pixels tall isn’t without its complications. I started off trying to draw sushi into 8×8 squares so that they wouldn’t look unnaturally out of proportion. Although proportionally this worked, I wasn’t happy with the limitation of how much detail I could put into each item.


These tiny little pieces were also very difficult to place into the game. Either they stood out immensely, mainly because of the colour differences, or they were completely lost in amongst the scenery. So, instead of having somehow healthy pieces sushi just lying around the place, I decided to give them a container. This is the equivalent to chests in adventure games, or the item boxes in games like Crash Bandicoot and Super Mario. Open the box, get an item! It’s a simple concept.


I think if you were to buy sushi in a box, it would probably be a sort of takeaway bento, which unfortunately for me isn’t very distinctive. So, for now atleast, I’ve decided to cheat with this takeaway noodle box. This is much more recognisable, and at least its contents are expected to be food… For those who recognise Japanese kanji in pixel form, I’ve managed to squeeze in the symbol for “life” onto the front of the box.

The idea is that when the player approaches the box and presses the “x” key, the box reveals its contents and that type of sushi is added to the inventory, which I’m currently in the process of making. I’ve decided to use a similar system to the one used for collecting mushrooms in Superbrothers: Sword & Sworcery EP. You can’t see it well in this image, but there is a collectable mushroom on the right hand side of this image:


In S:S&S EP, mushrooms can be found which allow the player to see spirit beings, but eating a mushroom will also restore the player’s health. When a mushroom is collected, a mushroom icon appears at the top of the screen which indicates to the player that they are now carrying a mushroom. When a second mushroom is collected, the same thing happens but a quantity is added, so the number 2 will appear next to the mushroom icon. The player can only hold three mushrooms at once, which is annoying as most of the way through the game the player has five hit points, coincidentally the same amount as Hana in Hanami.

So now I have two items, one container item which contains one sprite image of the noodle box. The other is a “sushi” item, which contains 4 16×16 subimages of the various sushi/onigiri. I’m infinitely more happy about being able to draw larger sushi sprites with that added amount of detail.


When a noodle box is acquired, one of these images is called at random to the top of the screen. This indicates to the player that they have acquired a piece of sushi from the box! Calling a random image saves me the time and pointless effort of assigning a specific subimage to each individual instance of the sushi box, but ultimately makes no difference to the player as each item has the same effect.



Looking at this screenshot now, I feel like I could perhaps create extra HUD space to act as a background for the sushi so it stands out a little more? As I currently don’t have an inventory to place the item into, the item disappears after a few seconds never to be seen again. I’ve spent a little time practising making inventory screens and think I know the system I’m going to implement. There are ultimately two methods of creating an inventory in Game Maker- one is have a designated room where all the inventory information is held, and the other is to call an inventory object which sits above the imagery on-screen. I will be using an object, as I feel this won’t interfere with persistent room settings etc. which could get quite complicated. I’m also familiar with temporarily disabling on-screen activity for pause menus, so I kind of know what I’m doing! Before I can really get started, I need an inventory design (or atleast template) which I can work to. I’ve got a few designs in mind, I just need to work out some layout issues mainly.

Hanami’s Quick Guide To Sushi

As everyone knows, sushi has healing powers. Most types of sushi will restore 1 hit point when eaten.

Nigiri にぎり

An oblong shaped slab of sushi rice topped with certain types of fish or egg laid neatly over the base. Sometimes nigiri is held together with a strip or “nori” seaweed.

Maki まき

Maki refers to rolled sushi, either with an outer layer of sushi rice or wrapped in nori. The filling runs through the centre of the rice, and can consist of many things from raw fish or meat to bean curd.

Gunkan Maki ぐんかんまき

A roll of nori filled with sushi rice and usually topped with fish eggs.

Temaki てまき

Hand rolled sushi wrapped in a cone of nori, with the filling of fish or fish eggs popping out of the top!

Onigiri おにぎり
(strictly not actually sushi…)

Onigiri refers to Japanese rice balls, often shaped in triangles and wrapped in nori. I’ve included this here because like sushi, onigiri is a food that looks distinctly Japanese!

Weekend Update #4


Finished it! Only it covers two pages of A4 paper and won’t fit in my scanner until I bring myself to un-tape it. Next week I’ll start designing level 2.

Other than that, this weekend has been slow. I watched the Japanese Ring 2 last night and still can’t help looking at building details, although this had more of an urban setting which doesn’t apply to my building style! A couple of observations were to do with the space in front of buildings, like porches and balconies. I’ve kinda designed some roofing for these sorts of things, but haven’t come up with a good way to represent them in 2D! I’m going to carry on watching Japanese films throughout this project, but hopefully the next Japanese film I watch won’t be so horrible…

Affordable Housing (and fast food)

I’ve redesigned a few of my existing building tiles to suit non-commercial private homes that don’t need to look quite as extravagant as a B&B or a cafe. I’ve been using this photo as a starting point as I like it humble approach to home-design:


It includes similar looking features to the tiles I already have, my main changes have been to wooden-plank tiles and windows. I drew up this compare and contrast 2D version to work out which tiles to reuse and which to recreate:

Another building I’ve thought up is a mobile noodle/sushi stand. It’s based around small noodle stands that are common to Japan. However in this case I’ve combined the concept of a small noodle bar with a temporary food stall, similar to ones you would find at festivals or special outdoor events. This is mainly so it takes up little space, as its placement in the game is more for decoration than anything else. It won’t be an building that can be entered like the Ryokan or any of the homes throughout the levels. Here’s the kind of thing that gave me the idea:


And a quick sketch up of a design idea. This also combines features from various photos of dumpling stands that I’ve scanned through on flickr:

Building & Environmental Tiles
So, I’ve made good progress with the new building tiles. I haven’t made that many, but it seems that a lot can be pulled over from the set I already have! I’ve combined these here with the old tiles, although I’m not sure how clear my intentions are for their use yet as I haven’t constructed anything from them yet. I’ll probably do this straight in the engine over the top of the old tiles.

I’ve also tried to work on some environmental tiles more, especially after finishing up the level sketch. The most important point about creating these tiles is to make sure they’re not boring, as these are going to be repeated A LOT throughout the level. I used color explorer again to get some good ground colours, based on a Japanese mountainous setting (obviously, Fuji was the first mountain to come to mind at this point…)

My rock colour has ended up being that greyish-purple on the bottom row. It doesn’t seem to clash with the current wood colours and pinky-reds, although I’m toying with the idea of having coloured grass which matches the colour scheme of the level. This may change when I combine all the elements together, I’m not sure if pink grass is a little too much… I’ll be working on this much more over the next week, so expect drastic changes all round!