Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - PeridexisErrant

Pages: [1] 2
1
DF Suggestions / [FORUMS] Notifications for @username mentions
« on: September 29, 2015, 07:46:39 am »
Because it's useful to be able to ping people to an interesting thread, especially for modders.

https://www.google.com.au/webhp?#q=simple%20machines%20forum%20username%20mention

Apparently there's a plugin for this already, which makes it more practical than most suggestions.

2
Dwarf Fortress has excellent mod support, and is generally also at fully encapsulating mods within saves.  Third-party tools have recently and massively improved support for encapsulation of mods within save raws.

There's only one thing used by mods that can't be stored on a per-save basis: the speech raws, which are stored in data/speech/.  Moving these to raw/speech/ would be relatively easy, and would make mods completely portable.

Given that I had to hand-code this special case all over the place in the PyLNP launcher mods merge tool, I don't know why I didn't suggest this earlier!

3
DF Suggestions / PeridexisErrant's interface and export suggestions
« on: November 12, 2014, 07:00:00 pm »
I've been thinking about the DF interface for a while now, and plenty of new players have come to me with complaints or suggestions for things to fix.  This thread is to collect the most important and most realistic - things I think can and should be done as part of the 0.40.xx release series. 


1.  Add an "export all" option to legends mode which exports the basic map and text files, the legends XML file, all the detailed maps, and all available site maps.

It may also be useful to add options to "export all detailed maps" or "export all site maps" at the top of the appropriate list.  Doing this in the current interface can be very tedious, particularly on larger maps or longer histories.  Given that "everything" is a reasonably common selection of exports, this would be a very useful option - especially as it helps developers and users of third-party tools. 


2.  Allow command-line worldgen to substitute an arbitrary file for world_gen.txt

The command-line worldgen option is amazing powerful, and also barely used.  More people might take it up if it didn't require modifying world_gen.txt to do the most interesting things.  I therefore suggest allowing, as an alternative to the param name flag, passing the path to a file which contains exactly one param set.  Scripts could then use temporary files to avoid having to handle world_gen.txt and risk deleting something.


3.  Make moving the embark area more intuitive.

Currently, the embark area is moved within a region with 'uhmk', changed between regions with arrow keys, and in ten-region jumps with shift-arrows.  Only the first of these can be changed to different keybindings in "interface.txt"; and at the edge or a region there is a hard limit to embark movement.  I propose a set of related small changes: 

1.  Allow all movement controls to be set by interface.txt, so that alternative control schemes are possible
2.  When the embark area is against the edge of a region and moved in that direction, move to the corresponding edge of the next region.  This will work well once the artificial edges are removed, and significantly reduces the preception of them.
3.  Change the keys used for movement to arrows for moving an embark by one tile, shift-arrows to move to the next region, and alt-shift-arrows (or ctrl-shift, etc) to skip ten regions.  This maintains the 'modifiers move further' paradigm while unifying the movement controls across embarkation and fortress mods. 


4.  Make resizing the embark area exactly like resizing a construction in Fortress mode.

Currently the embark area is resized with 'UHMK', and uses the SW corner as a reference point (ie size changes only affect the north or east edge).  This is close to the Fort mode system of 'uhmk' to resize (allowed following #11), and taking the center as reference point; removing these differences should be fairly easy.  Reducing the number of UI paradigms for players to learn and remember is always a good thing, and in this specific case it will also teach new players the control scheme for constructions, especially the above frees up the lower-case controls. 


5. Prioritize completion of the XML legends export.

Even in 0.34.11, there were gaps in the exported legends.  With 0.40 generating a significantly richer world, it would be a shame not to make more of the history available for story construction in other programs. 

4
DF Suggestions / Never mind.
« on: November 12, 2014, 06:52:25 pm »
I love the introductory movie - it's a masterpiece, with cinematography that would make James Cameron blush.

When I'm testing something and need to restart DF a number of times, it's a pain in the neck.  As it is, it's faster to kill the program, change the init setting, and restart than to wait. 

Proposal:  add a [skip] option to the intro, where you can press `esc` to go directly to the main menu - giving us the best of both worlds.


Never mind, you just have to hit it a couple of times.  *headdesk*

5
PyLNP with Mod Loader

Loading and combining mods for Dwarf Fortress

The idea is to make adding mods to Dwarf Fortress as easy as graphics packs - just select your desired load order, and the launcher merges as many as possible (giving you feedback on compatibility).  As of v0.5, it's essentially finished and ready for public testing.

The GUI is a fork of the PyLNP, hence the name, and the goal is to merge back in once this is stable enough.  The input format was extensively discussed in this thread, which also saw much early development.  It's simply a raw folder that could be installed by copying it over vanilla - and the launcher can convert an installed into this format, just like it does for graphics packs.

Usage
Run `launch.py`, and use the mods tab.

Mod installation:  place mod under `LNP/Mods/`.  Note that mods must either be in the input format described below, or installed with a working copy of DF - the script can turn the latter into the former. 

Spoiler: Development roadmap (click to show/hide)
Spoiler: Input Format (click to show/hide)
Spoiler: Pic! (click to show/hide)

Contributions of all kinds most welcome!

6
DF Suggestions / Display more information while generating a world
« on: August 21, 2014, 07:50:54 pm »
While a world is being generated, some basic information is displayed about the history so far. 

Code: (Current display) [Select]
The Age of $something
Year ###
Hist Figs:  ####
     Dead: ####
Events: #####

It would be reasonably easy to add some more information here, and it would make a long or slow worldgen more interesting to watch.  The microsuggestion which I think has the best effort/outcome ratio is to simply list live as well as dead historical figures, but I though of others while typing :P
  • Using commas to separate long numeric strings makes the magnitude much more readable, which is important.
  • Displaying the end year helps give people an idea of how long is left to run, and together with the others informs a decision to abort or not.
  • Displaying a count of the living historical figures (though maybe "active" is more precise?) would let you watch population rise and fall.
  • Some kind of time series of event density over time would also be cool - and let you jump in at a time of interest. 
    • The obvious option is 'events in the year before this one'.  Simple, and if it keeps a list of the past few years also effective.
    • For longer histories, a longer sampling unit might be in order.  Maybe also display per decade after the first decade?  For very long histories, this pattern could be extended to centuries or even millennia
    • I suspect reworking the events display like this would require substantially more work than the other points, but it would also give a nice overview of history in the making
Code: (Proposed display) [Select]
The Age of ###
Year ### / $end_year

Hist Figs:  ##,###
     Live: #,###
     Dead: ##,###

Total Events: ##,###
Events in
   in (year): ###
 in (year-1): ###
   <for past ten years?>

  in 100 - 110: #,###
   in 90 - 100: #,###
    in 80 - 90: #,###
   <for past ten decades?>

7
There's been a lot of talk lately about ways to make combining small mods easy for new players.  To me that means a GUI or GUIs, and given the proliferation of such things around here a top priority is a sensible standard way to package mods. 

Here's one of many mod manager discussions.  TLDR is that everyone likes the idea of building up something like a starter pack for mods, where new people can get their toes wet in a GUI that can stack mods.  The plot is basically to get a launcher, probably the PyLNP, and then take over the world start including optional and easy mods in everything. 

Regarding format, I think we need to nail this down soon.  The longer we leave it, the more likely it becomes that the community ends up with multiple patch formats... So my proposal is: 

- Each distinct mod gets it's own folder, named whatever the mod is called. 
 - In that folder, include the raw folder structure with any files changed from the vanilla raws; plus at the top level other stuff (eg readme, random files and folders) that can be ignored without error. 
 - Possibly also a manifest file if this takes off and needs extending to more arcane cases. 
 - One of the mod folders is the full vanilla raws; that folder is named identically to the version it came as, eg "df_40_08" (omit OS as it's irrelevant to raws).  Folder names starting "df_*" are reserved, case-insensitive. 
 - A *real* patch is derived when needed by running a diff between the latest vanilla folder (autodetected) and the mod
 - A folder "raw" is created (another reserved name; the old is deleted if present) and the vanilla raws copied in. 
 - Diffs are then applied to this folder in the specified order
 - If there's a conflict, highlight the problematic mod in the list and delete the raw folder (no invalid mods created here!).  This ensures compatibility and acts as a live preview for feedback.


 - Mods with modules, dependencies, dfhack, etc: all tricky.  I propose ignoring that for now; complex behaviour and handling comes after the basics are working and there's some interest from both modders and users.  Suggestions welcome anyway.

Advantages:
 - such a basic format makes repacking easy; if someone distributes a preinstalled mod all you have to do is remove the other files (easy for a launcher to do)
 - inversely, it's easy to install such a packaged mod without tools just by drag-and-dropping it over a vanilla install
 - a Mod Starter Pack becomes possible, and easily user-extensible (the latter is the coolest part)

I'd love to hear feedback on this idea. 

For more info, see https://github.com/PeridexisErrant/Py-Mod-Loader

8
DF Suggestions / Add a progress bar for the XML export
« on: July 23, 2014, 09:24:41 pm »
Or possibly a simple counter [41,200 / 593,450] items exported. 

Even on small worlds without long history, the xml export can take some time and with DF nonresponsive for the duration it's easy to think it's crashed and abort the whole thing.  Some indication of progress would help a lot. 

9
DF Suggestions / Changes to keybindings
« on: July 15, 2014, 06:47:47 am »
There is a long history of various packages for new players tweaking the keybindings, with the goal of making the interface a little easier to use. 

In the process of updating the keybinding files from DF 0.34 to DF 0.40, I had to compile a list of changes from vanilla keybindings - so I thought I'd also publish them as a suggestion, since I'm already saying I think they're an improvement. 

I would also like to see the keys for moving embark regions (not embark area, region) by both one and ten regions made configurable in interface.txt as I think they could be improved by making them 'shift-arrow_keys' and 'ctrl-shift-arrow_keys' respectively. 

Code: (the diff notes I wrote) [Select]
In the process of updating the keybinding files from DF 0.34 to DF 0.40, I had to compile a list of changes from vanilla keybindings as there were too many changes between versions to simply merge. 

Each chunk is how an altered section looks in the new file.  The Classic LNP bindings are derived from vanilla, and the PeridexisErrant bindings from those. 

Use ctrl-f, copy carefully, and good luck!

##############################
Classic LNP diffs from Vanilla
##############################
* allow zooming with square brackets as well as vanilla mousewheel
* make scrolling in lists more sensible
* use ',/.' as well as vanilla '</>' to change z-level (no need for shift)

[BIND:ZOOM_IN:REPEAT_SLOW]
[KEY:]]
[BUTTON:0:5]
[BIND:ZOOM_OUT:REPEAT_SLOW]
[KEY:[]
[BUTTON:0:4]

[BIND:SECONDSCROLL_UP:REPEAT_SLOW]
[KEY:-]
[BIND:SECONDSCROLL_DOWN:REPEAT_SLOW]
[KEY:=]
[BIND:SECONDSCROLL_PAGEUP:REPEAT_SLOW]
[KEY:_]
[BIND:SECONDSCROLL_PAGEDOWN:REPEAT_SLOW]
[KEY:+]

[BIND:CURSOR_UP_Z:REPEAT_SLOW]
[KEY:,]
[KEY:<]
[BIND:CURSOR_DOWN_Z:REPEAT_SLOW]
[KEY:.]
[KEY:>]

[BIND:D_ONESTEP:REPEAT_NOT]
[KEY:/]

######################################
PeridexisErrant diffs from Classic LNP
######################################
* mouseclick selects highlighted list entry
* mouse changes z-levels instead of zooming map
* moving embark area intuitive with 'wasd'
* resizing embark area with 'uhmk' like fort constructions

[BIND:SELECT_ALL:REPEAT_NOT]
[BUTTON:0:2]
[SYM:1:Enter]
[SYM:1:Numpad Enter]

[BIND:ZOOM_IN:REPEAT_SLOW]
[SYM:0:Rightbracket]
[BIND:ZOOM_OUT:REPEAT_SLOW]
[SYM:0:Leftbracket]

[BIND:CURSOR_UP_Z:REPEAT_SLOW]
[KEY:,]
[KEY:<]
[BUTTON:0:5]
[BIND:CURSOR_DOWN_Z:REPEAT_SLOW]
[KEY:.]
[KEY:>]
[BUTTON:0:4]

[BIND:SETUP_LOCAL_Y_UP:REPEAT_SLOW]
[KEY:u]
[BIND:SETUP_LOCAL_Y_DOWN:REPEAT_SLOW]
[KEY:m]
[BIND:SETUP_LOCAL_X_UP:REPEAT_SLOW]
[KEY:k]
[BIND:SETUP_LOCAL_X_DOWN:REPEAT_SLOW]
[KEY:h]
[BIND:SETUP_LOCAL_Y_MUP:REPEAT_SLOW]
[KEY:w]
[BIND:SETUP_LOCAL_Y_MDOWN:REPEAT_SLOW]
[KEY:s]
[BIND:SETUP_LOCAL_X_MUP:REPEAT_SLOW]
[KEY:d]
[BIND:SETUP_LOCAL_X_MDOWN:REPEAT_SLOW]
[KEY:a]

Doing it this way also allows anyone to edit their own copy, even without just extracting them from the starter pack, which is nice.

11
Currently, switching graphics packs involves editing init files, and if all options were in a single file the process would be significantly easier. 

12
I've been thinking of various small ways to improve the DF experience for some time now, and with a release - and following minor changes - approaching, I thought it might be a good time to collect them in one post. 


1.  Improve the handling of seasonal / annual autosaved backups by setting a buffer length in init options and discarding older saves, and modifying the naming system to sort by region and in chronological order (eg "regionX-YYYYY-Q-backup", Y being year and Q quarter)

Currently there's a simple on/off for backups either seasonal or annual, and they just build up until you delete them manually, cluttering the load screen and folders.  It would be fairly simple to implement an init option to keep a rolling buffer of configurable length, and delete autosaves beyond that age.  This would allow better protection from glitches than the option I currently use with autosave but no backups (as the clutter doesn't seem worth it).  This idea was mentioned on Reddit /r/dwarffortress a while ago and seemed reasonably popular, so I posted it a while ago.  The order of the proposed naming system is reasonably important, to end the mixing of regions and years that occurs in the current system. 


2.  Add an "export all" option to legends mode which exports the basic map and text files, the legends XML file, all the detailed maps, and all available site maps.

Doing this in the current interface can be very tedious, particularly on larger maps or longer histories.  Given that "everything" is a reasonably common selection of exports, this would be a very useful option.  It may also be useful to add options to "export all detailed maps" or "export all site maps" at the top of the appropriate list. 


3.  Expand the command-line worldgen options to include all advanced generation parameters.

This would be an amazing ability to include in various scripting tools, and a godsend to utilities such as PerfectWorld DF, which enable still more control over worldgen.  More generally, it would complete the console worldgen option with feature-parity to the GUI and make detailed exploration of the options more attractive. 


4.  Make the controls for embark area selection consistent with the analogous construction placement system in fort mode. 

Suggestion replaced by #11 and #12 following useful feedback and discussion further down the thread.


5.  Add the source region and year to the filename of site map exports, to prevent overwriting and allow better comparisons.

Presently, all site maps - no matter the region - are named simply 'site-map_#', with '#' being the site identifier.  This is already a problem, causing (complete) exports from each region to overwrite each other, and will be worse when more such maps will be available (and more interesting!).  Adding the region to the filename would also allow far better control in scripted processing of exports, particularly if more than one region has been exported.  I would suggest following a similar pattern to other maps, eg 'site-map_[site#]_region[,#]_[year#]'.  With sites able to change over time, this could allow comparisons of maps through time and generally be completely awesome in helping expose the new world and site level simulation.  This is a small issue and easily fixed, in which site maps are lagging behind all the other exported data available from Legends mode.  Given the very exciting possibilities the new version presents for this often-underappreciated DF experience, this would be a good time to fix it. 


6. Recognise that the 'alt' key is not being held after alt-tabbing away and returning.

There is a known issue on Windows where if the player uses alt-tab to change focus and later returns to DF, the game assumes that he alt key is still being held and parses keybindings accordingly.  This can be fixed by tapping the alt key, at which point the key release is noticed.  While tapping 'alt' is a simple fix, this issue is particularly problematic for new players who haven't heard of it.  This potential fix has been drawn to my attention, simply clearing held modifier keys when the window focus changes. 


7. Improve save-game and export failure behaviour.

Save file corruption is rare, but when it happens can be extremely frustrating.  While reducing it's frequency still further would be lovely, reducing the damage it does should be a priority - if a save fails the player should be notified, perhaps based on capture of I/O errors.  It may also be possible to avoid errors due to insufficient disk space, which are a common cause of issues (source 1, source 2). A related issue is that exports may fail if DF lacks write permisions, which could also affect saves - both are mainly a problem because the failure is silent. 


8. Add an 'settings' item to the main menu, for an interface to change the init options.

An interface similar to that used for basic worldgen would be a good fit for the init and d_init settings, where there is a list of settings with a few settings each.  Having an in-program way to adjust these settings makes them much more accessible to many players - it's historically been a selling point of the Lazy Newb Pack that there's a simple way to change settings.  It may be appropriate to keep them as seperate sets of settings, in which case 'init settings' and 'd_init settings' would be self-explanatory based on existing knowledge and documentation.  At present, the only settings menu is an off-list prompt to press 'esc' for options, which does not include persistent settings beyond the keybindings.  Bringing these options into the main program would make the experience more coherent and facilitate rapid switching (such as between forts). 


9.  Add an init option to confirm embark.

Inspiration thread.  Because sometimes hitting 'e' by accident can be very frustrating.  Currently we have an init option to always confirm embark site selection, and even if disabled you sometimes get the warning (eg for salt water).  Actually embarking is arguably a bigger deal than choosing a site, and having the option to set a confirmation would be great (like for abandoning a fort).  It would also be possible to set conditions in which the warning would pop up regardless, most obviously if no equiptment was selected or if less than 20% of embark points have been spent. 


10. Prioritize completion of the XML legends export.

Even in 0.34.11, there are some gaps in the exported legends.  With the upcoming version generating a significantly richer world, it would be a shame not to make everything available for story construction in other programs. 


11.  Make moving the embark area more intuitive.

Currently, the embark area is moved within a region with 'uhmk', changed between regions with arrow keys, and in ten-region jumps with shift-arrows.  Only the first of these can be changed to different keybindings in "interface.txt"; and at the edge or a region there is a hard limit to embark movement.  I propose a set of related small changes: 

1.  Allow all movement controls to be set by interface.txt, so that alternative control schemes are possible
2.  When the embark area is against the edge of a region and moved in that direction, move to the corresponding edge of the next region.  This will work well once the artificial edges are removed, and significantly reduces the preception of them.
3.  Change the keys used for movement to arrows for moving an embark by one tile, shift-arrows to move to the next region, and alt-shift-arrows (or ctrl-shift, etc) to skip ten regions.  This maintains the 'modifiers move further' paradigm while unifying the movement modes. 


12.  Make resizing the embark area exactly like resizing a construction in Fortress mode.

Currently the embark area is resized with 'UHMK', and uses the SW corner as a reference point (ie size changes only affect the north or east edge).  This is close to the Fort mode system of 'uhmk' to resize (allowed following #11), and taking the center as reference point; removing these differences should be fairly easy.  Reducing the number of UI paradigms for players to learn and remember is always a good thing, and in this specific case it will also teach new players the control scheme for constructions. 


Edit:  Added point 5, 2014-01-17.
Edit:  Added point 6, 2014-02-25. 
Edit:  Added points 7 and 8, formatting, 2014-03-05
Edit:  Added points 9 and 10, 2014-06-02. 
Edit:  Split/removed point 4, see new #11 and #12 (2014-06-05); added a useful solution link to #6

13
Another idea to make the interface more consistent: when selecting the embark site, you currently change regions with arrows, move embark with uhmk, and resize with UHMK.

This could be standardised by moving within a region using arrow keys, and between regions with shift-arrows (mimicking the movement style in fort mode). The embark could then use the same size controls as constructions (uhmk). For bonus usability points, scrolling against the edge of a region could move to the next one over.

14
Currently there's a simple on/off for backups either seasonal or annual, and they just build up until you delete them manually - using up storage space and cluttering the load screen. 

It would be fairly simple to implement an init option to keep a rolling buffer of configurable length, and delete autosaves beyond that age.  This would allow better protection from glitches - or mistakes with levers - than the option I currently use with autosave but no backups. 

This idea was mentioned on Reddit /r/dwarffortress and seemed reasonably popular, so I thought I'd post it here.  Thoughts?

Edit:  The naming convention for seasonal backups could also be modified so that saves are listed in chronological order, which is most easily accomplished as "regionX-YYY(...)-Season-(other)", with as many years as required.  If the region is not kept as the first part, regions with histories of the same length will be mixed. 

15
This project has been moved to GitHub.  You can find an old version on DFFD, but I recommend grabbing the latest release from the source.   

I've always liked playing around with various maps and data that can be exported from legends mode, but to get it in a nice format takes quite a bit of fiddling - compressing the bitmaps to PNG format, creating an archive for Legends Viewer, moving files around, using the map-maker script, and so on.  I thus decided to automate as much of it as possible, and this is the result. 

The script:
  • gets the region number from an image or the legends file, to use in names
  • uses the map-maker script, handling missing bits gracefully
  • compresses world maps and site maps to PNG, but not other images
  • fixes the legends xml if workflow has corrupted it for Legends Viewer
  • creates an archive for legends viewer if all components exist, or just compress the xml if not (requires 7z)
  • moves the exports to a region-specific folder in the "..\User Generated Content" folder

As of version 3.0, the whole folder can be placed either under LNP/utilities or in the same folder as DF for a vanilla install. 

Pages: [1] 2