---
# System prepended metadata

title: Semester 2

---

# Semester 2

## Client-server:
- [x] [REST] Minimal api (id assign and management) {id storage + assign ...}
- [x] Id generation (unique 4/8 hex characters) (Implemented 4hex: Tim) 
- [x] [WebRTC] websocket connection (phone -> server) {establish connection + primary messaging}
- [x] server id deletion {database timer management}
- [ ] server id errors {failed connections, multiple id connections ... }

## Screen-controller-server:
- [ ] [WebRTC] api (controller <-> screen) {movement, fall off world, jump through portal...}
- [x] [REST] api (server <-> screen) {window size, player info...}
- [x] [REST] api (server <-> controller) {join game, messages for user...}
- [x] [QR] screen qr display

## multi-screen setup (advanced (if time left)):
- [ ] [REST + WebRTC] Start game from single screen/browser window, then join others

## Technical and debug information:
- [ ] [REST] id, state of screen
- [ ] [WebRTC] connection status to controllers + other screens

## CatCaster:
- [ ] graphics:
    - [ ] portal connections (portal sprites?)
        - [x] can tp
        - [x] sprites
        - [ ] line sprites
    - [x] planets
    - [ ] cats 
        - [x] movement animation
        - [x] keyboard input
        - [ ] phone input
    - [ ] debug info
- [x] [sensors] weight/tilt, cat respawns (falls) at edge
- [ ] check if close enough to portal? implies depth! + keep from falling off
- [ ] 
Controller:
- [ ] [sensors] devicemotion event (gyros)
- [ ] [sensors] accelerometer
- [ ] [sensors] motion to input conversion
- [ ] [sensors] (buttons)
- [ ] [sensors] color of cat

![](https://i.imgur.com/saY4NWG.png)

