Compare commits

...

10 Commits

Author SHA1 Message Date
509533bb29 Update README 2022-07-14 14:20:46 -07:00
217d818e65 Add site metadata 2021-12-14 18:45:56 -08:00
762d9aa732 Update README 2021-06-08 22:39:49 -07:00
7c370a9e4b Updating README.md 2019-04-28 16:02:32 -07:00
04f0ea2031 Updating README.md 2019-04-28 12:34:11 -07:00
5819f28ab9 update license file 2019-04-28 12:00:33 -07:00
1374ba664d Updating README.md 2017-09-29 17:04:03 -07:00
5e9508e9cd Updating README.md 2017-07-30 17:37:40 -07:00
a0f3372320 Updating README.md 2016-09-06 21:16:25 -07:00
849af2419c Updating README.md 2016-09-06 21:13:59 -07:00
12 changed files with 25 additions and 20 deletions

14
LICENSE Normal file
View File

@ -0,0 +1,14 @@
Copyright 2008-2019 Alex Yatskov
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -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
@ -12,15 +12,20 @@ friendly bunch, but something about them does not seem right. Everyone is appear
player, who must uncover the truth to survive. In short, this is (as I have described it to my friends), "Harvest Moon player, who must uncover the truth to survive. In short, this is (as I have described it to my friends), "Harvest Moon
with Murder." with Murder."
## Technology ## [![Gameplay window](img/gameplay-thumb.png)](img/gameplay.png)
[![Sprite editor](img/sprite-editor-thumb.png)](img/sprite-editor.png)
[![Console window](img/console-thumb.png)](img/console.png)
[![Asset editor](img/asset-editor-thumb.png)](img/asset-editor.png)
[![Map editor](img/map-editor-thumb.png)](img/map-editor.png)
## 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
```
<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>
<Animation /> <Animation />
@ -34,8 +39,7 @@ 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
```
function OnActorUpdate(elapsed) function OnActorUpdate(elapsed)
if InputIsKeyTriggered(META_KEY_USE) then if InputIsKeyTriggered(META_KEY_USE) then
DoActorUse() DoActorUse()
@ -62,8 +66,7 @@ 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
```
function DoActorWalk(direction) function DoActorWalk(direction)
if playerAction == ACTION_WALK and playerDirection == direction then if playerAction == ACTION_WALK and playerDirection == direction then
return return
@ -92,15 +95,3 @@ end
I eventually stopped work on Moonfall due to a lack of time, combined with the fact that I am not an artist and could I eventually stopped work on Moonfall due to a lack of time, combined with the fact that I am not an artist and could
not author the assets required to develop this into a complete game. not author the assets required to develop this into a complete game.
## Screenshots ##
[![Gameplay window](https://foosoft.net/projects/moonfall/img/gameplay-thumb.png)](https://foosoft.net/projects/moonfall/img/gameplay.png)
[![Sprite editor](https://foosoft.net/projects/moonfall/img/sprite-editor-thumb.png)](https://foosoft.net/projects/moonfall/img/sprite-editor.png)
[![Console window](https://foosoft.net/projects/moonfall/img/console-thumb.png)](https://foosoft.net/projects/moonfall/img/console.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)
## License ##
GPL

BIN
img/asset-editor-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/asset-editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
img/console-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
img/console.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
img/gameplay-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
img/gameplay.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
img/map-editor-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
img/map-editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
img/sprite-editor-thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
img/sprite-editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB