Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials:level2:communication

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
scripting:tutorials:level2:communication [2024/02/11 10:54] – angelegt fritz_98scripting:tutorials:level2:communication [2024/05/20 08:49] fritz_98
Zeile 4: Zeile 4:
  
 Dabei ist zu unterscheiden zwischen Hauptaufgaben, die für das Gewinnen der Karte unerlässlich sind und Nebenaufgaben bzw. Secrets, die aufmerksames Spielen belohnen sollen und deshalb (deutlich) subtiler ausgeschrieben werden können. Dabei ist zu unterscheiden zwischen Hauptaufgaben, die für das Gewinnen der Karte unerlässlich sind und Nebenaufgaben bzw. Secrets, die aufmerksames Spielen belohnen sollen und deshalb (deutlich) subtiler ausgeschrieben werden können.
 +
 +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:tutorials:level1:briefings|diesem Artikel in Ebene 1]] werden Briefings vorgestellt. +In [[ scripting:tutorials:level1:briefings |diesem Artikel in Ebene 1]] werden Briefings vorgestellt. Während Briefings ist die gesamte Aufmerksamkeit darauf gerichtet, weil das Spiel und der Spieler währendessen nichts anderes machen. Diese konzentrierte Aufmerksamkeit sollte nafür genutzt werden, wichtige Informationen für die zu lösenden Quests mitzuteilen. Je nachdem, wie groß die Rolle der Story in der Map ist, werden Briefings auch gerne dafür benutzt, diese zu erzählen. 
 + 
 +Weil Briefings sehr abrupt den Spielfluss unterbrechen, sollten sie nicht ständig während Gameplay-Abschnitten von alleine starten, sondern nur als Reaktion auf NPC-Interaktionen oder gelöste Quests. Überlass dem Spieler die Wahl, wann er den Aufbau seiner Siedlung oder seine Kampfhandlungen unterbrechen möchte. 
 + 
 +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, wenn es sich um Hauptquests handelt!). In der Mission Crawford in der Hauptspiel-Kampagne wurden beispielsweise mit einem Marker auf der Minimap und der Karte selbst die Bauplätze für Ballistatürme kommuniziert: 
 +<code lua> 
 +
 +    title = "Helias", 
 +    text = "Wir sollten hier zwei Ballistatürme bauen, weil Kerberos sie vor dem Match nicht verboten hat.", 
 +    position = GetPosition("CrawfordWest"), 
 +    -- 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("CrawfordWest"
 +
 +</code> 
 +Mit ''ResolveBriefing'' können die Marker wieder entfernt werden (setzt voraus, dass die Briefingseite zuvor in einer Variable gespeichert wurde). 
 + 
 +----
  
 =====Questlog===== =====Questlog=====
  
-=====Messages=====+Im Questlog werden alle Informationen festgehalten, die ein Spieler braucht, um eine Quest zu lösen. Das ist insbesondere bei Quests wichtig, die dem Spieler sehr spezifische Aktionen abverlangen, zum Beispiel das Bauen ganz bestimmter Gebäude an einem vorgegebenen Ort. Der Ort sollte auf der Karte markiert sein und die notwendigen Gebäude (mit Ausbaustufe) im Questlog gelistet. Andernfalls wird der Spieler raten müssen, welche Voraussetzungen er für das Lösen der Quests erfüllen muss, was zu Frust führt.
  
-=====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 ''Message(_Text)'' angezeigt und verschwinden nach einer kurzen Zeit von alleine wieder. 
 + 
 +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, wenn man sie zusätzlich im Skript startet. Dazu gehören zum Beispiel die Geräusche, die Gebäude beim Verarbeiten von Ressourcen verursachen. Bei der Auswahl eines Sounds ist es demnach wichtig darauf zu achten, dass der Sound nicht im regulären Spielgeschehen auftaucht. Sounds werden mit der Funktion ''Sound.PlayGUISound(_SoundType, _Volume)'' gestartet. Eine Liste aller Sounds findest du hier (FIXME link). 
 + 
 +Messages und Sounds in Kombination sind aber eine Möglichkeit, dem Spieler unaufdringlich Informationen bereitzustellen, ohne den Spielfluss zu unterbrechen. Ein spezieller Sound weckt die Aufmerksamkeit des Spielers und die Textnachricht gibt konkrete Auskünfte. 
 + 
 +Wir zeigen drei verschiedene Anwendungsgebiete und eine passende Art, dem Spieler Hinweise/Informationen zu geben. 
 + 
 +**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("Anscheinend habt ihr nicht den passenden Schlüssel für diese Truhe."
 +</code> 
 + 
 +**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("BanditsWarnPlayer"
 +end 
 + 
 +function BanditsWarnPlayer() 
 +    local PositionBandits = GetPosition("BanditTower"
 +    local NumberOfEntities, _ = Logic.GetPlayerEntitiesInArea(1, 0, PositionBandits.X, PositionBandits.Y, 5000, 1) 
 +    if NumberOfEntities > 0 then 
 +        Sound.PlayGUISound(Sounds.LevyTaxes, 75) 
 +        return true 
 +    end 
 +end 
 +</code> 
 + 
 +**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("Achtung! Ein Angriff feindlicher Banditen steht bevor!"
 +Sound.PlayGUISound(Sounds.OnKlick_Select_kerberos, 100) 
 +-- Wenn man noch konkreter sein möchte, kann man auch einen Countdown in der oberen linken Ecke anzeigen 
 +MapLocal_StartCountDown(5*60) 
 +</code> 
 + 
 +----
  
 =====Mapdesign===== =====Mapdesign=====
Zeile 26: Zeile 89:
  
 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 "ankündigst", kannst du so die Richtung angeben, in die der Spieler für sein Ziel erkunden 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 "ankündigst", kannst du so die Richtung angeben, in die der Spieler für sein Ziel erkunden muss.
 +
 +----
  
 =====Priming===== =====Priming=====
scripting/tutorials/level2/communication.txt · Zuletzt geändert: 2024/05/20 09:15 von fritz_98