|
 |
Java-based Ancient Domains Engine
© Copyright 1998-2012 by Thomas Biskup. All Rights Reserved.
|
Important: The new JADE website is located at http://www.ancientdomainsofmystery.com. There you can find the latest news, downloads, etc. This website exists simply for documentation purposes. Please update your bookmarks and links!
More code on the way!
Recently I have made quite a bit of progress with JAD (compared to the past 3 years) - though the game still has
a long way to go before it really is a game, alot more is working now and quite a bit of design has been finished.
Here's some of the new stuff:
- The visibility code now is in place and works nicely.
- Display speed has been increased and some more optimization areas have been identified - but I'll work on them at
a much later point - for now the code is more than sufficient.
- The internal structures for building the world have been solidified:
- There now are locations that collect the meta information about places in the game (e.g. names, connections,
type of location, ...).
- Locations defer map creation to whenever the maps are needed. This reduces the time to start the game and
allows the game to adjust map layout to the happenings in the game (e.g. if Chaos becomes stronger maps might
become more random and vice versa).
- Locations are organized in complexes (e.g. a dungeon complex or a city complex) in order to be able to plan
large dungeon structures, sewers, etc. ahead.
- Connections are defined in an abstract manner and refined when the actual maps are created.
- An info bar has been added and a (more) prompt now exists for the message area.
- The whole screen layout is pretty dynamic (see the screen shots below).
- Maps now can be switched and basic map creation code for mazes, the surface world and villages is now in place.
I'm right now working on areas, rooms and buildings and next will start to work on monsters.
- Areas have been refined. While ADOM had the notion of a room and a lot of special code for special cases,
JADE has the generic concept of areas. Areas can overlap and possess arbitrary traits. E.g. a holy
area prevents undead from entering or damages them, a chaos area increases corruption, an outdoor area has
weather effects and so on. Rooms and buildings are special areas. This will allow for many neat features
(e.g. areas that only can be entered if you possess a special item, areas with weird special effects, ...). I
already have a large list of cool features I will implement with this mechanism.
- Development has been switched to Eclipse, which is one of the
coolest IDEs around (maybe the best non-commercial IDE ever built). Currently I'm using Eclipse 3.0M4 which speeds
up development (and refactoring) time incredibly.
- I'm right now using JDK1.5.0b1 and looking forward to use the wonderful new Java language constructs to
improve code readability even more.
- The JavaDoc documentation has grown quite a bit. I have provided the current JavaDoc
documentation for JADE 0.0.5 for your perusal.
Screenshots
|
A snapshot of the splash screen displayed while JADE starts. The splash screen has not changed much since 2001
because I still love the look. In the background you can see Eclipse and some of the code structure.
|
|
The character creation screen still is pretty incomplete. For now you can determine your name, sex and race (only
mountain dwarves, hill dwarves and humands so far are available - more to come soon). You also can decide between
random and point-based character creation. The next features to be included will be professions, background story,
star signs and guild memberships. Also in planning is a configuration screen that will allow you to define what
kind of character generation process you want to have for your games (e.g. only random or always point-based).
|
|
Map display has not changed much. To the left by default is the status display for your PC. The top has the message
bar (two lines by default but configurable for anything from 1 to 5 lines).
|
|
The game display is highly configurable these days. The screenshot to the left shows the same display (with more
map symbols) with the status display on the right, the message bar on the bottom (with increased font size) and several highlighting options
for the map turned on. Choose what suits you best. And best of all: If you don't like ASCII tiles the API of the
game has been designed in such a way that it should be easily possible for a skilled programmer to replace the
ASCII display by e.g. graphical tiles.
|
|
Village maps are a work in progress but trees, buildings and pools (not visible in the screenshot) already are
randomly distributed. Towns and cities will reuse part of that code (naturally) and I'm even planning large scale
cities that are stuffed with buildings and tiny streets - more of that hopefully in a couple of weeks.
|
|
Maze maps also have been added (because that was trivial). Next are real dungeons with rooms and everything. Once
that falls into place I can finally wor on items and monsters which will be quite a bit of initial setup work
due to the many things that will need to fall in place. Already prepared is self-analyzing JADE code which will
allow me to simply define new item, monster and race classes without any configuration work. JADE automagically
finds those classes and then loads and uses them. Neat.
|
|
And here is a glimpse at the source code of JADE. You see the currently existing code for the actual game loop
which is very simple: Retrieve an actor from the actor queue, let it act and continue with the next one.
Actors BTW can be everything: Monsters, the PC, item events (e.g. recharging, soul drain), messages about your
deeds traversing the country, weather effects, corrupting radiation and much more. You also can see some error
handling code: Exceptions are caught in all necessary places and detailed debugging information is displayed in
a debugging window that probably even will allow automated error emails (and good old-fashioned cut'n paste, too ;-).
|
|