Skip to content

00000010/3902TeamRed

Repository files navigation

3902TeamRed

Current Revision: 12/3/22

Team Members

Hamdam Almehairbi (almeharibi.3)
William Gilicinski (gilicinski.3)
Owen Hennessey (hennesey.64)
Abd Elrahman Ibrahim (Ibrahim.281)
Emil Pang (pang.216)
Adam Perhala (perhala.3)

About The Project

The Legend of Zelda done our way. Current iteration is complete with full implementation of entire first dungeon,
with new features including custom controls and a level creator.

Folder Descriptions

Block - Block generation and collision

Camera - Camera and Transitions

  • Camera.cs - Enables Updateable and Drawable Capabilities
  • GameCamera.cs - Camera object that enables the transition gradually between rooms instead of clipping to them
  • ICamera.cs - Camera Interface

Collision - Collision of any collidable objects

Content - Sprites and Imagery files

Controller - Interface for controllers and default key/mouse mappings

Door - Interface for controllers and default key/mouse mappings

Enemy - Enemy generation/Movement/Collision/Damaging

Game - Opening/Loading levels/Running/Stopping the game

  • Constants.cs - Default measurements for important sizes
  • Enums.cs - Enums for the 3 states (STANDING, RUNNING, ATTACKING) and the 4 directions (UP, DOWN, LEFT, RIGHT)
  • ExitCommand.cs - Enables exit game capabilites
  • Game1.cs - Core of the game containing base components such as level loader, game object manager, and public interfaces
  • GameObjectManager.cs - Handles updating and drawing all objects currently in game by tracking them in lists
  • ICommand.cs - Command Interface
  • LevelLoader.cs - Enables transitions between the different rooms of the level
  • LoadLevelCommand.cs - Command used to load a level
  • LoadRoomCommand.cs - Command used to load a room
  • PauseCommand.cs - Command used to pause
  • Program.cs - The very bottom that allows everything to run
  • Room.cs - Describes features of a room

Item - Item generation/Movement/Collision/Pickup

Levels - Files containing each of the different rooms as well as the artificial one

Link - Image of Link

Player - Player generation/Movement/Collision/Damaging/Attacking

Projectile - Projectile generation/Movement/Collision/Damaging

ScreenDisplay - Key mappings for the display of all necessary objects

Sprite - Image display for all Players/Items/Blocks/Enemies/Text

Program Controls

You only have to start with the following keys, but they can be updated in game.

Move up: 'W'
Move left: 'A'
Move down: 'S'
Move right: 'D'
Attack: 'N'

Quit Game: 'Q'
Pause Game: 'P'
Restart Game (only after victory): 'R'

Shoot Projectile: 'B'
Previous Projectile: 'J'
Next Projectile: 'K'

Display Inventory: 'Y'
Remove Inventory: 'T'

Display Controls Screen: 'X'
Remove Controls Screen: 'Z'
To update a control, open up the controls screen and first tap the key that the current control is mapped to. Then press the new mapping that you want to replace the key for. If the requested key is already mapped to another key elsewhere, the request won't register. In that case, choose a different key to map to.
YOU CANNOT CHANGE THE CONTROLLER MAPPINGS FOR VIEWING (X) AND EXITING (Z) THE CONTROLS SCREEN.

Level Creator Controls

Change object - Click on either a block, item, or enemy
Place object - Click or hold down the left mouse click
Remove object - Right click on said object
Place Door - Click on a door
Move to north room - 'W'
Move to west room - 'A'
Move to south room - 'S'
Move to east room - 'D'
Exit creator - 'ESC'
Exit Game - 'Q'

THE LEVEL SELECT SCREEN IS NOT SCROLLING; THEREFORE, TOO MANY LEVELS MAY TAKE UP SPACE. TO LOAD THE CORRECT LEVEL MAKE SURE 'Custom Level' (with a space) IS SELECTED.

Non-Required Tools and Processes

When2meet: when2meet.com (Find best times to meet as a team)
Trello: trello.com (Task Managment)
Sprite Cow: spritecow.com (Used to find sprite coordinates on sprite sheet)
Discord: discord.com (Used to collaborate vitually)

Backlog

The backlog mainly contains minor and major features that need to be made to improve the game or code quality. The backlog features that remained in the backlog on Trello are not necessary and are simply additions that would help clean up our code. Please see the Trello list "Backlog" for a full detail of all items here, as well as complete descriptions.

Known Bugs

Link does not move in completely expected ways when multiple movement keys are pressed (WASD)
Enemies are able to push Link outside of the room
Please see the Trello list "Buglog" for a full detail of all items here, as well as complete descriptions.

Sprint 5 Reflection

The team organized tasks mainly by dividing up the work based on missing features, with Abd Elrahman working custom controls, Emil and Owen working on Camera transitions, Will working on a level creator, Adam working on the title screen, and Hamdan working on cleaning inventory. We had initially planned on including a multiplayer feature as well; however, we realized during the sprint that it would not be feasible to do so because we would not have enough time to finish the feature.

A potential improvement could have been to work on multiplayer more early on. However, the team had decided to work on many features early on, including a level creator and custom controls, which helped with dismissing the multiplayer feature. Integration between Discord (our primary communication) and Trello also helped ensure that everyone was up to date on the completion of features.

About

CSE 3902 project repository.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7

Languages