My new Windows Phone game Bandinos was just released and I thought it was a good time to write another Making of Guide for those of you who are interested in how the game was created.
1. What is “Bandinos”?
65 million years ago, the world was ruled by dinosaurs. They all had one problem (except the meteor) – their babies are gone!
Luckily – the dinosaur age had superheroes.
Your job is to control the Bandinos, a dinosaur gang, to help dino-eggs find their way home. Using their various talents, they get the egg to roll across the environment.
50 LEVELS TO SOLVE
The game consists of 50 mind-bending levels for you to solve, with different ways to solve the puzzles. Each level contains collectable items – find them all and get a good ratings and unlockable mini-games! Getting the best rating on all levels unlocks new possibilities with the game, giving you an endless gaming experience.
ACHIEVEMENTS
Solve the puzzles and get achievements for your hard work. Who knows, maybe you will be able to roll a total of 2000 km? Or find the hidden ancient artifacts in each world?
MINI GAMES
The game consists of various unlockable mini-games, each with an online highscore list so you can compete with fellow gamers.
SCREENSHOTS
2. The Making of Bandinos
Bandinos is my 2nd game on the Windows Phone platform. After creating Binary Man I decided that I want to take a break from creating games and get some free evenings after work to do other stuff than coding. The issue was that I had a great flow finishing Binary Man so when that game finally was released and I had finished the “Making of Binary Man” guide, I just simply got another idea I just really wanted to make. My girlfriend did a search on “Cute Dinosaur” and that’s when the idea just kicked in – the entire logic at once.
I did some drawing and formed the idea. I wanted something simpler than Binary Man, where Dinosaurs was the main topic, and the game should be playable even for younger kids and grownups.
The idea was to roll an egg down the hill, across obstacles and landscape blocks and land at the mothers nest.
This image is my first sketch and shows the general layout. First of all, you have the egg. If you tap it, you roll it down the hill. Then you need to use helper-dinos to get the egg safely to the goal. If you can do this, you complete the level.
This meant that I needed some dinosaurs with different abilities. Combining the right dinosaurs at the correct positions will bring the egg home. I drew some dinos and cut them out so I could place them on the level I drew above.
Some early dinos
By creating these dinos, I could place them on the level and simulate how it should work, try to drag the dinos from different positions on the screen in order to understand where the menu should be and so on.
Positioning of the user interface
The logic of the game is pretty simple. The egg should use physics and roll correctly. Then you modify and apply forces and collisions from the landscape and the helper-dinos to control how the egg is rolling.
To make each level a bit more complex I decided to add some bugs that the player can collect. Each level got 5 bugs. Each of the bugs reward you with one star – so collecting five gives you a rating of 5 when you complete the level.
In addition to the normal game I decided to add mini-games. By getting some achievements and completing some levels you unlock new mini-games and mini-game levels. One of the mini-games is a typical “use acceleration and breaking to drive a Car through a landscape and the finish line as fast as possible” game. But in here, you have to use the dino inside the egg to run – To the left will roll the egg left and vice-versa.
Each of the unlockable mini-games and levels got an online leaderboard so you can compete with the rest of the world on getting the best time.
In addition to this there are multiple of achievements you can try to unlock while getting through the game. These are all about completing worlds, getting five-stars, rolling the egg 10km, finding hidden artifacts and so on – just to give the player some extra motivation.
When completing the game with a five-star on each level you unlock the “Artifact Hunter” mode. This will turn your egg glowing-golden and you can try to locate artifacts hidden around in the worlds.
3 – Creating the game
Bandinos was a really fun game to implement. I did a better job building up the game and designing everything before starting the implementation this time. I also created better and more complete tools that was a great aid when designing the levels.
First of all, I wanted physics. I knew Farseer Physics is pretty good so I just used that since I knew how it worked (I also created a tutorial on how you can implement Farseer, read it here) and it builds on Box2D. Using Farseer it was pretty simple to create the egg, the landscape using lines and the dinosaurs using polygons.
Each of the various physics-obstacles in the game got different physics properties like friction and collision categories, making it possible to control what’s collidable with what. The levels is built up using lines so it was easy to implemented an Ear-Clipping Triangulation that takes in a set of lines and generates a polygon.
This will make the world look solid, even though each levels is just a set of lines.
Each level got various properties like geometry-lines, start position, goal-position, bug-locations, hidden artifact locations, decorations and so on. Knowing this, it was easy to create a level editor where I could simply draw each level and store it as XML.
Creating the levels
The level editor is not very pretty, but it works. I want to create an online HTML5 version of this, and implement a Community-Driven world where the players can create their own levels online and play it in game. Hopefully I will get there if people enjoy the game.
This is a simple WPF applications I created from scratch using only 4 hours. It contains a canvas that represents the world. You can scroll around in it and build up the levels. First of all, you want to draw a landscape. Since the landscape was only lines, it was easy to use the WPF Line tool to draw lines from where you click on the field. I always follow a clockwise order when drawing the lines. This is because I wanted to draw grass on all lines that got a normal that goes upwards.
Once the landscape is done, you can set the start position and end position. This is simply just setting two coordinates, and a sprite is rendered on those locations:
Then you place the collectables, colored in red – to make them visible:
And then the decorations of each level like backgrounds and items. This is simply just an array of integers, each representing an integer on what GraphicsID it should render. This ID is used to look up into an array-list of sprites, and render it.
And lastly we specify what dinos should be available, grass color and background IDs – and general level settings you want to use:
When running the game, the game itself will render everything based on the graphics ID each item got. It will also check the normal of each line and render a grass sprite where the normal of the surface points towards the sky.
4- The Dinosaurs
The game consists of 6 different dinosaurs, where you control 4 of them.
The Hillosaur is a dinosaur that you can use to create jumps in the environment. It will basically make the egg jump. The more speed the egg have, the longer it will jump. If the egg is moving downwards when hitting the jump – it will get a penalty on the jump.
The Gaposaur is used to build bridges. You can place them between gaps and other places you might see it fit.
The Phatosaur will bounce the egg and give it a better speed. It the egg is moving slowly when hitting the dino, it will get greater speed. If the egg hit’s it in high speed, the egg might only stop when hitting it – make sure to place it correctly.
The Aerosaur is a flying dino. You can place it in the air, and use it as a blocker for the egg or other smart things
The Commandosaur is what first was represented as the mother, the goal of each level. But now it’s the commander. He got a long neck and can spot where the eggs are located. Then it’s the other dinos job to get the egg to him.
The Terrordactyl is the bad guys of the game.
5 – The Graphics
The graphics was drawn by myself. I’m not an artist and I didn’t have any budget to hire one so I decided to create the art myself. It was probably this games greatest challenge for me. I had to think of a very simple type of graphics, make it look funny rather than good and try to get the colors to fit at least a bit.
All the graphics is drawn with a drawing pad (Wacom BAMBOO FUN).
I needed a lot of GFX, a sprite for each level decoration, worlds, icons, buttons and all the dinosaurs as well. I wanted to make it all animated but due to limited memory on the 256 MB devices I had to keep it all very simple. Instead I made all the animations move based on the BPM of the music. So if you listen to the music while checking out the animations, you can see that it’s all in Sync
Some GFX-elements from the game
6 – Download the game
The game was published on 29.5.2012 and is available for download. I’d appreciate if you could give me a rating, and if you find any bugs or issued – contact me so I can correct them.
Thanks for reading, and I hope you enjoyed this little guide and will enjoy my newest game.
Download the game here:
http://windowsphone.com/s?appid=62d35a2f-fb44-428d-a071-5d14a3b4e6bf
7 – Thanks to
Thanks to Tuuli Savolainen for a lot of support, Thomas Beswick and Egil Hasting for helping me with ideas and general game design. Also to Lars Olav Wilhelsmen and Paul Henrik Wilhelmsen for a lot of testing, and making sure the levels are possible to solve.
Awesome Petri!
Looks great! Unfortunately I don’t have a Windows phone, only one that runs Java ME apps.
I DO have an Android tablet and an iPad….any chance you could look at porting it over to Android? (this is the much cheaper option…free to develop and test on real devices, is $25 to publish on play.google.com) I would beta test it for you 🙂
very nice 🙂
Pingback: The Making of Bandinos–a game for Windows Phone
Pingback: Making a Game for Windows Phone | WP7 Connect