http://qs321.pair.com?node_id=87822


in reply to Re: Re: Re: Re: Re: Modules: Building blocks for the Daft Adventure
in thread Modules: Building blocks for the Daft Adventure

Wow...such a lot of advice. Thank you.

I would certainly welcome having you, or anyone else, as a collaborator, providing that we don't breach copyright on the system we're emulating. (The initial idea was for my home group to use the system to familiarise themselves with the game and the world - the original 1800-room map being a slice of Waterdeep and Undermountain.) We can probably achieve this by considering ourselves a PbeM group, and communicating game-specific details by private email. Also desirable would be some system of our own devising which we can use to show the other Monks how we're progressing - a simple RPG of some kind which exemplifies our techniques.

As for the skill table: Having the skill as a class would, obviously, be optimal. However, the existing table has the permitted classes listed in it, and is assumed to have a standard functionality, so the current version is not in fact as cumbersome as it might be. This is good, since it shows I'm thinking in broadly the right way.

You mention mountains as objects. I'd been wondering about sightlines on the map, and this suggests a way of proceeding, although I'm not exactly sure how it would be done. That aside, I'd not really considered objects larger than 'rooms' to be feasible.

Tiefling (making progress)

tieflet|at|hotmail|dot|com -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GAT d++ s:- a-- C++ UL P++ L++(+) E? W+(++) N+ o? K w+(--) !O M- V? PS+ PE- Y PGP- t+ 5 X+ R+++ tv- b+++ DI++++ D+ G+ e++ h!(-) y +? ------END GEEK CODE BLOCK------
  • Comment on Re: Re: Re: Re: Re: Re: Modules: Building blocks for the Daft Adventure
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Re: Re: Modules: Building blocks for the Daft Adventure
by dragonchild (Archbishop) on Jun 12, 2001 at 19:23 UTC
    If you're worried about sightlines in a 3-D world (which is what it is), then I'd consider visualizing the world as a huge 3-D cube. Each point on the cube has different properties, and would thus be a node in this 3-D grid. One of these properties would be opacity - does light pass through? It then becomes very simple to write a procedure (if it hasn't already been done) to determine the points the sight vector would pass through, and determine where it stops. Weather would also be implemented as a modification of these values. You can get wind (for people flying on griffons), etc.

    This also allows for a very easy way to handle underground activities, and how those activities would interact with the rest of the world.

    Now, you would have a world grid, then a grid within each of the major locales, like Waterdeep or Undermountain. This would be a sub-grid, sorta. At (40,23,0), there is another grid for that place. You enter the sub-grid at a defined point, depending on where you came from.

    Another point that has to be made is that D&D is owned by Wizards of the Coast. I know for a fact that they tend to frown very heavily on people writing stuff for public consumption based on their intellectual property, even if you're distributing it as free-ware. So, if you wanted to do something serious, you would have to make it for private distribution only. Sorry, but you don't want their legal department hitting you with a cease-and-desist. (For examples of this, check out www.mtgnews.com and look in the news archives.)

      Another point that has to be made is that D&D is owned by Wizards of the Coast. I know for a fact that they tend to frown very heavily on people writing stuff for public consumption based on their intellectual property, even if you're distributing it as free-ware. So, if you wanted to do something serious, you would have to make it for private distribution only. Sorry, but you don't want their legal department hitting you with a cease-and-desist.

      Understood. Hence the suggestion that any putative development group would be like a PbeM group. We'd have access to the data, etc, for our own consumption - and it would be a help if the majority of developers ownerd the books the data is drawn from - and we'd not distribute the distinctive D&D features to another living soul. I think that sticks to the ideas of closure and fair use that WotC prefer. And hence also the idea of a low-cal implementation for the general consumption of the monks, based on some simple RPG architecture of our own choosing - perhaps even PerlMonks: the RPG? (Monk: the Coding, for any White Wolf people out there.) I'd enjoy trying to adapt my existing location system, or any other we devised, to a map of London, for example.

      Your description of the grid makes me tremble, I'm afraid. This was the kind of approach I'd been considering for the weather in the last BASIC incarnation, and I'd rejected it as too complex. The present map is an abstract graph, and that's an approach I'd be keen to retain. A grid probably is needed for combat purposes, but I'd prefer (unless it were actually _more_ unworkable) to define each locale as a finite union of cuboids for the purposes of the combat map, and to retain the abstract form of the general map. But then I haven't deciphered (or even played) spork yet. Perhaps that will inspire me further.

      If we do go for an ASCII-graphics combat system, curses is a must.

      Tiefling (getting keen)

      -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GAT d++ s:- a-- C++ UL P++ L++(+) E? W+(++) N+ o? K w+(--) !O M- V? PS+ PE- Y PGP- t+ 5 X+ R+++ tv- b+++ DI++++ D+ G+ e++ h!(-) y +? ------END GEEK CODE BLOCK------
        *laughs* Tiefling, my friend. That is one very good reason why OO is better (at some things) than top-down. Coding something up like this in an OO language would be an extremely simple thing.
        1. Define what each point knows about and knows how to do. Does it know about the wind direction? Does it know about temperature? What about composition (earth, stone, water, air, etc)? I'm sure you can come up with some 30-40 things each grid point knows about.
        2. Create a grid object containing, say, 50x50x10 of these objects. The grid needs to be able to coordinate between the various points, for things like wind changing direction or a warm front moving through. Heck, just for things like daybreak. :-) (There's a number of niftykeen Perl tricks that can be done here to reduce the number of lines and increase the readability.)
        3. Populate said grid.
        Here's the neat part - you have a Map::Grid class and a Map::Point class. The Grid will have, maybe, 500 lines of code and the Point might have 1000 or so. Not all that much, if you think about the fact that that's your entire 3-D world.