GAM666/DPS901 Mesocricetus
GAM666/DPS901 | Weekly Schedule | Student List | Project Requirements | Teams and their Projects | Student Resources
Mesocricetus
Project Marking Percentage
Group work: 50% Individual work: 50% + ------------------------- Total 100%
Repository
Repo ID
SVN
svn://zenit.senecac.on.ca/dps901_113rep6
GitHub
https://github.com/ScottDowne/Mesocricetus
Trunk Status
committed by [NAME] / being committed by [NAME]
Team Members
Proposal
Overview
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.
Features
User controllers
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.
Jumping
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.
Lights
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
Breadcrumbs (markers)
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.
Obstacles
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.
Sketches
Map of the World of the Game
Golden Hamster
Controls
keyboard and mouse
WASD = forward, left, back, right.
Mouse = look around.
Space = jump.
Hold C = remove collision. (for testing purposes)
XBox controller
D-Pad = forward, left, back, right.
Joysticks= look around.
A= jump.
Hold X = remove collision. (for testing purposes)
To-Do List
Priority 1
Task | Status | Notes |
---|---|---|
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. |
Priority 2
Task | Status | Notes |
---|---|---|
visibility frustum logic | Add logic to framework to only render what the camera sees | |
alternative maze generation | Allow maze to be generated via a text file, or generation seed string | |
Improve on 3D sound | Add echoes i.e. collision with objects | |
Obstacles (physical) | This will be things likes blocks in the maze, holes, doors, etc. | |
Models | Import models for the obstacles, breadcrumbs, or others. | |
XInput | DONE | Add support for XBox controller using XInput. |
Updates
Instructor's Comments
- 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