[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DungeonMaker2 out - further alifegames plans

I've released the DungeonMaker version 2 a while ago (find it on
http://dungeonmaker.sourceforge.net) and want to let you know about it and
discuss my further plans. The DungeonMaker, which in version 1 just made
labyrinths (by building walls in open spaces), is now also making dungeons
(by tunneling through closed areas). It also constructs rooms and has a
prototype mechanism for placing treasure and mobile objects (MOBs). The
dungeon creation process is shown as a movie, and is fun to watch.

DungeonMaker2 consists of the files DungeonMaker.cpp/h (which contain
everything that is needed to construct dungeons and labyrinths, and which
you would compile and link into your own program if you wanted to use the
DungeonMaker classes), files SDLRenderer.cpp/h (which render the dungeons in
the demo program), and three versions of main.cpp (for Linux and Windows and
demonstrating use of the interface). A non-interactive Windows executable
has just been released. To build the interactive (much nicer) Linux version,
you only need the library SDL-devel on your system, version 1.08 or later. 

The DungeonMaker is available under the GPL and under commercial license for
closed source applications. I will also grant free commercial licenses to
people who write games that are essentially open source, but that contain
closed source modules for encryption and anti-cheat measures. 

In order to incorporate the DungeonMaker into a sophisticated, high-class
game project, it will have to be modified in two ways: It should implement
the "Decorate()"-function (described in detail in the "old manual"), which
places graphical elements such as decorations and various textures. This can
only be done when one already knows what kind of decorations, textures, etc
will be available. In the same way, placement of treasure and MOBs will have
to be fine-tuned to every game design. I'm willing to help with this.

My own plans for further development are to use the DungeonMaker to create
the next generation "Diablo"-type game (codenamed "DungeonHack") - it will
be similar to Diablo in that one fights one's way through a series of
randomly generated dungeons in pursuit of treasure and experience - and it
will be next-level in that the MOBs in the dungeons and labyrinths will have
much better AI. Specifically, MOBs in DungeonHack will not just hang around
their spawn points waiting to be slaughtered, but will be moving around the
dungeons at all times on their own business. When players enter and start to
kill MOBs or steal their treasure, word about this will spread among the
MOBs, and they will make a coordinated effort to hunt down the players,
corner and kill them. In order for this to work, we will implement the
"intelligent map"-technology that is described in some detail in the
DungeonMaker manual on the "vision and plan"-page.

DungeonHack will go through several stages. In the first version, a single
player will enter dungeons and fight against the MOBs there. We will then
introduce multiple "player-avatars" (both teamed and antagonistic, player-
and computer-controlled) and different teams of MOBs that can fight each
other and also be player-controlled. This allows for many constellations,
e.g. a player entering dungeons where parties of "good" and "bad" MOBs are
already engaged in battle, with the player joining one side. Players will
also be able to engage in battle with each other, each bringing along his
own party of MOBs allied to himself. Or one player can take command of a
band of MOBs and fight a player with a squad of "hero"-characters. There's
lots of interesting possibilities.

What makes this *really* interesting is that players will be able to make
their own MOB-AI, both through evolving the parameters governing
MOB-behavior, and through writing their own AI-algorithms in a scripting
language. DungeonHack will be written so that games are reproduceable based
on a saved input history, so that it will be impossible to cheat on high
scores. The best MOB-teams will be available through download, and there
will be a standardized way for players to score against these teams, and for
teams to score against the player-community. The best scoring players and
MOB-teams will be posted on the net in a worldwide ranking. Hopefully, this
will spur on an arms race between players and developers of MOB-AI, leading
to better and better AI. This approach is motivated by a vision to
eventually create true artificial intelligence, as described on the
alifegames.com web site under "BigProject".

In order for this to work, we will have to write high-quality,
easily-maintainable code (after all, this project will run for many years,
decades if it's successful). Above all, the design must be fully modular, so
that e.g. a renderer can be replaced without having to make changes in the
core simulation engine. It must be possible to have MOB-AI both in compiled
form (with a genetic-algorithm-engine to optimize parameters), and in
scripted form (so that users can experiment with their own AI-ideas). The
best scripts developed this way would from time to time be translated into
C++ and compiled into the core game. Graphics would be updated every few
years. Ever so often the world would be expanded by new features, eventually
leading to a RTS-type game (managing an ecology, and economy, *and*
relations with neighbors - this last aspect would incorporate trade,
diplomacy, and the "DungeonHack"-type fighting behavior).

Myself, I'm really into artificial life and artificial intelligence, and I
would like it best if I'd just have to write that part of the code, and
other people would do the rest, or if I could re-use existing code. Are
there any open-source roleplaying games out there that are written in a
clean, modular fashion, with a view to long-term code-reuse? Or does anyone
on the list have an interest in being a founding member of this project? It
might even be possible to make money at it - I have posted my ideas how that
could work at

Peter Henningsen