ADOM Central

JADE Central

Background

Design

Source Code

External Code

Documentation

Download

Bug Reports

Links

Jade

Java-based Ancient Domains Engine
© Copyright 1998-2010 by Thomas Biskup. All Rights Reserved.

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

Starting JADE... 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.
Character creation 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).
The map #1 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 map #2 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.
The map #3 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.
The map #4 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.
Source code 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 ;-).



The Universal Principles of Design Thomas Biskup recommends: The Universal Principles of Design
"A great book about design principles, no matter whether you are designing games, software or tools. I like the two-page structure: First the design principle is explained and then you get real world examples of how the principle can be applied. Combined with clear writing, a crisp layout and streamlined editing this makes for great reading!"

More details about this item can be found here: United States, United Kingdom, Canada, Germany.

In Association with Amazon Please support this website by going to Amazon through one of the links on this website (if you want to shop at Amazon at all that is ;-). It doesn't cost you any surcharge, but provides me with ADOM-related income. Thanks!

A complete list of my reading recommendations is available here.


| Suggestions? EMail me.