HoPiKo is an intense speed run platformer where you get to save gaming. Jump from platform to platform avoiding death, exploiting shortcuts and ripping through 100s of hand-crafted levels, each one dropped into a 5-stage mini run designed to break your mind!
[u][b]What's HoPiKo?[/b][/u]
[b]Defining the game[/b]
When people ask you about your game, they normally ask what genre it is. HoPiKo doesn't fit perfectly into the "platforming" genre as you never run, there are, however, lots of platforms. When we’re asked this question, we normally say something like:
"HoPiKo is an immensely difficult speed-run platformer set in zero gravity where you will die a lot."
[img]http://i.imgur.com/JDm0slK.png[/img]
[b]The story[/b]
The world of HoPiKo is all about saving gaming. In the good old days, the HoPiKo lived and worked inside games consoles, making sure the games kept running. All was well, until the evil nanobyte virus spread throughout the world, enslaving the HoPiKo.
https://www.youtube.com/watch?v=rRSv_8DICG4
You play as the last remaining free HoPiKo, found inside an old discard NES cartridge. Enhanced with your glowing power gloves, you must navigate the infected landscape and punch the virus directly in the face. With each punch, the virus becomes more and more corrupt, until, on the fifth punch it explodes, releasing the captive HoPiKo.
[img]https://media.giphy.com/media/l46Ci9ryOdaMl43Ek/giphy.gif[/img]
[b]HoPiKo world[/b]
Each level contains platforms that can be used to traverse the world. As the player progresses through the game, they will be introduced to more and more challenging platforms. Each platform brings a new game mechanic into play that can be used in various ways.
[img]http://i.imgur.com/FV7mWNC.png[/img]
The nanobyte virus has also littered the levels with its own platforms, designed to destroy the HoPiKo on touch. These platforms also increase in difficulty as the game progresses.
[img]http://i.imgur.com/RAcEpaR.png[/img]
Watch as their eyes follow you around the levels!
[img]http://i.imgur.com/gBXPn6I.png[/img]
[b]Prototyping[/b]
HoPiKo started as all of our games do; a simple idea and a game jam. The initial prototype was very different from the end game. HoPiKo was originally called "Debris", and was a follow-up to our previous game "ALONE...".
This very basic "programmer art" sketch shows the astronaut, that was once piloting the
[img]http://i.imgur.com/AH29Egu.png[/img]
out-of-control pod, stranded in a debris field. The player would have to slowly navigate the zero-G environment looking for supplies.
While this was fun for a while, Simon, as he always does, asks the very simple question:
[b]"Can we make it faster?"[/b]
[img]https://media.giphy.com/media/3oz8xRC57CGzSzhNaE/giphy.gif[/img]
The above gif shows a very early gameplay test as a proof of concept it’s using randomly positions blocks and obstacles. This was a lot more enjoyable to play than the slower version, and when the randomly positioned blocks spawned in the right place, you could get a really skilful feeling run.
At this point, it was very obvious that we were going to need some sort of level editor for us both to create and test levels. This was where my awesome programmer art came to use once again!
[img]http://i.imgur.com/Lfjsc2p.png[/img]
As you can see, the above is possible the greatest UI ever created. This is actually the system we stuck with all the way through development. It's ugly, but does the job. It saves the level data as a json string to an online database. This allows us to create levels anywhere, using the editor on our phones.
[img]https://media.giphy.com/media/l3vRligSca62iEmDm/giphy.gif[/img]
Simon and I began making more and more complex levels to test each other. We still didn't fully have the game-loop thought out at this point.
[b]Game Loop[/b]
A problem that took a long time solve was how a player would actually play these levels and progress through the game. We wanted to keep the levels compact, but really difficult (lots of death and restarting to learn how to complete them. As a level can take as little as 2 seconds to complete, we decided to string 5 levels together to make a run.
[img]http://i.imgur.com/0ZopqyG.png[/img]
As soon as we started testing the 5-level-run system, we LOVED it. It solved a lot of problems and also has a lot of benefits:
[list]
[*]It gives the player enough time to learn the level structure and perfect their path to the end.
[*]It gives us greater control over the difficulty. For example, in a run we can have some REALLY difficult levels sandwiched between easier levels.
[*]We set par times for each level, meaning if you complete all levels super-fast, you par the whole run.
[*]Splitting the gameplay into 5 smaller levels reduces the amount of objects to be processed, giving us better gameplay performance.
[/list]
[b]Controls[/b]
HoPiKo uses a unique control mechanic. Using the right analogue stick, you aim where you'd like the character to jump and then "release" the stick, allowing it it to recenter. We originally tried aiming and then pressing a button, but this was slow and not nearly as fun.
[img]https://media.giphy.com/media/3o7TKFDg9tsZZvz1qU/giphy.gif[/img]
In our extensive play tests, once a player has got their head around the controls, they can play very, very fast, which is what the game is about!
[img]http://i.imgur.com/mnWfeYb.png[/img]
You can actually play the entire game one handed. We have enabled the right stick as default, and disabled the left.
The reason for disabling one of the sticks is due to results from our play testing. Naturally, you want the left stick to control the movement of the character in a platformer, as that's how it's always done. HoPiKo is different though, as you're not running left and right, you're aiming and jumping. For most people that have played first person shooter games, you've been trained to aim with precision using your right thumb. While this might seem like the wrong way around at first, you'll have to trust us that most people are more accurate at aiming with their right thumb.
There is of course and option to switch which way around you'd like to play.
[b]Style[/b]
HoPiKo's style changed a lot throughout development. As the gameplay got more and more difficult, Simon reflected this is a darker feeling art style.
[img]https://static1.squarespace.com/static/5164428ae4b09c821721640a/t/578f956f03596e4c83979c7d/1469027708267/?format=500w[/img]
Right from the start of development, I made the game in a way that allowed Simon to easily tweak the entire colour scheme of the game and UI. This meant we could very quickly change the entire feel of the game in specific levels, adding to the player's feeling of progression.
[img]http://i.imgur.com/mtqLBHL.gif[/img]
In order to colour the entire game, it meant that every single sprite is exported from Illustrator as white. We'd then layer up the sprites to create the different colours in each object.
[img]http://i.imgur.com/quqHtl8.jpg[/img]
While this technique worked really well for us, it got quite complicated when, for example, the player is made up of 7 layers and has 10 different animations. That's 70 animations. Quick maths ;)
This is a technique we also used in another one of our games, PKTBALL.
[b]Putting it together[/b]
Both Simon and I were creating a lot of levels for the game. There are nearly 1000 levels in the database. We needed a way of putting them in a sensible order so that the game felt like it had a natural progression in terms of difficulty and what the player sees.
I added an option into the level editor that allowed us to rank the levels in difficultly from 1 to 10. I then created a web based editor where we could easily see what each level contained and how difficult it was. Using this, we grouped together levels that were similar.
[img]https://static1.squarespace.com/static/5164428ae4b09c821721640a/t/578fa5c646c3c4bc73a72748/1469031914788/?format=1000w[/img]
Using this data, I then created some graphs so we could easily see an overview of the game's difficulty progression. This became incredibly useful as there were so many individual levels to work with.
[img]https://static1.squarespace.com/static/5164428ae4b09c821721640a/t/578fa69b2e69cf4e4e074613/1469032094506/?format=750w[/img]
[b]Game feel[/b]
HoPiKo is a fast game. There are several things we've added to make it play at a pace that a human can cope, but feels even faster.
Firstly, a lot of work has been put into the camera movement to ensure that it feels as fast as possible, yet allowing the player to actually play. When the player is aiming, the camera zooms out slightly, and moves towards the aiming direction. As soon as the player jumps, it starts zooming in. This really increases the pace of the game.
[img]https://media.giphy.com/media/3o6ZtgYFWimLx1XewM/giphy.gif[/img]
We've also added a subtle bounce to certain platforms, this adds to the feeling of motion, even when the player has reached the end of a jump.
Particles, particles, particles. There are a lot of particle effects in HoPiKo. Spawning, jumping, landing, dying, winning and so on. This cements the character in the world as they are directly interacting with the environment.
A massive part of what makes HoPiKo feel the way it does is the sound effects. They range from complete 8bit noise effects to synthesis. When you land on a platform, there's a real "thud". You need to know what's happening before your eyes have even seen it.
Thank you for reading this HoPiKo development post! Next week we will be talking about the music in the game!