diff --git a/README.md b/README.md new file mode 100644 index 0000000..a92d06a --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# The How And Why +## Third Party Libraries + +This engine uses a few third party libraries which solve a great deal of problems: + +- [30log](https://github.com/Yonaba/30log) for class definition +- [STI](https://github.com/karai17/Simple-Tiled-Implementation) for the tiled maps +- [Hardon Collider](http://vrld.github.io/HardonCollider/) for the collision handling +- [anim8](https://github.com/kikito/anim8) for animations + +Thanks to all the creators of these! + +## Characters + +Each object defined in the 'character' layer of the map must have a character definition in the 'characters' folder. +The file is named like the name of the object. +For example an object named matty has a file 'characters/matty.lua'. + +In this file all the other properties are defined. + +And to clarify: a player is just a character with relevant keys attached to it. + +## Controllers + +Defines the movement of a character. Each character has its own instance. +It must implement at least the following functions: + +- sendKey(key) + - send a keypress to the controller which then decides if it takes action +- stopAnimation() + - stops a running character animation + +and the following properties: + +- charinfo + - an instance of a character file +- animation + - the active animation + +Apart from those the controller works how it sees fit. +