Bay 12 Games Forum

Please login or register.

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

Author Topic: Symmetricity-- Fortress planning with symmetry  (Read 6493 times)

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Symmetricity-- Fortress planning with symmetry
« on: December 20, 2015, 12:44:42 pm »

So I was frustrated by the lack of symmetry from any of the existing fortress planners. I don't know about you guys, but I like my fortress designs to be symmetrical when at all possible, and so I sat down and wrote a lovely tool for it. It's early on, but I want  some feedback for the features I have now.


It should compile fairly well for linux (it requires SFML 2.2, and Eigen3), and cmake, however it should compile to other platforms fairly easily as nothing in it is platform specific.

You can get it here


Keyfunction
Arrow keysMove around on a plane(shift to move by increments of ten), Control arrow key to move the view around the blueprint area
commaMove up(on z axis)
periodMove down(on z axis)
equalChange designation type
dashChange designation type
F5Save to a file prompted. Shift to export to a csv file.
F6Load from a serialized file(not a csv)
F7Run an efficiency analysis and generate a heatmap to show the average distance between one point and all others, save first, it has a very, very long running time, so don't do it with an expectation of editing during the process (The heatmaps are named "filename<z-level number>.ppm"
enterStart/End designation(can also be done with mouse) (Press Shift-Enter to start designating as a circle)
spaceDesignate single space
x Set X symmetry at location(twice at same location to switch off)
ySet Y symmetry at location(twice at same location to switch off)
rSet radial symmetry at the cursor location(once again, toggles)


It does support multilevel blueprints, you can't scroll around the grid yet.


You can see a demonstration here, there's no voiceover, but you can hear the clattering of my keyboard.
Spoiler: gifs (click to show/hide)
« Last Edit: December 23, 2015, 12:57:19 pm by jaked122 »
Logged

Symmetry

  • Bay Watcher
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #1 on: December 20, 2015, 01:02:17 pm »

On one hand this is exactly my kind of thing.

On the other it doesn't seem to have circles. 

I like it but without circles it won't really do much for me, the dfhack circle tool is more useful.  Sorry.
I do love the idea though.
Logged

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #2 on: December 20, 2015, 01:05:32 pm »

Should be possible to do. I can write that in if you'd like.

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #3 on: December 20, 2015, 02:07:34 pm »

Now you can draw with circles.


Just press shift when you press enter while designating. It will create a circle with a radius of the distance between the first point and the second centered on the first point.


Watch it work here!

Kestrel

  • Bay Watcher
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #4 on: December 20, 2015, 02:58:14 pm »

Hey that's really cool.  I'll have to check it out, thanks!
Logged
Goblin 6 (to Goblin 7): I heard that I died.
Goblin 7 (to Goblin 6): I died.
Goblin 6 (to Goblin 7): It was inevitable.
Goblin 7 (to Goblin 6): It was inevitable.

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #5 on: December 20, 2015, 03:02:23 pm »

I'll try to get a windows build up soon, but I haven't a build environment to do so with.

Symmetry

  • Bay Watcher
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #6 on: December 20, 2015, 04:56:24 pm »

This is cool, and I guess there is no dfhack to use instead so for now if I want to do layout it's either this or picturefort!

You really didn't need to add circles!  I wasn't feature begging.  Thanks though
Logged

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #7 on: December 20, 2015, 06:52:29 pm »

You really didn't need to add circles!  I wasn't feature begging.  Thanks though


You misunderstood, I wanted requests for things to add. You helped.

hawkwing

  • Bay Watcher
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #8 on: December 20, 2015, 08:29:17 pm »

You seem to support X and Y mirror symmetry. Might I request a 90 degree rotational symmetry option?
Logged

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #9 on: December 20, 2015, 10:00:45 pm »

You can, but I'm not sure I'd write it, I might write radial symmetry, but so far the matrix multiplication code I use from Eigen3 doesn't seem to be reliable in the situations where I employ it. I had to do a bunch of jenky code for the x and y symmetry.


 I'll give it another crack tonight or tomorrow.


If any of you can figure out to compile it for Windows or Mac, then that'd be fantastic too, because I can't get my windows machine to install the libraries it requires.

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: Symmetricity-- Fortress planning with symmetry
« Reply #10 on: December 22, 2015, 06:42:19 am »

It would be great to include a few presets of interesting designs you came by while testing it. :)
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #11 on: December 22, 2015, 01:43:59 pm »

It would be great to include a few presets of interesting designs you came by while testing it. :)


I don't have csv parsing code yet :P, so I can't load them, but I can take screenshots.

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #12 on: December 22, 2015, 04:17:12 pm »


Lots of new features.
  • Now you can save to a csv file of your own choosing.
  • Now you have radial reflection. Which is nice for creating things that are symmetrical in lovely ways.
  • Now there is a very basic support for serializing a blueprint to a format that can be loaded once again
  • Now you can load that same very basic format for the same purpose :)
  • The code is a little cleaner with more separation between the main function and the "Agony" widget(which is the badly named class which handles the display and management of the blueprint)
  • The groundwork now exists to write an efficiency measurement routine that will tell you the number of steps between every single tile.


That last one sounds both unique and highly useful, right?

CLA

  • Bay Watcher
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #13 on: December 22, 2015, 05:06:41 pm »

Quote
That last one sounds both unique and highly useful, right?

Incredibly so.
Logged
CLA - an ASCII-like Graphic Pack with simplified letter-like creature graphics. The simple and clean looks of ASCII with distinct creature graphics - best of both worlds!

http://www.bay12forums.com/smf/index.php?topic=105376.0

jaked122

  • Bay Watcher
  • [PREFSTRING:Lurker tendancies]
    • View Profile
Re: Symmetricity-- Fortress planning with symmetry
« Reply #14 on: December 22, 2015, 09:28:25 pm »

Quote
That last one sounds both unique and highly useful, right?

Incredibly so.
Well, the groundwork is laid, it tells me how far apart everything is, however, it does seem to be remarkably slow.


Damned Floyd-Warshall algorithm. Only if I stored the nodes in a vector instead of an associative array.
Pages: [1] 2