Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] [OT] Announcement, new application in the making... stone & blood

From: maximo:meteorstudios at: 9-Feb-2004 19:19

hello guys, I just thought that I'd let you all know that I am working on a very flexible Dungeons & Dragons campaign manager, it is called stone & blood (not very subtle, I know, but its better than tunnels and trolls ;-) . Yess its ALL being done in rebol. The name is not final, I just don't know how to call it! any ideas !? I was starting a new campaign, then looked at some tools on the web (including the excellent and java-based PCGEN) and they all have the same problem. They stick to the rules too much and when you are an experienced DM and you start having your own house rules, then, they all break up. SO I built the engine to be completely open, and you should be able to change many things on a character without any programming skills. Here are the current modules: ------------------------------ RAISE dialect (in-development 50% done): -------------- A dialect which creates characters. It allows you to break ALL the standard D&D rules. It will eventually allow you to add your own stats. The dialect is meant to be used by non programmers, so relies on practically NO syntax. The data is included in the resulting creature as it handles each aspect. specifying aspects in any order is legal, but might change the end character, because some statistics in D&D don't stack up the same if you have them at a low level or at a higher level (like the number of skills based on int). RAISE is uber simple to use, because most aspects can be transcribed directly as character stats ex: RAISE [ "Torgar Battlestar" ; first unnamed string is character name "Hunter of evil" ; second is the title 17 13 16 9 15 8 dwarf male fighter 2 cleric fighter vampire two-weapon-style armorsmith 4 bullrush refl 4 will 3 fort 6 con 1 ] Most aspects can be specified multiple times, and if they can be stacked, they will! so specifying: [fighter 2] or [fighter fighter] are EXACTLY the same. Some datatypes are handled right in the base block without preceding aspect words, these will be documented, and generally set the most basic stats like description and abilities. Raise keeps a history of every thing you throw at it and eventually, you'll be able to edit some things in the history and "resurect" (rebuild) your character. Another cool thing about raise is that some aspects actually are macros for the basic aspects. for example, class levels (fighter, cleric, etc) will call raise with whatever aspects change at that level. The same thing for monstrous templates (like vampire above). So if you want to create your own templates (like monsters ;-) just add an aspect block to the raise engine, give it a name, and you can then include it in a raise spec, from now on. :-) Some were wondering where SLIM can be usefull... this is such a case. Since there will be some hooks for external data (races, classes and whatever), then just supplying slims with the appropriate functions in them, will allow the external data to link right in the application. Raise will have an aliasing mechanism, which lets you extend any aspects (even those comming from external sources). Add aspects in another language, or supply alternative names so that they are more intuitive to you. Note that you can have any number or aliases for each aspect. Also note that any aspect macros will also be able to use the aliases, so if you create external modules in spanish, then just giving access to the top-level aspects in english, will allow your spanish system, to work in english too. Raise, returns a CREATURE! object. This object contains all the calculated statistics of your character/creature. It is then easy to use it in another tool, like an encounter manager or whatever. TABLES (90% done): ------- I have already finished a table engine, which lets you create tables (either by row & columns of data) or by algorythm. It has an automatic viewer (even for algorythimic based tables!). You can look at your table in console(print), as an html table or in a view face. Amongst other things, It supports tabs specs (for column width), to allow you to properly layout the table. You can also lookup data by row or column AND you can add refinements for your own tables (many of the ones in the rules already will have). the refinements allow you to lookup the tables using more approriate identifers. like: table/lookup/mod 17 ; this looks up a table and goes to column ; 'mod and retreives row 17 of it. CHAOS (90% done): --------- This module is used to roll virtual dice. The chaos dialect reads a string of text and rolls any combination of dice for you. For any rpg gamers, the notation is pretty standard. chaos "4d6+3" ; roll four six-sided dice and add 3 chaos "3/4d6" ; roll four six-sided dice, keep the 3 best rolls ; (no other engine I know of does this ;-) chaos "d20+5+2+1" ; roll a twenty sided die and add several modifiers chaos "2d4*2+1" ; add-up two four-sided die, multiply by 2 then add 1 in a later release, you will be able to merge a table reference to a chaos spec, in order for you to look up die specs and roll them: chaos "table(PHB:weapons/damage sword)" ; lookup weapon damage for a sword and roll it Eventually, chaos will be usable right in RAISE, so that it generates random creatures based on templates. Here are upcomming modules (any gamers want to help? especially in xml area): -------------------------------------------------- -STONE: The gui which includes the other modules. It might be built using prototype of glass! -BLOOD: Interface to RAISE dialect, which lets you buildup a creature, picking stuff in lists as the character advances in levels. -Chaos GUI -Encounter manager (initiative, assign opponents, auto rolls of attacks, damage, all keyboard enabled for speed.) -Campaign editor (put all your campaign notes, and location descriptions. Create vector/tile maps, multi-level maps browsing from world, to room tile! create encounters in advance and assign them to locations on the maps. print maps to browser... includes user-set scaling to create in-game room printouts used by Player's figurines) -XML export of data so that anyone can create his own forms, printouts. -XML layout dialect, which would allow output in pdf or html of S&B XML datat. This being said, I've temporarily suspended forge development (which HAS started, and is so complex, it needs a lot of analysis). in a few weeks, I'll have enough large-scale development done on S&B (Stone and Blood) to approach STEEL|forge with a real-world scenario to support. So forge, will more rapidly evolve, into an application which solves real-world programming problems. Stone & Blood will thus become the official STEEL|forge test application and forge won't be just a toy, even in its first release. :-) -MAx --- You can either be part of the problem or part of the solution, but in the end, being part of the problem is much more fun.