Board Games30
Role Playing40
Resource Directory
Code Gallery3
Help & Documents13
Depot Games: Marduk

Current Version: 2

Project Status: Demo Release

Links: Web Site, Web Page

Category: Role Playing

Developers: The Master

Number of Players: 1

Ports: Windows

Source Code: Not Available

Author's Description: After a year working on other projects, including conference presentations in Cyprus and London, I returned to expand on this work.

Marduk is an RPG engine I’ve been working on for the better part of a decade. I’ve stopped and started several times, and made several rewrites. It started with the Allegro Game Library, making a migration to DirectX, and then leaving that horribly convoluted neighbourhood for the life of a drifter in the back of my mind for a few years, briefly bunking with SDK’s like Irrlicht and Ogre, before finally returning home to Allegro.

Hopefully it will mature into an actual game, if my other personal projects will allow it, that is.

What's New:

Commenced an engine rewrite early 2011. New features include
- Use of Tiled, an XML-based tilemap editor with support for context sensitive placement of terrain tiles and custom objects of various shapes
- Various world object types, including Events (invisible triggers), Inanimate Objects (like Events, but displaying a graphic), and Non-Player Actors.
- Teleportation between maps, including temporary transitions for use in cutscenes.
- Improved skinable, animatable, interactive GUI
- Bounding ellipses allow fluid movement of player around obstacles
- Emoticons
- Emotive character animations (like jumping and bouncing)
- Particle dynamics
- Multilayer maps with seamless transition between layers
- Integration with Lua, with support for tables to be passed into C++ API calls
- Keyframed animations
- Map-level and World-level variables that can be modified by scripts
- Three different object behaviour triggers: collision with player, key press, and variable change
- Zoom in and out with camera (use W and S keys)
- Player can run (hold Left Shift)

Future features:
- Player jumping (over small gaps and obstacles)
- Expanded Lua API
- More object behaviour triggers
- Expanded demo world, with some playable elements such as puzzles.
- More UI skins and widgets
- RPG Database using SQL
- Battle engine
- Fix bugs
- Create RPG story

1.5 debug
Commenced an engine rewrite.
- Displays a debug command prompt, which will allow me to test new functionality in isolation from the rest of the engine.
- A functional Lua VM has been implemented, and is undergoing testing.
- A new UI architecture based on MasKING and other GUI libraries I've looked at. Currently present is a dialogue box which displays a face graphic, and supports different styles of box and text display.
- A resource manager. This loads bitmaps, music, animations, etc, from a single datafile archive. It also prevents multiple data loads by incrementing reference counters for each resource when it is loaded more than once. Very good memory management.
- My always-efficient sprite animation class has been upgraded to include animation controllers which work in correspondence with the resource manager to provide multiple instances of the same animation without further memory usage.


- Database loading.
- Dialog controller updated and some debugging done.
- New dialog objects registerable.
- Parser updated to include global variables - Scripting system thrown out for lua; now all event actions are scripted.
- New map format supporting lua.
- chipset allocation handled by the vector class rather than linked list; map rendering is now faster.
- Event code is now complete due to the new script class.
- New MardukResource class, which allows management of resources and prevents multiple data loads.
- others, that I will most likely have mentioned on my blog.

There is also a build of this version using MinGW32.

Future work:

- Export allegro, as well as Marduk functionality, to Lua.
- Throw out the transition and logo code and replace with lua.
- Add database support for scripted items, weapons, etc.
- Add map editor support for scripts, such tha a custom initialiser for each map may be specified.
- Test everything and fix bugs.
- Build the combat engine.

Has somewhat of an actual story this time, although it's really half-assed.

Public Opinion
Overall Rating: 1.0
  • 1Version 1.5: I tried both the .NET and MinGW32 verssions, but the first couldn't load the engine datafile and the latter crashed after the marduk logo.
The Developer
The Master
The MasterI've wanted to make my own games since I was three when my parents refused to get me any more Commander Keen games. Now, I'm in my fourth year of a PhD in Telecommunications engineering. Bizarre as it sounds, I do game programming to relax. (View Profile)