Ten Ton Cat
"Ten Ton Cat's mission is to make quirky games in the ways of old."
Back in the old days, games were whacky like
Revenge of the Mutant Camels
As games got bigger, companies were less willing to take risks. Marketing departments decide what games to make
based on which genres are hot. Designers report to lead designers who report to producers who report to external
producers. Creative vision is blurred and homogenized. The ideas made on a whim, or the quirky
humour born of a late night coding haze are lost as everything becomes all too polished, professional
and safe. The result is endless sequels and first person shooters, technically impressive, artistically
beautiful but after a while all a bit samey. Then came the indie revolution: World of Goo, Minecraft,
Papers Please, FTL and many other brilliant ideas offering something fresh and new. Better middleware,
lower costs of distribution and marketing made it once again feasible for the small team
to make creative and original games.
Ten Ton Cat aims to make small games which are fun, but also a bit quirky and a bit personal. There is
a single developer doing the art, sound, design and programming. Some external resources are used including
fonts, sound effects and tools.
- Start with an idea
- Create and release a minimum viable product
- Gather data on product's performance and analyse points of success or failure
- Either improve product or pivot to new idea
My primary discipline is programming, my art is always going to be a bit ropey but with hard work and
refinement I hope to make it good enough to not raise suspicion.
Broadly following the Lean startup
I experiment with new ideas, getting them out quickly and learning from the results.
A brief and incomplete rundown of the games I've made so far.
Lucky Rabbit Slots
For my first game, I decided to build a 25 line slots game for Windows Phone. At Arooga, the last company
I worked for, we tried a number of different genres including slots. As a consequence, I learnt a
lot about how these games work, particularly how to balance them and create an authentic experience.
I was reasonably satisfied with the quality of the app. I went to the Windows Store and played the highest ranked games under 'slots';
whilst some of the other games were undoubtedly better, I thought my app compared well to the majority. I opted for a clean and bright
art style which made the symbols easily recognisable and also helpful for the target audience, who are over 50 and may
have difficulty seeing detail up close without reading glasses.
A lot of work went into the reel animations, many of the competing apps had only very simple animation. In some cases
the reels don't even move, they use image cycling or a blur to fake motion. At Arooga we spent a lot of time experimenting
with different animation types: different speeds, blurring, spring or sinusoidal motion at the start and end.
There were some very interesting findings: our web game could run at a solid 60 fps but as soon as you ran
Flash in another tab, performance would become choppy and this happened regardless of how powerful your machine was.
This was probably a common scenario as users may well have a YouTube video or even an advert running in another tab. So we
tried dropping the frame rate to 30 fps, unfortunately you would still see stuttering on the reels if you had a lot of stuff running.
Bizarrely the solution came from the speed of the reels. We found that if you span the reels at a certain rate, even though stuttering
showed on the profiler it still looked perfectly smooth. I even captured video of this happening to make sure I wasn't deceiving
myself. Writing Lucky Rabbit Slots in native code with Direct3D for Windows Phone meant it was easy to reproduce the same level
of animation quality, especially compared to Flash which took an awful lot of work. The key feature of the LRS animations are:
- Smooth and interesting animation because of d3d and spring mechanics
- Non uniform tempo when slots land (difficult to explain in text but the slots land it sounds like: duh duh
- Spins rate mimics human breathing (12-20 times per minute)
Although the game seems simple, there is actually a lot of work behind the scenes. For authentic 25 line slots, the
designer can only control: the rules of the game, how the reels are laid out and how much the symbols pay. For this I built a build a simulator
to verify the game would behave as expected. This allowed me to see how the game would play over millions of spins and gather extensive
and detailed data about the wins and losses. Despite only having control of the reel layout and how much each line pays you still
have a lot of control a large number of factors:
- RTP - How much the machine pays back on average, LRS ran at 96.3%
- How much each symbol pays on average. You want to balance this so they are roughly equal, low symbols
land more often but pay less. The opposite is true for high value symbols.
- Hit frequency - How often a spin will result in a win, LRS was at 45%.
- LDW rate - Assuming a 25 line bet you will occasionally get one or more winning lines, but will actually lose more
than you bet. This is a (LDW) loss disguised as win.
There are also other tricks you can do with the reel layout, like repeating patterns of symbols to make the reels seem shorter.
Players will often look for patterns as the wheels spin.
In the end, I had a big problem getting users to even try the game. Hundreds of apps get released per day on
Android and iOS with quality and choice being generally higher as well. By targeting Windows Phone, I'd hoped
to tap into a smaller but also under-served market and have a better chance of store placement. This unfortunately
did not happen, under a search for slots I found my app placed lower than even non-slots apps like a GBA emulator
or Connect 4 clone. After trying cross promotional networks and a small advertising spend I realised my options for
cheap promotion were limited. Slots games are not particularly glamorous and games which break the forumula have
historically failed. The genre of game does not lend itself well to social media sharing, there are few slots review
sites and players do not tend to visit them anyway. At this point I decided to produce something more along the lines
of something I'd want to play.
White Fluffy Deadly
I have a fairly broad taste in games, I like RTS (Starcraft, LoL), FPS (Destiny, Overwatch), RPGs.... the list is very long,
basically pretty much anything except realistic sports (FIFA) and simulation games (Flight Simulator). There are a
lot of games I'd like to make, most of them are either beyond the scope of a single developer or would take a number
of years. This would be against the lean methodology I've adopted; I want to make a few bets rather than one big
one. So, I forsook the post-apocalyptic space exploration Ico type adventure game and the monster dungeon where you
try and survive an evil chicken (there are some awesome weapons but ultimately the chicken is indestructible) and went
for the tactical sheep defence CCG shooter.
The core idea is this: it is a portrait mode, top down mobile game. Sheep spawn at the top and if they reach the bottom
then the game is over. You have a number of weapons which you can use to shoot the sheep directly and defences which
you can use to slow the sheep, block them or corral them so they bunch up and can be destroyed by area of effect
weapons like missiles. To make things more interesting the weapons and defences you have available are randomly picked
from your deck of cards. You build your deck, but its order is random.
The idea was inspired by a number of games I've played, including one of my all time favourites Chu Chu Rocket, the idea
of channelling is similar but subject game physics rather than using a fixed grid. I also wanted the player to be able act
directly so you have guns and missiles to shoot the sheep with. This should lead to a more intense experience with the
player having to accurately shoot sheep whilst thinking about base building and the state of his defences.
Graphically I do a few interesting things. The sheep are cel shaded
giving them that lovely cartoony look. I was blown away by Jet Set Radio and Wind Waker is still one of the prettiest games
ever made IMHO. I realise this is a marmite thing and some people hated the look of Wind Waker, but I'm also the kind of person
that looks at Doom 4 and thinks: wow, that looks really expensive and meh that looks like every other (space) marine shooter
since, well Doom. For the outlines I use a Sobel filter which is a screen space effect which draws black when there is a sharp
change in depth. IMO it looks nicer than the inverse hull method where you draw the back faces of the model but scaled up
slightly. The edges are more consistent, sharper and uniform, especially at polygon boundaries. I also added bloom which softens
the hard edges on my low poly sheep. After some optimization it runs at 30fps on my mid-range and also an a £50 low end Lumia 435
but I have to disable the Sobel filter. The effects are somewhat let down by the ground texture and in-game card graphics, if I
was to revisit them I think I could make a decent improvement as the UI cards look a fair bet better and I found a really good
tutorial on how to paint grass.
The physics also deserves a quick mention, everything in the game is either a sphere, the ground or invisible walls on the sides.
This design restriction means that all movement can be done using ray versus sphere or the ground/walls. Boundary checks are
trivial as they are world axis aligned and you can basically subtract the radius of the sphere. In short, this combined with the
low polycount for the sheep means I can have a large number of sheep onscreen being lobbed all over the place.
I had hoped that the distinctiveness of the game, compared to Lucky Rabbit Slots, would mean I could generate some publicity.
Sadly this was not the case, I did manage to get rated as a Hero App on AdDuplex and consequently got a
on Windows Central.
Unfortunately the review did not go well as well as I'd hoped. One downside of releasing early and iterating is that people may
see a product which is incomplete or unpolished. Ususally this does not matter too much as the price of early feedback is a poorer
impression with early users. This is of course not true when it comes to a review, a big feature push just before the review compunded
my problems as I also introduced a framerate issue. Feedback from the review was definately handy, I'd made the decision to
fire the gun just above your fingertip so the point of impact and any potential sheep destruction isn't obscured by your finger.
Most players automatically adapt to this without thinking about it, but I've since added a targetting recticle to make it clear what is
going on. The reviewer was also unable to get past the early levels, this became apparent as in the review he recommends adding grenades
to the game, but if he'd have gotten to level 4 he would have unlocked the missile which is pretty much what he was asking for. As a
response I made the early part of the game a lot easier and added in some tutorial stages.
I was also coming to the conclusion that if placement on the store was looking unlikely, other methods of promotion such as reviews
and viral growth had poor prospects on Windows Phone. Microsoft also looked like it was abandoning the platform as Satya Nedalla
did not seem as committed to the Windows Phone as his predecessor. One particular turning point was watching
. It didn't make a huge amount of sense to me, he seems quite into the cloud,
I suspect he's planning on moving there but without Microsoft's wholehearted support, Windows Phone is dead. So with some regret I decided
to make a fairly big pivot to iOS/Android and also abandoning native development for Unity.
So this would be my first game on the more common platforms. I decided to try something more casual, something along the lines of
Angry Birds, Flappy Bird, Jetpack Joyride etc. Something charming, immediately accessible and hopefully with some replay value.
Tap and swipe games are pretty well catered for but motion games were less common. My initial idea was to have a fairly large cow
which the player has to tip. After some more thought, this seemed a bit limited, so I decided the player would have to stop her being
tipped and a much smaller cow which would slide around on a long platform. This also allowed me to create hazards which would force
you to move out of the way, either by sliding or jumping.
Switching to Unity had some downsides. I initially tried doing some fancy lighting effects but performance was poor on lower end devices.
Application size was bigger and startup times longer. However, I did find Unity well designed, easy to use and most importantly
very productive. A lot of coders really like doing things 'their way' and I find this can end up being the goal over actually
getting something done. Not having to design, build and debug your engine means you have more time to create game content. There are
of course weird quirks, things which you'd have done differently if you'd done it yourself and design choices which seem cumbersome
for your use case, but make a lot of sense when you consider all the other things the engine will be used for. Most of the issues I
hit were platform specific oddities, Android was very flaky, especially when using two of their libraries together (AdMob for banner ads
and Google Play Games for Google Play integration). Luckily with some nifty Googling I managed to find the necessary workarounds to get
it running. The iOS tools were better but it was still a pain because my low budget Mac Mini took an age to build the game.
Unlike the previous games I was able to share it with friends and family. This was a lot more rewarding since I actually had something
to show them which they could run on their device. Feedback from friends is always nice, but unfortunately most people will be politely
positive so it's difficult to gauge how fun your game actually is. It is useful from a usability point of view though, if people can't
work out how to play the game or get confused then it is usually pretty obvious. Also useful is the point at which they hand the phone
back to you. I've had a lot of discussions with people about the quality of Flappy Bird, but curiously a lot of the time, if you show
someone Flappy Bird, they will not return your phone to you until they get past that first pipe. I get the feeling if I could get to
that point I'd be on to a winner. Store downloads after release were pretty much non-existant which is slightly disappointing but not
to be unexpected. So many games get released, if you don't get featured then you're never going to get anywhere without doing some
marketing. I do feel I have a lot more options now, there were very few Windows Phone review sites and communities, there are a lot more
possibilities for iOS/Android. I've made a trailer this time, I've even made a song. I know proper artists and musicians would never
release something so 'rough', but also it feels kind of cool making something entirely yourself, for better or worse. When you make
everything yourself your game feels a lot more personal, especially if it's laden with in jokes that only 5/6 people will get :). The
next step is to get the website to a decent state, make a press kit and see if I can get some favourable reviews. Even a bad
ones would be good!
Worked at Climax
for 10 years developing console and PC games.
Then at spin off company Arooga
developing social games and then slots games for web and
Generalist programmer, done most game programming roles at some point Physics, AI, Networking, Server Side, Databases and also non game
stuff like big data and analytics.