PKTBALL - The Biggest Small Game We've Ever Made
After the frantic development process of HoPiKo, our last mobile game, the two of us (me: @roballison & Simon: @si_renshaw), decided to go with a much simpler/smaller concept for our follow-up game. PKTBALL had been sitting on our "ideas shelf" for a couple of years and it really seemed like the perfect moment to begin working on it.
At its most basic form, PKTBALL is a toy based on a touch-screen control mechanic. This is how we start most of our games. The first stage is creating a "toy" that you can easily control on a touch screen (which can be hard to do!), then add 6-9 months of tweaking and a game is made. That's probably the worst gamedev TL;DR ever.
When we made the initial prototype, it was the control mechanic that really made it special for us. It was what made us think that we could really make a great game out of it.
On the surface, PKTBALL can look like a re-skinned (albeit with beautiful artwork from Simon ;) ) "air hockey" clone. The difference in gameplay, however, is huge.
Character movement
The way we move the character around the screen is one of the most important aspects of the gameplay and we put a lot of work into getting it feeling right. The character moves in relation to the player's finger, but not in 1:1 ratio. For example, if the player moves their finger 20px to the left, the player will "run", say, 45px to the the left. The character also doesn't "run" at the same speed the finger moves (as you can move your finger REALLY quickly in relation to game-speed) - the character runs at its own pace. The character's speed is also "smoothed" with easing formulas to make the movement feel more natural.
Something else to note is that it doesn't matter where your finger is on the screen. It doesn't need to be near/on top of the player, just somewhere on the screen. This allows a player to take full advantage of the screen revenue with minimal finger obstruction.
The final effect feels much more like you're actually controlling the character, rather than just sliding your finger to the ball like in a "point-and-click" sport game.
Hit mechanic
The way the character hits the ball was the first thing we discussed when making the original prototype. Initially, there was an energy ball that you "charged" up and then "released" to cause an explosion on the court. If the ball was in-range of the explosion, it would be hit to the other side of the court.
This was immediately fun for us while play testing, however explaining it to other people was very difficult. During play testing, most players wanted to just "tap" the ball and didn't understand why that didn't work. After countless iterations we ended up going for a more real-world visual; tennis rackets.
By adding tennis rackets into the game, new players were able to pick up and play a lot quicker. It's much easier to explain "swing your racket" than "charge your energy ball just the right amount and then let it go, causing an explosion near the ball".
EDIT: A few people have asked why the hit mechanic might seem "reversed". This is due to doing a lot of play testing with new players. The problem with the "unreversed" hit mechanic was that, due to the way you chase after the ball before you hit, the player would always hit the ball into the wall. This would cause the ball to just bounce from side to side EVERY shot. As soon as we "reversed" it, it encouraged cross-court play and it was a lot more fun.
Multiplayer
The very first prototype of PKTBALL was played in a small café in Chapel Allerton, Leeds. There was no "AI" made yet. Simon and I played against each other. The prototype was broken, ugly and full of bugs, but loads of fun. And it really brought out our competitive side!
We decided early on that we'd really like to get a great local multiplayer mode in the game. The fact that you can have 4 people playing, crowded around an iPhone 5, is amazing.
Music
I love making music. PKTBALL has over 20 different characters that all needed a unique soundtrack. And there was also other in-game music that needed making, too. In total, I think there are around 30 different tracks of music in the game.
I uploaded some of the tracks as I was working on them to get feedback. The most fun thing about making the music for this game has been the fact that most tracks are very different in style. We really wanted each character to bring a whole new feeling to the game, both visually and audibly.
It's also worth noting that my cat, Travis, is a playable character in PKTBALL... meaning that I wrote a song for my cat. 😽😽
Customising the game for each character
Simon does all of the artwork, so I can only really give a technical overview of that side.
Due to all of the different styles and themes to the game, a lot of work had to go into making the UI, audio and gameplay customisable. It was also really important for Simon to be able to tweak everything without having to write any code.
Each character's "theme" has the following:
- Sprite sheet for character. This is a small spritesheet for the elements that make up the character's body.
- Sprite sheet for court. Anything that appears on the court, including particles, custom UI elements and flowers.
- Voices. Each character has a unique voice. Most are recorded by me, Simon or our families. Some are electronic sounds (we have robots!).
- Music.
- Colour Scheme. This is a named list of colours in RGB format. This means that in the code I can simply set an objects colour to "mainBackground" and the colour scheme system will return the correct colour for the current theme.
- Animations. We used a program called Spine. OH MY WORD SO GOOD. Simon LOVED using Spine, and you can tell when you see the character animations.
AI
Many, many hours went into tweaking the way the AI plays. The AI's behaviour is controlled by a set of rules that change based on the player's current score.
An example of how the AI's behaviour changes based on the player score is where the AI aims to hit the ball. In the early game, the AI will aim for the player. This gives new players a chance to work out how to return the ball. As the player's score increases, the AI's has a greater chance of hitting more difficult shots. When you're in the higher scores, the AI will actively try to outsmart you by mixing shots and rhythms.
We've made charts, play tested for hours and tweaked these settings for months to try get the AI feeling natural, challenging and fair.
Pricing
As I've written in previous posts, PKTBALL is our first ever free game. We never thought we'd make a free game, but PKTBALL doesn't feel like a "premium" game, and the market has changed so much in the last year. Some companies have recently proven that you can make "cleanium" games, games that are freemium, but not evil ;). This really made us think that we could make PKTBALL the way we wanted to.
PKTBALL is free to download and play. There is an in-game currency (coins) that can be used to have a go on the grabber mini-game. Coins cannot be bought with real money, but can be obtained by completing in-game challenges or by watching the odd advert (outside of gameplay).
Each character can be won on the grabber or purchased with an IAP. The IAP gives players an opportunity to get their favourite character instantly, or if they really like the game, they can directly support us.
Grabber
We needed a way of distributing new characters to players. Many other games use a toy/gumball machine, but we really wanted to make a mini-game out of ours. Rather than just pressing a "give me a prize" button, you'd have to earn it!
The grabber is made using Corona SDK's Box 2d physics engine, so the characters' heads bob along and the crane/claw can bash them out of the way.
The most we've ever worked, ever
PKTBALL was started as a small game, but that soon changed. With all the customisation, UI, voices and music the score soon got a bit out of hand. Unfortunately we had already set a release date of April 7th and, time was running out!
It's important for me to say that I completely adore my job. Every moment that we're making games, we're thankful that we're in this business. There are days where we're doing something like throwing slops of wet tissue in a bowl to get a "sloppy fish" sound effect, and we say "I can't believe this is our job...".
That being said...
The final week of a game development cycle, like all developers will know, can be very stressful. Lots of late nights, endless weekends and loads of terrible food. Due to our time constraints, our final "week" development was almost 3 months. We both worked 7 days a week throughout February and March, mostly 12-14 hour days. We are very thankful that our families still speak to us!
The end product
We're both really proud of PKTBALL. I really hope that players will be able to see the amount of effort we've put into the game. We've tried to make it easy to play at the bottom end, and then really challenging (like a Laser Dog game should be) towards the top end. This will hopefully satisfy our existing fans and potentially introduce new players to Laser Dog Games.