← Back to team overview

rpg-mediaproject team mailing list archive

Grober Programmierplan

 

Grober Programmierplan:

Wir benötigen einen Client und einen Server, der Server wird beim
Singeplayermodus automatisch im Hintergrund gestartet, beim Multiplayermodus
wird auf einen externen Server zugegriffen.

Der Client wird relativ simpel und ist zuständig für:
 * Grafikdarstellung
   * Sprites
     * PCs (Player Charakters)
     * NPCs (No Player Charakter) wie Tiere und Dorfbewohner
     * andere bewegliche Objekte (z.B. Pflanzen, Bewegliche Objete auf der
Map wie z.B. die Räder einer Mühle)
     * Teleporter
     * Items
     * Gespeichert als XML (z.B. erstellt mit meinem Spriteeditor)
     * Aktiondarstelungen usw
     * ...
   * Maps
     * mehrere Layer ( z.B. über Held, gleiche höhe Held, unter Held)
     * Ist als XML gespeichert (z.B. erstellt mit dem Mapeditor Tiled)
     * Kann sich verschieben
     * Zusammengesetzt aus Tiles
     * Map können Hintergründe haben
     * ...
   * Effekte
     * Wetterverhältisse
       * Wolken, Regen, Sonne, umher fliegende Laubblätter usw...
     * Lichtquellen
     * Wasser
     * Spiegeleffekte
     * ...
 * Kollisionsabfragen
   * Nicht durchquerbare Tiles
   * Andere Sprites
   * Objekte mit Aktionen (z.B. über Zaun springen wenn hinter dem Zaun noch
platz ist)
   * Ende einer Map
   * ...
* Teleportierung auf andere Maps, (z.B. indem man in eine Tür geht) vor
allem der grafische Übergang
* Übertragung der Tastenaktivitäten
* ...

Der Server für:
 * Koordinatenübermittlungen von Sprites (Startposition ab dem Moment des
Betretens der Karte)
 * Tätigkeitsübermittlungen von Sprites (Laufen und andere Aktionen)`(senden
von Lua-Befehlen?)
 * Übertragung der XML-Dateien (Mapinfos, Spriteinfos)
 * Reaktionen auf Tasteneingaben und dessen auswirkungen
 * EVTL
   * Benachrichtigung/Übertragung von Updates
   * Übertragung von neu hinzugekommen Grafiken

Was habt ihr für Verbesserungsvorschläge und Ergänzungen? Wie sorgen wir
dafür, das die Sprites immer synchron sind?
Wo auf jedenfall noch Klärungsbedarf ist, sind:
Evtl. nimmt der Client Lua-Befehle entgegen und macht die entsprechende
grafische Aktion, wärend der Server dessen Auswirkungen berechnet und
ausführt?!
Soll die Kollisionsabfrage vom server oder vom Client übernommen werden?
Berechnen wir die Aktionen bereits auf dem Client und senden nur dessen
Lua-Befehl? oder Schaut der Server ob es eine Aktion gibt macht sein eigenes
Ding und sendet den Lua befehl nur damit der client dessen Bewegung und
Animation ausführen kann?
Was passiert konkret wenn der Spieler die Pfeiltaste nach links betätigt?!

Dies und weitere Sachen sollten möglichst schnell geklärt werden um in die
richtige Richtung zu entwickeln, bitte beteiligen!
Grüße, Pascal