Re: [DM-dev] Decorate function, what about it?
Brought to you by:
acdalton,
henningsen
From: Henningsen <pe...@al...> - 2001-04-05 21:58:04
|
Celestial dancer Selena wrote: >You write that you had intended to go through the dungeon once more >and decorate it in a separate step, reacting to the local conditions created >by the action of the WallCrawlers. I think that would be a very good plan, >and I find it a bit lame that you announce your intention not to do that >part. I mean, do you write the program or not? And if you do, why stop halfway? You are right, I did not put that well on the webpage. There's one overriding reason that makes it a bad idea to write the Decorate()-function - and that's that we don't know what to decorate with. This function should be written when we know how many graphical resources we will have - how many different wall tiles, and corner decorations, and double-high walls, and center pyramid decorations, and, and, and ... and when we know all that, we can write a decorate function that beautifully distributes these decorations. But not before. I had considered writing a function Decorate(int numGraphics), that would implement decorations depending on the number of different tiles the graphic artist would make. But any such function I might write generically would be at best second rate to a function that is written with specific knowledge of the graphical style that will be employed, and the various resources. > And if you stick with the decision not to write the Decorate() >function yourself, could you at least give your ideas on it, so that it >would be easier for other people to implement this? But of course. I'd go through the entire dungeon square by square, and inspect a neighborhood (maybe 11x11) of those squares that contain a wall tile. If the neighborhood has enough space to pad this with another wall tile, we'd consider that. For instance, where several walls meet ( 3 or 4 converging on one square) that square would get neighbors so as to form a little pyramid. Also, we'd identify openings (like doors) and decorate them with nice dramatic portals. Another thing would be wall following. The user could select a number of the design Crawlers, and follow their wall, and make it wider (and thus higher) if room allows. In this manner, one could follow the longest wall that starts at the Crawler start position - often this would be first the generation 0 wall, then it would switch over to generation 1. Distinguishing these graphically would be of value for orientation in the dungeons. Other walls that have lots of room around them could also be padded or decorated in other ways. Finally, in the last pass, we would identify whether there are any large open spaces left, and would then fill these with decorations - probably something like columns, only maybe 2x2 squares big? Or prefab spirals? Should be very dramatic, anyway. If Decorate() can do something like this, we can allow the Crawlers to make dungeons that are sparse in some regions, which looks really cool if you ever tried it. Much more than anything else we have so far this would allow the creation of dungeons with different "tastes". BTW, I would look forward to someone doing a graphically fancy rendering of the DungeonMaker's creations. Would you maybe be interested in financing such a venture? Peter alifegames.com |