Home - pirate-games/LabRats GitHub Wiki
Lab Rats Information Hub
Introduction
Lab Rats is a game that originated as a part of the Smart Education Lab project. The game is a multiplayer VR escape room where players must solve chemistry-based puzzles in order to find the key to escape. The main goal of the game is to excite high school students about chemistry, using their basis of chemistry knowledge as the foundation of each puzzle in the game.
The full core of the design can be found on this page:
Potential Additions/Improvements
Here are some suggestions for those continuing this project:
- Expand the game by adding more puzzles. Currently we only use a small amount of the elements in the periodic table. There are many possibilities to build puzzles from these elements.
- Add more fun interactable items (like the microscope & telescope we added). People that tested the game were really enthusiastic about these elements of the game. It could even be possible to build a puzzle around some of these interactables, but we will leave that up to you.
- Test in a classroom of high school students to ensure that the foundation of the game makes sense. We only got around time-wise to interviewing chemistry teachers. It would be interesting to see if students have a different perspective on things.
Known Bugs & Issues
-
When Players press both interactable buttons in the lobby room, the audio takes quite a while to load. This most likely has to do with the way that the background music is played. Currently, due to time limitations, we had to store a playlist of songs as one mp3. That is highly likely the cause of the loading delay since the file is so large.
-
Key mold sometimes glitches through the stool when put in the socket next to the oven.
-
There are 2 non game breaking errors mentioning
NetworkObject with NetworkObject children is only supported in scene
. We assume there's a prefab that is causing this error due to the nature of the error. In any case, it is not a game breaking bug and has no impact on overall performance. -
Keep in mind of lightmaps and other large files when pushing. The storage limit can be filled up fairly quick which can block anyone from pushing or pulling. We recommend everyone to bake lightmaps individually to prevent issues with the LFS or storage limitations of GitHub/GitLab.
-
The multiplayer in our game is sensitive when working with school wifi. Our solution was to use a hotspot with one of the systems. We assume it's due to HvA's network security that the multiplayer breaks in the game, since the game runs perfectly fine at home and via other networks. The joining player gets spawned but is not updated for the host. Solutions or potential things to look into is diving deeper into Netcode's framework, trying a VPN, or trying out other multiplayer solutions such as photon or mirror.
-
During the steam puzzle, when a client-side tries to pick up the steel block at the end of the puzzle, a small bug happens where the client gets launched a little upwards, and can potentially fall into the vat where they can't get out.
-
The moment a player pulls a piece of coal out of the heating segment, it cools down instantaneously. This can be remedied by adding a cooldown calculation or something similar.
Getting Started
When adding new puzzles or features into the game, there are a few things you will have to understand before you can begin.
Most important is the multiplayer implementation. In order to implement multiplayer into the game, there are steps that you need to take in order to sync objects, values and gameplay for both the host and the client. Check out this page for the steps required in order for objects to function in multiplayer:
There are several systems present in the project. In the Systems page of this wiki, you can find three systems explained that are present in the game. If you would like to add a new puzzle that requires elements and their properties, I suggest checking out the 'Element Systems' part of the Systems page and the 'Trigger Detectors' page. Furthermore, we have our own audio system that works similarly to FMOD (but that uses Unity's built-in capabilities). Whenever you want to add audio in the game, I suggest looking into the 'Audio System' Segment of the Systems page.
Conventions
While you are free to change the conventions to your convenience, we have a document written here that you may use for reference when organizing the git and code structure.