Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3 ... 53

Author Topic: Fortress Overseer 0.70.1 - !Open Source! 3D Visualizer - 31.25-34.11 Support  (Read 364017 times)

thewonderidiot

  • Bay Watcher
    • View Profile

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 Source

There 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!  :D


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=2922

I'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:
Spoiler (click to show/hide)
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!  :D
« Last Edit: December 08, 2013, 12:13:35 am by thewonderidiot »
Logged

Shagomir

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #1 on: August 09, 2010, 05:49:22 am »

Shagomir cancels work: Adamantine Spire too impressive

Seriously. Awesome. I can't wait to get home and play with this!
Logged
Take a look at my fancy North America Worldgen!

Mason11987

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #2 on: August 09, 2010, 06:03:00 am »

This is awesome!

Can it be moved around easily?  perhaps a very short youtube video showing that if possible?

thewonderidiot

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #3 on: August 09, 2010, 06:06:57 am »

Think first person shooter without gravity (or collision, for now). It's quite easy to fly around.

I should warn you though, the space elevator is really. damn. big. In spite of all of the optimizations I've been trying to make recently, it still lags Overseer quite a bit, and you probably don't want to draw it with textures enabled.
Logged

Mason11987

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #4 on: August 09, 2010, 06:21:40 am »

Think first person shooter without gravity (or collision, for now). It's quite easy to fly around.

I should warn you though, the space elevator is really. damn. big. In spite of all of the optimizations I've been trying to make recently, it still lags Overseer quite a bit, and you probably don't want to draw it with textures enabled.

Awesome, that is exactly what I was looking for.  No need to explore the spire.  But you can fly around something like your megaproject  fairly easily right?

thewonderidiot

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #5 on: August 09, 2010, 06:26:05 am »

Yep, with larger embarks or places with super expansive caverns, the initial zoomed-out view might be a tad slow, but once it's not trying to render the entire thing at once things are perfectly smooth. :D
Logged

LucasUP

  • Bay Watcher
  • Devout Cheeseist
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #6 on: August 09, 2010, 09:36:14 am »

So cool!
But have you guys considered WORKING WITH obsidian? Its seems like a fairly open project, and it seems silly to have a bunch of redundant WIP projects (obsidian, fortress overseer, and DFize).
I guess we have to wait for some initial release before anyone else can contribute to obsidian. I don't know if you guys have talked with the dev, maybe you could get inside.
Logged
OG founder of the Lazy Newb Pack

Urist Imiknorris

  • Bay Watcher
  • In the flesh, on the phone and in your account...
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #7 on: August 09, 2010, 01:21:39 pm »

Holy fuck I have a new background.

e- I can't see the first spire image.
Logged
Quote from: LordSlowpoke
I don't know how it works. It does.
Quote from: Jim Groovester
YOU CANT NOT HAVE SUSPECTS IN A GAME OF MAFIA

ITS THE WHOLE POINT OF THE GAME
Quote from: Cheeetar
If Tiruin redirected the lynch, then this means that, and... the Illuminati! Of course!

nbonaparte

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #8 on: August 09, 2010, 02:14:43 pm »

So cool!
But have you guys considered WORKING WITH obsidian? Its seems like a fairly open project, and it seems silly to have a bunch of redundant WIP projects (obsidian, fortress overseer, and DFize).
I guess we have to wait for some initial release before anyone else can contribute to obsidian. I don't know if you guys have talked with the dev, maybe you could get inside.
40d had 3 visualiser projects (not counting stonesense, which is still around). Maybe these are DF2010's group.
Logged
A service to the forum: clowns=demons, cotton candy=adamantine, clown car=adamantine tube, circus=hell, circus tent=demonic fortress.

thewonderidiot

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #9 on: August 09, 2010, 04:13:20 pm »

Yeah, I have no intention to compete with Obsidian, it sounds like it's going to be amazing. Obsidian was one of the reasons I chose to use OpenSceneGraph, so I'd be used to it before Obsidian came out. When I started, I viewed Overseer more as something to tide us over until Obsidian came along, so I'll probably throw all of my effort into Obsidian once it comes out, unless there's demand for Overseer.
Logged

turboferret

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #10 on: August 09, 2010, 04:57:41 pm »

That looks pretty cool! How does OSG perform in realtime with such big scenes?
Logged

thewonderidiot

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #11 on: August 09, 2010, 05:10:58 pm »

It works really really well, actually. It's pretty much lagless unless you throw a space elevator at it.
Logged

Battlecat

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #12 on: August 09, 2010, 11:40:46 pm »

Very impressive start!  I'm looking forward to seeing your future work!  It certainly is nice to have something to look at.  Thanks for putting this together! 

Gorjo MacGrymm

  • Bay Watcher
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #13 on: August 10, 2010, 12:35:24 am »

Wow. Thanks so much for the work.  I have been hoping for someone to do this for a while. :o
Logged
"You should stop cutting down all these herr trees, or, MAN is my Queen going to be Aaaaa-aang-Re-ee with you guys!" flipping his hand and batting his eyelashes."
"Oh my god guys, wood, is like, totally murder."

Makbeth

  • Bay Watcher
  • His lower body is melted.
    • View Profile
Re: Fortress Overseer - a 3D Fortress Renderer in OSG
« Reply #14 on: August 12, 2010, 04:42:08 pm »

Is there, or can there be, a way to export these as .obj or other common 3D formats so they can be opened in a modeler?  The spire, megaprojects, and such could benefit a lot from heavy-duty textures and sculpting.  I had an HFS layer with 30 z-levels recently and stonesense tried, but didn't really capture it.  I want to redo that topography with the glowing stuff and the purple stuff, with the clowns swarming towards a shaft of light coming from the base of one of the blue things...
Logged
Diso Faintpuzzles was born in 120.  Although accounts vary it is universally agreed that Diso was chosen by fate as the vanguard of destiny.

In the early spring of 143 Diso began wandering the wilds.

In the early spring of 143 Diso starved to death in the Horn of Striking.
Pages: [1] 2 3 ... 53