Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Architectural freedom  (Read 1571 times)

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Architectural freedom
« on: April 27, 2010, 10:27:35 pm »

Hello folks!
So I'm an amateur modder, fortress lover, and adventure mode enthusiast, so as you can guess I like to do what I can to add content across the board, and love a good new entity. However, there is one thing that is very limiting to anybody trying to make an entity, and that is how they build there sites. But, it would be possible for Toady One the Great to add a massive amount of verity to how entitys construct there towns with almost zero new content.

Firstly, a [HIDDEN] tag. Dwarf fortress vanilla offers 5 major races, but our small friend the kobalt is the only hidden race. They live in caves, aren't seen on the civilizations page on embark, and you can't see there site on any maps. The only way to achieve this for custom races is to make them also live in caves. But personalty I would love hidden villages in forests, and unknown dark towers in badlands full of evil knights. It would add a lot of excitement to not really know what to expect from a site, so please toady, a  [HIDDEN] tag so we can hide civilizations.

This brings up the point of what symbol to use for civilizations that live in caves but aren't hidden. Simple solution, can we select out own symbol and color for sites, like creatures, rather then the site type implying that.

So these two things alone are nice and simple, but here comes the slightly trickier part.

So first we do away with the [DEFAULT_SITE_TYPE:(argument)], a well as the liked and tolerates. These things are just holding us back! Instead we assume that all entitys will form some sort of site. Now instead of the site deciding what they build, there is a [CONSTRUCTION:(argument)] tag. This decides what the entity will build. So, for example

[CONSTRUCTION:TOWER]
[CONSTRUCTION:HOUSE]

This would cause the entity to build a large dark tower surrounded by smaller houses. Neither of these are new features, just put together in a new way. Elves would use [CONSTRUCTION:TREE] so that they name trees, and kobalds would have [CONSTRUCTION:CAVE] but since caves can't be built, they would need to look for one!

A for how entitys take over new sites, we now assume that to start with, an entity will take over any site it finds. Now we add the tags [SITE_REQUIRE:(argument)] and [SITE_EXCLUDE:(argument)]. The required tag would mean that the entity will ONLY move in if the site contains this feature, and exclude means that if the site contains that feature, they won't move in. So for example, if we wanted out previous entity to move into only sites with a dark tower, but NOT elfish named trees, we would make it as so

[CONSTRUCTION:TOWER]
[CONSTRUCTION:HOUSE]
[SITE_REQUIRE:TOWER]
[SITE_EXCLUDE:TREE]

Cool? Yea, thought so. Now from what we have so far we could get some AWESOME races going, however, because I like the extra level of depth, lets add one more tag to our list. [BUILDING_MATERIAL:(WOOD/STONE/ANY):(SPECIFIC MATERIAL/ANY)] would follow any of the construction tags. It would tell the game what to construct the building out of. If this tag is missing, it implys [BUILDING_MATERIAL:ANY:ANY] and the entity would be with what ever they can find. The first argument defines what type of material is used, so human houses right now would use [BUILDING_MATERIAL:WOOD:ANY] while dark towers would use [BUILDING_MATERIAL:STONE:OBSIDIAN]

This tag could also be used to give greater control over what sites an entity likes or dislikes. Que our running example. If we wanted them to build there housing out of stone, towers out of marble, and only move into sites with marble towers, we do this

[CONSTRUCTION:TOWER]
   [BUILDING_MATERIAL:STONE:MARBLE]
[CONSTRUCTION:HOUSE]
   [BUILDING_MATERIAL:STONE:ANY]
[SITE_REQUIRE:TOWER]
   [BUILDING_MATERIAL:STONE:MARBLE]
[SITE_EXCLUDE:TREE]

So with just these changed to the raws, it gives us significantly more options in making sites then just the current 6 (If we count layers_linked) and will give modders some more room for creativity.

Entity that lives on glaciers and builds out of ice? Hell yea!

atomfullerene

  • Bay Watcher
    • View Profile
Re: Architectural freedom
« Reply #1 on: April 27, 2010, 11:42:30 pm »

I like it, but the way you have it, it seems that goblins will never, for example, move into a town and build a dark tower in the middle, because they require a dark tower in the first place.  There should be room for that sort of thing to happen.  But the exclusion tag is good...maybe elves, for instance, will never build on the site of a dark tower, but will consider it tainted.  (or vice versa).  Also, I'd be interested in raws that control the x, y, and x sizes of settlements, as well as things like house spacing, but this probably requires a considerable extra amount of programming.  Your ideas seem fairly easy to implement.
Logged

Acanthus117

  • Bay Watcher
  • Angry Writer
    • View Profile
Re: Architectural freedom
« Reply #2 on: April 27, 2010, 11:46:40 pm »

Like this idea! :D
Logged
Is apparently a Lizardman. ಠ_ಠ
YOU DOUBLE PENIS
"The pessimist is either always right or pleasantly surprised; he cherishes that which is good because he knows it cannot last."

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Architectural freedom
« Reply #3 on: April 27, 2010, 11:48:57 pm »

Well the current raws say that goblins use
   [DEFAULT_SITE_TYPE:DARK_FORTRESS]
   [LIKES_SITE:DARK_FORTRESS]
   [TOLERATES_SITE:DARK_FORTRESS]
So in theory, wouldn't they not move into towns as it is?

Although your point on applying this to town size is an interesting one!
By using the current LAND_HOLDER_TRIGGER as a sort of caste system for sites, we could control the number of structures at each site, and what there built of, so a smaller town could use wood then upgrade to stone when they hit the next trigger. Although the tag would need to be changed to [CONSTRUCTION:(structure):(integer)] where the last argument represents the number to be constructed.

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Architectural freedom
« Reply #4 on: April 27, 2010, 11:49:56 pm »

Like this idea! :D

Thank you very much! With any luck we could use [LAYERS_LINKED] with constructions to produce subterranean cities.

Andeerz

  • Bay Watcher
  • ...likes cows for their haunting moos.
    • View Profile
Re: Architectural freedom
« Reply #5 on: April 28, 2010, 01:53:43 am »

Add some additional <3's to your inventory.  That is what you get for such an awesome suggestion.
Logged

Deon

  • Bay Watcher
  • 💀 💀 💀 💀 💀
    • View Profile
Re: Architectural freedom
« Reply #6 on: April 28, 2010, 04:26:00 am »

These are two suggestions. :)

The hidden one is cool for adventure mode. You could have a world of many races to find and explore.


I don't think that Toady will work on the sites for some time, but I am eager to see the changes you've suggested. Ability to customize a syte type (and to get more buildings please! :)) would be great.
Logged
▬(ஜ۩۞۩ஜ)▬
✫ DF Wanderer ✫ - the adventure mode crafting and tweaks
✫ Cartographer's Lounge ✫ - a custom worldgen repository

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Architectural freedom
« Reply #7 on: April 28, 2010, 04:34:29 am »

Well although it would make a world of change for anybody making an entity, it really won't take much effort, as most of the script can be recycled, this really is an afternoon job rather then an arc project.

Although on the topic of new buildings, that also raises a good point. Toady already has a compiler to turn a text document into a building, as shown in the arena, so by telling entity to build structures instead of sites, it might be possible to include custom buildings one day.

Walk before we can fly though...

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Architectural freedom
« Reply #8 on: April 29, 2010, 03:08:25 am »

Sooo...

Spoiler (click to show/hide)
Sorry what? Never mind...

Max White

  • Bay Watcher
  • Still not hollowed!
    • View Profile
Re: Architectural freedom
« Reply #9 on: April 29, 2010, 08:31:55 pm »

Row, row, row your thread!