Mr. Wortzman | Room 3209 | Issaquah High School, Issaquah, WA
Platform games are among the most widely recognized types of video games. Composing about one third of all console games at the peak of their popularity, platform games are characterized by their relative simplicity and by the common gameplay element of jumping across suspended platforms (hence the name) to avoid falling into a hazard. Platform games also typically include enemy characters, items that grant the hero special abilities (“power-ups”), and a “checkpoint” system that allows the player to restart from partway through a game or level when he or she dies.
In a platform game, the player controls a hero who moves throughout the world attempting to reach an endpoint and/or accomplish a goal. Along the way, the hero encounters hazards such as pits (into which he or she can fall) and enemies (which can either move or be stationary). The hero has a finite number of chances (known as “lives”) to achieve his or her objective. Each time the hero succumbs to a hazard, a life is lost and the player must try again.
The hero moves around the world under the player’s control. The hero can perform three basic actions: move left and right (controlled by the arrow keys) and jump (by pressing the space bar). As the hero moves throughout the world, he or she is subject to gravity. This means that when the hero jumps or moves off the edge of a platform, he or she should return relatively quickly to the ground (or another platform). The hero should never fall through a platform or the ground. in addition, the hero should not be able to walk through obstructions- when next to a wall or other barrier, the hero should not be able to move in that direction. Lastly, the hero’s movement should be animated somehow, giving a visual indication of both walking and jumping.
Your platform game will be a side-scrolling game. In this style of game, the scenery changes as the player moves horizontally across the screen. While many modern side-scrollers (including Super Mario Bros.) scroll smoothly as the player moves, our game will use a simpler system and consist of screens. Each screen represents one section of the overall world in which the game takes place. The hero should be able to move freely around each screen, but when the hero reaches the far right edge of a screen, the next screen should appear and the hero should be placed on the far left edge at the same height. Your game must include at least three distinct screens, and each screen must include at least one hazard.
Your program should include at least one of each of the following types of hazards:
Note that an enemy can be either a character (like Goombas in Super Mario Bros.) or an environmental hazard (such as spikes). When the hero dies by either falling down a falling hazard or touching an enemy, he or she loses a life. If the hero has lives remaining, one should be lost, used power-ups and defeated enemies should be reinstated, and the hero should be placed back at the left edge of the current screen. Otherwise, the game is over and a suitable message should be displayed.
While moving through the world, the hero may obtain power-ups that grant him or her special abilities. Examples can include increased jumping power, invulnerability, or the ability to destroy enemies. These abilities should be temporary, and there should be some visual indication when the hero has access to them. A power-up should appear as an item (sprite) in the world. The hero will obtain the abilities by touching the power-up sprite, at which point the power-up should disappear. Your game should include at least two distinct power-ups, at least one of which is required for the hero to win the game.
In addition, at least one of your power-ups should be hidden, meaning that the player must take some action before he or she can obtain its abilities. For example, in Super Mario Bros., Mario must jump into a special block to make many power-ups appear. A hidden power-up should not be visible until it is triggered by the hero, and the hero should not be able to obtain the abilities until the power-up is revealed.
There should be some clear end goal that, when achieved by the hero, ends the game in victory. This victory condition should be obvious even to a new player. You need not (and probably should not) provide written instructions to the player about this condition— use easily identifiable visual indicators such as flags, doors, etc. When the player completes the game, a congratulatory message should be displayed.
At any point during gameplay, if the player presses the ‘z’ key, the game should reset to its initial state. The game state after pressing the ‘z’ key should be indistinguishable from when the game first begins. This means, among other things, that:
Your program should be well-designed and have a unifying theme, characteristic, or style. This can be a particular style of artwork, common colors, and/or related types of characters. In addition, you should show some effort and creativity in your design. Do not simply recreate an existing game or use only ideas put forth in this spec. Come up with some original concepts for characters, backgrounds, power-ups, etc. and utilize them in your game. If you make us say “Wow!” it may even be worth some extra credit. Using copyrighted assets (including characters or artwork from an existing game), even with modification, is not allowed.
In addition to functioning well, your program must be well-documented and readable. This includes, but is not limited to, things such as:
Your program must include, at a minimum, the following Snap! code elements:
As part of the software development experience on this project, you will participate in a peer review with one or more of your classmates. Near the end of the project, you will play other students’ game and provide them with notes and comments. Your partners will also play your game and offer the same feedback. You should offer suggestions for features that could be improved or changed as well as look for bugs in the program you are reviewing. Keep your comments constructive and professional! Don’t just point out things you don’t like— explain your thinking and propose solutions. Also, restrict your comments to things that can be reasonably addressed. Do not tell your partner that he or she made a poor choice of theme and should start over, for example.
After receiving your peer feedback, you should consider the comments carefully and respond. You will turn in the feedback provided to you along with responses indicating how you modified your game in response to the feedback you received or why you chose not to make any changes.
Use the Peer Feedback Form for all peer reviews. Both the reviewer and the developer will submit the form, so make sure you share the completed form with each other.
Screens should be designed; the hero should be able to move and jump; gravity and barriers should work; reset button should be functional
Hazards and enemies should be present; death should work properly
All required program elements are implemented and functional
Behavior | |
---|---|
Left and right arrows and space bar control hero's movement, and hero does not move through walls | 2 points |
Hero is subject to gravity, and does not fall through platforms | 2 points |
Hero's movement is animated | 1 points |
Game consists of at least three screens | 1 points |
Game contains at least one falling hazard (pit), one stationary enemy, and one moving enemy | 3 points |
Player loses a life when falling down the falling hazard or touching an enemy, and hero restarts on current screen after death | 2 points |
Player starts with three lives, and game ends in defeat when player is out of lives | 2 points |
Game contains at least two power-ups, at least one of which is hidden and at least one of which is necessary to win the game | 2 points |
Hero has a clear goal to reach to complete the game, and game ends in victory when hero reaches this goal | 2 points |
When games ends (either in victory or defeat), an appropriate message is displayed and game action ceases | 1 points |
Game resets when the 'z' key is pressed | 2 points |
Total | 20 points |
Implementation | |
Program is well-designed visually and has a consistent theme | 2 points |
Program shows good creativity and effort | 2 points |
Program is well-documented and exhibits good style | 2 points |
Program includes at least two variables | 1 points |
Program includes at least two messages, at least one of which is received and reacted to by multiple sprites | 2 points |
Program includes at least one conditional statement | 1 points |
Provide valuable playtest feedback to at least two other students | 2 points |
Obtain and respond to playtest feedback from at least two other students | 2 points |
Checkpoint 1 | 2 points |
Checkpoint 2 | 4 points |
Total | 20 points |
Project total | 40 points |