Version 1.0 Release
This commit is contained in:
parent
c39db0afae
commit
9067095b1e
74
README.md
Normal file
74
README.md
Normal file
@ -0,0 +1,74 @@
|
||||
# Dokumentation - Text Adventure
|
||||
|
||||
## Story
|
||||
|
||||
In diesem simplen Text Adventure geht das darum, das der Spieler seit 6 Monaten in einem Anwendungsentwicklung-Unternehmen arbeitet, aber es soll nun ein neuer Azubi kommen und den Spieler ersetzen.
|
||||
Die Aufgabe des Spielers ist es zu versuchen dennoch seinen Platz in der Firma zu behalten.
|
||||
|
||||
## Sprache
|
||||
|
||||
Ich habe für das Text Adventure mir Java ausgesucht, da es eine Sprache ist, in der ich mich gut auskenne.
|
||||
Zudem habe ich die Packages von [Jackson](https://github.com/FasterXML/jackson) und [Apache Commons Lang](https://commons.apache.org/proper/commons-lang/) benutzt.
|
||||
|
||||
## Besonderheiten
|
||||
|
||||
Das Programm ist so geschrieben, das ich mit einer einfachen JSON-Datei auch einfach selbst neue Text Adventures kreieren kann.
|
||||
|
||||
```json
|
||||
{
|
||||
"start": {
|
||||
"text": [
|
||||
"Startpunkt",
|
||||
"Hallo, %user%"
|
||||
],
|
||||
"decisions": [
|
||||
{
|
||||
"text": "Dies ist Option 1",
|
||||
"scene": "option1"
|
||||
},
|
||||
{
|
||||
"text": "Dies ist Option 1",
|
||||
"scene": "option2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"option1": {
|
||||
"text": [
|
||||
"Du hast Option 1 ausgewählt"
|
||||
],
|
||||
"decisions": []
|
||||
},
|
||||
"option2": {
|
||||
"text": [
|
||||
"Du hast Option 2 ausgewählt"
|
||||
],
|
||||
"decisions": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Wichtig** ist dabei, dass es immer einen `start` Node im Top-Level gibt, das ist unsere Erste Szene unsere `start`-Scene, darin einen `text` Node als List und einen `decisions` Node als List.
|
||||
Die decisions List kann aber leer sein und somit endet dann auch das Text Adventure.
|
||||
Wenn man aber eine Entscheidung hinzufügen möchte, muss man in decisions mindestens ein JSON-Objekt hinzufügen mit einem `text` als String und eine `scene` als String.
|
||||
Der richtige Name der Nächsten Scene muss hier angeben werden und in der JSON-Datei definiert werden wie man es bereits bei `start` gemacht hat.
|
||||
Zudem kann man auch den Platzhalter `%user%` Verwenden, um später im Programm das ganze durch den von User Angegebene Username auszutauschen.
|
||||
|
||||
Wenn man das Programm startet, bekommt man die möglich auszuwählen, welche Text Geschwindigkeit man haben möchte, da jeder Buchstabe einzeln nacheinander ausgegeben wird.
|
||||
Der Standard ist `Normal`.
|
||||
Danach wird man nach dem Username gefragt, es wird nur das Erste Wort genommen.
|
||||
Der Standard Username ist `Player`.
|
||||
|
||||
Das Programm wird ausgeführt mit
|
||||
```cmd
|
||||
java -jar TextAdventure.jar <optional path/to/dialog.json>
|
||||
```
|
||||
|
||||
## Was fiel mir leicht / schwer?
|
||||
|
||||
Mir fiel es leicht den Code zu schreiben und auch gegeben, falls Online nach Hilfestellungen zu suchen und diese anzuwenden.
|
||||
|
||||
Mir fiel es nicht so leicht eine Story für meinen Text Adventure zu formulieren.
|
||||
|
||||
## Author
|
||||
|
||||
Yannik Giebenhain
|
||||
@ -1,8 +0,0 @@
|
||||
Story:
|
||||
|
||||
Der Player ist Yannik und ist in einer Anwendungsentwicklung-Firma als langzeit Praktikant seit 6 Monaten angestellt. Dem Player wird in der letzten Woche mitgeteilt das überlegt wird einen anderen Azubi zu nehmen anstelle des Players.
|
||||
|
||||
Jeff Hudson, er hatte sich regulär beworben und ist durchgekommen da er einen höheren Bildungsabschluss als der Player hatte. Er hat keine Vorerfahrung in dem Bereich. Nur der höhere Bildungsabschluss was das interessante.
|
||||
|
||||
Der Player muss nun versuchen den Betrieb zu überzeugen den Player doch zu nehmen oder einen anderen Kompromiss zu finden wie das beide die Ausbildung machen können.
|
||||
|
||||
@ -3,7 +3,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "de.umarumg"
|
||||
version = "1.0-SNAPSHOT"
|
||||
version = "1.0"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@ -63,7 +63,9 @@ public class Main {
|
||||
public static void loadDialog(String fileName, boolean defaultFile) {
|
||||
try {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
InputStream inputStream = defaultFile ? Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName) : new FileInputStream(fileName);
|
||||
InputStream inputStream = defaultFile ?
|
||||
Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName) :
|
||||
new FileInputStream(fileName);
|
||||
story = mapper.readValue(inputStream, new TypeReference<>() {});
|
||||
} catch (Exception ex) {
|
||||
logger.severe("Error reading the internal dialog File. Exiting now!");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user