Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: A method of implementing a common suggestion  (Read 460 times)

LegoLord

  • Bay Watcher
  • Can you see it now?
    • View Profile
A method of implementing a common suggestion
« on: February 22, 2009, 04:40:39 pm »

Okay, so more than once I've seen the suggestion to have some creatures be able to destroy constructions as a way to improve sieges and megabeasts.  The normal counter argument is that such a thing would likely end up trying to destroy every construction it came upon and wind up killing itself with a cave-in. 

So I suggest that instead of making it work like the building destroyers, which seek and destroy buildings, construction destroyers simply have modified pathing AI. 

When they see a construction, they simply see in as a very highly restricted traffic zone; they won't even dodge into it.  If there is no open path to the other side of a wall, they will simply walk through the wall, and the wall will be deconstructed automatically.  If there is already an opening in the wall, they'll move towards the opening instead of bashing open a new one.

This isn't saying that construction destroyers should be added; just saying that if they do get in the game, well then here's a good way to implement it.
Logged
"Oh look there is a dragon my clothes might burn let me take them off and only wear steel plate."
And this is how tinned food was invented.
Alternately: The Brick Testament. It's a really fun look at what the bible would look like if interpreted literally. With Legos.
Just so I remember

zchris13

  • Bay Watcher
  • YOU SPIN ME RIGHT ROUND~
    • View Profile
Re: A method of implementing a common suggestion
« Reply #1 on: February 22, 2009, 04:41:49 pm »

Good idea. I like that. I like that alot.
Logged
this sigtext was furiously out-of-date and has been jettisoned

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: A method of implementing a common suggestion
« Reply #2 on: February 22, 2009, 05:18:05 pm »

This idea has been floating around a long while.  Allowing building destroyers to see constructions as "open" rather than "closed" tiles would require maintaining a separate connected components system for them.  Multiple component systems would also allow fliers, swimmers, multi-tile creatures etc. to work properly.  However, Toady has said that updating even the single "walks-on-land" system takes so much CPU time to update (on map changes) that having others isn't feasible.  I imagine the problem still stands, although I don't quite understand how the (relatively infrequent) map changes could really bog the CPU down that much.

http://www.bay12games.com/forum/index.php?topic=1788.msg28212#msg28212
Quote from: Toady One
Having an additional connectivity map was the first thing I considered, but it's too calculation intensive.  Repairing the connectivity map is one of the slower calculations in the game, and nearly doubling (or more if you allow creatures beyond 2x2s) the number of calculations would be bad.  It doesn't use some kind of path network and I haven't seen a feasible way to store such a thing, especially in the 3D grid, and fluids are also an issue there.  I'm also not eager to add a few more bytes to map storage, though that's a lesser problem.  And I'm not sold on the idea in general, since the overarching sentiment of giving tiles explicit sizes opens up a host of additional issues for very little gain in my opinion, relative to time spent on other tasks.
« Last Edit: February 22, 2009, 05:21:57 pm by Footkerchief »
Logged

LegoLord

  • Bay Watcher
  • Can you see it now?
    • View Profile
Re: A method of implementing a common suggestion
« Reply #3 on: February 22, 2009, 05:24:00 pm »

Ah, I missed that.  Thanks.
Logged
"Oh look there is a dragon my clothes might burn let me take them off and only wear steel plate."
And this is how tinned food was invented.
Alternately: The Brick Testament. It's a really fun look at what the bible would look like if interpreted literally. With Legos.
Just so I remember