Sleepy Mouse is the little mouse who likes to sleep, loves his cheese, but hates to wake up hangry!
Furniture Restoration to Game Development
I’m Dan Norris and by day I work as a French Polisher. It’s an artistic trade that’s hundreds of years old and is very low tech. I spend my time restoring old timber furniture and architectural fittings (doors, handrails, etc), using traditional materials and techniques. French Polishing, of course, has next to nothing to do with making a computer game, in fact, it may well be the polar opposite. It does, however, allow me a great deal of thinking time whilst I’m working. Restoring furniture can be a slow and painstaking process. It’s a beautiful thing but it uses skills that are mostly physical and artistic, so uses one side of the brain. I needed balance and a mental challenge of a very different kind, so started thinking about building an iOS game.
I’d built prototypes of games when I was younger but never actually completed a full game. I learnt very quickly that building the mechanisms for a game and maybe creating one or two levels is an entirely different process to building a completed product, ready for release. There’s so many things to think about, things I’d never even considered when making a prototype; puzzle difficulty curves, UI for every eventuality, optimising and building graphics for different devices, App store deployment, source control, not to mention a social media campaign on release. It’s a hard process and like French Polishing, requires a lot of patience. Sleepy Mouse is almost finished and ready to be released, here’s how I started.
Evolution of Sleepy Mouse
I wanted to make a 2D Puzzle game, that was simple but compelling. Something that anyone can pick up and immediately get the hang of.
My very first idea was to make a version of the old Coins game kids play at school. The player has three coins placed on a hard surface (desk is best), which they flick to move. The moving coin must pass between the two other coins on any given move, the aim is to work towards a goal and eventually flick one of the coins into it.
I built a version with the idea that each level would be a puzzle which could only be completed by moving the coins through the level, using the pass-between rule. It took quite a long time to build but in the end, didn’t really work that well. The whole flick mechanism is clumsy as accuracy is difficult on a touch screen (you can’t see the screen below your finger). Also the scope for creating a decent amount of puzzles was limited. This was a serious issue as I wanted to make a game with more than just a few levels.
I went back to the drawing board and started to analyse how most of the successful mobile games work. They have very simple but clear input mechanics (nothing fiddly), often a single click or swipe. They have huge scope for making lots of different types of puzzles, even with a limited number of obstacle types. They also have very strong characters and fun stories. I realised that coins didn’t cut it, it failed on most of those points, so I began to change the whole concept, to simplify it and try to introduce some sort of character. I decided to use only two coins, both with a character sitting on them, one would be asleep and the other would be awake and it’s job would be to push the other around to get to some goal. This became two mice, one keeping the other asleep by getting it to the cheese. I could feel it was almost there as an idea but it still felt clumsy and a bit limited in puzzle scope.
I hit on a silly bug during development one day, I’d imported the sleeping mouse graphic and the cheese graphic the wrong way round, so now the sleeping mouse would be the goal and the cheese would be the object moving towards it. It suddenly felt right, I simplified even more by taking away the other mouse and the Sleepy Mouse concept was born. A stationary sleeping mouse, where the aim is to get the cheese to the mouse and keep him asleep. Each level would be about avoiding waking him up, so alarm clocks and noisy radios were the very first obstacles. At the same time, I changed the flick to be a pull back and aim mechanism for moving the cheese, which worked so much better.
There’s an amazing moment that occurs when you put a few test levels together and it just works. It just feels right and you can already see lots of scope to move the game forward with different types of obstacles with exciting ways to use them, to create great levels. You can see how puzzle progression will work with these obstacles, taking the player through more and more interesting setups, gradually getting harder. It’s an incredible moment, when it works. My first two ideas, always felt just ok but there were questions over how I could move them forward. Sleepy Mouse felt right immediately.
One of the real positive things about being a solo developer is that I was able to change my idea for the game so quickly, without having to discuss it with anyone. I could keep trying new ideas without holding anyone back, or incurring any large development costs, just my own time.
Having a good idea and a fun prototype is one thing, seeing it through to a fully fledged game is a different challenge altogether.
I tried a few different ways to build the game, Cocos 2D, Xcode with my own Physics engine (a big mistake), Xcode with Box2D and finally got round to trying Unity 3D. I built a quick version of the game mechanics in Unity, which took a couple of hours and was utterly blown away by how easy and quickly I could put things together. Building silly games, as a kid in the 90s, I’d had to build level editors and to handle all my own drawing (building buffers off screen in memory to then switch out with the current screen image). Unity handles it all for you. An animation that may have taken hours or even days to build and get smooth, can genuinely be a matter of a few minutes work with Unity.
I took my raw idea immediately to development and didn't have to worry about graphics pipelines, physics engines, or the most efficient way to import a sprite and simply built my game. Development teams can handle this sort of thing, it’s very time consuming for a solo developer, so Unity has been an indispensable tool to the whole process.
From the very beginning of development, I decided Sleepy Mouse would be a free to play game but still wanted the ability to generate some revenue. I’m really against pay to win games, or games that are overwhelmed with ads. I added in Unity Ads as a feature to enable game players to skip levels by watching an ad, allowing them to further their progress on the game but not forcing ads upon them. It worked from the start and is a means that players can get through the whole game, without any ads if they put the work in to complete it.
Unity also works beautifully with Everyplay and was really easy to integrate. This is a great way for players to show off their best shots to friends through social media channels and in turn generate additional exposure for the game. I let my dad, whose not a technical guy, play an early version of the game and one of the first things he sent me was an Everyplay video of him completing a level. It was a great moment.
Solo Development Challenge
Even having a great tool, even knowing that I had a good idea, one that I really believed would work, solo developing a full game is a tough process. Finding time whilst having another job, trying to motivate myself during those times when there seems like there’s way too much to do, or just not making any progress. Pushing through the times when I needed to completely re-do large chunks of code because things that worked well on the PC were way too slow on a mobile device. All this, with the ambient background noise of a new born baby (my perfect little girl Ellie) screaming the place down, made things a real struggle.
You hear great stories about very successful games being built in a few weeks and everything going perfectly, they release and make loads of money. These are inspiring stories but in general I believe solo development is more marathon than sprint, especially if your game has hand-built levels rather than self generating (endless runner type). The words of Van Gough, in the quote above couldn’t be more true for us indie developers, it really is about doing small pieces of a project at a time and slowly pushing forward.
To cope, I made a personal policy to do one Commit a day, in my source control software. Sometimes that might be a few new levels or a large piece of new development but more often than not it was a change in position of a piece of text, or adding an extra turn on a level, some very minor thing but always pushing forward every day.
Including all the work on the original two ideas, before settling on Sleepy Mouse and with a few months break when Ellie was born, it’s taken the best part of two years doing about an hour a day after work, to complete. It's been a fairly slow process but by doing those little bits every day and not thinking too much about how big a task is ahead means you wake up one day and the project is almost done.
Sleepy Mouse is just a month away from being released, it’s been a long, hard process but without doubt one of the most enjoyable and fulfilling projects I’ve ever worked on. I think I’ve achieved what I set out to achieve. Sleepy Mouse is a simple, fun and utterly addictive game that anyone can play. It’s had great feedback from early testing and I can’t wait to release it on the App Store in August.
Enjoy the fact that you’re a solo developer and that you answer to no one and if, at the drop of a hat, you want to change everything about your game, then you can. Don’t be afraid to let your ideas evolve, play with different concepts in the early stages. Prototype and sketch things out in your tool of choice and get a feel for how things work. Once you hit on a good idea, one that works and is fun when you play, push past all your personal doubts and make sure you see it through. Finish it. Maybe it’s because it’s so hard that the finishing is so sweet.
Sleepy Mouse is avalible for download now on the App Store.
Stay up to date with planned release dates for Sleepy Mouse on Twitter @SleepyMousegame #SleepyMousegame, on Facebook http://www.facebook.com/sleepymousegame and www.startgetready.com.