Logo ICT-BZ

CubeTurn

Kurzinfo

Themenbereich

Softwareentwicklung

Lernende/r

Bela Müller

Lehrbetrieb

suva

Betreuer

Manuel Gut

Projekt-Website

CubeTurn (GitHub Pages)

Aufgabenstellung

Die meisten Webversionen des Rubik's Cube Puzzles sind unhantlich zu bedienen und orientieren sich strikt an der offiziellen "Speedcube Notation" mit U, D, L, R, F, B usw. und die Maussteuerung ist zu ungenau. Daher habe ich mir das Ziel gesetzt eine Websimulation des Rubik's Cube Puzzles zu erstellen, welche darauf ausgelegt ist schnelle Zeiten aufzustellen.

Ergebnisse

CubeTurnImg

Ich habe ein Webgame mit Unity und WebGL erstellt. Die Steuerung mag auf den ersten blick etwas komplex wirken, allerdings gewöhnt man sich schnell an die Kombinationen. Das Spiel hat auch einige visuelle verbesserungen, welche ich mit Post Processing implementiert habe.

Lösungskonzept

Ich habe mich am anfang mit den verschiedensten Technologien auseinandergesetzt. Die technologie welche am besten zu meinem Projekt gepasst hat war Unity. Ich hatte bereits Vorkentnisse mit der Unity 2D Engine. Daher musste ich mir nicht so viel neues aneignen. Als erstes habe ich mit der Grundsätzlichen grundsätzlichen logik des Zauberwürfels in C# begonnen, was nicht so einfach war und mir die meste zeit gekostet hat. Anschliessend habe ich Animationen und einen Timer Implementiert. Das Leaderboard habe ich über ein Unity Package erstellt. Zum schluss musste ich noch einige anpassungen des Scalings für die Webversion.

Aufgetretene Probleme

Das Gröste problem welches aufgetreten ist waren Inkonsistenzen in der Würfel Logik. Teilweise haben sich die Teile falsch verschoben, sodass der Würfel unlösbar war. Ein anderes problem, welches aufgetreten ist war, das Jeder spieler nur einmal auf dem Leaderboard vorkommen konnte, was ein problem im Unity Package war, was allerdings ohne zu grossen Aufwand gelöst war.

Ausblick

Der Visuals gefallen mir noch nicht 100%. Ich würde gerne noch etwas mit Shadern machen, um mehr einen "retro look" zu erhalten. Es gibt immernoch einige performance probleme, welche mit Optimierung des codes gelöst werden könten.