PSA: Hey guys, long time no talk. Based on a PM conversation I've recently had I figured I'd update this post a bit. Since apparently I've never posted the link anywhere obvious before, here's the complete source code:
Overseer 0.70.1 SourceThere hasn't been any work on Overseer in quite a long time, because of my job and SexyMustard's school. We've got a combined amount of free time that is sadly close to zero. We're really sorry we didn't get around to implementing all the things we were talking about! (Like the linux version... Ogre just stopped rendering anything at all for me on Linux very shortly before release, and I never found a fix for it. Ugh.) Unfortunately, while the DFHack team has managed to keep us alive up to this point (those guys are seriously awesome), with the major map changes in the next release of DF, Overseer will very likely cease to work.
I may or may not try to fix it -- we'll see what happens.
Looking back, Overseer was never meant to be the only visualizer -- SexyMustard and I started working on Overseer in anticipation for the Obsidian visualizer. Neither of us had ever really touched 3D programming before. We figured that once Obsidian was released, we'd abandon Overseer and contribute to that, since it was lead by somebody who actually knew what they were doing
. Unfortunately its developer disappeared, and since then nobody else has made anything. Funny how things work out.
Anyways, the two of us aren't going anywhere -- there will be no magical visualizer-developer disappearing acts from us! But we just can't do all of the work by ourselves (one of the big lessons I learned from this project was that I'm pretty terrible at 3D programming!
) If anybody wants to fork Overseer or start their own visualizer, both of us will be more than happy to volunteer and contribute.
And for what it's worth, I'm always around -- if you wanna chat, always feel free to hit me up over PM, or ping me in #dfhack on freenode!
Overseer 0.70.1 is out! Click here to download.Roadtruss by Crossroads Inc.:
Random river canyon:
Town Keep from adventure mode:
HOW TO USE: Since DFHack no longer externally connects to DF, it's necessary to export map files for Overseer to read. After installing the appropriate version of DFHack for your installation of Dwarf Fortress, run "mapexport exportfilename" in the DFHack console, replacing "exportfilename" with whatever you want, which will create "exportfilename.dfmap" in your DF directory. Open this file with the file dialog in Overseer. By default, mapexport only exports revealed tiles -- to override this and export the entire map, run "mapexport all exportfilename".
SOME NOTES: I recommend using OpenGL with this version of Overseer. There's still some artifacts in the texture atlas implementation, and they're more noticeable in DirectX than OpenGL. Also, there's a lot of stuff in Overseer.ini now. Tweak it! Customizing it can certainly lead to better performance.
Warning: Due to the CPU-intensive page generation process, this will very likely run slower than the previous version. I have it running roughly as well as the previous version on my laptop, if not a tiny little bit better, but beyond that I'm not sure how this will fare. Don't expect it to run well if you don't have newish hardware. I'll be working to make it better and faster in the near future, so bear with me!
0.70.1 Changes:- Fixed crash bug on maps with modded in materials or plants
- Fixed crash bug when opening files outside of Overseer directory
- Fixed map mirroring
- Added version of mapexport compatible with 31.25
Here's the first bugfix release! From what I could tell, 0.70 went over just about as well as DF2010 did. I've gotten all the known crashing bugs fixed up now though. Hopefully there shouldn't be too many more, if any (hopeful thinking!)
For those of you who are getting the Boatmurdered background art but no open file dialog: try upgrading your graphics drivers. It could be a faulty OpenGL implementation. Otherwise, running in DirectX appears to fix the problem.
Also new in this version (well, nothing changed in Overseer itself, but...) is a copy of mapexport that I built against the dfhack-31.25-r9a sources to run. (It didn't come easy! Tons of things have changed in DFHack since 31.25 so I had to do lots of translation and porting back newer features/changing back the build system). Instructions on how to install it along with dfhack-31.25-r9a are in the readme in the plugin's folder.
I think that just about covers everything. Let me know if I forgot anything or if anything doesn't work for you. Have fun!
0.70 Changes:- Total rewrite from scratch.
Seriously, so much has changed that making a list is difficult. There's a lot of new stuff, and a few features that aren't here anymore. I'll update the above list with some enumerated changes soon (tomorrow -- it's getting late here).
It's pretty late where I am, so I'm going to head off to bed now. I'll fill in more information above tomorrow, but this should be enough to get you started.
Old stuff, can safely be ignored:
A couple of weeks back, my friend sexymustard and I got impatient sitting around waiting for Obsidian and went into a strange mood. The (work-in-progress) result of this mood is Fortress Overseer, written in C++ using OpenSceneGraph and DFHack. It's still pretty bare-bones and some things don't work quite right, but sexymustard and I agreed that it's gotten to an announce-able state. The premise is to load information from DFHack and draw the world geometry using as few polygons as possible. It's pretty far from attaining that goal, but certain things are already being drawn pretty optimally. Additionally, sexymustard has been working on some nice bump-mapped textures for it, so all credit goes to him for that. And now, without further ado, here it is:
http://dffd.wimbli.com/file.php?id=2922I've included the Memory.xml for 31.12.
The controls are pretty standard for a first-person fly-around type thing:
W = go forward
S = go backward
A = go left
D = go right
R = go up
F = go down
X = export to .obj (this probably won't work well with textures enabled)
hold Shift = 10x speed
move mouse = look around
scroll mouse = roll camera (the rotation matrices aren't perfect, so this is meant as a temporary fix, but it will probably stay in case people do want to roll their camera)
Esc - exit
You'll have to interact with it a bit before it starts drawing. Just follow the prompts and everything should turn out fine.
Here's the original screenshots of Overseer in action:
My current megaproject, Mothoiled the Towercap of Fire:
Sexymustard's Golden Hall of Nuts:
The (early and tristripped) wireframe of Nutshall's entire embark:
Something a lot of people wanted to see.... the adamantine space elevator in all its glory! Looking up from the ground:
View of the entire spire and embark:
And now for some dev stuff, if you don't feel like reading technicals then you can just skip this
To be completely honest, working with OpenSceneGraph has been a nightmare. It seems like there's little to no documentation anywhere, at all. The little stuff there is on the official website is littered with notes from 2004 saying "this needs to be updated". A lot of it, like the bump-mapping feature we used for our textures, seems to just be thrown together for the purpose of the demos. Overseer kind of suffers from that -- a lot of what I've done has been working around something I couldn't find how to do in documentation or forum posts or anything. The code is pretty nasty. However, I do consider this to be an open source project, and, though I'm not entirely sure it's ready yet, I'll be more than happy to give anybody the code that wants it. Also, anybody that knows anything about OSG, I would GREATLY appreciate your help
On the other hand, if anybody has any idea of something that might work better than OSG, please tell me. I'm pretty sure Ogre would need a custom SceneManager before things worked smoothly, and I don't really feel like Irrlicht is cut out for this kind of work.
Right, onto issues.
- As I mentioned before, the rotation matrices for camera movement aren't perfect and roll might be introduced as you zoom around.
- OSG mouse input is pretty minimal -- it works on raw screen x/y coordinates, so I had to jump through some hoops to get it to warp the mouse around without jerking. Due to this nature though, if you move your mouse too quickly, Overseer will lose control of the mouse. When you mouse back over it, suddenly the pointer will be visible again, despite having been regrabbed. Not sure how to fix this.
- Ramp side faces interfere with walls and glitchy flashing happens. This only occurs when you view the underside of things, so in normal use this is a non-issue.
- In textured mode, things are kind of dark. I haven't figured out how to do world lighting well in OSG yet.
- The camera starts rather far away from the fortress. The fix for this is not quite as trivial as I would like, but I might be able to fix it with some fancy guesswork.
There's a lot more technical issues that I'll be happy to go into if anybody wants, but that's about all that the average user has to be concerned about.
As for development -- I'm also working on updating Dwarf Therapist to newer toolchains and adding a few features to it, now that chmod has stepped down, so development on Overseer isn't going to be quite as constant as it has been for the last week or so. I'm at a slight impasse with OSG right now, and need to spend some time figuring out how to make certain things possible. Visible progress probably won't happen TOO soon due to the fact that the core generation code is going to have to be overhauled to allow for material types.
Anyways, I think I've rambled on for long enough. Be gentle, this is my first project with 3D programming, so I'm pretty new to this stuff. Enjoy, and if you have any questions/problems/suggestions, fire away!