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
R
to 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
R
to restart the game. PressingR
in 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-screen
as index0
- Build the game
- Set platform to
WebGL
- Only include
webgl-client
andmain
scene - Set
webgl-client
as 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.