Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Idles

Pages: [1] 2 3 4
1
Other Games / Re: Minecraft: Like Infiniminer but in Java and in Alpha
« on: January 06, 2010, 05:30:55 pm »
Hey Reasonableman, could you use your mod powers to dig out the chasm for us, when no one's signed on? I guess someone thought it was supposed to be a brook and flooded it with water--but the plan is it's going to be a map-bottom depth chasm. So I drained the water and it's ready for digging--which would take a very long time by hand.

2
DF General Discussion / Re: Anouncing The PathFinder Project
« on: October 27, 2009, 08:50:00 pm »
Why do people suggest weighting paths that cannot be traversed?

Probably lack of understanding about how path finding algorithms work.

3
DF General Discussion / Re: Anouncing The PathFinder Project
« on: October 27, 2009, 06:31:02 pm »

This list is not 8, you even list how some of the flags combine to make others (amphibious would just have both walker and swimmer set for example) seems excessive to record them as well.

....

As we only have one critter larger than a tile I'd suggest just doing the current pathfinding for it as needed, if we come up with a clever system great but otherwise just ignore it for now.

About your first point: if you read the HAA* paper, the important thing to take away from it is that each creature is able to move over only a part of the map. A "movement type", as I defined it, is a set of rules from which you can figure out whether or not a creature can move through a tile (given that you have all the information that DF currently stores about tiles). By using these "movement types", you construct the abstract "high level" path graph, where the annotations of edges include information defining which one (and only one) of the "movement types" is valid for that edge. That information could take the form of a byte which stores flags (1 flag for each of the 8 movement types I defined).

For the low-level tile-map (which already exists inside DF), you obviously wouldn't store that flag annotation byte, since you would be duplicating information already present in the tile map. Instead, you'd just rely on the information that DF already provides, and have a function that takes a tile and spits out a byte (or word or whatever) with the flags for which "movement types" are valid for that tile.

About your second point: The HAA* paper already has a clearly defined method for handling multiple tile creatures. Perhaps you should read it? That said, we could always special-case them, by just letting them use regular old A* without any enhancements. However, since the point of this project is to improve the current pathfinder, we might as well use the HAA* method for multiple-tile creatures.

About dragons, and other creatures that don't clearly fall into a single "movement type": we can just let them use regular A*, because having to store an abstract path graph for each possible permutation of tiles that a creature can move through would quickly eat up all of our memory. My list of movement types was an attempt to shoehorn all the common creatures into as few categories as possible.

Here's a link to the HAA* website with accompanying paper that I'm referring to: here.

4
DF General Discussion / Re: Anouncing The PathFinder Project
« on: October 27, 2009, 04:13:57 pm »
Terrain Move Abilities (starver got some, but not all
Not all of these should be movement types.
...
But if anyone has an idea on how to add exclusionary movement types without increasing CPU load, I'm all ears.

Read the hierarchical annotated A* paper linked multiple times throughout the thread. It allows for multiple movement types and varying creature sizes. If we were to start off using that as a basis for this pathfinding project, we would want to keep the list of "movement ability" categories as small as possible in order to avoid using a lot of memory for the hierarchical pathing graphs. In that system, your abstract "high level" pathing graph takes up an amount of memory proportional to the number of movement categories you want to have. This "high level" abstract graph has far fewer nodes and edges than the low-level tile-based graph--thus, pathfinding in the "high level" graph saves you CPU cycles because the search space is far smaller.

Thus, to fit current DF movement types into categories, you'd have:
walker ("floor", "ramp", "stairs", "unlocked door" tiles with no water or magma)
flyer (walker tiles + "open space" tiles -- this maps to giant eagles)
swimmer (any tile with water level > 4 -- this maps to carp)
amphibious ( walker + swimmer -- this maps to snakemen/lungfish)
dwarf( walker + tiles with water level <= 4 + "pet-impassible doors")
magmaphibian(walker tiles (+ any magma) + "open space" tiles with magma > 4 -- this is imps, etc.)
destroyer(walker + "locked doors" + "buildings" -- this maps to trolls, dragons, etc.)
digger( walker + "wall" tiles)

Right there you've basically got 8 movement types, which fits in a byte. A creature has just a single movement type, which in turn describes all the possible tile states that the creature can move through.

I can't think of anything that doesn't fit into these categories, besides I think spirits of fire, which if I remember correctly can fly as well as swim through water and magma.

Basically, keep these movement types in mind while you read the Hierarchical Annotated A* paper and you'll have a good starting point for this pathfinder.

5
DF Modding / Re: Stonesense - The isometric visualizer, official thread
« on: October 13, 2009, 04:42:31 pm »
Just want to chime in that this is awesome. Whoever's in charge should make a post in DF General discussion with a link to this thread--the other visualizers all have their own threads there.

Also, whoever's in charge should send a non-threatening email to Toady to let him know that this kind of graphics is quite possible, and already works(!!!), with DF. Also let him know that since this is BSD licensed, he does not have to worry at all about any copyright issues. It might convince him to add some helper functions to the main executable so this graphics library could be used as part of an official future release. He seems willing enough to accept graphics help (see DF 40D##).

6
DF General Discussion / Re: Anouncing The PathFinder Project
« on: October 13, 2009, 03:21:22 pm »
To path through the tree the two leaf nodes containing the endpoints are identified and an upward propagating check is made for a matching parent node is made.  If a common 'ancestor' node can be identified below the root node then it means theirs a path and the path must exist within the set of tiles described by that ancestor node.  Now starting with common ancestor the tree is descended in successive steps.  In each step a group of nodes is searched for a path at Inter-node levels between two nodes known to contain the end points.  The resulting set of nodes on the path are then opened and their non-leaf daughter nodes become the search set the next step until all nodes on the path are leaf nodes.  Because each search level is through a small number of possible nodes it will be far faster to do a dozen searches through networks of only a dozen nodes each then to search the leaf level nodes directly.

So what are you going to use as leaf nodes? Obviously not DF tiles, or you'd be duplicating much of the data inherent in DF's internal tile representation. Are your dynamic rectangles == leaf nodes? If you use dynamic rectangular grouping of tiles, rather than a uniform grid of tile "chunks", you then have to keep track of the spatial location of each rectangle, so that it can ultimately be mapped to DF tiles. This system does, however, allow you to optimize for areas in which pathing is homogeneous, such as large open expanses of sky.

Also, remember that a search performed on our path node hierarchy must return a valid path if a valid path exists within the current pathing engine, so we must be careful when optimizing the connections in the path tree. It is not as important, however, if our computed path is sub-optimal (longer) than the current best-path method.

7
DF General Discussion / Re: Anouncing The PathFinder Project
« on: October 12, 2009, 09:34:13 pm »
Here is a very, very helpful resource that outlines a pathfinding system:

http://harablog.wordpress.com/2009/01/29/clearance-based-pathfinding/
http://harablog.wordpress.com/2009/02/05/hierarchical-clearance-based-pathfinding/

I was planning to implement his system in a personal project, but alas this semester has a heavy workload. He has done performance analysis on his implementation of the system, and shows it to be much more efficient than straight up A* for long path-lengths. One of the big elements this paper does not cover is the method of updating the pathfinding graph based on changes to the game world, but it looks like a relatively easy problem to solve. The code also does not address extending this 2D system to 3D, but that problem is also not terribly difficult to solve.

The system handles hierarchical pathfinding (finding paths at a high level and low level), multi-tile creatures, and multiple travel domains (walking, swimming, amphibious, flying, etc.). Connected components checking (currently used by DF) can be done relatively quickly by inserting the path start and end nodes into the abstract graph and finding an abstract path between them. This new form of CC checking would even work for flying monsters, unlike the current code!

Definitely worth a read as a starting point for designing the system.

8
DF General Discussion / Re: Bay 12 Recorded Call #1: Feedback
« on: August 07, 2009, 04:21:20 am »
It was a pretty nice podcast. The questions were kind of dumb though.

You could help out by posting some better questions in the new questions thread.

Also, I think the podcast would definitely benefit from some intro/denouement music, even if it's just a couple short clips from the music that ships with the game. Oh, and put a link up on the dev log! I know most people aren't quite as obsessive about reading Toady's recent posts as I am, and might have missed the podcast link.

9
DF General Discussion / Re: Bay 12 Recorded Call #2: Your Questions!
« on: August 07, 2009, 04:04:23 am »
I liked the talk about the Eternal Suggestions. What additions or changes to the game have you considered making sometime soon in order to address the suggestions in the Eternal Suggestion poll (specifically, improved mechanics, graphics support, and improved hauling)?

10
DF General Discussion / Re: Bay 12 Recorded Call #1: Feedback
« on: August 07, 2009, 03:56:50 am »
I liked it. Very well done. Questions coming from the community--rather than some random internet people--definitely made the podcast-thing much more focused on the game and interesting to DF players. I liked the talk about group/faction systems during the question about the Return of the Guildmasters; reminds me of a suggestion I posted.

11
How about next version with non-generic statues ???

... good point. Dwarves will make statues that resemble a ton of different things. We'll probably just have to settle with a couple different generic statue models that don't reflect the subject matter of the statue.

12
Neato ice fortress.

13
Quote
well i dont have any custom stuffs, just downloaded 40D13 and same error mesasge, guess it still needs to be fixed.
Sounds like it's a computer-specific bug, because myself, as well as others running standard 40D13 have used the program without that particular problem.

14
Sounds like it's shaping up.  Did you get a chance to look at the matglossdump again?  I swear I cannot get that thing working right at all.  I don't know if it's only because I have custom minerals/stone, or if it's a general problem (Haven't had a chance to test in 100% pure 40d13 yet)

Shima, you should download 40d13, gen a world, pick any old site, and try it out. It won't take long. Because the program is in such early stages, Baboonanza can't really guarantee that it will handle non-default setups, and probably shouldn't spend much time trying to debug them at this point.

15
Oh god I can't wait. Little dwarven bedrooms and legendary dining halls, here we come! Ooh ooh, will 3D models for supports be included? And can we maybe make smoothed single tiles with no adjacent walls look like pillars?

Pages: [1] 2 3 4