diff --git a/README.md b/README.md index d47ed57..62f14a8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Moonfall # +# Moonfall Moonfall is the name of a game engine that I spent several months developing back in 2008. It leveraged SDL for graphics, Lua for in-game scripting, and wxWidgets for the built-in developer tools. The cross-platform engine was @@ -18,14 +18,13 @@ with Murder." [![Asset editor](https://foosoft.net/projects/moonfall/img/asset-editor-thumb.png)](https://foosoft.net/projects/moonfall/img/asset-editor.png) [![Map editor](https://foosoft.net/projects/moonfall/img/map-editor-thumb.png)](https://foosoft.net/projects/moonfall/img/map-editor.png) -## Technology ## +## Technology From a technical point of view, the game engine was an exercise in creating a completely data driven game. In retrospect, it was probably over-engineered, but in general it was flexible and I liked what I could do with it. At the core of the engine was the `Actor` class, the functionality of which could be expanded through add-on properties. The property definitions were specified in XML; for example, below is the definition for the playable character: - ```xml @@ -40,7 +39,6 @@ In addition to the self-explainable `Animation` and `Physics` properties, you ca Lua script with the actor. Scripts would get notifications about events such as `OnActorUpdate`, during which custom processing could take place: - ```lua function OnActorUpdate(elapsed) if InputIsKeyTriggered(META_KEY_USE) then @@ -68,7 +66,6 @@ Scripts can directly interact with properties on the parent `Actor` and can comm messaging system. This made it possible to build any game object imaginable by editing a couple of XML files and some simple scripting. - ```lua function DoActorWalk(direction) if playerAction == ACTION_WALK and playerDirection == direction then