scripting:tutorials:level2:communication
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
scripting:tutorials:level2:communication [2024/02/11 10:54] – angelegt fritz_98 | scripting:tutorials:level2:communication [2024/05/20 09:15] (aktuell) – [Mapdesign] fritz_98 | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
Dabei ist zu unterscheiden zwischen Hauptaufgaben, | Dabei ist zu unterscheiden zwischen Hauptaufgaben, | ||
+ | |||
+ | Beim Angeben von Informationen für den Spieler ist ein Gleichgewicht zu finden: Auf der einen Seite sollte der Spieler alles wissen, was er braucht, um eine Quest zu lösen oder die Story zu verstehen. Auf der anderen Seite sollte der Spieler nicht mit Informationen bombardiert werden bzw. sollten diese Infos nicht aufdringlich präsentiert werden. Daher ist eine Mischung aus den unten geschilderten Werkzeugen sinnvoll. | ||
=====Briefings===== | =====Briefings===== | ||
- | In [[ scripting: | + | In [[ scripting: |
+ | |||
+ | Weil Briefings sehr abrupt den Spielfluss unterbrechen, | ||
+ | |||
+ | Weil man in Briefings frei mit der Kamera springen und sogar verdeckte Gebiete aufdecken kann, ist es sinnvoll, Questziele genau aufzuzeigen und eventuell mit Markern zu dokumentieren (insbesondere, | ||
+ | <code lua> | ||
+ | { | ||
+ | title = " | ||
+ | text = "Wir sollten hier zwei Ballistatürme bauen, weil Kerberos sie vor dem Match nicht verboten hat.", | ||
+ | position = GetPosition(" | ||
+ | -- Decke das Gebiet um 1000 Scm um die Position auf | ||
+ | explore = 1000, | ||
+ | -- Erstelle einen pulsierenden Marker auf der Minimap | ||
+ | marker = ANIMATED_MARKER, | ||
+ | -- Erstelle einen Pointer, der die zu bebauende Stelle auf der Karte markiert | ||
+ | pointer = GetPosition(" | ||
+ | } | ||
+ | </ | ||
+ | Mit '' | ||
+ | |||
+ | ---- | ||
=====Questlog===== | =====Questlog===== | ||
- | =====Messages===== | + | Im Questlog werden alle Informationen festgehalten, |
- | =====Sounds===== | + | Einträge im Questlog verschwinden nicht von alleine, sondern erst, wenn der Mapper es möchte. Mit dieser umfassenden Kontrolle geht die Verantwortung einher, das Questlog in jedem Spielabschnitt aktuell zu halten. |
- | =====Message + Sound===== | + | ---- |
+ | |||
+ | =====Messages und Sounds===== | ||
+ | |||
+ | Messages sind kleine Textnachrichten unterhalb des Menüs am oberen Bildschirmrand. Sie sind leicht zu übersehen, wenn gerade viel auf der Map passiert und die Message nicht als Reaktion auf eine Aktion des Spielers erscheint (wie zum Beispiel beim Klick auf einen Button oder Interaktion mit einem NPC). Messages werden mit der Funktion '' | ||
+ | |||
+ | Sounds sind in erster Linie dazu da, Nachrichten an den Spieler zu unterstreichen. Das Spiel bietet nur wenige Sounds, die ausreichend Information liefern, um alleinstehend aussagekräftig zu sein. Noch dazu gibt es viele Sounds, die ständig im Spiel vorkommen und daher nicht herausstechen, | ||
+ | |||
+ | Messages und Sounds in Kombination sind aber eine Möglichkeit, | ||
+ | |||
+ | Wir zeigen drei verschiedene Anwendungsgebiete und eine passende Art, dem Spieler Hinweise/ | ||
+ | |||
+ | **Beispiel 1**: Der Spieler möchte eine Truhe öffnen, hat aber keinen passenden Schlüssel. Da seine Aufmerksamkeit ohnehin auf der Truhe liegt, reicht es, eine Nachricht anzuzeigen, dass er sich auf die Suche nach dem Schlüssel begeben muss: | ||
+ | <code lua> | ||
+ | Message(" | ||
+ | </ | ||
+ | |||
+ | **Beispiel 2**: Der Spieler wurde gewarnt, dass in der Nähe Banditenlager sind. Sobald sich der Spieler einem der Banditenlager nähert, soll ein Sound als Warnung abgespielt werden. Da der Spieler schon im Voraus weiß, dass er mit Banditen zu rechnen hat, reicht der Sound für sich allein genommen. | ||
+ | <code lua> | ||
+ | function FirstMapAction() | ||
+ | StartSimpleJob(" | ||
+ | end | ||
+ | |||
+ | function BanditsWarnPlayer() | ||
+ | local PositionBandits = GetPosition(" | ||
+ | local NumberOfEntities, | ||
+ | if NumberOfEntities > 0 then | ||
+ | Sound.PlayGUISound(Sounds.LevyTaxes, | ||
+ | return true | ||
+ | end | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | **Beispiel 3**: Der Spieler errichtet seine Siedlung. Irgendwann soll ein feindliches Banditenlager seine Siedlung angreifen, wofür eine Warnung erscheint. Damit diese Warnung nicht untergeht, weil der Spieler gerade mit etwas anderem beschäftigt ist, wird zur Message ein Sound abgespielt. | ||
+ | <code lua> | ||
+ | Message(" | ||
+ | Sound.PlayGUISound(Sounds.OnKlick_Select_kerberos, | ||
+ | -- Wenn man noch konkreter sein möchte, kann man auch einen Countdown in der oberen linken Ecke anzeigen | ||
+ | MapLocal_StartCountDown(5*60) | ||
+ | </ | ||
+ | |||
+ | ---- | ||
=====Mapdesign===== | =====Mapdesign===== | ||
Zeile 24: | Zeile 87: | ||
Anderes Beispiel: Der Spieler soll einen fahrenden Händler eskortieren. Damit die Eskorte anständig überfallen werden kann, willst du die Räuberbanden möglicherweise erst erstellen, wenn sich der fahrende Händler einem bestimmten Punkt nähert. Dadurch vermeidest du, dass der Spieler das Gebiet schon im Voraus räumt und keine Eskorte mehr schicken muss. Damit der Spieler nicht überrumpelt wird, ist es wichtig, ihm zu signalisieren, | Anderes Beispiel: Der Spieler soll einen fahrenden Händler eskortieren. Damit die Eskorte anständig überfallen werden kann, willst du die Räuberbanden möglicherweise erst erstellen, wenn sich der fahrende Händler einem bestimmten Punkt nähert. Dadurch vermeidest du, dass der Spieler das Gebiet schon im Voraus räumt und keine Eskorte mehr schicken muss. Damit der Spieler nicht überrumpelt wird, ist es wichtig, ihm zu signalisieren, | ||
+ | |||
+ | Zum Mapdesign zählt auch das Platzieren von Gegnern. Gebiete, die ein Spieler noch nicht betreten soll, können von einem (zu) starken Gegner bewacht werden. Durch eine strategische Kombination aus Mapdesign und Gegnerplatzierung kann der Spieler entlang der Missionen über die Map geführt werden, ohne, dass man übermäßig mit verschlossenen Toren oder tödlichen Fallen arbeiten muss. | ||
Zuletzt kann der Spieler durch das Mapdesign auch bei der Erkundung geleitet werden. Steinminen beispielsweise sollten immer in der Nähe von Gebirge platziert sein. Umgekehrt wird ein Spieler also auf der Suche nach Steinminen nach Gebirge Ausschau halten. Wenn du das Gebirge durch steiler werdendes Terrain und zunehmend auftretende Felstexturen " | Zuletzt kann der Spieler durch das Mapdesign auch bei der Erkundung geleitet werden. Steinminen beispielsweise sollten immer in der Nähe von Gebirge platziert sein. Umgekehrt wird ein Spieler also auf der Suche nach Steinminen nach Gebirge Ausschau halten. Wenn du das Gebirge durch steiler werdendes Terrain und zunehmend auftretende Felstexturen " | ||
+ | |||
+ | ---- | ||
=====Priming===== | =====Priming===== |
scripting/tutorials/level2/communication.txt · Zuletzt geändert: 2024/05/20 09:15 von fritz_98