Skip to content

Architecture

Tyler Stargel edited this page Oct 21, 2024 · 24 revisions

Frameworks and Libraries

This will be a 2D game developed in Unity using C# as the programming language. The following libraries, frameworks, and services will be used:

  • Unity Engine: The core framework for building the game, handling the physics, animations, input, and rendering of 2D sprites and environments.

  • Unity UI Toolkit: Used to create and manage in-game user interfaces such as menus, HUD, and dialog systems.

  • Unity 2D Physics: Responsible for implementing the game's physics, including collision detection and responses for game objects.

  • Unity Animation System: Will be used to create smooth transitions and movements for characters and objects using 2D sprites.

  • Cinemachine: A camera system for smooth camera movement, zoom, and tracking of characters during gameplay.

  • Unity Input System: To handle player input for both keyboard and game controller setups.

  • TextMeshPro: For rendering high-quality text in the game UI and dialogues.

  • Unity Addressable Assets System: To manage and load assets effciently, allowing for dynamic loading of levels, characters, and other game assets.

  • Unity Analytics: To collect player data such as gameplay statistics, user engagement, and behavior in the game to inform design decisions.

The Unity package manager is what we will be using as our package/build manager.

Release

We will use a binary exe file, As Unity allows you to directly compile projects in exe files. Testers will then be linked to a separate Github Repository containing this executable.

General UML Chart:

umlchart

Views:

371882593-51cf9a08-0566-4c95-9e6b-18b189632e14

Example of the title screen of the game would look like. Having both the options button and start button, it sets out what it is suppose and shows the basics of what a title screen should be. Simple and effective for the tester/player to understand what to do.

371883075-d88980fb-60b4-46ba-8ed2-19a51491beb5

A waiting/lobby room for players to wait for others to join them. You can ready up at any time with any amount of players and can go in alone, or with other people.

371883234-3844a2a0-cfcd-4807-a4c1-ecd2941a48fa

Example of what a the main game would look like with player in the middle, inventory in the bottom right, and health/oxygen meter top left, and the stamina meter is in the top left as well. It gives a good idea of what the game will look like from players/testers perspective.

371887758-eba77f83-8516-4615-bde7-b35710f8c9b3

Another example of what the main game would like with player picking up an "artifact" having inventory in the bottom right, oxygen and stamina in the top left and player in the middle.

371903432-6f49e6d9-2a4b-4fc5-827d-3f20891e9dfe

Example of what the pause menu would like look in game, it would have resume to continue playing, settings, and a quit button, while you have this menu opened in multiplayer this shouldn't affect other players.

371903448-6ecd5e83-c314-4693-a85d-cf489b69aaa3

This is an example of the settings menu having options for changing your volume, adjusting how loud you want the game to be, and controls so that the player/tester can suit their playstyle if they need to.

371903507-495da628-a25d-4da6-8adc-758196306e5f

This is example of "game over" screen in the game if you run out of health, it shows that once you die you can only go to the main menu in order to play another game.

371906901-d1eacf4c-3d9f-4766-bef9-237fb0739667

Example of what a building would look like in game. It would appear underwater and you would have to interact in order to enter it. It is an example of an area in a game where you would go to collect artifacts.

Tasks:

Joshua Kolbusz: Issues #45, #47, #48, #49, #51, #52

Kelly Thao: Issues #34, #33, #32, #27, #26, #22, #21

Scott Do: #59, #44, #43, #42, #39, #37, #36

Tristen Fornes: #28, #29, #30, #31

Tyler Stargel: Issues #35, #38, #40, #41, #46, #50, #53, #54, #55, #56, #57

Clone this wiki locally