Update README
This commit is contained in:
parent
7c370a9e4b
commit
762d9aa732
@ -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
|
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
|
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)
|
[![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)
|
[![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
|
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
|
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
|
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:
|
property definitions were specified in XML; for example, below is the definition for the playable character:
|
||||||
|
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<Actor alias = "Player.01" dynamic = "1" layer = "4" thumbnail = "Player.01.Idle.S.01">
|
<Actor alias = "Player.01" dynamic = "1" layer = "4" thumbnail = "Player.01.Idle.S.01">
|
||||||
<Properties>
|
<Properties>
|
||||||
@ -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
|
Lua script with the actor. Scripts would get notifications about events such as `OnActorUpdate`, during which custom
|
||||||
processing could take place:
|
processing could take place:
|
||||||
|
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
function OnActorUpdate(elapsed)
|
function OnActorUpdate(elapsed)
|
||||||
if InputIsKeyTriggered(META_KEY_USE) then
|
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
|
messaging system. This made it possible to build any game object imaginable by editing a couple of XML files and some
|
||||||
simple scripting.
|
simple scripting.
|
||||||
|
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
function DoActorWalk(direction)
|
function DoActorWalk(direction)
|
||||||
if playerAction == ACTION_WALK and playerDirection == direction then
|
if playerAction == ACTION_WALK and playerDirection == direction then
|
||||||
|
Loading…
Reference in New Issue
Block a user