Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

No poll?

That's right
That is right

Pages: 1 ... 126 127 [128] 129 130 ... 379

Author Topic: Stonesense - Old Official thread - Now locked  (Read 1734431 times)

Sean Mirrsen

  • Bay Watcher
  • Bearer of the Psionic Flame
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1905 on: December 06, 2009, 04:33:41 pm »

We can make logical assumptions, and correct when resynch comes. Slightly wasteful, and therefore it would have to be optional, but there's no other way to actually have shot projectiles displayed in the visualizer. Either way we'd have to somehow intercept the "host" function calls and get data from them.
Logged
Multiworld Madness Archive:
Game One, Discontinued at World 3.
Game Two, Discontinued at World 1.

"Europe has to grow out of the mindset that Europe's problems are the world's problems, but the world's problems are not Europe's problems."
- Subrahmanyam Jaishankar, Minister of External Affairs, India

CobaltKobold

  • Bay Watcher
  • ☼HOOD☼ ☼ROBE☼ ☼DAGGER☼ [TAIL]
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1906 on: December 06, 2009, 04:54:55 pm »

We can make logical assumptions, and correct when resynch comes. Slightly wasteful, and therefore it would have to be optional, but there's no other way to actually have shot projectiles displayed in the visualizer. Either way we'd have to somehow intercept the "host" function calls and get data from them.
...um, you could maybe look at the combat eventlogs(however that works) to generate flying projectiles. Not necessarily where they go if they miss, but at least for a combat-movie-vis (which I was brainstorming a bit on)

anywy, having an isokobold broken up into its proper layers makes building new ones messes easier than not.

additionally, do brooks crash stonesense? I think that's what's making mine come down (...and take linux with it. Funnily, music continues to play until loop point...)
« Last Edit: December 06, 2009, 10:19:23 pm by CobaltKobold »
Logged
Neither whole, nor broken. Interpreting this post is left as an exercise for the reader.
OCEANCLIFF seeding, high z-var(40d)
Tilesets

Puzzlemaker

  • Bay Watcher
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1907 on: December 06, 2009, 10:25:15 pm »

Okay, I get what the problem is.  Would it be possible to keep track of the previous state in a smaller format using some form of CRC or something?
Logged
The mark of the immature man is that he wants to die nobly for a cause, while the mark of the mature man is that he wants to live humbly for one.

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: Stonesense - The isometric visualizer, official thread
« Reply #1908 on: December 07, 2009, 01:45:53 am »

Okay, I get what the problem is.  Would it be possible to keep track of the previous state in a smaller format using some form of CRC or something?

The short answer is no, unfortunately. A CRC (or another hash function) will, after scanning both data sets, tell you if the new data and old data are different. BUT, you have to scan the new data first, which defeats the purpose for us. Furthermore, if there were changes, it doesn't tell you what changed, only that changes occurred.

That's more useful than it might sound, even if it doesn't solve the problem we're talking about. It's often faster do this than to directly compare everything in each of the data sets. More importantly, it gives you a quick and dirty way of making sure any sized amounts of data come through a network intact -- you send the data's hash along with the data, then have the receiving computer recompute the hash value on the data it receives. If the computed hash matches the hash you sent, the receiver can be confident that the data came through uncorrupted. If it doesn't match, the receiver knows some corruption occurred, and can send a message back asking the sender to send the data again. This is useful for individual network packets all the way up to entire files. Since hash values are very small, the scheme provides a very bandwidth-efficient way of making networking a lot less frustrating than it would be if computers weren't constantly doing this. There are other uses for hash functions besides network verification, but I'm already going way off topic.
Logged

bartavelle

  • Bay Watcher
  • Coin coin!
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1909 on: December 07, 2009, 01:54:58 am »

None of these apply here. If all you're doing is tracking item creation and creature movement, it's going to desynch almost continually once the fortress gets off the ground, and you're not going to know it. You'll have to scan regularly either way.

I did not read what you guys are specifically talking about, but it is entirely possible to get events from DF by instrumenting it. It is however a complicated task.
Logged

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1910 on: December 07, 2009, 02:03:30 am »

Okay, I get what the problem is.  Would it be possible to keep track of the previous state in a smaller format using some form of CRC or something?

The short answer is no, unfortunately. A CRC (or another hash function) will, after scanning both data sets, tell you if the new data and old data are different. BUT, you have to scan the new data first, which defeats the purpose for us. Furthermore, if there were changes, it doesn't tell you what changed, only that changes occurred.

Too bad it's not possible to access the RAM's own checksums.
Logged

strich

  • Bay Watcher
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1911 on: December 07, 2009, 02:28:51 am »

I actually tried to do a little research on this when I first heard about Stonesense. We know what memory space the map occupies, among a few other things. So I wondered...
Work with me here as I'm no pro debugger here:
1. Monitor the CPU registers themselves for changes to the address space - I know its possible, I've done it. But I'll guess its the most performance intensive way to do such a thing, or anything for that matter. I don't actually propose this solution, but maybe it'll spawn a better idea.
2. Hook the code that does the writing, either DF itself (Though I'm guessing that's messy as hell) or whatever process handles writing to memory in Windows.
Logged

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1912 on: December 07, 2009, 02:41:14 am »

either DF itself (Though I'm guessing that's messy as hell)

Yeah.  I think this is what bartavelle was alluding to above.

whatever process handles writing to memory in Windows.

Kernel mode hooking is apparently possible, but not for the faint of heart.
Logged

jonask84

  • Bay Watcher
    • View Profile
    • Stonesene at Google Code
Re: Stonesense - The isometric visualizer, official thread
« Reply #1913 on: December 07, 2009, 12:28:10 pm »

Guys, this is really much more a dfHack discussion ;) maybe we should start a thread for dfHack?
Logged

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1914 on: December 07, 2009, 12:37:15 pm »

Guys, this is really much more a dfHack discussion ;) maybe we should start a thread for dfHack?

Oops.  Yeah, here's the DFHack thread.
Logged

Jotaf

  • Escaped Lunatic
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1915 on: December 07, 2009, 10:59:13 pm »

Well, I may as well say this while it's slightly on-topic: it wouldn't help with items, but for updating the state of tiles, you only need to check around some special locations, namely around water, lava, and dwarves (since they can dig and place stuff). It could be a huge performance benefit compared to re-reading the whole map...
Logged

CobaltKobold

  • Bay Watcher
  • ☼HOOD☼ ☼ROBE☼ ☼DAGGER☼ [TAIL]
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1916 on: December 07, 2009, 11:50:31 pm »

Well, I may as well say this while it's slightly on-topic: it wouldn't help with items, but for updating the state of tiles, you only need to check around some special locations, namely around water, lava, and dwarves (since they can dig and place stuff). It could be a huge performance benefit compared to re-reading the whole map...
grass. shrubs. trees. These all grow away from those things you mentioned, and are supported in currentSS.
Logged
Neither whole, nor broken. Interpreting this post is left as an exercise for the reader.
OCEANCLIFF seeding, high z-var(40d)
Tilesets

Deon

  • Bay Watcher
  • 💀 💀 💀 💀 💀
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1917 on: December 08, 2009, 04:20:01 am »

Vermins, creatures (building destroyers), temperature (ice melting) etc. Too many things to account for.
Logged
▬(ஜ۩۞۩ஜ)▬
✫ DF Wanderer ✫ - the adventure mode crafting and tweaks
✫ Cartographer's Lounge ✫ - a custom worldgen repository

Jadael

  • Bay Watcher
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1918 on: December 08, 2009, 04:42:12 am »

But maybe you could figure out what's visible onscreen and only update those tiles? Or does it do that already? Not occlusion, obviously, but like, things that are off the edge of the view.
Logged
~ T

Winterbrass

  • Bay Watcher
  • [HOMEOTHERM:10032]
    • View Profile
Re: Stonesense - The isometric visualizer, official thread
« Reply #1919 on: December 08, 2009, 04:51:36 am »

But maybe you could figure out what's visible onscreen and only update those tiles? Or does it do that already? Not occlusion, obviously, but like, things that are off the edge of the view.
I think that this, perhaps, was the stroke of brilliance that was being waited for.
Logged
[PANTS:ITEM_PANTS_PANTS:RARE]
[CAN_CIV][CAN_SPEAK]
[ETHIC:USE_MIND_ALTERING_SUBSTANCES:ACCEPTABLE]
[ETHIC:CAUSE_UNFUNNY_DRAMA:SHUN]
[ETHIC:PLAY_DF_AS_ELVES:UNTHINKABLE]
Pages: 1 ... 126 127 [128] 129 130 ... 379