# Moonfall Moonfall is the name of a game engine that I spent several months developing back in 2008. It leveraged [SDL](https://www.libsdl.org/) for graphics, [Lua](http://www.lua.org/) for in-game scripting, and [wxWidgets](https://www.wxwidgets.org/) for the built-in developer tools. The cross-platform engine was written using [Code::Blocks](http://www.codeblocks.org/) IDE, but Visual Studio project files are also available. The inspiration for the game came partially from the [Harvest Moon](http://en.wikipedia.org/wiki/Harvest_Moon_%28video_game%29) video game for the Super Nintendo and from the [When They Cry](http://en.wikipedia.org/wiki/Higurashi_When_They_Cry) by [07th Expansion](http://en.wikipedia.org/wiki/07th_Expansion). The protagonist is a city dweller, who upon inheriting a small farm from a distant relative decides to try his hand in agriculture. He finds the residents of the nearby small town a friendly bunch, but something about them does not seem right. Everyone is appears to be hiding something from the player, who must uncover the truth to survive. In short, this is (as I have described it to my friends), "Harvest Moon with murder." 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: ```