Peak Panic is a local multiplayer skiing game where you have to keep up the pace so you don't fall behind! Each player controls a character through their own phone by tilting it left and right.
A player is eliminated when going out of view of the camera. The camera will follow the leading player with a slight delay for letting players behind catch up. The slope is filled with obstacles such as trees and rolling snowballs that you have to avoid. Additionally, there are speed boosts placed around the slope that a player can pick up in order to gain an advantage. Let the fastest skier win!
This project was created during the second half of the DH2413 course at KTH during 2023.
For more information, pictures and videos, please visit our site https://agi23-g8.github.io/
- Start
peak-panic.exe - Display game on big screen
- Click
Start Race!button when enough people have connected
Tip: Hit
Rto restart the race at any time
- Scan QR code with your camera app
- Wait for loading screen
- Accept any allow sensor popups (important)
- Enter a name and the game code
- Click connect
- Do not lock your phone! Either don't have auto screen lock or simply hold a finger on the screen as you play.
- Lock the phone rotation so it does not switch between portrait and landscape mode!
All problems are fixed by restarting.
- Press
Rto restart the game. PressingRin the join game menu state will reset the game server and transfer to title screen. Use this when people cannot connect.
- Refreshing the web browser solves all issues.
- Huawei phones are usually not compatible.
- Must support WebGL v2.
- The disconnect button on WebGL client does not always work. Refresh instead.
Unity version: 2022.3.10f1
- Set platform to
Windows, Mac, Linux - Include all scenes and set
title-screenas index0 - Build the game
- Set platform to
WebGL - Only include
webgl-clientandmainscene - Set
webgl-clientas index0 - Build
The WebGL client is hosted through the Peak Panic repo, where the built WebGL version lies in the ./docs folder.
The main scene has to be included for networking purposes. Otherwise, the client will not be able to communicate to the server.