I'm under the assumption that everyone here already knows of the greatness of Rogue-likes such as Nethack, Adom and Zangband. For those that are not in the know, these are games that are the very definition of Dungeon Hacks.
If you look up "Dungeon Hacks that Don't Blow Chunks Out an Infested Hooker's Ass" then Rogue-likes and Blizzard's efforts (the first of which is simply a graphical Rogue-like, in my eyes) will be the only entrants in the definition. A rogue like, as defined by someone who knows shit about the sub-genre (i.e. me) is a game that was inspired by the cult classic game "Rogue".
The core look of rogue-like sub-genre hasn't evolved much since its inception (graphical rogue-likes, naturally, are the exception rather than the rule) yet the gameplay dynamics are sometimes drastically different from one title to another. All this pointless posturing and needless babble aside, the rogue-like sub-genre is old and still fun as all hell.
For those who wish to experience these rogue-likes, I will provide you with some links that I hope will lead you to much enlightenment, fun, and frustration (because, fun as these are, they are nearly all damn had games).
Oh...and you can find and learn about Zandband: Here.
I don't play that Rogue-like and I'm too damn lazy to allow index it for you guys :b
There are many other rogue-likes out there, these three are the three major ones from what I saw...again, I'm fairly new to rogue-likes myself...oh...and I royally suck at them :b
Now onto Jade...and not that fucking Bioware sellouttery..
The creator of ADOM is busy creating a new Rogue-like in his free time that he calls Jade. This game is slated to be the sequal to ADOM and be a much larger game, as well as being (ugh) a Java game. The good news about that last bit is that it will be available on more platforms...the bad news is...well...Java :-(
Anyway, I *just* learned about Jade today, and like what usually happens with me, I found it really interesting...my method of showing interest this time is to make a small thread related to Jade as well as an introduction to the sub-genre written by a weaksauce newb to the sub-genre, itself. The premise is to create a rogue-like that will be "The roguelike game for the next millennium" (not my words, trust me).What follows is a series of Jade updates from the official page. Links to where these updates can be found will be provided atthe end of the post. These updates are not in chonological order.
Java-based Ancient Domains Engine
What is all this JADE stuff about?
ADOM has become a very complex and very detailed game. It these days is much larger than I ever thought it would be. This also means that many parts of the internal code never were intended to do certain things everybody (myself included) would like to see these days. Also the scope of ADOM is somewhat limited. It just covers a minor area of the world of Ancardia, while so much is left for exploration. New concepts should be explored but the changes would be too sweeping for ADOM. Thus the time has come to think about ADOM II, code-named JADE.
What plans do you have for JADE?
JADE will basically have everything ADOM has and a lot more. Plans include:
# A complete world with continents, weather patterns, settlements, dungeons and strange places, either randomly generated at the start of each game or chosen from a number of preselected worlds.
# A quest generator for random quests. No two games ever will be the same.
# Dungeon and world size only limited by the boundaries of Java-technology and your hardware.
# No classes, but a detailed skill system, together with a guild system providing special benefits for guild membership.
# All the races from ADOM and a few more (mist elves, ratlings, hill dwarves).
# Complete freedom in what you want to do (e.g. explore dungeons, work as a caravan guardian, build your own castle, conquer cities, lead a life as a simple farmer, become a shopkeeper or whatever).
# Hidden plots. (Has Chaos been truly defeated in ADOM or is something lurking behind the scenes and waiting?)
# Monster inventories.
# The ability to transform into another being.
# A detailed system for morale values (on an Order...Balance...Chaos scale) and ethics (on a Good...Uncaring...Evil scale).
# Platform independence due to Java-based technology.
# Compressed save files.
What are the target systems for JADE?
Basically any system able to run Java-based applications. My development system is a Pentium IV-2.4 GHz with 1024 MB of RAM and lots of hard disk space. This basically means that I won't make compromises concerning game speed (it will be plain Java code without bells and whistles) or space requirements (be that RAM or hard disk space). The game will need years to be completed (see ADOM ;-), which basically means that the average system at that time will make my current development system seem like an abacus. Thus I don't see any reason to cut out options for the sake of playability. No compromises, folks.This does not mean that I won't care for efficient code. Quite to the contrary, efficient code will be very important. It just means that I'll add everything to the game I ever wanted, no matter what that might mean for current efficiency.For now I use JDK 1.5.0b1 to write JADE. This probably will evolve at the same speed as Sun decides to release new Java versions. No compromises here - I want the cutting edge (and the most bug-free edge ;-).
What is the current state of JADE?
JADE is in active development - during the past couple of weeks (April, 2004) I have made pretty good progress on various parts of the code. The map generation code is almost finished (as in: "will be enhanced continuously but should have all the major features") and I am slowly getting towards the monster and item code. As soon as some kind of game play (however primitive) is possible I will release an early access version of JADE. But note: a game in the scope of ADOM is still far away - all the detail will need a lot of time although I'm already reaping the benefits of a clean, object-oriented structure that gets refactored all the time to adjust to the latest design improvements (god bless modern development tools ;-).
This page contains some random ramblings I have written down while trying to think about the design of JADE. The texts are sorted by date and contain my thoughts on certain aspects of the game. If you feel the need to utter your opinion, please do so. Insights from the outside (so to speak) are always welcome and most probably will help to make JADE a better game.Currently you can find texts on the following topics concerning JADE:
# JADE is coming to town - with various city vistas and more! (12/04/2004)
# Screenshots - JADE 0.0.5 is evolving! (09/04/2004)
# Screenshots - JADE slowly is taking shape! (10/06/2001)
# JADE Events - lots of stuff is happening! (01/05/1999)
# Monsters are players, too! (01/05/1999)
# Attributs, hit points, and the balance of power (12/24/1998)
# Experience levels and professions (12/24/1998)
A thousand years have passed since Chaos tried to invade Ancardia. A powerful hero managed to defeat the ultimate threat to peace and all life and brought a millennium of tranquility to the world. The various races prospered, civilization expanded and vast parts of the world were settled in one way or another.
Many city-states dot the country site and trade is common in these days.
Recently folks started to talk about strange monks travelling the country site. Heavily robed they swarm villages and try to find converts with surprising frenzy. In remote mountain ranges ancient dungeon complexes suddenly seem to sprawl with life and unlife of all sorts. In the past couple of years, tensions have been rising between the races. Is this just the return to normal historical development after an unequaled era of peace of is something more sinister working behind the scenes?
Your character might be the deciding factor in this. He will be able to venture through a vast world and its his choice whether he wants to engage in adventure or just lead a normal and sheltered life (for an adventurer, e.g. guarding caravans). Everything can happen and usually everything will happen - it's your choice what you make of it...
[From the ADOM News/Blog]
*******************************************
Various Jade Links
*******************************************
http://www.adom.de/jade/index.php3
http://www.adom.de/jade/01059901.php3
http://www.adom.de/jade/01059902.php3
http://www.adom.de/jade/09040401.php3
http://www.adom.de/jade/10060101.php3
http://www.adom.de/jade/12249801.php3
http://www.adom.de/jade/12249802.php3
http://www.adom.de/jade/background.php3
http://www.adom.de/jade/bugs.php3
http://www.adom.de/jade/code.php3
http://www.adom.de/jade/doc.php3
http://www.adom.de/jade/download.php3
http://www.adom.de/jade/links.php3
http://www.adom.de/jade/sources.php3
http://www.adom.de/jade/design.php3
http://www.adom.de/jade/12040401.php3
http://www.adom.de/jade/index.php3
Hoping this thread is useful to someone :b
If you look up "Dungeon Hacks that Don't Blow Chunks Out an Infested Hooker's Ass" then Rogue-likes and Blizzard's efforts (the first of which is simply a graphical Rogue-like, in my eyes) will be the only entrants in the definition. A rogue like, as defined by someone who knows shit about the sub-genre (i.e. me) is a game that was inspired by the cult classic game "Rogue".
The core look of rogue-like sub-genre hasn't evolved much since its inception (graphical rogue-likes, naturally, are the exception rather than the rule) yet the gameplay dynamics are sometimes drastically different from one title to another. All this pointless posturing and needless babble aside, the rogue-like sub-genre is old and still fun as all hell.
For those who wish to experience these rogue-likes, I will provide you with some links that I hope will lead you to much enlightenment, fun, and frustration (because, fun as these are, they are nearly all damn had games).
Code:
[b][u]NetHack[/u][/b]
NetHack Home-Page http://www.nethack.org/
What is Nethack? http://www.nethack.org/common/info.html
How to Play NetHack (HTML) http://www.nethack.org/v341/Guidebook.html
How to Play NetHack (PDF) http://nethack.sourceforge.net/docs/nh341/Guidebook.pdf
How to Play NetHack (Plain Text) http://nethack.sourceforge.net/docs/nh341/Guidebook.txt
[b][u]Download NetHack[/u][/b]
Windows (95/98/NT/2000/Me/XP) http://www.nethack.org/v343/ports/download-win.html
DOS http://www.nethack.org/v343/ports/download-msdos.html
Linux http://www.nethack.org/v343/ports/download-linux.html
Other Versions can be Found Here: http://www.nethack.org/v343/downloads.html
[b][u]ADOM[/u][/b]
ADOM Home-Page htt
What is ADOM? http://www.adom.de/adom/roguelike.php3
ADOM: The Story-Driven Rogue-like http://www.adom.de/adom/story.php3
Official ADOM F.A.Q. http://www.andywlms.com/adom/adomfaq.html
Unofficial ADOM Guide (HTML) http://www.andywlms.com/adom/adomgb-html.zip
Unofficial ADOM Guide (Plain Text) http://www.andywlms.com/adom/adomgb-ascii.zip
[b][u]Download ADOM[/u][/b]
DOS & Windows http://www.adom.de/adom/download/dos/adom111.zip
Linux http://www.adom.de/adom/download/linux/adom-111-elf.tar.gz
Other Versions can be Found Here: http://www.adom.de/adom/download.php3
Oh...and you can find and learn about Zandband: Here.
I don't play that Rogue-like and I'm too damn lazy to allow index it for you guys :b
There are many other rogue-likes out there, these three are the three major ones from what I saw...again, I'm fairly new to rogue-likes myself...oh...and I royally suck at them :b
Now onto Jade...and not that fucking Bioware sellouttery..
The creator of ADOM is busy creating a new Rogue-like in his free time that he calls Jade. This game is slated to be the sequal to ADOM and be a much larger game, as well as being (ugh) a Java game. The good news about that last bit is that it will be available on more platforms...the bad news is...well...Java :-(
Anyway, I *just* learned about Jade today, and like what usually happens with me, I found it really interesting...my method of showing interest this time is to make a small thread related to Jade as well as an introduction to the sub-genre written by a weaksauce newb to the sub-genre, itself. The premise is to create a rogue-like that will be "The roguelike game for the next millennium" (not my words, trust me).What follows is a series of Jade updates from the official page. Links to where these updates can be found will be provided atthe end of the post. These updates are not in chonological order.
Java-based Ancient Domains Engine
What is all this JADE stuff about?
ADOM has become a very complex and very detailed game. It these days is much larger than I ever thought it would be. This also means that many parts of the internal code never were intended to do certain things everybody (myself included) would like to see these days. Also the scope of ADOM is somewhat limited. It just covers a minor area of the world of Ancardia, while so much is left for exploration. New concepts should be explored but the changes would be too sweeping for ADOM. Thus the time has come to think about ADOM II, code-named JADE.
What plans do you have for JADE?
JADE will basically have everything ADOM has and a lot more. Plans include:
# A complete world with continents, weather patterns, settlements, dungeons and strange places, either randomly generated at the start of each game or chosen from a number of preselected worlds.
# A quest generator for random quests. No two games ever will be the same.
# Dungeon and world size only limited by the boundaries of Java-technology and your hardware.
# No classes, but a detailed skill system, together with a guild system providing special benefits for guild membership.
# All the races from ADOM and a few more (mist elves, ratlings, hill dwarves).
# Complete freedom in what you want to do (e.g. explore dungeons, work as a caravan guardian, build your own castle, conquer cities, lead a life as a simple farmer, become a shopkeeper or whatever).
# Hidden plots. (Has Chaos been truly defeated in ADOM or is something lurking behind the scenes and waiting?)
# Monster inventories.
# The ability to transform into another being.
# A detailed system for morale values (on an Order...Balance...Chaos scale) and ethics (on a Good...Uncaring...Evil scale).
# Platform independence due to Java-based technology.
# Compressed save files.
What are the target systems for JADE?
Basically any system able to run Java-based applications. My development system is a Pentium IV-2.4 GHz with 1024 MB of RAM and lots of hard disk space. This basically means that I won't make compromises concerning game speed (it will be plain Java code without bells and whistles) or space requirements (be that RAM or hard disk space). The game will need years to be completed (see ADOM ;-), which basically means that the average system at that time will make my current development system seem like an abacus. Thus I don't see any reason to cut out options for the sake of playability. No compromises, folks.This does not mean that I won't care for efficient code. Quite to the contrary, efficient code will be very important. It just means that I'll add everything to the game I ever wanted, no matter what that might mean for current efficiency.For now I use JDK 1.5.0b1 to write JADE. This probably will evolve at the same speed as Sun decides to release new Java versions. No compromises here - I want the cutting edge (and the most bug-free edge ;-).
What is the current state of JADE?
JADE is in active development - during the past couple of weeks (April, 2004) I have made pretty good progress on various parts of the code. The map generation code is almost finished (as in: "will be enhanced continuously but should have all the major features") and I am slowly getting towards the monster and item code. As soon as some kind of game play (however primitive) is possible I will release an early access version of JADE. But note: a game in the scope of ADOM is still far away - all the detail will need a lot of time although I'm already reaping the benefits of a clean, object-oriented structure that gets refactored all the time to adjust to the latest design improvements (god bless modern development tools ;-).
This page contains some random ramblings I have written down while trying to think about the design of JADE. The texts are sorted by date and contain my thoughts on certain aspects of the game. If you feel the need to utter your opinion, please do so. Insights from the outside (so to speak) are always welcome and most probably will help to make JADE a better game.Currently you can find texts on the following topics concerning JADE:
# JADE is coming to town - with various city vistas and more! (12/04/2004)
JADE city vistas and more!
The Easter holidays have been very succesful: The code for human cities is complete and many new details have been added to the game. Additionally standard dungeons have been implemented so that not really much is missing. Please note that all the screenshots below are from randomly generated structures in JADE - everything changes from game to game and you will be hard-pressed to find locations that look similar between two games. Here's some of the new stuff:
Screenshots
Picture Here we got a sprawling city with a river, a pool and many buildings. This is a screenshot of an early city version - the later ones have a lot more detail (see below).
Picture Here the PC encounters a river running through the city. In this early version there were no bridges (but see screenshots further down for bridge building efforts).
Picture Yet another city with a river and a pool. This time the city also sports a city wall to be protected from invading forces.
Picture Here we have a city with a ditch, a city wall, a drawbridge and actual city gates. And for the first time we see roads entering and leaving the city. Please note that most parts of the city now contain of mud tile - grass is more scarce.
Picture This city has a river in the near vicinity of one of the city walls. Again nicely bridged and with a couple of lonely houses on the outer side of the river between the city wall and the river itself.
Picture On this screenshot the PC is relaxing on a small lake in the city.
Picture This city sports many roads, bridges and yet another beautiful river.
Picture The ancient city depicted on this screenshot sports and "old town" encircled by yet another (second) city wall. Some mighty cities even can´have a system of ditches, walls and more.
Picture This aged settlement also has a lot of detail: two wall rings (the outer one with a ditch), a park to the east, a lake to the south and no major roads - a clear indicator of the evolutionary growth of this city.
Picture Here we have a minor dungeon. As far as I am concerned there are still too many tunnels being dug, but this will change as developement continues. Maps can be of arbitrary size so that a lot of variety is guaranteed.
# Screenshots - JADE 0.0.5 is evolving! (09/04/2004)
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:
* o There now are locations that collect the meta information about places in the game (e.g. names, connections, type of location, ...).
* o 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).
* o 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.
* o Connections are defined in an abstract manner and refined when the actual maps are created.
* o An info bar has been added and a (more) prompt now exists for the message area.
* o The whole screen layout is pretty dynamic (see the screen shots below).
* o 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.
* o 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
Picture 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.
Picture 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).
Picture 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).
Picture 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.
Picture 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.
Picture 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.
Picture 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 ;-).
# Screenshots - JADE slowly is taking shape! (10/06/2001)
JADE is slowly taking shape!
Wow, it's been more than two years since the last update - but I told you JADE would be years in the making. Things have changed quite a bit. ADOM 1.0.0 is out, ADOM 1.0.1 is in the work and last weekend I felt the urge to restart actual work on JADE /beside just thinking about everything). I rewrote the basic JADE code for the third time from the scratch but this time I'm really convionced that the basic approach is the right mixture between complexity, flexibility and elegance.
Many things I thought about would have provided the game with ultimate flexibility - e.g. considering body parts as items, so that you could hack off body parts of monsters, pick them up and graft them on your body, etc. Grizzly stuff and very tempting... but in the end there was a lot of such stuff which would have made the game much too complicated - starting with the interface (e.g. how to handle items worn on the respective body part while it was removed) and ending with all the various implications (size implications, etc.). Finally I have convinced myself that too much complexity in such detail areas can't be the way to go. Which resolved many problems...
One major such area was the screen display part... in the previous version of the JADE sources I tried to provide a mixture of predefined UI stuff and a lot of openness so that various modes of display could be plugged in. But I soon noticed that all my decisions might inhibit the ability to provide different user interfaces for JADE. Thus I finally decided to change my approach: JADE now utilizes a very basic UI interface class. The implementation of a specific UI has to follow only very general rules and can otherwise be handled as the developer wants.
And what's the benefit of this... well, I'm going to provide a working ASCII-based UI and if someone else out there feels the need for some other interface, he can easily build it without having to change the basic game. Here are some interfaces I'd love to see:
* A 3D interface inspired by the various art pieces in the gallery. That IMHO would be the coolest game interface any roguelike game ever had... just imagine that: 3D letters moving around in a 3D maze - I love the idea )
* A tile-based interface like in the early Ultimas.
* Maybe even a tile-based interface like in more modern games... though I have some doubts that the basic map structure will allow for such detailed maps.
And the other result? A working basic ASCII interface and thus some screenshots. Display speed still needs some tweaking (right now a complete screen redraw takes between 30ms and 170ms depending on the zoom level on my 1GHz Pentium which is slow, but it's Java :-^ ). Well, here are the screenshots (and I'm hoping for the JDK 1.4 which presumably brings with it some major speedups in the Graphics 2D engine):
Picture A snapshot of the splash screen displayed while JADE starts. This also provides a glimpse of how the new JADE logo will look once I get around to redesign the JADE part of the site. It has a neat progress bar and overall I'm very happy with how the desing worked out.
Picture The standard map display for JADE. Here you can see a part of the world. Right now all the message areas are still missing but I'd first like to get the display stuff completed.
Picture The JADE map display offers a variety of zoom levels (right now 14) so you can easily display an overview map of all the areas you have explored. This is an example of such an overview map.
Picture Due to the flexible zoom levels you also can easily zoom into the map if your eyesight is not very well or you are playing late at night. This is a just-for-fun example of a zoomed in view into the game.
# JADE Events - lots of stuff is happening! (01/05/1999)
JADE Events - lots of stuff is happening!
JADE will be completely event-driven. After the initial startup has been finished (and this includes just setting some options and parsing the command line), an event-driven action system will take over and completely control game flow. This seems to provide a very powerful mechanic for an extremely detailed game without having to care for a bazillion special cases... here is how it is going to work:
Event Types
JADE will know two general event classes: standard events and meta events. Standard events are used for in-game actions like weather changes, the next player action, a monster attack, spell learning and so on. Meta events will be used for game control (e.g. events to repaint the screen, to save the game, to abort with an error and so on). Events will be queued in two event queues:
1. a region-specific (local) event queue with local events (actions of the local populace, effects of the local environment like floating logs, moving walls, recharging traps and so on)
2. a world-specific (global) event queue that holds all world-spanning events (messages being exchanged between cities, spreading reputation, global quest timers and so son)
There will be many event types, each of them related to one specific event. Thus there might be a RedrawScreenEvent, a RechargeItemEvent, a MoveWallEvent and a RegainHitpointEvent.
Event Ordering
Events will be ordered in the event queue according to the point of time at which they are going to happen. Each event will posses a scheduled turn on which it is going to occur. Standard events use the game turn counter (starting at 0 and going up to 263-1). Meta events use a negative turn counter (starting at -263+1 and going up to -1). 200 game turns will make up one second of actual time, so that the counter (long variables are your friend) will be sufficient for 1.5 billion game years (!). Each game action (and thus each standard event) will take a certain amount of energy to complete (from 0 for 1000 for a standard action to a lot more). The current term plus the amount of energy required yields the turn at which the event is going to happen. Events are inserted into the queue in a sorted order. The event with the lowest turn number is executed next. This continues until a FinalEvent instance is retrieved from the event queue(s) and executed successfully.
Long Events
Some events take longer to be completed than others. Quaffing down a potion is a pretty fast action but reading and learning a spell from a spellbook takes quite a bit of time - and you can be easily interrupted while doing so. Thus JADE will know short JadeEvents and long and interruptable LongEvents. Long events require a total amount of passed time to be complete but will get a chance to be completed partially after every predefined fraction of the total time that passes. Thus you can easily simulate eating (where a part of the food is devoured every fraction of the event) and you also can easily simulate interruptable actions like learning spells.
Event Uses
Events can be used for many things in the game and allow the trivial implementation of many features that are pretty hard to add in standard procedural roguelike games (like ADOM). Here are just a few examples:
* Logs can float down a river. They are moved regularly be FloatingLogEvent instances.
* Items recharge easily (RechargeItemEvent).
* The player can have a reputation in each town. Depending on his actions in other towns his deeds might influence his reputation in other towns after some time has passed. For example you might still be very respected in LittleVillage in the deep dark mountains although you already have murdered half the population of BigCity. But after some months have passed his reputation spreads and suddenly the folks in LittleVillage will be very wary if the player decides to visit that part of the country once more. On the other hand if the player travels fast enough, he might have some time to enjoy the peace in LittleVillage until his reputation catches up with him (SpreadingReputationEvent).
* Items can effect the player in a multitude of way (e.g. the Glowing Crown of Havoc might create a nasty and fiery explosion around its location every minute).
* Shops can recharge easily, quests might time out, weapons in a humid environment slowly corrode, etc.
* Traps become more versatile: rolling boulders are trivial to implement (RollingBoulderEvent), moving walls will allow for tricky labyrinth puzzles (MovingWallEvent), traps might be reset after some time has passed (ResetTrapEvent).
# Monsters are players, too! (01/05/1999)
Monsters are players, too!
One of the fundamental truths of ADOM is that monsters and players are very different beings. Monsters have a lot less attributes than the player character, they use a different magic system, they will have a different inventory system, they can't (really) pray, they will require special code for used items and so on.
This is annoying at best and costs time and efforts at worst. Thus one of the principal approaches of JADE will be to treat monsters and players similar in as many respects as possible: I'm hoping that this will extend so far that the only difference will be some controlling methods and the actual game control (an AI for the monster, the keyboard for the player).
This document collects some of my preliminary thoughts on this subject.
The basic being
Beings in JADE consist of many factors:
* nine major attributes (Strength, Learning, Willpower, Dexterity, Toughness, Charisma, Appearance, Mana and Perception)
* plenty of derived attributes (basic DV, hitpoints, mana, basic saving throws against dangers, etc.)
* a body consisting of bodyparts (head, neck, hand) which in turn have body locations (upper neck, lower neck, hand, ring finger) which in turn can hold items
* a backpack (probably with many more containers in it)
* a skill list
* a spell list
* a pool of guild memberships with associated ranks and special abilities
* and so on.
I want these structures to be the same for both the player and the monsters (the base class will be called Being). Now it's very tempting to implement all game effects (potion effects, effects from drinking from pools, effects from praying, weapon damage effects and so on) but once for both the player and the monster.
Since both player and monster will be made from the same stuff (e.g. have the same traits and the same methods to access them), this should be trivial except for one problem: during the game texts will be printed to the screen and these texts must be adjusted to both the player and the monster, preferrably without having to write texts for these two special cases. Thus I right now try to determine whether a simple set of special symbols for the text messages will be suficient to write messages once. See the proposal below and email me if you discover a flaw somewhere.
Special symbols for messages
The set of special symbols has some similarity to what you get in C - to understand the following table it might be helpful to understand a bit of C programming. Otherwise please try to make sense of the examples below the table.
For the examples we use the player, the generic goblin, a slime blob and Tara the witch.
Code:To see Table, visit: http://www.adom.de/jade/01059901.php3
For each symbol there also will be a capitalized variant which returns the capitalized text. Each being will have a method called usesThirdPerson to determine whether the text is in third- or first-person. Following each @ tag there can be a number n (one digit) referring to the nth monster registered as a participant in the message text.
For the examples the following being and item instances will be used:
* m1 = Player (the only being instance with usesThirdPerson == false)
* m2 = Generic Goblin
* m3 = Tara the Witch
* m4 = Slime Blob
* i1 = broken broad sword
* i2 = glowing staff
*
Code:To see Table, visit: http://www.adom.de/jade/01059901.php3
Naturally you can't model arbitrarily complex sentences with this set of tags, but the question is whether this set is sufficient for your typical roguelike game. Do you perceive any problems? Let me know....
Ressource requirements
As you might guess from the above JADE will be somewhat on the ressource-hungry size. Each being will be made up from a couple of dozen objects (probably 100+ for powerful and/or complex beings). All these beings will have a wide variety of choices at their disposal. Thus you'll need a powerful machine to be able to run JADE.
I don't mind for a simple reason: JADE probably will need another five full years to get completed (assuming that we'll survive Y2K) and computers will be a lot more powerful then than they are today. This premise has worked very well for ADOM and I'm hoping that it will work for JADE as well. A saved game might require 10-20 megabytes of memory (even when compressed with gzip compression, which is trivial to add with Java) and what? The smallest hard disks even today are in the gigabyte range. And memory? Yes, JADE probably will require at least 128 MB of memory! Again I don't care. My computer right now has that much and slowly the cheapest things you can get have that much... by the end of the year 128 MB probably will be a low standard and in five years we might be talking about gigabytes of main memory.
Please note that this is not meant to be an excuse for sloppy programming and waste of ressources (I'm not trying to write Windows, mind you), but if a fun feature requires ressources, the feature will get the ressources.
# Attributs, hit points, and the balance of power (12/24/1998)
Attributes, hit points, and the balance of power
ADE basically will use the same attributes already known from ADOM:
* Strength, Dexterity, Toughness and Appearance on the physical side,
* Learning, Willpower, Charisma and Perception on the mental/social side and
* Mana on the magical side.
It also will use DV (defensive value) to simulate the difficulty of being able to hit someone and PV (protection value) to simulate the natural resistance of things and beings to damage. The attribute ranges will also be similar to those in ADOM (1-20 for the human range, with 9-11 being an average value).
Differences will show up in how hitpoints are calculated: Hitpoints will be based on a constant dependent on your race (trolls are a lot hardier than gray elves), guild membership (someone trained as a warrior is a lot tougher than someone trained as a merchant), Toughness (the attribute, naturally), Willpower (the attribute, again, at a much lower rate than for Toughness) and "level". For each new level you will gain +1 hitpoint. This might seem little at first (and it is) but it will prevent an evergrowing power spiral in which monsters and the character become tougher and tougher, deal out more and more damage and so on (with all the known balance problems in ADOM). Instead you will have a very gradual scale. Hitpoints additionally can be improved by training skills:
* Each level in a weapon skill will give you +1 hitpoint (the reason being that combat training exercises your body and teaches you to withstand pain).
* Each level in Athletics will give you +1 hitpoint (physical fitness also helps to resist damage).
Thus the final formula for determining the total number of hitpoints might look like this:
Total hitpoints = + Race base value (in the range from -5 to +10)
+ Sum of all guild bonusses (in the range from 0 to 10 at most)
+ Toughness (usually in the range of 1-20)
+ Willpower divided by 3 (drop fractions) (1-6 additional points usually)
+ Level
+ Sum of all weapon skill levels
+ Athletics skill score
Thus - ignoring skill levels, guild membership and race - an average character will have about 13 hitpoints +1 hitpoint per level.
To keep the game fair, monsters naturally will be a lot less deadly than they are in ADOM, there will be a higher healing rate and there will be greater effects from weapon skills on combat.
# Experience levels and professions (12/24/1998)
Experience levels and professions
JADE will see a radical departure from the ADOM philosophy of experience levels and professions. In ADOM experience levels are very important because they allow you to increase skills, hit points, gain special powers and more. Professions also are pretty defining in giving you your core abilities and determining the best approach on solving the game according to your choice.
This will be very different in JADE. Here you won't be constrained to but one profession but you rather will be allowed to learn more professions as time goes by. Professions will guide how much experience you have to "pay" to advance a skill and will grant you certain in-game benefits (access to guild halls, access to specialized guild equipment and more). This effectively means that you will be able to become a guild member in as many guilds as you like - as long as you can convince the respective guild council that you might be a worthy guild member... which actually might become pretty difficult when facing the council of the paladins guild after having proven oneself a powerful assassin or a nasty necromancer!
Experience levels also will play just a minor role. They will give you a very minor hitpoint bonus (+1 hitpoint per experience level) and only serve as a general guideline for your accomplishments... it has no other effects. You profession powers will be guided by your reputation in your guild and your experience score in the respective profession.
General experience levels will be determined according to the following chart:
... ...Code:[b]Experience score Experience level[/b] 0 1 100 2 300 3 600 4 1000 5 1500 6 2100 7 2800 8 3600 9 4500 10 5500 11 6600 12 7800 13 9100 14 10500 15 12000 16 13600 17 15300 18 17100 19 20000 20
Naturally this has some additional consequences:
* In contrast to ADOM their will be no (real) experience level limit.
* Monsters will yield a lot less experience than they do in ADOM.
An alternative I had considered to this is the following approach: use the table above to determine your rank within your guild(s) and calculate the overall experience level as the average of your guild ranks. I decided against this, because picking up a new profession at a later point will decrease your overall experience, which doesn't seem reasonable.
Yet another approach might be to only count experience points for your professions and use the total of those points to determine your overall experience level. I like this one very well, because it removes the need to have some abstract experience point amount, just for the sake of being able to calculate some abstract experience level.
The final (and most simple) approach might be to simply use the maximum guild rank as your overall experience level. This has one disadvantage: let's assume that guild rank is determined by looking at something I'll call reputation score for now. It is influenced by your deeds and increases if you behave appropriately to your profession (a healer tending the sick, a thief picking pockets, an assassin killing targets, a merchant reaping trade rewards, etc.).
It decreases if you behave in an improper way (a paladin stealing things, a druid killing peaceful animals, a wizard engaging in melee constantly, etc.).
This would pose some interesting challenges to be successful in several varying professions, something I find very realistic and very intricate. Since this possibility is not yet ruled out, the final approach mentioned in this paragraph won't be used for now, despite it's simplicity. These changes will permit a more variable, realistic and exciting approach to things, allowing you to play a very high number of very different characters.
A thousand years have passed since Chaos tried to invade Ancardia. A powerful hero managed to defeat the ultimate threat to peace and all life and brought a millennium of tranquility to the world. The various races prospered, civilization expanded and vast parts of the world were settled in one way or another.
Many city-states dot the country site and trade is common in these days.
Recently folks started to talk about strange monks travelling the country site. Heavily robed they swarm villages and try to find converts with surprising frenzy. In remote mountain ranges ancient dungeon complexes suddenly seem to sprawl with life and unlife of all sorts. In the past couple of years, tensions have been rising between the races. Is this just the return to normal historical development after an unequaled era of peace of is something more sinister working behind the scenes?
Your character might be the deciding factor in this. He will be able to venture through a vast world and its his choice whether he wants to engage in adventure or just lead a normal and sheltered life (for an adventurer, e.g. guarding caravans). Everything can happen and usually everything will happen - it's your choice what you make of it...
[From the ADOM News/Blog]
New JADE designer thoughts & first screenshots! (10/06/2001, 15:24)
Last weekend I broke down and rewrote the JADE engine from scratch once more... for the third time. This is no real big problem, because the engine was not that far... but this time I believe I'm on the right track and won't repeat some of the ADOM mistakes... and here are some screenshots to prove that JADE might lead a kind of unlife but is far from dead
JADE Development continues... (03/19/2004, 17:34)
Right now I'm having a lot of fun working on JADE. The code for the map display is finally debugged and complete (basically, darkness is still missing but won't be needed in the near future ;-), error handling is included (and crashes now are far less likely to be fatal than in ADOM) and I'm right now working on the code to change locations (which is a bit tricky as usual, because JADE will be so damn flexible and I need a lot of infrastructure to finish that code). The statistic bar is finished, the message bar works completely, there are more customizing options and the code structure was refactored to be much clearer and more concise. I hope to post some new pictures in the next week or two.
JADE 0.0.5 Update (04/09/2004, 17:43)
Yeah, I have been working quite a bit on JADE lately to finally make the next step - I hope for a first alpha release at some point in 2004 (probably twoards the end). No promises as usual ;-)
In any case you can get the latest screen shots and updates here. I have also provided the current JavaDoc documentation for JADE 0.0.5.
http://www.adom.de/jade/javadoc-jade-005/index.html
JADE 0.0.5 city vistas! (04/13/2004, 10:26)
Some more updates to JADE 0.0.5 over the Easter weekend: I have added a lot of code to generate city maps - and I really like them. I already have tons of ideas for special buildings for those cities so that city exploration can be as exciting as dungeon exploration
More details available here.
Multiclassing in JADE (12/18/2004, 13:24)
Holidays, finally... day #1: Decided to implement professions in JADE similar to what Dungeons & Dragons 3rd edition does. Basically this means that you start out in one profession but can switch to other professions if you find the opportunity and trainers. Should make for a lot of variability. No idea yet on limits I'll impose... maybe none at all (but then benefits won't be as straight as in D&D 3, but rather more closely related to your profession level).
Ok, on we go
ADOM / JADE Webblog & JADE News (12/20/2004, 12:56)
Holiday day #3: Just felt like posting stuff... so in the future I'll try to post a little more about what I'm doing. Since "News" no longer seemed to be the appropriate title, I've renamed this column to "Ancient Scrolls of Mystery - The ADOM Webblog".
So what do I have to say: Multi-classing basically has been implemented in JADE (well, the actual class features are still missing but laid out) and today I have reorganized the way the control for beings works... now NPCs and the PC are basically the same class - only the brain instance used varies. The PC brain delegates all decisions to the usrér interface, the NPC brain tries to follow goals and make useful decisions.
And what's the benefit: very obvious! Now I can exchange minds between the PC and the monsters with ease - this basically means that you can play any monster and there will be some kind of magic to allow you to exchange your self with that of other monsters. The JAVE implementation for this needs but three lines:
Brain tmp = monster.getBrain(); monster.setBrain(pc.getBrain()); pc.setBrain(tmp); And you are done! If the monster was a goblin, you are now controlling the goblin - if the monster was an ancient eternium dragon lord, you are now controlling it !
I know that I'm simplifying somewhat because the user interface now will need to allow you to activate special abilities - but that's just generifiying the "Drakeling breath special case".
I love working on JADE
Oh yeah, the first public version of JADE will be very basic - no spells, no skills, no talents, no... almost nothing. Just walking around and fighting. But that's a good way to get the steam up ;-)
JADE Inventories & more progress (12/21/2004, 21:05)
Yesterday I hacked away until 2.30 pm at bodyparts, (hey, that sounds weird , items and other details for JADE. Bodyparts are basically done so that playing non-humanoid monsters now also entrails having a very different inventory (e.g. imagine an ettin with two heads or a claw bug with many claws).
Today I started the tedious work on being able to display inventories. The code is not yet done (I still need to code the stuff list) but I got tracked away to other useful areas. The generic display code for items and the inventory now also can be used for skills, talents, spells and other lists in the game.
Good to already have that ;-)
Funny side notes: Item containers should be very simple. I already have implemented the basics and it should be a lot of fun to have a backpack on your back and a sack in each hand - while fighting a greater moloch beating him to death with your treasures ;-)
And bodyparts even might become items so that monsters could remove bodyparts by brute force (yikes!) and necromancers even might be enabled to create grafts (but the latter thing requires a lot more thought and is not something to be done soon).
So 'll now continue my work on inventories and item lists (I really need to start coding items soon - not one item implemented yet... ;-)
Stay tuned... (and for the folks from ADOM Meet 2004: no, there won't be a JADE 0.0.1 by Christmas, but hopefully this blog thingy will speed up my fun at development ;-)
Oh... and if anyone feels the need to discuss my ramblings, please do so in the newsgroup rec.games.roguelike.adom - I'll stop by occasionally!
More JADE inventory stuff... (12/23/2004, 18:10)
Christmas is really taking its toll this year... yesterday I was in Frankfurt/Main to get a Christmas gift for my mother - the car trip to Frankfurt was pretty nice... about 2.25 hours which is a decent time from where I live. After some hours there it started to snow... and the back trip took more than 5.5 hours amidst rain, snow, ice-covered autobahn routes, car crashes and other nasty events... needless to say I didn't get much done on JADE...
Today was even more hectic... but at least I rewrote and finalized the basic text display code for all support screens (now wih multi-column layout, item filtering) and maybe I'll finish tonight the code for inventory handling.
Along the way item filters were created and I had some nice ideas for more specific item features... e.g. armor (if you are trained) weighs only haf as much when put on because the weight distributes well over the body and thus is less encumbering... one nice line of code due to the object-oriented structure of JADE. Very neat
And talents will further differentiate professions - e.g. only fighters, paladins and knights will be proficient with heavy armor, while some other classes will have to spend a number of talent points to get these abilities (they can use armor all along the way - but with some problems if untrained in using them).
I love all the details that seem to come up so naturally
*******************************************
Various Jade Links
*******************************************
http://www.adom.de/jade/index.php3
http://www.adom.de/jade/01059901.php3
http://www.adom.de/jade/01059902.php3
http://www.adom.de/jade/09040401.php3
http://www.adom.de/jade/10060101.php3
http://www.adom.de/jade/12249801.php3
http://www.adom.de/jade/12249802.php3
http://www.adom.de/jade/background.php3
http://www.adom.de/jade/bugs.php3
http://www.adom.de/jade/code.php3
http://www.adom.de/jade/doc.php3
http://www.adom.de/jade/download.php3
http://www.adom.de/jade/links.php3
http://www.adom.de/jade/sources.php3
http://www.adom.de/jade/design.php3
http://www.adom.de/jade/12040401.php3
http://www.adom.de/jade/index.php3
Hoping this thread is useful to someone :b