Entwickle ein Online-Adventure-Game
Entwickle ein Online-Adventure(?)-Game, auf Basis von Javascript
und HTML
/CSS
. Die Komplexität ist nicht vorgeschrieben. Es kann sich um eine bildlastige Umsetzung im Stil von Myst handeln, oder um ein klassisches Textadventure, was im Prinzip Interactive Fiction ist, also eine Erzählung, bei der der Leser die Handlung beinflussen kann. Alle Freiheiten sind gegeben.
Die Aufgabe soll im Idealfall die im Kurs vermittelten Inhalte widerspiegeln.
- Sitemap bzw. Flowdiagramm mit den benötigten Templates/Einzeldesigns
- Wireframes für die verschiedenen Templates
- Entwickle ein Navigationskonzept und -design für dein Spiel
- Entwicklung eines Erscheinungsbildes
HTML
-Grundgerüst,<meta>
-Tags, externeCSS
undJavascript
-Dateien- Arbeit vom Allgemeinen ins Detail
- Wenn möglich responsive im Bereich
~400px
bis1400px
Wenn du möchtest, nutze Git (siehe auch PDF der entsprechenden Stunde) und/oder Github, um dein Projekt in Einzelschritten zeitlich nachvollziehbar zu machen und dich gegen Fehler abzusichern. Ausserdem kannst Du, wenn Du von Anfang an etwas planst, deine Seite direkt bei Github Pages hosten und veröffentlichen.
- Startseite/Titelgrafik
- Gebrauchsanweisung, Manual, Bedienungsanleitung, Steuerung
- Spielfluss mit mehreren Entscheidungsmöglichkeiten
- Verschiedene Spielausgänge/Enden
- Abgabe der Seite als
URL
. Die Seite sollte für die Abgabe online gehostet werden, zB. bei Github Pages oder Uberspace. Das erhöht die Chance, dass das Spiel so auf der nächsten Werkschau gezeigt werden kann, aber auch, dass man Freunde und Bekannte auf einfache Weise probespielen lassen kann, um Feedback zu erhalten.
- Bildlastiges Spiel, à la Myst
- Fantasy- oder Science-Fiction-Themen (Lovecraft?) vs. realitätsnaher Fakultäts-Tatort
- Bedienelemente als Grafiken. Falls du simple Icons für die Bedienung verwendest, sollten diese im Format
SVG
hergestellt werden, zB. in Sketch, Illustrator oder notfalls von Hand. - Visuelle Rückmeldung, zB. Dialoge oder Toasts, für gängige Aktionen.
- Rollenspiel-Aspekte wie Spielereigenschaften (Glück, Stärke, Lebenskraft). Diese liessen sich gut in einem globalen
Javascript
-Objekt, oder Variablen, ablegen.
let player = {
'stats': { // Spielereigenschaften
'level': 2,
'health': 25,
'strength': 15,
'luck': 10
},
'items': { // Gegenstände
'hasKey': true,
'hasLamp': false,
'hasSword': false
}
};
if (player.items.hasLamp) {
// Betreten eines dunklen Raums möglich?
}
- Ein Spiel kann interessanter, aber auch frustrierender werden, wenn man Zufallselemente einbringt, zB. eine prozentuale Chance, bei einer Entscheidung/Wahl zu versagen.
/*
"Öffnen einer verfluchten Kiste"
Aktion erfordert das Gewinnen einer 50/50-Chance,
aber der Glückswert des Spielercharakters verbessert
die Chance.
*/
if ((Math.random()*100 + player.stats.luck) > 50) {
// Aktion klappt
player.items.hasKey = true;
} else {
// Aktion scheitert, Spieler nimmt 5 Schaden
player.stats.health -= 5;
}
Man kann ein Spiel komplex aufbauen, indem man sich eine Art Engine ausdenkt, die zB. Javascript
-Objekte nutzt, um Einzelscreens mit Eigenschaften anlegen und speichern zu können, und diese dann dynamisch generiert und anzeigt.
Man kann aber ebenso ein simpleres Format wählen, das die Einzelscreens mit Buttons für Wahlmöglichkeiten bereits in HTML
vollständig definiert, alle über CSS
ausblendet und dann jeweils einen davon sichtbar schaltet, je nach Wahl des Spielers.
Die veranschlagte Bearbeitungszeit für diese Aufgabe beträgt n
Tage, bis zum Ende des Semesters.
Die Abgabe dieser Aufgabe findet an einem zu vereinbarenden Termin statt, üblicherweise 1-3 Wochen nach Semesterende. Zu diesem Zeitpunkt sind zu übermitteln:
URL
des Projekts zu Präsentationszwecken- Quelldaten des Projekts als Archiv, zB.
.zip
per Email oder Dropbox Upload (geht auch ohne Account!) - Textliche Angaben zu Quellen und durch andere Personen erhaltene Hilfen
- Textliche Angaben zu verwendeter Software, wie Libraries und Plugins
- Liste von Textadventures (Wikipedia)
- Liste von Lovecraft-Texten
- Lovecraft-Texte als eBook
- Die Myst-Ära (Wikipedia)
- One Page Dungeon (Map Generator)
- Perilous Shores (Map Generator)
- ChooseYourStory.com (Choose-Your-Own-Adventure style storygames)
- Twine (Choose-Your-Own-Adventure games im Browser erstellen) (Twine App Builder)
- Puzzlescript (Game engine)
- ASCII game maps
- AI Dungeon, AI Dungeon 2 (AI generated text adventure)
- Dolmenlore (vue.js-based text adventure)
- Colossal Cave Adventure (1977, Play online)
- BASIC computer games
- The Secret to Creating Fun Games
- Procedural Dungeon Generation (P1, P2, P3)
- SVG Image Maps (klickbare Bereiche in Bildern)
- Random Title Generator (zufällig generierte Text-Titel)
- Random RPG Map
- Adventure Game Sandboxes (meine eigenen Ansätze für die Aufgabe)
- Zufall mit Basiswert (Sunless Sea Style challenges)
- Order Numerals Game (Demo) (Kurzzeitgedächtnis-Test)
- Youtube-Tutorial für ein JS Adventure
- Vue.js (Framework für Webanwendungen, Wikipedia-Link)
- Dragula (drag and drop Library)
- Highscore Module
- random.js (Zufallszahlen generieren)
- chance.js (Bessere Zufallszahlen generieren, dafür komplexer)
- Javascript Game Loops (MDN)
- Responsive Image Maps (SelfHTML)
- My JSON Server (Simple API mit JSON und Github)
- Kenney.nl Assets (unfassbar viele kostenfreie Grafiken für Minigames)