From Open Source@Seneca
Project Marking Percentage
Group work: 50% Individual work: 50% + ------------------------- Total 100%
committed by [NAME] / being committed by [NAME]
We imagine building a 3D maze solving game. The player must successful navigate through the maze. The player will take the first person perspective of a hamster, playing the role of a laboratory
rat hamster. The hamster will be equipped with a mining helmet complete with mining light.
The keyboard will be used for both navigation and other actions like jumping. The mouse will be used to change the direction the player's camera faces.
When the character jumps, they will be able to see over the wall and kind of get an overhead view of the maze they are navigating.
As the player navigates through the maze, light from their mining helmet will fall on objects that the player is facing.
Different areas of the maze will be lit differently with lights on the wall
and shadows being cast appropriately
As the player navigates through the maze, they will have an option to leave a trial of breadcrumbs (markers) that can be used to retrace their movement in the maze. cast as expected.
Sound /3D Sound
Movement of the player will produce a sound that will be in time with the speed at which the player is navigating through the maze. The game will also make use of 3D sound for directional sound. For example if an object behind the player moves, the generated sound will appear to come from behind.
There will be obstacles in the maze that the player must avoid in order to successful beat the maze. Some these may be a hand that picks the user up and moves them to the start position, holes in the floor that the user must jump, booby traps in the floor /walls, etc.
Map of the World of the Game
keyboard and mouse
WASD = forward, left, back, right.
Mouse = look around.
Space = jump.
Hold C = remove collision. (for testing purposes)
D-Pad = forward, left, back, right.
Joysticks= look around.
Hold X = remove collision. (for testing purposes)
|Maze generation / rendering||DONE||Generate maze on X-Y axis only|
|User input control||DONE||Make camera not fly, lock mouse control to ground|
|Collision||DONE||Add collision with floor and wall|
|Walls and lighting||DONE|
|Obstacles||DONE||Obstacles will be non physical obstacles, like time or player gets tired for various actions.|
|Time limit||DONE||Player has a limited time to complete the maze|
|HUD||DONE||Create a HUD for displaying things like time, and status. Leaving the status open ended on purpose.|
|Added timer to HUD||DONE||Create a HUD for displaying things like time.|
|Dialog box||DONE||Improve initial dialog box|
|Jumping||DONE||Space key jumps, to allow momentary visuals of the maze.|
|Toggle collision on and off||DONE||Holding a key will allow collision to be turned off for debugging purposes.|
|Add sound to end point||DONE||Give user hint of end point by having a sound at that point.|
|visibility frustum logic||DONE||Add logic to framework to only render what the camera sees|
|XInput||DONE||Add support for XBox controller using XInput.|
- for lighting to be realistic without using shaders the walls and floor should be composed of many rectangles
- visibility frustum logic would be quite useful here
- there is potential here for elaborate work with 3D sound
- shadows would be difficult to implement without shaders
- you will need either models of the various object or elaborate textures
- if you use models then you will need logic to import them into the framework
- heads up display needs thinking