Ok, level design is hard. I knew this up front, but now I’m in the middle of it.
I drew some parts of levels on paper, but nothing complete yet. Just some ideas of ‘puzzles’ and challenges.
What is fun?
When designing a level it is really hard to tell whether the level will be fun or not.
Because I don’t have that much time for this project, and I have to playtest myself, I have to set my own criteria for ‘fun’.
A level in this game is fun when:
- the player must think and plan his actions
- there are multiple ways to ‘solve’ the level
- a level is tough to beat the first time
- a level has surprises
- a level that requires skill
So, what did I came up with?
- sunflower above the water -> requires quick season switch
- level with a lot of season changes -> requires planning
- level with a lot of snowflakes -> requires skill, because of slippery grounds
- themed level with a lot of running
- themed level with a lot of climbing
But nothing of that implemented yet. I will do this coming week.
So what did I do the last few days?
- Added a ‘level 0’ which contains the introduction and a ‘story’ (which is not really a story, but it sets some context)
- Removed introduction from menu
- Added automatic savegame. Best level times are saved
- Added locked levels.
- Added splashscreen with the score at the end of the level.
So not that much really. I also did not meet any real challenges. The last few day I spent about 8 hours total (some on leveldesign and some on developing).
Play the most recent version here (to play, click on the game to give it focus):
Levels, levels levels. I really need to build some levels. So thats what I’m gonna spend my time on this week.
After that, I can polish it some more if I have still time left.
Time left: 25 – 8 = 17 hours</div
Again I had some great fun developing on my game. This time I spent 10 hours developing and making some new artwork.
It’s getting close to becoming a real game now.So what is in it now?
- More particles (snow!)
- Levels (although only 1 semi-interesting level and 9 dummy levels at the moment)
- Collectibles. Find sunflowers and snowflakes
- userinterface showing ‘summers left’, ‘sunflowers found’, ‘snowflakes found’ and the timer
- Working ‘exit’ in the levels
- Instructions in menu
- Level select in menu
- ‘escape’ -> back to menu
Time spent doing this: 10 hours
Play it here (to play, click on the game to give it focus):
Because this is the first time I’m using Flixel, I had some new stuff to learn again. This time I had to find out how to design my game for several levels and being able to restart levels, go to next level, go to a specific level from the menu, etc. So all about states.
In the end I will release the source code of this project along with my design choices and the solutions to problems I encountered during development. I hope this will help others who are starting out building games.
Make it fun!
Now that I have a working framework, all my game elements, states etc, and used more than half of my hours, it is time to make the game more fun.
So, I have to design levels that are exciting and challenging. The key elements of the gameplay are limited amount of seasons changes and the goal to minimize the amount of time to finish the level.
With that in mind, what makes a level fun and challenging?
First of all, a level needs places that are only accessible during winter or summer, so a player has to use season changes, which are limited -> puzzle factor
A level needs several ways to solve it, so a player can try to find faster way to beat the level -> minimize time used
Levels must not be frustrating, although the later levels may be very challenging: tight spaces, quick actions, precise timing -> skills
So level design is a challenge!
What’s the story?
Now that I have a prototype working, gameplay mechanics, some (amateur) artwork, it is also time to think about the context of the game.
Who is this guy? Why is he looking for snowflakes and sunflowers? Why can he change seasons? Why only a limited amount of changes?
What’s with the timer?
What are those monsters?
Ofcourse, with this gameplay and the levels I’m making, the story is probably very ridiculous, but I think creating some context in the game, makes the game more interesting.
And it’s a good excuse to make some cutscenes. If I only had the time…
Anyway, I haven’t thought of a story at all yet, so I have no idea there will be one.
- Feedback to player when all collectibles are found
- Timer score at the end of the level
- Keeping track of scores (highscores maybe?)
- Interesting levels
Time left: 35 – 10 = 25 hours
This day I had about 8 hours to continue building my prototype. Things I did:
- Added enemies
- Added ‘death’ (on touching enemies and water)
- Added slippery ground in winter
- Fixed ladders. Can climb down now
- Added some particles and shake on death
- Added a main menu
- Added sky background with parallax scrolling
- Added a title: ‘5 summers left’.
Play current version here (to play, click on the game to give it focus):
So now I have most game elements. One important thing to add: collectibles. I was thinking about collectibles that only show in Winter (like snowman, snowflake, ice) and a collectible that only show in Summer (Flower or so).
Those season dependent collectibles combined with limited season changes per level, are good for challenging puzzles.
After I have added that, I can make challenging puzzles/levels.
While developing this, I’m learning a lot about Flixel and 2D platformers and all problems/challenges that come with them.
For instance, ‘ladders’ were a challenge. Because the combination Flixel/DAME/Flixel Power Tools, the collision detection in the level is all taken care of. But that makes climbing down a platform, and being able to walk on it, a problem. So I had to add an invisible layer of extra items and do a manual collision detection on them.
There were some more problems I had to solve and not all of them were easy to find on the internet.
So for those who are interested, I will do a posting on the techniques I used to solve my problems. But first I have to finish this project.
- Extra levels
- Level select in menu
- Interface elements for score etc
- Exit to next level
- Future: new art
- Make it fun
Time spent today: 8 hours, mainly on programming, a little on art creation and some on learning new stuff like particles.
Time left: 43 – 8 = 35 hours
So, this prototype must be ready in less than 7 days. Because I don’t have 7 fulltime days, I set my own rule: This prototype must be ready in 40 – 60 hours. This includes brainstorming, gamedesign, art creation, programming etc.
Time spent so far:
Ideas/brainstorming: 2 hours
Gamedesign: 2 hours
Art creation 3 hours
Programming (including learning new stuff): 10 hours
Total: 17 hours
Because I had never made a 2D platform game before, I had to learn some new stuff. New stuff learned: Flixel, Photonstorm’s Flixel Power Tools, Tilesheets/Tilemaps
Tools & techniques I’m using:
Target platform: Flash
Language: Haxe (target Flash)
Libraries: NME, Flixel, Flixel Power Tools
Graphics creation: Adobe Photoshop
Tilemaps creation: DAME
Game so far
So this is what I have after my first 17 hours:
- Basic platformer
- 1 level
- half working ladders (cannot climb down from platform)
- graphics for summer and winter
- main character animation
- season switch
Play it here (to play, click on the game to give it focus):
- Make ladders work
- Start en end level
- Next level
- Slippery winter
- Kill player by enemy and water
- Userinterface elements
Time left: 60 – 17 = 43 hours
This month I’m planning to build a game prototype for the Experimental Gameplay Project.
To participate in the project you have to build a game protoype in less than 7 days, it has to be developed by one person and it must be based on the theme of the month.
For november and december the theme is ‘Temperature‘.
I have a few ideas already and I will be building a Flash game using the Flixel game library. For this game I will use Haxe NME instead of ActionScript to build the game. With Haxe you can develop software for multiple targets using one codebase. Flixel has been ported to Haxe by Beeblerox: HaxeFlixel
The idea I have is a 2D side scrolling platform game where the main character can switch seasons (summer and winter). In winter settings he can travel across water but cannot climb ladders. In summer water will kill him, but he can climb the ladders. Enemies are frozen in the winter, but the ground is more slippery. So each season has its own pros and cons.
The player can switch seasons only 5 times or so. So his actions have to be planned carefully. To beat a level, he has to collect ‘things’.
This is the main gameplay idea. Maybe there will be a time limit, or maybe each level is a time trial (beat the level as fast as possible). Maybe some more focus on puzzle elements and strategic path planning and season changings, etc. etc.
But first things first. I have never made a platform game before, so that is a challenge. Next post will be about the adventures of building a basic 2D platformer.