Name: Michael Adams

E-mail: adamsm185@…

IRC nick: MisterA

Summary: I intend to make a basic 2.5d sidescroller, with weight/physics related puzzles and multiple levels about a penguin stuck in the Sahara. The levels will be blocky and basic. I also intend to contribute significantly to the game engine using some of the features already existing in the engine while implementing the ones that I would need to continue myself. To start, I will modify and edit a previous game made in pysoy, and use the already existing code in that in order to make a base to work from. Work will have to be done with setting a static environment up, or a basic level structure, and dynamic bodies in scene, which will be accomplished by using the existing code with a few potential modifications. Ground surfaces and water will also be implemented. A level editor will be in the works as well to help set up the levels. A body or multiple bodies will have to be created to represent my character and the things I plan to use in my levels as well.

Work Description: Prep Work: The prep work for the project will be a phase in which I will make myself more familiar with the engine and set realistic short term as well as long term goals. Early game models to help me visually confirm that everything is working as intended will also be made during this period as necessary. This is the time period in which the foundations will be set. I will start work on the level designer in order to get one of the important early parts of the engine up and running.

Completed by the midterm evaluation: I hope to have all the big engine modifications and additions made at this point. I will need to get the camera body working as I intend it to, with likely use from the projector. I will need to confirm that the ground surfaces are all working as intended as well as the landscape. Once everything is confirmed to be working, levels beyond the initial testing levels will be created using the level editor and will be tested thoroughly to make sure everything is working as intended. After this, it will be time to polish it up and add any extra features I think will benefit future programmers and myself.

Completed by the final evaluation: I hope that my contributions in the engine allow me to have a fully functioning game, polished as much as possible and I would like to make more levels or test further to ensure that everything is working. If anything is not working as I expect it to, it will be before the final evaluation.

What sort of game am I making:

Intro: Enraging the penguin shaman isn't a very bright idea, as you've just found out. Teleported into the depths of the Sahara, you must journey home through the traps, puzzles, and vicious enemies that await you on your way back. Operation: Desert Penguin is a 2.5d sidescrolling puzzle-solving platformer starring the Penguin Hero Yellowbeak.

Character Bio: Yellowbeak: The fun-loving mischievous rascal has gotten himself into some trouble with the penguin shaman. His pranks have finally gotten too annoying for the tribe and they have banished him, never to return to their lands(or so they think). His mischievous nature has made him clever and able to think on his flippers, which will surely be advantageous in surviving the trials of the sahara.

Plot: The only plot in this game is the journey back and the reason that the penguin is in the middle of the Sahara. Everything else is subject to being changed on whim. The game is not supposed to be centered around a particular plot.

Gameplay Description: Basic movement: Yellowbeak will be able to move at a set pace. Not faster nor slower although movement speed may vary on icey surfaces(which will appear near the end of the game)

Jumping: Yellowbeak will be able to jump a set height. He will be able to jump higher when on a jump booster such as a solid trampoline(no soft body physics involves for now)

Slide: Yellowbeak will be able to slide on his belly, getting him away from imminent danger faster than walking. The speed of the slide will take into account the ground surface in order to balance how effective it is in avoiding traps as well as level difficulty.

Switches: Scattered around the levels in strategic locations, switches will act as sensors and as actuators. They will sense that there is a weight on them and they will apply a force to some object in a given area. The game will revolve around these, as they will be important in both solving puzzles and defeating enemies.

Traps: Each level will contain some traps, ranging from switch-activated traps falling down on poor Yellowbeak, or the ground collapsing below him. They will not be too extreme in nature and will only serve to highlight the features of the game.

Enemies: Each level will contain 1 diabolical enemy who seeks to make a meal of poor Yellowbeak. The enemy will have 1 surefire way to defeat them as well as other potential options(luring them into a trap, etc.) Very basic AI will be written in order for the enemies to function semi-intelligently.

Levels: There will be 10 unique levels as well as a level editor to create new levels for Yellowbeak to traverse. Each level will increase in difficulty, but all will emphasize displaying the features of the engine.

Artistic Style Outline: The levels and environment in the game will be blocky and will range in color from yellow sandblocks to white iceblocks. Yellowbeak will be modeled in Blender, as will the enemies, although everything will be kept very simple. The art is not the point of this game, so something that takes little effort and artistic talent will be necessary.

Game Flow: The game flow will be very simple. Yellowbeak will spawn in a given area. There are puzzles, traps and 1 enemy between him and the end of the level. To proceed to the next level, Yellowbeak must reach the end point.

Pseudocode outline:

import soy
from whatever's needed import whatever's needed(such as sleep from time)
initialize map, set texture it
set map size
set material colors based on level

set the landscape up from scenes, using the map/color and the atoms size and position

set up the player character by putting it into the landscape through means of texturing it onto a cube or something
set its position/size

set up the camera from bodies and its position
set up a light source and position it where it seems fitting for the scene

initialize client
append the camera projecter we initialized earlier to it

create event handler's for the users button presses

up event handler applies a positive force to y when the up arrow key is pressed/held down, moving the camera's position to follow the user character

left event handler applies a negative force to x when the left arrow key is pressed/held down, also doing the same to the camera

right event handler applies a negative force to x when the left arrow key is pressed/held down, also doing the same to the camera

down event handler triggers a resizing of the character cube(or maybe a new smaller cube with a different image of the character textured to it) when the down arrow key button is held down in order to make the character fit through smaller gaps.