Sisyphus Job is a game written by Milos Jakovljevic of Critspot. Sisyphus Job is written using cocos2d-x. Milos was gracious enough to answer a few questions for us:
1. Tell us where you came up with the idea for this game. What were your inspirations?
As everyone knows, it is a long way from idea to a product. Inspiration for this game came from my dear friend, who was really drunk at that time and told me that should create a game where you will push a stone up the hill. At that time, games like Flappy Bird, casual and frustrating, were flooding the App Store and Google Play store, so naturally I wanted to create something similar. I started working on something like that, and after a month, had really good prototype of the game. With a few more weeks, maybe a month, I could finish it. But I didn’t like it, so took a month to rethink and create something better and more interesting. I sketched the whole game on paper, created a storyline and started working again, from beginning. The idea was to create some kind of mixed genre between platformer and endless runner, there aren’t many games like that on the store. I started working and had something really cool stuff sketched and wanted to have it in the game. But, without a goal there won’t be any product, so I had to decide what should be included for milestone 1.0.
2. What version of cocos2d-x did you use?
I created the project using cocos2d-x v3.3 if remember well. I’ve always updated cocos2d-x to latest version as soon as it was available. Mostly because of the bug fixes and some features that I needed.
3. How did you decide to use cocos2d-x instead of Unity, Unreal Engine or SDL?
I’m a Mobile Software Engineer, working on Android and iOS for almost 4 years, so naturally I wanted to write code, and not play with editors and scripts. Unity is really good, but the open source part of the cocos2d-x is even better. I could dive into the source and see what’s going on if I had any problems. Unreal was closed at that time, and their mobile support is still in a bad shape. Before cocos2d-x was using LibGDX, it’s also a really good engine. Some features from LibGDX I’m still missing in cocos2d-x. But cocos2d-x developers are catching up. For example concept of the Camera, it was really odd to switch from Camera concept to Node concept in cocos2d-x, but eventually once you dive into cocos2d-x you could find Camera same as in most of the engines, and avoid Nodes. I like to think that Camera is a window to the world, and Node is just a part of the world that should be rendered.
4. What features did the engine offer you that made development easy? What do you wish the engine did better?
Well first of all it’s C++. The most important feature for any cross platform game. Even though documentation still lacks behind, it gets better every day. There are really great features to get you going. I could write 2 pages of features that are really great, but let’s keep it short and just highlight some of the really cool stuff.
– easy integration of 3rd party libs
– scene management
– easy UI
– easy 3d API
5. What tools did you use besides the engine?
I’ve used a lot of different kind of programs to get the job done. I used Spine 2D for bone animations. R.U.B.E editor for physics, TexturePacker for packing resources, Particle Designer for creating particles and Blender for 3D modelling.
6. Did you create the art yourself? What tools?
The art was done by my dear friends from Futurianz, they were really good at following my ideas and knowing what I really wanted.
7. Did you create the music yourself? What tools?
All of the music and sound effects are done by Carl Clark from ccbeats.net. When I talked to him for the first time, he already knew what I wanted and made it into something really beautiful, you will have a chance to hear it when game comes out.
8. Will you continue to make games in the future?
Of course, I like developing games. Just the idea that hundreds of thousands, even millions of potential players can enjoy your vision of the game is really great. And you also have a chance to make people happy, or mad, depending on the game 🙂
9. Lastly, any advice for those also making games on how to get to a release point?
Well, if you go now and Google advices for making a first game, you will in 99% find an article that tells you to start with a small project just to learn. Well, don’t do that, even if you want just to learn, create a plan, make up the story line, sketch it on the paper and decide what do you want for the first release, and then start programming. Build the prototype as soon as possible, this will reveal you if your idea is on the right track and it will cut your developing time. In your mind, make sure you know that this is a full time job, and not just a hobby. This will help you to create a game and release it. Without a proper plan you will just loose your time and at the end, game will not be what you really wanted, or it won’t be finished at all, though you will still learn a lot and sometimes that’s even better. I know this is not that easy, since if you are a one man team, you will run into too many obstacles, starting from art, audio and later marketing. I know many of my fellow friends that started creating games, building a prototype and when it came to art, they just bailed out, because at that point most of the developers found out that it’s hard if you are alone with none to help you with art or other stuff. But don’t lose hope. Don’t rush just to release a game, it’s better to take more time and make it good then just release it unfinished, as Shigeru Miyamoto said “A delayed game is eventually good, but a rushed game is forever bad”, keep that in mind. If you have just started to develop games make sure to read some game development books, my favorite is “Game Programming Patterns” by Robert Nystrom. Be persistent and disciplined, use tools to help you out to manage tasks, like Trello. Don’t be afraid to ask questions and tips from other developers. Developers always want to show off, so they will gladly help you.
Lastly, ask your friends and family for support, make sure to talk to as many people as you can and tell them about your game. If you have prototype, even better, give them to play it, they will in return give you some really valuable feedback. Also show your game to a non gamers, to someone that never liked playing games, they will give you even better advices. If you are close to release, make sure to leave at least one month for bug fixing, polishing and testing the game ( depending on the project size).