Ten Ton Cat

Mission Statement

"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 or Wizball. 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.

Process

  • 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 methodology I experiment with new ideas, getting them out quickly and learning from the results.
History
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 duh-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.

Conclusions

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.

Implementation

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.

Conclusions

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 review 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 this video. 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.

Sleepy Cow

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.

Implementation

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.

Conclusions

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!
About Me

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 mobile.

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.