-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.todo
158 lines (120 loc) · 6.29 KB
/
TODO.todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Bitte die Extension TODO+ (fabiospampinato.vscode-todo-plus) installieren.
Views:
☐ Startseite
☐ Raum erstellen
☐ Raum beitreten
☐ Raum importieren
☐ Impressum
✘ Handbuch @cancelled
(nicht notwendig, da intuitiv)
✔ Spiel (InGame) @done
Spiel:
Spiel ist in mehrere Ebenen unterteilt.
(Spieltisch, Gelegte Objekte, HUD)
Der Spieler betrachtet die Spielfläche aus der Vogelperspektive.
Die Spielobjekte werden isometrisch dargestellt. (3D-Effekt)
Virtueller Spieltisch: @high
☐ Beliebig veränderbarer Hintergrund @started
Spielbretter, Spielkarten können als Hintergrund fixiert werden
☐ Spieler können ihre Ansicht auf den Spieltisch beliebig drehen
Spielobjekte: @high
Alle gelegten Spielobjekte befinden sich auf dem Spielfeld
☐ Spielobjekte können beliebig erstellt, verschoben, fixiert, entfernt werden @started
☐ Spezielle Spielobjekte haben bestimmte Aktionen
Karte -> Karte umdrehen, Würfel -> Würfeln
✔ Jedes erstellte Spielobjekt hat einen eigenen z-Index (über y-Position) @done(22-01-21 16:58)
Assets:
✔ Mensch ärgere dich nicht - Spielbrett @done(22-01-19 22:16)
Spielbrett ist eine einfache Komponente mit einem Bild
Wird lokal standardmäßig erzeugt und befindet sich zentriert auf dem Spielfeld
Bei Auswahl eines Spielbretts wird eine Eigenschaft im ShareDB angepasst, die das Bild des Spielbretts enthält
✔ Spielfigur als SVG mit dynamischer Farbe @done(22-01-19 22:17)
✔ Spielfigur als Spielobjekt einbinden @done(22-01-21 16:59)
✔ Spielbrett als Komponente einbinden @done(22-01-21 16:59)
HUD:
☐ Kontextmenü:
für Spieltisch und gelegte Spielobjekte
Die Darstellung unterscheidet sich auf PC und Smartphone
Aktionen:
☐ Objekte entfernen
☐ (Spieltisch) Hintergrund ändern
☐ (Kartendeck) Karten mischen
Interaktion mit Spielobjekten:
☐ Desktop: @high @started
* 1x Linksklick: Auswahl
* 1x Rechtsklick: Auswahl + Aufruf des Kontextmenüs
* 2x Linksklick: Hauptaktion ausführen
* Rechtsklick halten + Ziehen: Ansicht rotieren
* Linksklick halten + Ziehen: Ansicht verschieben
* Auswahl + Linksklick halten + Ziehen: Ansicht verschieben
* Strg + Rad: Zoom
☐ Mobil:
* 1x Klick: Auswahl des Spielobjekts
* Auswahl + 2x Klick: Aufruf des (radialen?) Kontextmenüs
* Auswahl + Gedrückt halten und ziehen: Verschieben des Spielobjekts
* Auswahl + 1x Klick: Hauptaktion ausführen (z.B. Umdrehen der Karte, Würfel würfeln)
* Pinch & Stretch: Zoom
* 2-Finger-Rotate: Ansicht drehen
* 2-Finger-Drag | 1-Finger-Drag: Ansicht verschieben
* Auswahl + 2-Finger-Rotate: Spielobjekt drehen
☐ Hand: @high
☐ Jeder Spieler hat einen geschützten Bereich (eigene Hand), wo er Spielobjekte aufbewahren kann.
☐ Die Hand hat 2 Ansichten (Normal und detailliert)
In der normalen Ansicht sieht der Spieler nur eine Auswahl aller Spielobjekte, die er auf der Hand hat.
In der detaillierten Ansicht werden alle Spielobjekte in einer Liste angezeigt.
Spieler:
☐ Die Position der anderen Spieler (Mauszeiger) wird einem Spieler angezeigt
✔ Würfel: @done(22-01-25 17:13)
Einfache Implementation als runder Button
✔ Das Würfelergebnis erscheint im Log @done(22-01-25 17:13)
Spielumgebung:
☐ Responsive Design @started
Spielerlebnis auf jedem Gerät (Desktop, Tablet, Smartphone) gegeben.
Unterschiedliche Gesten sind an die Geräte angepasst.
Menüs:
☐ Obermenü
besteht nur aus Icons, die die anderen Menüs aufrufen
Spielmenü: @high @started
* Verbindungsstatus - nur angezeigt, wenn es ein problem gibt (auf Smartphone)
* Spielername und -farbe
* Ausloggen-Button
* Spielerliste
* Import & Export
* Beitreten & Raum teilen
✔ Farbe des Hintergrunds des Spielfelds anpassbar (nur lokal) @done(22-01-18 21:44)
✔ einklappbare Sidebar @done(22-01-14 23:02)
✔ Abschnitt in Sidebar zum Erzeugen der Spielobjekte @done(22-01-18 21:44)
✔ Abschnitt in Sidebar zum Einsehen der Spieler @done(22-01-18 21:45)
✔ Log @done
Zeigt an, wenn Spieler das Spiel verlassen oder betreten
~Kann als Debugging-Hilfe dienen~
☐ Spielobjekt-Katalog @high @started
wird dargestellt als Sidebar (PC), und als "Bottombar" (Smartphone)
enthält alle möglichen Spielobjekte
um neue Spielobjekte hinzuzufügen, werden diese per Drag'n'Drop auf das Spielbrett gezogen
wird über einen Plus-Button aufgerufen
☐ Räume: @high
☐ Jeder Spieler kann einen eigenen Raum erstellen
☐ Spieler können andere Spieler in ihren Raum einladen und anderen Räumen beitreten
Synchronisation: @high
✔ Spieltisch und alle gelegten Spielobjekte werden synchronisiert @done
~über Peer-To-Peer~
über ShareDB (hauptsächliche Synchronisierungsarbeit)
über Socket.io (temporäre Synchronisierung der Bewegung von Spielobjekten)
☐ Verliert ein Spieler die Verbindung, wird das Spiel für ihn eingefroren.
✔ Z-Index @done(22-01-19 22:16)
✔ Log @done(22-01-23 00:56)
✔ Spielernamen (und -farben) @done(22-01-20 20:46)
✔ Entfernen von Spielern bei Verlassen des Spiels oder bei Verbindungsverlust @done(22-01-23 00:57)
☐ Spielstand:
☐ Ein Raum kann mit aktuellem Spielstand exportiert/importiert werden.
Gespeichert als ZIP
Exportiert werden u.a. Gelegte Spielobjekte, Hände, Spielernamen und -farben, alle nicht standardmäßigen hinzugefügten Spielobjekte in der Liste der Spielobjekte
Spieler:
☐ Spieler die einen Raum betreten, können sich entweder als neue oder vorhandene Spieler anmelden
Dadurch gibt es keine Probleme bei der Identifizierung von Spielerhänden bei Export/Import
✔ Jeder Spieler kann eine eigenen Spielernamen und Spielerfarbe festlegen @done(22-01-19 22:15)
Die Spielerfarbe wird beim Auswählen von Objekten den anderen Spielern als Umrandung angezeigt
Beim Erstellen von Spielfiguren wird die Farbe des Spielers auf die Farbe der Spielfigur gesetzt
☐ Wenn ein Spieler sich ausloggen möchte, erscheint ein Dialog
Der Spieler wird gefragt, ob er sich wirklich ausloggen möchte und ob er den aktuellen Spielstand speichern will