[OT] Announcement, new application in the making... stone & blood
[1/4] 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.
[2/4] from: chrismorency::videotron::ca at: 9-Feb-2004 23:36
Good to know they are gamers on the list... I myself am working on my object/class library just to work on a D&D program on which I've been working a lot in the past few years... but not really started coding yet. Good luck with your project... once I finish Recoil, maybe we could join effort... but my view may be too much rule-driven for your taste ;) chris
[3/4] from: SunandaDH:aol at: 10-Feb-2004 3:52
Hi MAx, Sounds an interesting project! It's amazing how many innovations that set out to change the world became ubiquitous because they offered entertainment (Radio, TV, the Internet). Perhaps this could be the breakthrough REBOL has been waiting for!
> The name is not final, I just don't know how to call it! any ideas !?
How about "Thud and Blunder" -- in honour of Poul Anderson's critique of the literary genre from which this sort of game emerged? :-) http://www.sfwa.org/writing/thud.htm Good luck with it, Sunanda.
[4/4] from: moliad:aei:ca at: 11-Feb-2004 0:57
My engine actually integrates the default rules fully. there might still be some special exceptions or things that aren't supported, but I can see 90% of the game's character/monster being built by the dialect. When I say that you can break the rules, I mean that the rules are all there and things like skills and the number of skills you can purchase are all regulated and handled. It just that in the dialect, you can add rules which extend the default capacity of the default classes or monsters. When It will be released, I'll accept all the code and ideas people have if its at all compatible with the vision I have :-) Chaos is done, the tables engine is too, so now I'm working on the character builder dialect again. But its all going smootbly so I expect to have a fully functional raise dialect by next week. Its good to be coding actual applications, rather than just api and internal architecture stuff.... -MAx ----- Original Message ----- From: "Christian Morency" <[chrismorency--videotron--ca]> To: <[rebol-list--rebol--com]> Sent: Monday, February 09, 2004 11:36 PM Subject: [REBOL] Re: [OT] Announcement, new application in the making... stone & blood