A 3d realtime visualizer for Dwarf Fortress.
- Install Dwarf Fortress and a current DFHack.
- Download Armok Vision from the forum thread.
- Load into a fortress mode map.
- Start up Armok Vision.
Want to help out? We love contributions!
If you've run into any bugs: report them! (You'll need a github account.) Make sure to describe the issue in as much detail as you can, and to mention what system & Armok Vision version you're using. Also, check if what you're reporting has been reported before.
If you're an artist and want to contribute 3D models, sounds, concept art:
- There should be a folder called
StreamingAssetssomewhere around the armok vision executable (or inside, if you're on a mac.) If you edit the files inside and restart Armok Vision, it will use your modified assets. Be careful editing the .xml files, they're finnicky. You can post your edited resources in the forum thread and we can try to integrate them with the project.
- Alternatively, load things up in Unity and edit them there (see the following instructions).
- Check the issues; there may be something open about things that need prettifying.
If you know how to code and want to hack on the engine:
- Install Unity 5. (We're using the Personal Edition, and either the classic installer or Unity Hub is fine.)
- Non-Windows users: install the Git LFS extension if you haven't already (testable with
git lfs version).
$ git clone --recurse-submodules --depth 1 https://github.com/JapaMala/armok-vision.git(or without
--depth 1if you want the full history, but it's pretty big).
- Load the
armok-visionfolder in the Unity editor.
- Run the
Mytools->Build Material Collectionmenu item. This is required after a fresh pull from Git, as well as after changing any material files.
- Hack around. Check out the issues to find things that need fixing / ideas that could be implemented.
- Submit a pull request with your changes!
If you want to buy the lead programmer a snack, you can donate on his Patreon Page
(Some short notes for anyone getting started with the codebase.)
- Armok Vision is an application built with the Unity engine. It connects to the remotefortressreader DFHack plugin over TCP and exchanges protobuf-formatted messages. (You don't need to be familiar with DFHack to work with Armok Vision.)
- On the Unity side, the submodule Assets/RemoteClientDF-Net contains the generated C# protobuf files, as well as classes for managing the network connection. The script Assets/Scripts/MapGen/DFConnection.cs runs the connection on a separate thread and exposes data collected from DF.
- The script that actually manages the onscreen map is Assets/Scripts/MapGen/GameMap.cs, which stores the
GameObjects representing different map chunks. It calls the scripts in Assets/Scripts/MapGen/Meshing to build the actual meshes (on separate threads).
- Most assets - textures, 3d models, sprites, etc. - are loaded at runtime from Assets/StreamingAssets, which is copied directly to folder containing the generated app. The script that handles this is Assets/Scripts/MapGen/ContentLoader.cs.
There's a lot of other stuff but hopefully it'll be reasonably self-explanatory. Alternatively, you can ask in the forum thread, or the #dfhack IRC channel on freenode; somebody might be lurking who can help.