Hello.
I think I should explain some things here... being banned and unbanned and all that. I'll start with a bit of history.
I'm a linux user and last year discovered DF. The Windows versions had all these cool utilities and visualizers (3dwarf, etc.) and I wanted to have something similar for Linux. So I ported Khazad (then a visualizer) to Linux. The 'Khazad' part was quite easy, but the memory access needed some extra work. It was just the basic export of raw tile data at first. Let's just say I started expanding that and learned quite a lot about interfacing with opaque binary objects in the process
I did a lot of other work on Khazad *as a visualizer* (some rendering, geometry generation and GUI stuff) and was never really interested in making a clone of DF. Impaler talked about making a game out of it... This accelerated my efforts for separating DFHack (then a simple Export module) from Khazad.
So, DFHack eventually became a separate library. Khazad on the other hand became cluttered with stuff like 'thin walls' and path-finding, which killed it for me really (the burning !!FAST!! map load times I was able to achieve turned into minutes, etc.). I still maintained the parts that used DFHack and fixed a few crash bugs, but you could say my real involvement ended sometime last year... it just became painful to fix segfaults all the time. And it actually seemed pretty much dead.
I still talk with Impaler from time to time, mostly about technical things like how to use git or my opinion on some of his code/designs. The reason why I'm listed as a commiter in the new github Khazad repository is because to "do you want to be there?" I replied, "sure, whatever".
So... what are the goals of DFHack:
- Provide a way to access memory safely. No other tool did that before AFAIK, leading to possible race conditions and other 'fun' stuff. Tools shouldn't cause errors in DF. Also, SDL_NumJoysticks()
- Act as a common repository of methods for interfacing with DF (and possibly other things). I intend to turn it into a generic and cross-platform library for memory hacking, but right now, it contains a lot of DF-specific things.
- I wanted to learn new things and DFHack was a good way to make that happen.
You could call this an API of sorts... although it's difficult to maintain and certainly not API or ABI (lol) stable. It does make some things simpler for people who write tools, because they get commented header files instead of a binary blob and outdated wiki articles. DFHack solves the problems with getting stuff out of a running binary and abstracts away platform-specific bits and pieces (STL objects layout, getting list of Processes from the OS, stuff like that).
He posted a link to the clone as a clone just the other day, and he's been working with Impaler long enough to know where Impaler's coming from. There was another incident regarding the motives of the DF Hack people a few months ago, but that involved "the DF Hack guys" rather than peterix by name and I don't want to drag in the other party to name individuals.
Yeah. It's on github and hardly a secret. I know where he's comming from and I *think* it's unlikely he'll ever get this off the ground and turn it into something serious. And even then, I don't like the idea of cloning things. So I decided to wait and watch... most of what I've seen up to this point was segfaults... at least I got tired of fixing them all the time.
Cloning DF is IMHO a crazy goal. To whoever thinks this is a good idea, I'll say "knock yourself out" and walk away.
The symbols thing still bothers me. But again, I don't have the log, so I can't be sure he was involved, and in general a few forumgoers seem surprised he'd be lumped in with ill-natured people.
Well. Symbols. Did you pull that binary already? I sure hope so. What I did was that I opened it in a debugger and suddenly found out that things have names. It could be handy, sure, but I don't think it really changes anything for DFHack. It would if they were in every single released binary... and that's not the case. The symbols provide me with nothing that could make DFHack easier to maintain... rather the opposite really if people use them. It could result in more stuff that has to be updated for every single DF version.
I spoke about the fact with the few people who idle in the DFHack IRC channel. Possibly a mistake, but I was pretty excited by that at the time. Then I told Baughn, who probably told you.
Some clinically insane bastard with unlimited free time could use them to reverse-engineer DF. Meh.
So I'll unban peterix. I think it goes almost without saying that I placed the two bans while I was angry, and that I'm not convinced my anger here was unjustified, but I'm not clear on some things, so I'll admit I acted somewhat rashly. He can remake his DF Hack thread if he wants. I'm sorry I deleted it.
Maybe I should've talked to you earlier, but I didn't want to bother you with this stuff. Guess that didn't work out. Oh well ~_~