After almost 2 years I can finally say it – it’s done! Well, I will have probably fix some bugs and maybe add some small features based on feedback from players but still, We can finally release our android game.
(you can check it out here!)
Doge and the Lost Kitten is a platformer that is focused on jumping and avoiding enemies. You control a cute doge without any weapon so you have to be a pacifist. Fighting evil knights with swords is not an option. Game has about 35 short levels plus a boss fight at the end. Every level has three bonus challenges: collecting gems, speed run and finding hidden “golden kitten” so you have to complete each level few times to max it out. It has also few pretty funny storytelling cutscenes.
Such Small team, so many stuff to do!
We crated Doge and the Lost kitten in very small team. When your team consist of only two people with very little experience in game development industry you have to be prepared for tough challenges and to learn to a lot of new things. There are a lot of roles to fill. You need a 2D artist, animator, programmer, game designer, level designer and a “sound guy”. So basically I’ve started as a programmer and ended up doing stuff related to every aspect of game development. I was the only programmer, animator and level designer. My girlfriend Caroline was our lead artist. She made 95% of our awesome looking 2D art even though she professionally works as a C# programmer. Personally the hardest thing from my perspective was audio design. Even though I play the guitar and bass I know pretty much nothing about how one should approach sound in a video game. I don’t know why but I didn’t research much about the topic and decided to “just do it” with my limited knowledge. My audio design workflow was pretty simple. Basically I tried to find in the internet (free resources or audioblocks.com) sounds for as many objects in the game that just seem to fit well and edit it a little bit using Audacity (only some basic stuff like cutting, looping and maybe mixing few sounds together). I’ve made up this strange rule that “a sound is production ready when it seem transparent and doesn’t annoy the player”. By transparent I mean that sound itself only amplifies visual effects and player doesn’t think much about it. Funny think about audio design is that every sound you add to your game you realize that some other sound is missing so at the end pretty much almost every animated or Interactive object has to make some sort of sound to achieve the “natural feel”. The saddest thing about audio design for a mobile games like Doge and the Lost Kitten is that a lot of people won’t even enable sound so all effort in this particular case is wasted.
Doge and the Lost kitten was supposed to be a really small and simple game. Our first concept was totally different from what we ended up with. We wanted to make a simple game that is a little bit similar to a pretty old game called Icy Tower. It wouldn’t be a classic platformer that it is now but rather an endless runner where you have to go up as high as possible. We wanted to create a dog hell where you would had to run away from evil cats and flames. The reason we abandoned the original ideas was that we simply couldn’t make good looking hell. We tried different approaches but the final results wasn’t really satisfying so we decided to move the entire setting form hell to castle. Gameplay wise we decided to make a platformer and not an endless runner after we made first prototype with basic movement and some platforms you could jump on. Game with platformer like level design seemed more fun than trying to get higher and higher all the time.
We made our game using unity and I have to say - it is awesome! Well, maybe not as awesome as I would like it to be, but still… awesome! Before making the Doge and the Lost Kitten I had some experience with C++ and I made few small games before using Unity and I have to say that I don’t want to go back to writing my own C++ engine. Writing your own engine is super fun but when you want to finish your own game in a very small team in-house then your own engine can slow you down significantly and chances that you will make something better than something that already exist are very small. I don’t want say that making your own engine is a terrible idea and It won’t work but in my opinion you can greatly benefit from many awesome features that those engines are packed with even when you don’t need them all.
Time for some random advise!
If you are still reading this blog there’s a some chance that you wanted at some point to make your own game. My advice is that you should try! Well I can even give some more specific advise:
- Start small. The smaller the game and the team the bigger the chances to finishing it in a reasonable timeframe. Don’t make next big MMO!
- Choose art style that enables you to produce game assets fast. Making a single realistic 3D character can take even few weeks. In this time you can create tens of low poly objects. You don’t need super realistic graphics for game to look good. There are a lot of examples of games that as both beautiful and rather simple.
- Create small tools that will accelerate your work when you need to do something repeatedly. Writing tools will accelerate your work a lot but make sure to not overkill. Try to predict if creating a tool will actually save you time. You want to spend majority of your time on your game not on tools. Sometimes good level design tools will open new awesome possibilities and will make your game unique.
- Don’t write your own game engine. There are a lot of great engines out there that will accelerate your work greatly. Even if you’re a C++ master you will be more efficient using a game engine (like Unity) that you don’t know yet than writing your very own engine from scratch.
- Establish solid core gameplay in the first phase of development. Program a prototype that shows all essential mechanics (and nothing more!) and try to fix stuff that don’t work. Make sure that those essentials are great. Ones you establish good core you will can be pretty sure that your game will be fun to play.
- Don’t drastically change the core of your game in the middle of the production. It might sound obvious but somehow people manage do that all the time when developing their games. When your prototype is good enough there is no chance that you will need to make a big change. Even when your idea is brilliant it’s better to keep it for a next game that rebuilding your entire current project. I don’t say that you shouldn’t add stuff that you didn’t anticipate at the begging of the project I just say that you shouldn’t entirely reinvent your game all the time when your prototype is your prove that your game will be fun when completed.
- Iterate over your ideas and implementation. Don’t plan every single detail upfront. You only need basic vision of a final product based on your prototype when you start. You will get a lot of new ideas during the development so make sure that every feature that you add brings something meaningful to your game. Don’t add stuff just for sake of adding. Everything you do cost time and you don’t won’t to lose it for something that isn’t fun and not well thought-out.
- Make a game that you enjoy to play. When you like playing your own game you will be much more excited about creating it. Excitement brings a lot of motivation to work on the project and without it will be super hard to finish your game.
- Try to work every day on your game. Avoid long brakes from development because you will quickly lose all of your initial excitement. the longer the brake the harder it is to come back and regain your motivation. Making even a single small task everyday will greatly increase your productivity because you will most likely remember all necessary details that are lost after long brakes. Have a clear plan what to do few steps ahead. Work will go much faster when you know what you are doing and what will be the next step. Writing down a to-do list might help a lot.
- Ask your friends for honest opinion and watch closely their reactions. As a developer your judgement about your game will be clouded because you are emotionally attached to your game. That’s why you need some external help to make sure that you are not off track. When letting your friend to play your game try to explain them as little as possible and just let them to have fun with it. Keep in mind that you can’t blame people for not understanding your game because it’s ONLY your game’s job to present itself clearly with some sort of tutorial or little hints. When you want to get truly honest opinion you have to observe non-verbal communication because most people won’t tell you straight up that then don’t like your game. When you give some your phone with a fresh build on it and they tell you that your game is cool and then your phone immediately returns to your hands it’s not a good sign.
Releasing the game doesn't mean that you forget about it and make another one. I'm pretty sure that people will find some bugs that will be needed to be fixed. Also i'm thinking about making iOS and PC versions. Unfortunately making iOS stuff would require some hardware investments because you need to enter the evil world of mac os to publish your game on appstore. As far as PC version goes I would have to rebuild entire UI and add some more content so it's not coming any time soon.
We would really appreciate your support. Every download, like, share helps a lot at this point! Here's some links if you like our game and you want to support it: