Sunday, November 6, 2011

JADE 0.2.0 has been released!

After almost three months I'm proud to announce the release of JADE 0.2.0. This release marks a major and very important milestone for JADE in the quest to succeed ADOM.
JADE 0.2.0 is the first JADE release that I dare to call a "real game". It's still pretty limited when comparing it to ADOM content-wise but the rate of advancement is amazing to me (almost 20.000 lines of pure Java code added in 10 weeks, not counting comments and other stuff - I'll post an interesting statistic concerning that, soon). Additionally JADE 0.2.0 sports a number of features that already lift it above and beyond ADOM as those things would be pretty hard to add to ADOM. So here are the highlights of the 0.2.0 release, the detailed list comes next:
  • Quests that provide a "winning condition"
  • Addition of all the races from ADOM plus three new classes (tinkers, thieves and commoners besides fighters)
  • Multi-classing (yeah - very cool once more classes are there)
  • A construction and processing system that allows many modifications to the environment (and can be trivially extended once ideas start flowing from the community)
  • Many many new interaction means with the environment
  • About 100 new base item types as well as more than two dozen new monsters
  • Liquids, environmental effects, many new powers and abilities, an animation system, etc. pp.
From now on progress will be have on the content side and I hope to achieve the level of detail of ADOM in about nine months (that would make for a release of JADE 1.0.0 around my next birthday - we'll see if I am unrealistic or will manage to pull the trick).

So here's the detailed list of changes:

* JADE 0.2.0 is the first "real game" version of JADE. It's still a simple game compared to ADOM
  but it's a full-featured game nonetheless.
* Added liquids (together with flows and many effects on the environment
  and the beings on the map) to maps.
* Added the 'U'se and 'e'at commands.
* Added state information to tiles (e.g. doors and walls) as well as features
  (e.g. altars).
* Added code to handle item damage (not yet complete though).
* Added abilities to beings (flight, being desolid, aquatic, unbreathing, invisiblity, the power to
  detect invisibility, swimming and teleport control).
* Added water based attacks as an attack type.
* Added desert and water effects for the environment.
* Added a (more) prompt directly before popping up the death message.
* Added satiation, food, hunger, starvation and similar niceties of roguelike life.
* Added 101 new items (and for the first time in JADE cloaks, gauntlets, tools, food and miscellaneous item
  types like gems and rocks as well as raw materials).
* Added 28 new monsters.
* Added the cat monster type.
* Added kobolds as a main monster race (main monster races being races that keep getting reused for
  monster variants).
* Added 7 new PC races (dark elves, drakelings, gnomes, gray elves, high elves, hurthlings, trolls) and
  turned orcs into a PC race.
* Added a special Halloween story arc.
* Added a Chaos gate story arc.
* Added 3 new PC professions (commoners, thieves and tinkers).
* Added complex undead.
* Added auto-identifying items.
* Added auto-cursing items.
* Added weapon poisoning.
* Added invisibility and paralysis.
* Added bite damage options by size.
* Added touch attacks.
* Added attribute draining.
* Added attribute changes due to training and other lingering side effects.
* Added being transformations due to special attacks.
* Added a new more dynamic rumor system to the game engine.
* Added a means to merge conditions.
* Added the 'Imbue with power' skill, imbueable items and the actual skill logic.
* Added a display of the calendar date and game time to the statistics display.
* Added death by attribute deterioration.
* Added burrowing a special kind of movement.
* Added giant ant hives.
* Added giant bee hives.
* Added size descriptions to (by default) medium sized items if the PC is not medium sized for better
* Added initial bonus skill levels for the main profession of a being.
* Added initial bonus skill levels for the race of a being.
* Added multi-classing. For now fulfilling the minimum attribute requirements is sufficient to
  be able to advance in a class, later on quests will have to be fulfilled (and other stuff) to
  get access to professions beyond your main profession.
* Added a menu for the manual.
* Added manual and help menus to the start screen.
* Added smell as a new sense.
* Added power point recovery.
* Added location aspects.
* Added wax as a material.
* Added a status message when saving the game.
* Added a construction skill.
* Added item processing.
* Added construction plans for various items, features and tiles.
* Added forges to dungeons.
* Added an ASCII animation system.
* Added repaint events when the window is resized.
* Added a differentiation in word forms for singular and plural.
* Added equipment for the various inhabitants of cities.
* Added the 's'earch and the 'ws' (walk search) commands.
* Added a generic mechanism for searching things for more details.
* Added secret doors.
* Added randomized dungeon names for all dungeons.
* Added lockpicking and locked doors.
* Added a command to be able to raise ones skills at any time ('A').
* Added 'k'icking and a display of the 'K'ick damage.
* Added the 'unlucky' state.
* Added an internal damage matrix to be able to provide more believable damage effects for
  pairs of materials and damage types.
* Remapped 'apply skill' from 's' to 'a' in order to get closer to ADOM.
* Reduced the size of the average dungeon level a bit more.
* PCs at the start are granted enough stregth so that they never will be burdened.
* Implemented the "'p'rocess stuff", "build things" (Ctrl-p) and "'P'ut tool to use" commands.
* Granted shopkeepers more wealth.
* Adjusted shopkeeper behaviour to only greet humanoid visitors.
* Started work on the manual.
* Terinyo now contains two shops.
* If a settlement contains more than one shop at least one of them will be a food shop.
* Improved the readability of the skill dialog by replacing many "+0" entries with "-".
* Increased the starting number of hitpoints for many races.
* Reduced base attributes a little bit to make the start of the game more interesting.
* Monsters now have their attributes influenced by their main profession, too.
* Immortalized Quentin Dauchy for finding the first bug in JADE (even before it was released).
* Adjusted the copyright message in order to reflect that work on JADE already was begun in 1998.
* Renamed a few monsters.
* Now uses a multi-line display for the current location name instead of shrinking the font.
* Added a navigation cross when selecting directions.
* Added more error logging to exceptions.
* Added item stacking (RFE 416).
* Updated Apache Commons Lang 2.1 to 3.0.1 (using up an additional 100k).
* Removed the dependency on the XStream library (saving about 200k).* Fixed an internal problem with the 'BeforeBeingHitAware' logic of things (the modifiers of the attacker
  were used instead those of the defender).
* Fixed a major problem with beings crying for help. The whole logic actually did not really work
  due to a bug in event broadcasting. Oops.
* Fixed the missing stone giant lord ASCII representation.
* Fixed a problem with race and gender being able to modify an attribute score below 1 thus causing the
  preliminary death of a being.
* Fixed a typo in the wilderness death message.
* Fixed a typo with the plural of periapts of healing in their unidentified state.
* Fixed the incorrect name of unidentified thick furs.
* Fixed a problem with items of stupidity actually increasing the learning score.
* Fixed a problem with attribute modifying items actually ruining the attribute scores totally.
* Fixed a problem with multi lines in the statistics display.
* Fixed a problem with the equippable items in the inventory display.
* Fixed a problem with auto-cursing items (they didn't curse themselves... another oops).
* Fixed the line number display on the text dialogs (it was off by one).
* Fixed various problems with cloned damage objects.
* Fixed the name of the brutal and dripping item prefixes.
* Fixed the missing profession(s) in the saved game information.
* Fixed the uncomfortable UI behaviour when closing doors (regression 289).
* Fixed the infamous "endless (un)equipping/wait" bug (issues 356, 425, 430, 446, 468).
* Fixed the problem of overburdened beings being allowed to move (regression 402).
* Fixed a problem with + and - in weapon damage displays (issue 408).
* Fixed the problem of consuming unpaid items without having to pay for them (issue 410).
* Fixed a funny shopkeeper grammar problem (issue 411).
* Fixed a problem with being able to finish quests again and again (issue 433).
* Fixed problem with shop price inflation due to restocks (issue 434).
* Fixed trees claiming to be a forest (issue 438).
* Fixed the clothes singular/plural (issue 440).
* Fixed a problem with dipping uncursed items into blessed/cursed potions of water (issue 452).
* Fixed a rare crash bug when entering other locations (issue 465).
* Fixed talking to yourself (it no longer takes up time, issue 466).
* Fixed a problem with wielded protective gear providing its standard DV and PV bonusses (issues 418 and 467).
* Fixed an NPE problem with path tracking (issue 451, 470).
* Fixed a missing line in the display (issues 406, 437, 473).
* Fixed a problem with variable combat statistics (issues 450, 471).

Have fun, enjoy the game and provide feedback (I'm itching for ideas on how many things should interact and I am looking forward to proposals for interesting construction plans for things).

Besides now going back to the "release early, release often" strategy I started in JADE 0.1.0 I now will focus on fixing bugs you might discover (there has been so much new stuff that I fear there will be some ugly things I missed) as well on a little something that goes by the name of "JADE: The Ultimate Edition". I will keep you posted!


  1. In the interests of just focusing on one thing - I think the idea of 'commoner' as a profession is an interesting one. Most roguelikes (and, for that matter, most RPGs) have it so that the player, even if they are supposed to be a normal person, is the only one who goes around adventuring. Everyone else stays in their towns, or cities, or dungeons, or wherever, while the player character is the only one who actually explodes anything or goes out hunting. These worlds always make me wonder - what is it (unless there's a prophecy or similar involved) that makes the player character special, and why does nobody ELSE in the world go out adventuring?!

  2. Well ADOM always had the farmer, so JADE's commoner is carrying on that tradition somewhat.

    Great to see drakelings in the game - they were always the most interesting race in ADOM. Now I must try and be the first to win the game :D

  3. This new version is incredibly difficult, I just tried 4 games with a Dark Elf Thief, and died every time as soon as I entered a dungeon. I got a single kill on three of the characters, the third one wasn't even that lucky. :/

  4. I admit that a couple of the combinations (well, many of them) really need fine-tuning. Commoners as well as the little races (gnomes and halflings) are extremely hard, all the elves are difficult at least... 0.2.1 will be better in that respect ;-^ Promise.

  5. Just played a game with a Human Fighter and actually got pretty far until a Hill Giantish Skeleton stomped me to the ground. =)
    So yeah, it's not really that the game has gotten more difficult, Elves and/or Thieves are just really hard to play.

  6. You do realise what pickaxes do to the labyrinths? ;]
    Also, digging is extremely fast right now, I think it doesn't even take any time at all. It's faster to dig throught the obstacle than to go around it.

    Do you plan on creating "easy" mode for JADE? One that wouldn't delete one's saved game on death? Some people like playing rougelikes that way, even tough it's against the spirit of those games. It could call your character a wimp or block some endings, for example, in order to promote the hardcore players.

    I'm enjoying the 0.2.0 by the way! ;]

  7. I'm having a lot of trouble with food. In ADOM I used to eat a lot of corpses, so far in Jade 0.2.0 I haven't seen any corpses or any food drops. What gives?

  8. 1. If shadows are going to drain strength, there needs to be some sort of way to gain the strength back. Otherwise, one encounter with a shadow sets you back (combat training wise) more than several hours of fighting.

    2. The small/medium/large thing is neat, but sometimes it doesnt make sense: a troll can't use a "medium tower shield"?

    3. Seconding what Toll said: in a couple hours of playing I saw one bread and that's it. To make matters worse, both characters I played couldn't afford anything except (in 1 case) a honey. Is every class a monk now?

    4. When a shadow hit me, I got something like: "You are bereaved of strength!" Likewise, when I entered a certain dungeon (the CoC?) the dungeon title was a Java variable name.

    5. Shopkeepers in Terinyo will cheerfully do business with you while you murder their other customers in front of their very eyes

    6. Eating raw meat as a troll doesn't seem to make the raw meat disappear

    7. Skill training seems a lot worse than in ADOM: you can barely train anything with the paltry skill point gains you get (at least as a troll), if you want to train a 10 skillpoint costing skill you have to save up for 2 levels just to train it once. Maybe would be ok in other games, but not in ADOM/Jade with its exponential experience requirements.

    8. If you don't abuse the glitch from item 6, then hunger is extremely prohibitive against exploring the wilderness. Most characters have to eat half their food supplies just to make a beeline for the nearest cave.

    9. It's very annoying that I have to choose "kick door" in a popup window every time I kick a door. If I kick in the direction of a door, and the door is the only option to kick, the kick should automatically target the door.

  9. In my comment above, the shadow hit message is supposed to be "You are bereaved of (null) strength" but with angle brackets, for some reason blogspot ate the (null) part up.

  10. BTW, please use the issue management system to report bugs:

    In that way it is much easier for me to fix them in a timely and structured manner ;-) Thanks for all the feedback - it is very helpful.

    And sorry for missing quite a number of issues in the release - that's what you get for a coding marathon in the past couple of weeks. I'll see to it that the bugs will be fixes ASAP.

  11. Hello Thomas,

    Re. your suggestion to post bugs.
    Does it help(or is it even possible) to post savegames along with the bug description to the bug tracker system? It may help for those pesky failure to equip certain items.

    Also, do issues such as almost nil Food drops count as a bug?

  12. @Concerning the first question: Yes, please do so. I managed to fix a huge load of bugs but the problem with the equipping bug persists (e.g. issues 480, 507, 519 and 520 (which probably all are the same bug).

    I'll get back to the problem in about 20 hours so more info is welcome by then ;-) !

  13. @Toll: Concerning the second problem: Yes, kind of. Post an RFE or bug report and I will handle it appropriately.

  14. Noticed the raw meat bug on my dwarf as well, so it is not race restricted.

    Also, time moves much too fast for such a huge world, can starve to death going from Terinyo to the closest dungeon.

  15. Good stuff Thomas, your rapid release schedule is sure to keep me and many people interested. Keep it up, I look forward to donating when Christmas rolls round!

    One question I have is that the game seems like it will be more of a sandbox with no clear narrative like ADOM had; what are you planning in terms of giving players a story arc when every dungeon and settlement is randomly generated? Where will the character of the game lie? Could you release whole completable custom game arcs as new releases?

    My thinking for this is that ostensibly you could recreate the ADOM arc in the world, but also have who areas of the map that support their own arcs too.

  16. Love that you are doing another game, hate the slowness of it. Also the skill selection tree is just too big.

  17. I think you're making fantastic progress, can't wait to see what future versions look like!

    One quick comment from my first few play-throughs: it appears that many monsters are hitting me with weapons, but when they die, those weapons aren't dropped. I like the realism of "the lizard man slashes at you with an axe", but I don't really see why the axe would disappear...

    One suggestion: monsters don't usually have weapons, but those who do are much more dangerous and always drop them. e.g. in ADOM, the Master Summoner would probably hurt me a lot less with his bare hands than with a quarterstaff or sword.

    Taking the idea further, should lizards and rats EVER drop swords and shields? It would be much more realistic if humanoids dropped such items, and wouldn't sacrifice playability much if you balanced the monster mix right. Dunno if JADE would support monster-specific item generation to such a degree...

  18. @parisian goldfish: JADE will include many story arcs that will take place in different parts of the world. In that respect over time JADE will become a kind of super-ADOM where the whole ADOM story might be one story arc and there will be different parallel story arcs of similar complexity. So in the end you will have an incredible amount of choice concerning the background. That just takes a bit more time ;-)

    @Andrius: The skill selection thing will be fixed in the upcoming JADE 0.2.1 release. Concerning its slowness... I'm working on that. I need to do more profiling but there's not enough time to do everything at once. The speed issues should work out during the next couple of releases (and only seem to affect some systems). What kind of system do you have?

    @scriabin: The weapon drop issue will be fixed during the 0.2.x line of releases. It's a rather complicated issue lying in the fact that JADE needs to have a better understanding of "interesting" items to keep after monster death. If all items were dropped you'd be swamped in items and probably also get a balance issue so JADE only should drop "more interesting stuff" with a high probability and "standard stuff" with a low probability. Discovering the difference between "standard" and "interesting" takes a bit time to implement and I definitely am going to add that before 0.3.0.

  19. Excellent work! I've been playing adom from my the age of 20 until the age of 30. I love what you're planning with Jade. This should keep me occupied for about 50 more years, then :)

  20. I've tried all the previous versions as well as this one, but I can't get the jnlp to open properly. Every time it gets stuck "downloading application" about half-way through.

  21. @monocledsardine: Are you using OpenJDK? If so try the official JDK. OpenJDK is completely rotten in too many respects to count, JavaWebStart being an especially rotten area.

  22. Oh, and BTW: Soon there will be something called

    JADE: The Ultimate Edition

    Which will have a nice "all-inclusive" installer.

  23. Nope, I'm using the official JDK. If I had any experience with java web start, I'd probably already know what was wrong, but I don't. I'll keep working on it.