diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc05c37 --- /dev/null +++ b/README.md @@ -0,0 +1,102 @@ +# 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: + + +``` + + + +