Skip to content

stefan2904/testgame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

--------------------------------------------------------------------------------
testgame
 by ~stefan
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Das hier ist:
> Kennenlernen von lua
> Kennenlernen vom love
> Arbeiten mit TildMaps
> Verstehen der generellen Funktionsweise eines 2D RPG
> Verstehen von Quests und KI

Das hier ist nicht:
> Ein fertiges RPG

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
implementierte TODOs:

> TiledMap (XML) einlesen (tiledmap.lua)
> Debug Mechanismus (debug.lua)
> Readme (this)
> TiledMap parsen (tiledmap.lua)
> TiledMap anzeigen (tiledmap.lua)
> Spieler platzieren (main.lua & tiledmap.lua)
> Koordinaten umrechnen (helper.lua)
> GIT-Repo (https://github.com/stefan2904/testgame)
> 2. Test-Map (map/test1.tmx)
> Eigenschaften aus der TiledMap parsen (tiledmap.lua)
> Spieler nach geh-Richtung ausrichten (helper.lua)
> einfache Kollisionskontrolle (collision.lua)

--------------------------------------------------------------------------------
offene TODOs:

> Map-Funktionalitaet (tiledmap.lua)

> 3. Test-Map (map/test2.tmx)

> Actions / Interaktion mit Welt (actions.lua)
>> Weitere Karte laden
----------------------------------------------------
Trigger-Layer (via Layer Eigenschaft)
Beliebige Actions pro Tile pro Feld

Key-Value Pairs in den Tile-Eigenschaften:
zB "loadLevel" : "test2.tmx"
zB "initQuest" : "quest1.qst"
zB "warning" : "Bruecke gesperrt"
mehrere Parameter per String-Trennung & Zerlegung im Programm
zB "items" : "messer;stein;papier"

im Programm:

Init von Array:
actions[x][y][1].name = "loadLevel" 
actions[x][y][1].params = "test2.tmx" 
actions[x][y][2].name = "initQuest" 
actions[x][y][2].params = "quest1.qst"
        ^--^---------------Koordinaten
              ^------------Anzahl der Actions
                  ^- ["name"] und ["params"]
                  
Bei jedem Schritt:
Checken ob Action(s) auf aktuellem Feld
action/<ActionName>.lua laden
Aufrug Funktion <ActionName>(<Params>) oder do(<Params>) ?

FRAGEN:
> sicherstellen, dass 1 Action nur 1 mal aufgerufen wird (nur bei Bewegung?)
> wie Actions, die Benutzer-Interaktion erfordern (zB Schild lesen, ansprechen)

----------------------------------------------------

> mehrere Einstiegspunkte
>> Reihenfolge?
>> Standard-Einstiegspunkt in Map-Eigenschaften?

> Items (-> Item Layer) / Inventar

> KI
>> Routen ablaufen
>> Spaeter fuer Dialoge/Quests/Trigger

> Menues
>> Einstellungen
>> Speichern (???)
>> Anzeigen von Dialogen

> Dialoge 
>> Trigger in Map
>> Dialog-Files

> Quests
>> Dialoge meets Trigger meets Items

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
MAPPING HOWTO:
> http://www.mapeditor.org/
> Neue Map
>> Orthogonale Ausrichtung
>> (optimal) 32px-Kachelgroesse (sonst im main.lua aendern!)
>>> beliebige Groesse
> Tileset laden
> eigenes Tileset fuer Trigger (?)
> Mappen!
> Paramater setzen:
>> tile
>>> player_left
>>> player_right
>>> player_up
>>> player_down
>> tileset
>>> keine notwendig
>> layer
>>> ignoreCollision -> zB fuer Hintergrund
>>> isPlayer -> Ebene hat nur ein Tile -> den Startpunkt
>>> hide -> zB fuer Trigger-Ebene
>>> isTrigger -> fuer Trigger-Ebene
>> Map
>>> keine notwendig
> Speichern, fertig!

--------------------------------------------------------------------------------

About

a small 2D RPG (or rather 'engine') written in lua based on löve

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages