Beispiel Brainstorming
Beispiel: Brainstorming Lasst uns als Machbarkeitsstudie einen einfachen Prototyp einer Polygon-Spiele-App erstellen. Da Virtual Reality ein relativ neues Medium ist, sind noch nicht alle Nutzer damit vertraut. Und aufgrund der unbegrenzten MĂśglichkeiten, die sich mit Virtual Reality bieten, mĂźssen wir den Nutzerfokus anders steuern als in herkĂśmmlichen 2D-Anwendungen. In diesem Designkonzept werden erfolgreiche interaktive Muster sowie die Ăźblichen Designfehler (und Hinweise zu deren Vermeidung) aufgefĂźhrt, die in Virtual Reality- Anwendungen oft zu Verwirrung fĂźhren. Inspiration Ich habe neulich dieses Video gefunden â ich finde, wir sollten etwas erstellen, das ungefähr so aussieht wie in dem Video. https://player.vimeo.com/video/142163788 https://vimeo.com/142163788 AuĂerdem habe ich noch ein paar andere Screenshots gefunden, die wir als Referenz verwenden kĂśnnen, wenn wir an den Visuals arbeiten âŚ
Hier ist eine Pinterest-Pinnwand mit Beispielen fĂźr den Stil, den ich mir fĂźr die Illustrationen vorgestellt habe. https://www.pinterest.com/brobo/low-poly/ https://www.pinterest.com/brobo/low-poly/ Was den Soundtrack angeht: ich hätte am liebsten etwas, das nicht vom Spiel ablenkt und sich problemlos wiederholen lässt. Ich habe neulich diesen Track hier gefunden â sowas in der Art passt doch ganz gut zum Illustrationsstil weiter oben. https://w.soundcloud.com/player/? url=https%3A%2F%2Fsoundcloud.com%2Ftycho%2Ftycho- montana%3Fin%3Dtycho%2Fsets%2Ftycho-awake-deluxe-version&autoplay=false https://soundcloud.com/tycho/tycho-montana?in=tycho/sets/tycho-awake-deluxe-version Level/Stufen Hier sind ein paar Vorschläge fĂźr die ersten paar Levels. Wir haben ja in unserem letzten Meeting darĂźber gesprochen. Ihr kĂśnnt sie gerne ändern oder etwas hinzufĂźgen, falls ich nicht an alles gedacht habe! Level 1 Ziel:
Einen Satz mit genau drei Formen sammeln, die zusammen 15 ergeben. Spielfortgang:
Wenn du an der Reihe bist, musst du eine Form auswählen, die noch nicht von einem der beiden Spieler ausgewählt wurde. Diese Form steuerst du jetzt. Streich sie in der Zahlenliste durch und schreib die Zahl auf deine Seite der Form, um sie dadurch als deine Form zu kennzeichnen. Level 2 Ziel:
Einzelne Formen im 15er-Satz zerstÜren, die nicht zur ausgewählten Farbe passen.
Spielfortgang: Wenn du an der Reihe bist, musst du eine Farbe auswählen, die noch nicht von einem der beiden Spieler ausgewählt wurde. In diesem Level steuerst du jetzt diese Farbe. Sie wird automatisch in der Taskleiste ausgewählt. Schreib die Farbe auf deine Seite der Form, um sie dadurch als vergeben zu kennzeichnen. Level 3 Ziel:
Die Farbe wechseln, um sie den Formen der Gegner anzupassen. Spielfortgang: wenn
du an der Reihe bist, folg der Karte, um deine Form zu derjenigen farbigen Flagge im Gebiet des Gegners zu fĂźhren, die noch nicht von einem der beiden Spieler ausgewählt wurde. Diese Form steuerst du jetzt. Streich sie in der Zahlenliste durch und schreib die Zahl auf deine Seite der Form, um sie dadurch als deine Form zu kennzeichnen. Spielmechanik Hier ist eine Skizze, die wir im Meeting gestern schnell gezeichnet haben. Nur nochmal zur Erinnerung: Wenn der Cursor in der Mitte des Fensters fixiert ist, muss der Nutzer das Gerät um die X- und Y-Achse drehen und kippen, um die verschiedenen Objekte auszuwählen, die in der Szene auftauchen. Prototypfunktionen 1 . Objekt werfen 1 . Geschwindigkeit 2 . Winkel 3 . Ball kann Elemente umstoĂen 4 . Ball kann Elemente verfehlen 2 . Objekt rollen 1 . Geschwindigkeit 2 . Winkel 3 . Ball kann Elemente umstoĂen 4 . Ball kann Elemente verfehlen 3 . Irgendwelche anderen Hauptaktionen, die wir unterstĂźtzen sollten? Umgebung auswählen Avatar hochladen Andere Objekte zum Werfen/Rollen freischalten 4 . Rangliste und Funktion zum Einladen von Freunden anzeigen Perspektive und Darstellung Matrix fĂźr die Perspektive und Einsatz von Shadern void idle (void) {
hBuffer->getFrame(hFrame); if (hFrame->goodH && hFrame->timeStamp != timeStamp) { timeStamp = hFrame->timeStamp; std::cout << "(" << hFrame->eye.x << ", " << hFrame->eye.y << ", " << hFrame->eye.z << ") \n"; eye = vec3(hFrame->eye.x, hFrame->eye.y, hFrame->eye.z); d_near = eye.z; d_far = eye.z + 50; P = mat4((2.0*d_near)/(right-left), 0, (right+left)/(right-left),
0,
0, (2.0*d_near)/(top-bottom), (top+bottom)/(top-bottom),
0,
0, 0, -(d_far+d_near)/(d_far-d_near), -
(2.0*d_far*d_near)/(d_far-d_near),
0, 0, -1.0, 0); d_x = -(dot(eye, u)); d_y = -(dot(eye, v)); d_z = -(dot(eye, n)); C = mat4(1.0, 0.0, 0.0, eye.x, 0.0, 1.0, 0.0, eye.y, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0); V = mat4(u.x, u.y, u.z, d_x, v.x, v.y, v.z, d_y, n.x, n.y, n.z, d_z, 0.0, 0.0, 0.0, 1.0); MV = C * V; //MV = V; glutPostRedisplay(); }
}