Pack creation tricks.

Started by namida, July 25, 2018, 03:05:30 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

namida

For the more-advanced users, here are some things that can be achieved if you manage your packs by hand, rather than by using the pack toolkit:

Packs that don't use the traditional "pack contains ranks, rank contains levels" structure
While this is the most common structure of packs at the moment, and indeed old-formats NeoLemmix more or less restricted you to this; in new-formats NeoLemmix it is quite possible to use other structures instead.

For example, you could have just one pack with the levels directly in it, rather than tied to rank. You might have seen some packs like this already, especially demos.
Or, you could have ranks inside other ranks. Perhaps you're creating an L2-like pack called "Super Tribes", inside the main pack there are 12 groups (one for each tribe), and inside those, three ranks, "Easy", "Medium" and "Fish".

How can you do this? The key lies in how new-formats NeoLemmix works, overall, in terms of packs, ranks, etc. In fact - internally, there is no difference between a pack and a rank! As far as NeoLemmix is concerned, a "rank" is actually just a sub-pack inside the main pack. Because there's no actual difference internally, this means the main pack (rather than a rank inside it) can contain levels directly. Or, that a "rank" can have another rank inside it, just like how the main pack can.

In the most basic form, NeoLemmix starts from the "levels" folder and recursively searches for NXLV files. Any folder is treated as a pack / rank (remember, there's no difference internally between the two - a rank is just a pack inside another pack), which may contain sub-folders (ie: subpacks, or, ranks) and/or levels. So by nesting folders further - or conversely, putting your levels directly in the main folder of your pack - you can achieve a non-traditional pack structure like this.

However, one other thing to take into account is the "levels.nxmi" file. This file is actually optional. If it's missing, NeoLemmix orders the sub-packs and levels alphabetically. Using levels.nxmi allows you to customize the order. It's a plain text file, which follows the following structure:

Code (Level) Select
LEVEL Just_Dig.nxmi
LEVEL Only_Floaters_Can_Survive_This.nxmi
LEVEL Tailor_Made_For_Blockers.nxmi


Code (Subpack (Rank)) Select
$RANK
  NAME Fun
  FOLDER 01_Fun
$END

$RANK
  NAME Tricky
  FOLDER 02_Tricky
$END


The order the LEVEL lines are in will determine the actual order of the levels in-game. Likewise for the $RANK sections. Note that regardless of whether you put the $RANKs first, or the LEVELs, or even mix them in with each other; in game the sub-packs will always come before the levels in the level select menu. Or in other words, $RANK is only order-sensitive relative to other $RANKs, and likewise, LEVEL is only order-sensitive relative to other LEVELs.

Note that there is one further special caveat - the root folder of your pack should have "BASE" on a line of its own somewhere in the levels.nxmi folder.

Have different postview texts and/or music rotations for each rank
This one is very easy! You'll notice the "music.nxmi" and "postview.nxmi" files in the main folder of a pack. But, if you put a music.nxmi and/or postview.nxmi file in a rank's folder, the file will only apply to that rank.

This might also work with some graphical resources, for that matter, but not sure if there was ever intentional support for this.

Any other suggestions / tips, feel free to post in replies - any particularly useful ones, I'll add to this main post. (Though do note, I've taken care to specify anything that I don't know to be intentionally supported.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)