Bay 12 Games Forum

Please login or register.

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

Author Topic: PyLNP with mod merging tab - finished and ready for general use!  (Read 24061 times)

PeridexisErrant

  • Bay Watcher
  • Dai stihó, Hrasht.
    • View Profile
PyLNP with mod merging tab - finished and ready for general use!
« on: September 13, 2014, 07:33:35 am »

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!
« Last Edit: October 14, 2014, 06:49:40 pm by PeridexisErrant »
Logged
I maintain the DF Starter Pack - over a million downloads and still counting!
 Donations here.

PeridexisErrant

  • Bay Watcher
  • Dai stihó, Hrasht.
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #1 on: September 13, 2014, 07:34:22 am »

Reserved.
Logged
I maintain the DF Starter Pack - over a million downloads and still counting!
 Donations here.

thistleknot

  • Bay Watcher
  • Escaped Normalized Spreadsheet Berserker
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #2 on: September 13, 2014, 08:13:47 am »

Just wanted to say congrats master collaborator

hermes

  • Bay Watcher
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #3 on: September 13, 2014, 09:53:30 am »

Yea, good work on this, PE and contributors!  Looks like a great start and I'm looking forward to seeing this progress.
Logged
We can only guess at the longing of the creator. Someone who would need to create one such as you. - A Computer
I've been working on this type of thing...

Dirst

  • Bay Watcher
  • [EASILY_DISTRA
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #4 on: September 15, 2014, 08:55:36 am »

Ah yes, this would launch while I'm traveling.  Well played :)

As time permits, I will try to break it perform some field testing and let you know how it performs.

Nice job on getting this up and running!
Logged
Just got back, updating:
(0.42 & 0.43) The Earth Strikes Back! v2.15 - Pay attention...  It's a mine!  It's-a not yours!
(0.42 & 0.43) Appearance Tweaks v1.03 - Tease those hippies about their pointy ears.
(0.42 & 0.43) Accessibility Utility v1.04 - Console tools to navigate the map

PeridexisErrant

  • Bay Watcher
  • Dai stihó, Hrasht.
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #5 on: September 24, 2014, 01:35:00 am »

Version 0.4 includes a number of new features:

* best-effort support for another input format - objects folder which replaces vanilla raw/objects folder
* omits any characters which would break the merge function - might be ugly with accents, but it eliminates a common crash
* better feedback through GUI (unloaded mods white not orange)
* groundwork for overlapping merges later

The documentation and development roadmap have also been updated.

There are a couple of things I'd like to do next.  The manifest needs to be finalised, which means I need to read up on the .json module - and work out what the data is useful for!  Working out how to have mods and graphics play together would be great, even if it's a subset of all graphics that are based on ASCII raws (no ideas here).  And implementing preprocessing would be great - we can simply take each collection of lines and operate on them with a regular expression or something.  Suggestions for detail on any of these would be great!
Logged
I maintain the DF Starter Pack - over a million downloads and still counting!
 Donations here.

Taverius

  • Bay Watcher
  • Curly says go!
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #6 on: October 01, 2014, 08:50:33 am »

I'm getting a ton of errors - does this require python3? :)
Logged
The early bird gets the worm, but the second mouse gets the cheese.

PeridexisErrant

  • Bay Watcher
  • Dai stihó, Hrasht.
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #7 on: October 01, 2014, 09:48:00 am »

Quite possibly - I've got 3.4,and while I've tried to keep it compatible with 2.7 (and the base is) there's some Unicode stuff that could cause problems as well as random potential for bugs.
Logged
I maintain the DF Starter Pack - over a million downloads and still counting!
 Donations here.

Taverius

  • Bay Watcher
  • Curly says go!
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #8 on: October 01, 2014, 10:14:03 am »

Mm... even 3.3 faceplants for me, and I'm not really in a situation where I can upgrade. Guess I'll have to wait for it get folded back into mainline.

Regarding merging with graphics mods, I think your best bet is some kind of extremely light single-purpose DSL that can read something like this:

Code: [Select]
@[CREATURE_TILE:<NAME>]:[TILE:<Blah>]:[COLOR:R:G:B]
And apply it after the main mods are done. Hell, you could probably skip color to begin with.

That's a fairly simplistic parser - find root level with regex, go to next non-root-level line till you find the tile and color and replace, if you dont skip.

Trying to rig it with diff will probably lead to permanent loss of sanity.
Logged
The early bird gets the worm, but the second mouse gets the cheese.

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: PyLNP with mod merging tab - functional beta!
« Reply #9 on: October 01, 2014, 12:27:17 pm »

Well done and good luck with 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 :::

milo christiansen

  • Bay Watcher
  • Something generic here
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #10 on: October 01, 2014, 12:40:07 pm »

Rubble comes with a semi-automated way of extracting tile/color information from non-Rubble raws and turning that into a "tileset file", currently the syntax used is suboptimal for several reasons, but I plan to change it to something like this:
Code: [Select]
{TILE;<object name>;<optional key name>;<the tile number or whatever>}
(colors use the same thing, just with COLOR instead of TILE)

The key name is used for cases where multiple tile numbers are needed for the same object.

Any way if we both use the same syntax it would save modders work and Rubble could be used to generate PyLNP tilesets automatically (as opposed to writing a new tool)

(the listed syntax is upcoming, currently the object name and key are a single field, but Rubble 5.2 should use the new way unless I forget...)
Logged
Rubble 8 - The most powerful modding suite in existence!
After all, coke is for furnaces, not for snorting.
You're not true dwarven royalty unless you own the complete 'Signature Collection' baby-bone bedroom set from NOKEAS

PeridexisErrant

  • Bay Watcher
  • Dai stihó, Hrasht.
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #11 on: October 01, 2014, 07:50:00 pm »

Well done and good luck with it. :)
Thanks!  Here's hoping I can push a standard format and create space for a community of the smaller mods...

Mm... even 3.3 faceplants for me, and I'm not really in a situation where I can upgrade. Guess I'll have to wait for it get folded back into mainline.
Drat, I had hoped it wouldn't fail quite so badly. 

Rubble comes with a semi-automated way of extracting tile/color information from non-Rubble raws and turning that into a "tileset file", currently the syntax used is suboptimal for several reasons, but I plan to change it to something like <snip>

Anyway if we both use the same syntax it would save modders work and Rubble could be used to generate PyLNP tilesets automatically (as opposed to writing a new tool)
Sounds promising!  I'm keen to keep all the inputs as standard as possible, which is specifically a set of raws with vanilla files removed, but if the logic exists it can be reapplied. 
Logged
I maintain the DF Starter Pack - over a million downloads and still counting!
 Donations here.

lethosor

  • Bay Watcher
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #12 on: October 02, 2014, 02:22:59 pm »

It would be best to ensure compatibility with Python 2.7, since it's the default on most Linux distributions and OS X.
Logged
DFHack - Dwarf Manipulator (Lua) - DF Wiki talk

There was a typo in the siegers' campfire code. When the fires went out, so did the game.

fricy

  • Bay Watcher
  • [DFHACK:ZEALOT]
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #13 on: October 03, 2014, 11:30:43 am »

PTW
It would be best to ensure compatibility with Python 2.7, since it's the default on most Linux distributions and OS X.
+1
I spent the last day trying to figure out a bullet-proof python config that can be used to compile a working PyLNP for 10.6-10.9 and failed miserably. Python3 is out of the question, as there's no working pyinstaller for it. Python2.7 with tkinter framework crashes reliably, PIL is deprecated, and pillow is buggy on 10.9. My-little-dependency-hell.  >:(

lethosor

  • Bay Watcher
    • View Profile
Re: PyLNP with mod merging tab - functional beta!
« Reply #14 on: October 03, 2014, 02:01:08 pm »

Tkinter crashes? What OS version are you using? If you're using 10.6, you'll probably need to update Tk. (This library might be possible to distribute without installing if you point the DYLD_LIBRARY_PATH environment variable to its location, the way the "df" script does.)
« Last Edit: October 03, 2014, 02:03:01 pm by lethosor »
Logged
DFHack - Dwarf Manipulator (Lua) - DF Wiki talk

There was a typo in the siegers' campfire code. When the fires went out, so did the game.
Pages: [1] 2