This will serve as the homepage for my M3 project - a collection of editors and an engine that is useful for the creation of 2D console style RPGs (such as the early games in the Final Fantasy series). All code for this project will be released under the GNU GPL, the Free Software license.

The targeted platforms are Windows and Linux, however I do not exclude the possibility of others (Mac should be a pretty straightforward port, at least). The engine will require OpenGL and SDL (however, I will also provide statically linked versions, for convenience), and on the hardware side, it is looking like about 128 MB of RAM, and a graphics card with at least 32 MB of video memory that can do alpha blending in hardware.

The file formats, and all programs I provide, are all open - you can examine my source, modify and distribute it, or use it to learn what I am doing to implement your own alternatives (which thus far, I know of one person, Daniel Goldberg, working to do right now [UPDATE - He now has a first release available.] : building GUI editors on top of the Microsoft .NET platform on Windows). I will also provide documentation on this site of all the formats and APIs, once I have them a little more stabilized.

My own editors will be written on top of the engine itself or command line based (all are actually command line at this point in time), and in the future, I would also like to write native feeling programs on top of Qt (which was my original intention) that can edit the files. If Mr Goldberg's alternative implementations work out, they may also be incorporated into the main project as the main tools on Windows.

Basic feature list

In short, the goal is basically to be able to conceptually reimplement at least Final Fantasy 1, Dragon Warrior III, and Phantasy Star IV. Probably will be able to do much more than that by the time I am done, and you can also mix and match concepts from these games to create something all new.

Brief history

Development started using C++ last year and would have used an ECMAScript interpreter, but the plan changed last month with the beginning of the D/OS project by myself and William Golden Wilkins. The C++ development was going slowly (due to a bad development model), and I realized a great deal of the M3 code and userland D/OS development could actually be shared - so I moved to Walter Bright's D programming language, so facilitate the sharing of code between the two projects. Along with this move, I also decided to change the scripting interpreter to one based on Lisp that I wrote for D/OS, away from the original ECMAScript plan, however, I will keep the door open to the other language in the future.

The new development model is now iterative and top down, rather than the big design up front, bottom up model I used previously, and it is making quite a bit of progress already.

I also hope to share much of the underlying code with other games I may write in the future; for example I wrote a tiny pong game in just 60 lines of code on top of the M3 base already. Once it matures a little more, I will offer them as separate downloads (libraries and other games).

A major source of input to the design was a thread on the Librium Arcana forums. Everyone's input there has been invaluable, and while I have changed the development model and the design has been refined, that thread still contains the discussion about and evolution of my goals in this project.


Be warned that this is still very early in the development, so I don't guarantee that anything works - it might not even compile. These are snapshots of my current development tree updated weekly.

Once again, the license for all this code is the GNU General Public License, available here.

At this stage, I offer no support, but if you take a look at the code and have any thing to offer: flames, code, ideas, anything, feel free to send me an email at Be sure to include "M3" in the subject line and a return email address for a quick response.