Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:tutorials

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
scripting:tutorials [2023/05/15 18:34] fritz_98scripting:tutorials [2024/05/13 07:27] (aktuell) – [Ebene 0: Vor dem Editor] fritz_98
Zeile 1: Zeile 1:
 ======Einsteigertutorials====== ======Einsteigertutorials======
  
-Dieses Einsteigertutorial soll dich dazu befähigen, eigene Karten für Die Siedler - Das Erbe der Könige zu erstellen. Dafür haben wir die Lektionen in verschiedene Ebenen aufgeteilt, deren Inhalte in der Komplexität stetig zunehmen. Wenn du also komplett neu startest, ist es sinnvoll, die Reihenfolge der Ebenen einzuhalten und sie nacheinander durchzuarbeiten. Falls du schon erfahrener bist, kannst du auch nach einem speziellen Thema, das dich interessiert, suchen. (FIXMERegister mit Schlagworten(und dann hier verlinken))+Dieses Einsteigertutorial soll dich dazu befähigen, eigene Karten für Die Siedler - Das Erbe der Könige zu erstellen. Dafür haben wir die Lektionen in verschiedene Ebenen aufgeteilt, deren Inhalte in der Komplexität stetig zunehmen. Wenn du also komplett neu startest, ist es sinnvoll, die Reihenfolge der Ebenen einzuhalten und sie nacheinander durchzuarbeiten. Falls du schon erfahrener bist, kannst du auch nach einem speziellen Thema, das dich interessiert, [[ https://dedk.de/wiki/doku.php?id=scripting&do=search&q=%20%40scripting |suchen]].
  
 Nach jeweils einer Ebene ist es möglich, eine komplett spielbare Karte an der Hand zu haben. Wer sich dafür interessiert, Multiplayerkarten zu erstellen, wird dafür relevante Kapitel hervorgehoben finden. Nach jeweils einer Ebene ist es möglich, eine komplett spielbare Karte an der Hand zu haben. Wer sich dafür interessiert, Multiplayerkarten zu erstellen, wird dafür relevante Kapitel hervorgehoben finden.
Zeile 11: Zeile 11:
 In Ebene 2 beschäftigen wir uns mit fortgeschrittenen Werkzeugen des Editors und erklären einige Kniffe, um ansprechende Landschaften gestalten zu können. Auf der Skriptseite werden weiterführende Konzepte in der Programmierung betrachtet und außerdem erklärt, wie man Quests in eine Karte integrieren kann. Da dadurch die Spielabläufe durchaus komplexer werden können, gibt es noch ein weiteres Kapitel zu Maptests. In Ebene 2 beschäftigen wir uns mit fortgeschrittenen Werkzeugen des Editors und erklären einige Kniffe, um ansprechende Landschaften gestalten zu können. Auf der Skriptseite werden weiterführende Konzepte in der Programmierung betrachtet und außerdem erklärt, wie man Quests in eine Karte integrieren kann. Da dadurch die Spielabläufe durchaus komplexer werden können, gibt es noch ein weiteres Kapitel zu Maptests.
  
-FIXME Was kommt in den zwei Ebenen danach?+In Ebene 3 vervollständigen wir die Kapitel zu Lua und geben einige Tricks zu gutem Programmierstil weiter. Des Weiteren verlassen wir die High-Level-Betrachtung zur KI und steigen auf elementare Steuerungsfunktionen ab, um die KI maßgeschneidert das tun zu lassen, was wir für eine Karte brauchen. Zuletzt werden Briefings und Trigger ebenfalls vertieft. 
 + 
 +Ebene 4 schließt das Tutorial ab. Dort beschreiben wir in weniger zusammenhängenden Artikeln zahlreiche Möglichkeiten, deiner Map "optisch" etwas Besonderes hinzufügen zu können. Dies schließt unter anderem Cutscenes, Grafikeffekte und dynamischen Nebel mit ein. 
 + 
 +FIXME In jedem Artikel, in dem eine Comfortfunktion zum ersten Mal benutzt wird, zu einem zugehörigen Doku-Artikel verlinken (zB GetPosition im Briefing-Artikel, IsDead bei der Siegbedingung usw.)
  
 ---- ----
Zeile 17: Zeile 21:
 =====Ebene 0: Vor dem Editor===== =====Ebene 0: Vor dem Editor=====
  
-  * FIXME Aufsetzen von Visual Studio Code +  * [[ scripting:tutorials:visual_studio | Aufsetzen von Visual Studio Code ]] 
-  * FIXME Community-Tools (bbaTool, S5Updater, Debugger, etc)+  * [[ scripting:tutorials:community_tools | Aufsetzen der Community-Tools ]]
   * [[ scripting:tutorials:drafting | Planung einer Karte ]]   * [[ scripting:tutorials:drafting | Planung einer Karte ]]
  
Zeile 33: Zeile 37:
   * [[ scripting:tutorials:level1:terrain_textures | Texturen setzen ]]   * [[ scripting:tutorials:level1:terrain_textures | Texturen setzen ]]
   * [[ scripting:tutorials:level1:place_entities | Objekte platzieren ]]   * [[ scripting:tutorials:level1:place_entities | Objekte platzieren ]]
 +  * [[ scripting:tutorials:level1:p4f_editor#video_zu_den_editor-grundlagen | Video von Play4Fun ]]
  
 ====Grundlagen Lua-Programmierung==== ====Grundlagen Lua-Programmierung====
Zeile 47: Zeile 52:
 ====Die Spielvoraussetzungen definieren==== ====Die Spielvoraussetzungen definieren====
  
-  * Diplomatie +  * [[ scripting:tutorials:level1:basis_script | Das Basisskript ]] 
-  * Ressourcen +  * [[ scripting:tutorials:level1:diplomacy | Diplomatie ]] 
-  * Technologien +  * [[ scripting:tutorials:level1:resources | Ressourcen ]] 
-  * Wetter+  * [[ scripting:tutorials:level1:technologies | Technologien ]] 
 +  * [[ scripting:tutorials:level1:weather | Wetter ]]
   * **Multiplayer**: Unterschiede zum Singleplayer (und EMS)   * **Multiplayer**: Unterschiede zum Singleplayer (und EMS)
 +  * [[ scripting:tutorials:level1:p4f_editor#video_zu_den_skript-grundlagen | Video von Play4Fun ]]
  
 ====Einen Spielverlauf implementieren==== ====Einen Spielverlauf implementieren====
  
-  * Einen Computergegner platzieren +  * [[ scripting:tutorials:level1:enemy_ai | Einen Computergegner platzieren ]] 
-  * Ein Briefing abspielen +  * [[ scripting:tutorials:level1:briefings | Ein Briefing abspielen ]] 
-  * Eine Siegbedingung formulieren+  * [[ scripting:tutorials:level1:simple_job | Eine Siegbedingung formulieren ]]
  
 ====Die Karte testen==== ====Die Karte testen====
  
-  * Fehlermeldungen aktivieren +  * [[ scripting:tutorials:level1:debugging | Fehler finden und beheben ]] 
-  * Fehler finden und beheben +  * [[ scripting:tutorials:level1:common_errors | Häufige Fehler ]] 
-  * Häufige Fehler +  * [[ scripting:tutorials:level1:balancing | Balancing ]]
-  * Balancing+
  
 ---- ----
Zeile 72: Zeile 78:
 ====Fortgeschrittene Funktionen des Mapeditors==== ====Fortgeschrittene Funktionen des Mapeditors====
  
-  * Kopiervorlagen +  * [[ scripting:tutorials:level2:templates | Kopiervorlagen ]] 
-  * Höhen- und Texturmaps +  * [[ scripting:tutorials:level2:heightmaps | Höhen- und Texturmaps ]] 
-  * Vertexfarben +  * [[ scripting:tutorials:level2:vertex_colors | Vertexfarben ]] 
-  * Das Gruppentool +  * [[ scripting:tutorials:level2:editor_groups | Das Gruppentool ]] 
-  * Techniken zur Landschaftsgestaltung+  * [[ scripting:tutorials:level2:landscaping_techniques | Techniken zur Landschaftsgestaltung ]]
   * **Multiplayer**: Spezielle Anforderungen ans Mapdesign   * **Multiplayer**: Spezielle Anforderungen ans Mapdesign
  
 ====Fortgeschrittene Lua-Programmierung==== ====Fortgeschrittene Lua-Programmierung====
  
-  * Schleifen Vol. 2 +  * [[ scripting:tutorials:level2:lua_library | Die Lua-Standardbibliothek ]] 
-  * table-Funktionen +  * [[ scripting:tutorials:level2:loops | Weiteres zu Schleifen ]] 
-  * Comfortfunktionen+  * [[ scripting:tutorials:level2:functions | Weiteres zu Funktionen ]] 
 +  * [[ scripting:tutorials:level2:recursion | Rekursionen ]] 
 +  * [[ scripting:tutorials:level2:comfort_functions | Komfortfunktionen ]] 
 +  * [[ scripting:tutorials:level2:amendments | Ergänzende Bemerkungen ]]
  
 ====Quests implementieren==== ====Quests implementieren====
  
-  * Npcs +  * [[ scripting:tutorials:level2:npcs | NPCs ]] 
-  * Orte erreichen, Gebäude bauen, Gegner besiegen +  * [[ scripting:tutorials:level2:setup_quest | Orte erreichen, Gebäude bauen, Gegner besiegen ]] 
-  * Tribute +  * [[ scripting:tutorials:level2:rewards | Belohnungen ]] 
-  * Belohnungen +  * [[ scripting:tutorials:level2:find_entities | Spieler-Einheiten und -Gebäude finden ]] 
-  * Das Auftragsmenü +  * [[ scripting:tutorials:level2:tribute | Tribute ]] 
-  * Schatztruhen +  * [[ scripting:tutorials:level2:quest_menu | Das Auftragsmenü ]] 
-  * Effektive Kommunikation mit dem Spieler+  * [[ scripting:tutorials:level2:chests | Schatztruhen ]] 
 +  * [[ scripting:tutorials:level2:mercenaries | Söldnerquartiere ]] 
 +  * [[ scripting:tutorials:level2:countdowns | Zähler und Zeitlimits ]] 
 +  * [[ scripting:tutorials:level2:bandit_camps | Banditenlager und Spawner ]] 
 +  * [[ scripting:tutorials:level2:communication | Effektive Kommunikation mit dem Spieler ]] 
 +  * [[ scripting:tutorials:level2:script_example | Beispielskript ]]
  
 ====Weiteres zu Maptests==== ====Weiteres zu Maptests====
  
-  * Effektives Debugging +  * [[ scripting:tutorials:level2:debugging | Effektives Debugging ]] 
-  * Häufige Fehler+  * [[ scripting:tutorials:level2:common_errors | Häufige Fehler ]]
   * **Multiplayer**: Debugging im Multiplayer (auch zB Desynchs)   * **Multiplayer**: Debugging im Multiplayer (auch zB Desynchs)
  
 ---- ----
- 
-FIXME Ab hier Kraut und Rüben! Ich schau erst mal, wie die ersten Kapitel werden und entscheide dann, wie ich hier strukturiere 
  
 =====Ebene 3: Individuelle Kartenabläufe===== =====Ebene 3: Individuelle Kartenabläufe=====
-  * Der Rest zur Lua-Programmierung + 
-    * Funktionen als (lokale) Variablen +====Feinheiten der Lua-Programmierung==== 
-    * Call by reference vs Call by value +  [[ scripting:tutorials:level3:local_functions | Lokale Funktionen ]] 
-    upvalues und metatables +  [[ scripting:tutorials:level3:iterators | Iteratoren ]] 
-    * Best practices (zB Lookup tables) +  * [[ scripting:tutorials:level3:lazy_evaluation | Lazy evaluation ]] 
-    * function{} call +  * [[ scripting:tutorials:level3:call_by | Call by reference und Call by value ]] 
-     +  [[ scripting:tutorials:level3:upvalues_metatables | Upvalues und Metatables ]] 
-  * Armeesteuerung +  [[ scripting:tutorials:level3:best_practices | Best Practices ]] 
-  * Briefings revised + 
-  * Trigger +====Maßgeschneiderte KI==== 
-  * KI-Steuerung +  * [[ scripting:tutorials:level3:armies | Armeesteuerung ]] 
-    Eigenständiger Aufbau +  * [[ scripting:tutorials:level3:ai_construction | Eigenständiger Aufbau ]] 
-    * Eigenständige Entwicklung+  * [[ scripting:tutorials:level3:ai_development | Eigenständige Entwicklung ]] 
 + 
 +====Ergänzungen==== 
 +  * [[ scripting:tutorials:level3:briefings | Briefings ]] 
 +  [[ scripting:tutorials:level3:trigger | Trigger ]] 
 + 
 +----
  
 =====Ebene 4: Das gewisse Etwas===== =====Ebene 4: Das gewisse Etwas=====
-  * Cutscenes + 
-  * Gfx-Sets +  [[ scripting:tutorials:level4:cutscenes | Cutscenes ]] 
-  * Quest-Icons +  * [[ scripting:tutorials:level4:gfx_sets | Gfx-Sets ]] 
-  * Grafikeffekte +  * [[ scripting:tutorials:level4:effects | Grafikeffekte ]] 
-  * Sound +  * [[ scripting:tutorials:level4:sounds | Sounds und Musik ]] 
-  * Dynamischer Nebel +  * [[ scripting:tutorials:level4:quest_icons | Quest-Icons ]] 
-  * Terrain per Skript+  * [[ scripting:tutorials:level4:dynamic_fog | Dynamischer Nebel ]] 
 +  * [[ scripting:tutorials:level4:scripted_terrain | Terrainmodifizierung per Skript ]] 
 +  * [[ scripting:tutorials:level4:gui_hacks | GUI-Hacks ]]
scripting/tutorials.1684175681.txt.gz · Zuletzt geändert: 2023/05/15 18:34 von fritz_98