Gnomario

Gnomario

947 Downloads

Imagine Mario Bros, but with a twist of Warcraft awesomeness. Please note: This project is experimental and in its planning stage. You _could_ download the latest revision, but you'd most likely just get a game with colored boxes moving around, as the textures and such hasn't been properly added yet.

I'm currently working with the idea of the gnome protagonist evolving from gnome to dorf, then human and finally an awesome cow!
I need some suggestions on who the evul mobs should be tho, so post your suggestions!
The game is split into various parts:

Gnomario_Engine
The overlying interface for creating, starting and stopping the game.
Gnomario_Physics
Handles the physics in Gnomario. Objects set in motion will move until colliding with either another object or the outer frame of the world, in which case the game engine will be receive a callback asking what to do next.
Gnomario_AI
Contains the AI scripts for the various mobs
Gnomario_Levels
Map database and visual handling of the objects within the view port after the physics engine has done its job.


The game engine loads all its data from an XML file or string and thus you _could_ refit it to play a completely different game. Here's an example data file with the current (limited) specs:

<xml>
<!-- Static objects -->
<environment>
    <object id="brick" width="32" height="32" tex="brick_standard"/>
    <object id="powerbrick" width="32" height="32" tex="brick_special"/>
    <object id="trigger" width="32" height="32" tex="trigger" insivible="true"/>
</environment>

<!-- Live objects -->
<creatures>
    <object id="gnomario" health="1" speed="2" tex="gnome_test" width="32" height="32" />
    <object id="murloc" health="1" speed="1" hostile="true" width="32" height="32" />
</creatures>

<!-- AI scripts -->
<scripts>
    <script id="default">
        if self:OnGround() then
            if self:AtWall() then self:Turn() end
            self:Walk()
        end
    </script>
</scripts>

<!-- Levels -->
<!-- Levels are designed by using the object IDs as a shorthand class, fx. [brick] or [murloc] -->
<levels>
    <level id="level1" width="1200" height="320">
        <brick x="200" y="200"/>
        <powerbrick x="140" y="100"/>
        <brick y="0" x="0"/>
        <brick y="0" x="400"/>
        <murloc y="200" x="100"/>
    </level>
</levels>
</xml>