Project ITV

Project ITV

Saturday, June 23, 2012

Level Design

Level design is something I thought was easy, but I find it actually isn't, especially when I have run out of ideas or the level does not make sense. I do many of my level design sketches on paper. Quite a few of my main initial levels were brainstormed when I first had the idea of the game. I usually sketch some level ideas when I'm bored and without the computer and sometimes on the bus. When I run out of ideas, I just randomly edit the level in the code and see what I can come up with. This is how level 9 is represented in the code.


data = new Array(
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, //5
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, //10
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ); //15

It actually seemed fun when I knew this was how I was going to make levels by typing 1s and 0s. Although there are better methods (i.e. level editor), I think this method works fine for me. This being my first time making a platformer, I initially thought that for every platform, I would have to manually draw a rectangular sprite and for every single platform or wall I make, I must draw a rectangle for that, set its position, set its width, set its height, and set its graphics! That would be hard work drawing so many rectangles and setting those values and having to check that the player does not fall through each of them. I think I would just go mad if I had to make a platformer that way! Thankfully, I think this method makes life easier for me and levels look neater when conformed to a grid-like pattern. This is the actual level 9.


I've almost come to finishing the forest-themed levels and am now sketching some of the level designs for the subsequent sunlight levels. I realise in the process of making the forest levels that I am NOT a good level designer. It's actually challenging to make a level difficult! I was not really good at creating difficult levels and some of the difficulty comes from me accidentally placing something at somewhere I did not want to be there, and since it made the level difficult, I kept it that way. Haha.

The order of levels is very important in this game, because there is a flow to the levels. This is a flaw in the game though, as I can't just shift tough levels to the end of the game and easier levels to the front of the game. This results in levels with extremely varied difficulty - the previous level could be insanely difficult and the next level could be a breeze. Most levels each illustrates a certain concept, and I can't mess around with the order because of that unfortunately. So now I have to carefully plan the sequence of the levels and finally I will add it in the game and see how it goes. It's really not as easy as randomly placing tiles and then hoping something good turns out! I sometimes think how nice it would be if I had someone by my side to help me improve my level designs and make them more difficult and also give me comments on whether the level makes sense or not; testers, in other words.

I did not manage to add portals 31 to 45 yet (currently capped at 30), but hopefully within the next two hours I can get my level sequence complete! I actually spend a ridiculous amount of time thinking of levels and coding the levels themselves (and also making sure it is actually completable).

No comments:

Post a Comment