======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, [[ 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. In Ebene 0 wird alles vorgestellt, was benötigt wird, bevor man überhaupt den Editor startet. Dazu gehören zum einen verschiedene Tools, die das Mapping deutlich erleichtern, als auch die wichtige Planungsphase jeder Karte. In Ebene 1 beginnen wir mit der grundlegenden Bedienung des Map Editors und wie man damit eine Karte gestalten kann. Außerdem gibt es eine kleine Einführung ins Skripting, um eine spielbare Mission ablaufen zu lassen. Zum Schluss gibt es ein kleines Kapitel zum Testen der Karte. 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? 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.) ---- =====Ebene 0: Vor dem Editor===== * FIXME Aufsetzen von Visual Studio Code * FIXME Community-Tools (bbaTool, S5Updater, Debugger, etc) * [[ scripting:tutorials:drafting | Planung einer Karte ]] ---- =====Ebene 1: Eine einfache (Kampf-) Karte===== ====Grundlagen Mapeditor==== * [[ scripting:tutorials:level1:editor_interface | Interface ]] * [[ scripting:tutorials:level1:landscape_sets | Landschaftssets ]] * [[ scripting:tutorials:level1:terrain_heights | Höhen modifizieren ]] * [[ scripting:tutorials:level1:water_heights | Wasser ]] * [[ scripting:tutorials:level1:terrain_textures | Texturen setzen ]] * [[ scripting:tutorials:level1:place_entities | Objekte platzieren ]] * [[ scripting:tutorials:level1:p4f_editor#video_zu_den_editor-grundlagen | Video von Play4Fun ]] ====Grundlagen Lua-Programmierung==== * [[ scripting:tutorials:level1:programming_intro | Was ist Programmierung ]] * [[ scripting:tutorials:level1:variables | Variablen ]] * [[ scripting:tutorials:level1:branches | Verzweigungen ]] * [[ scripting:tutorials:level1:functions_blocks | Funktionen ]] * [[ scripting:tutorials:level1:variable_scope | Lokale und Globale Variablen ]] * [[ scripting:tutorials:level1:loops | Schleifen ]] * [[ scripting:tutorials:level1:tables | Tables ]] * [[ scripting:tutorials:level1:readable_code | Gut lesbare Skripte ]] ====Die Spielvoraussetzungen definieren==== * [[ scripting:tutorials:level1:basis_script | Das Basisskript ]] * [[ scripting:tutorials:level1:diplomacy | Diplomatie ]] * [[ scripting:tutorials:level1:resources | Ressourcen ]] * [[ scripting:tutorials:level1:technologies | Technologien ]] * [[ scripting:tutorials:level1:weather | Wetter ]] * **Multiplayer**: Unterschiede zum Singleplayer (und EMS) * [[ scripting:tutorials:level1:p4f_editor#video_zu_den_skript-grundlagen | Video von Play4Fun ]] ====Einen Spielverlauf implementieren==== * [[ scripting:tutorials:level1:enemy_ai | Einen Computergegner platzieren ]] * [[ scripting:tutorials:level1:briefings | Ein Briefing abspielen ]] * [[ scripting:tutorials:level1:simple_job | Eine Siegbedingung formulieren ]] ====Die Karte testen==== * [[ scripting:tutorials:level1:debugging | Fehler finden und beheben ]] * [[ scripting:tutorials:level1:common_errors | Häufige Fehler ]] * [[ scripting:tutorials:level1:balancing | Balancing ]] ---- =====Ebene 2: Karte mit Quests===== ====Fortgeschrittene Funktionen des Mapeditors==== * [[ scripting:tutorials:level2:templates | Kopiervorlagen ]] * [[ scripting:tutorials:level2:heightmaps | Höhen- und Texturmaps ]] * [[ scripting:tutorials:level2:vertex_colors | Vertexfarben ]] * [[ scripting:tutorials:level2:editor_groups | Das Gruppentool ]] * [[ scripting:tutorials:level2:landscaping_techniques | Techniken zur Landschaftsgestaltung ]] * **Multiplayer**: Spezielle Anforderungen ans Mapdesign ====Fortgeschrittene Lua-Programmierung==== * [[ scripting:tutorials:level2:lua_library | Die Lua-Standardbibliothek ]] * [[ scripting:tutorials:level2:loops | Weiteres zu Schleifen ]] * [[ 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==== * [[ scripting:tutorials:level2:npcs | NPCs ]] * [[ scripting:tutorials:level2:setup_quest | Orte erreichen, Gebäude bauen, Gegner besiegen ]] * [[ scripting:tutorials:level2:rewards | Belohnungen ]] * [[ scripting:tutorials:level2:find_entities | Spieler-Einheiten und -Gebäude finden ]] * [[ scripting:tutorials:level2:tribute | Tribute ]] * [[ scripting:tutorials:level2:quest_menu | Das Auftragsmenü ]] * [[ 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==== * [[ scripting:tutorials:level2:debugging | Effektives Debugging ]] * [[ scripting:tutorials:level2:common_errors | Häufige Fehler ]] * **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===== * Der Rest zur Lua-Programmierung * Funktionen als (lokale) Variablen * Call by reference vs Call by value * upvalues und metatables * Best practices (zB Lookup tables) * Iterators * Lazy evaluation * Armeesteuerung * Briefings revised * Trigger * KI-Steuerung * Eigenständiger Aufbau * Eigenständige Entwicklung =====Ebene 4: Das gewisse Etwas===== * Cutscenes * Gfx-Sets * Quest-Icons * Grafikeffekte * Sound * Dynamischer Nebel * Terrain per Skript * GUI-Hacks