Improved Flexi Toolkit (V1.02 update released)

Started by namida, June 15, 2015, 12:52:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

NOTE: This topic is no longer being updated. New versions will be posted in topics relating to releases of new NeoLemmix versions.

So, here's a tool that greatly simplifies the creation of custom games on NeoLemmix. Instead of the runaround with manually gathering files, using a resource hacker to put them into an EXE, and so on that was previously nessecary, this tool does pretty much everything for you except creating the levels! :P

Current Tool version: V1.02
Included NeoLemmix player version: V1.35n-C

Download: NeoLemmix Website
Tutorial: Part 1 (Beginner) | Part 2 (Intermediate) | Part 3 (Advanced)
Source Code: In the tool sources folder on my DropBox

NOTE: The "Build EXE" function uses Windows API calls that do not exist prior to Windows 2000 as far as I can tell, so most likely the "Build EXE" function will not work on Windows 95 / 98 / ME (though is anyone really still using those?). It has been tested and works under WINE. The rest of the app should work properly in any, though.




So, as anyone who's tried (or at least read about it) is probably aware, the current version of the Flexi Toolkit isn't overly easy to use. So, I'm planning to replace it with an improved tool that can both:
- more conveniently manage the data files, rather than having to do it manually (whether simply for preparing to build an EXE, or for use with the non-toolkit Flexi player)
- build the all-in-one EXE without the need for Resource Hacker

On top of that, it'll also contain a mini SYSTEM.DAT editor. This won't be fully-featured like the one in the NeoLemmix Editor (but you can always import a SYSTEM.DAT file created with that), but will just contain the most important options for quick access; any options outside these will be limited to preserving them and having a "reset to default" button.

This tool will not be able to do anything that existing tools can't already do, it'll just make it a lot easier to do. :)


So far, the mini- SYSTEM.DAT editor and the Levels tab are fully functional (the levels tab allows for reordering levels / ranks, and adding / removing / extracting levels). The other tabs are just blank at the moment. Most should be self-explanatory what they're planned to do, the "Other Data" one is mostly for MAIN.DAT and TALISMAN.DAT. (It'll most likely be limited to import/export of files, and not have any actual editor for them).

EDIT: I'll get screenshots up tomorrow, but the Graphics Sets tabs is almost complete (just need to decide if I'll add support for mapping numbers to graphic sets - probably unnessecary since the editor has used graphic set names rather than numbers for AGES now; and if I do do so, do it - if I don't, it can still be done via the NeoLemmix Editor's SYSTEM.DAT editor and preserved by this tool, so it won't be an impossible-to-do thing), and I've started on the Musics tab. Going to add support for actually previewing the musics in the tool, since unlike graphic sets, they don't actually have names.


(If you're wondering why the screenshots show the data for GigaLems, it's because I happened to have a non-compiled copy of it handy from when GigaLem was asking me some questions about how to use the Flexi Toolkit, so I figured it made sense to use what's already there rather than try and create entirely new data just for the purpose of testing it. My own level packs are compiled from source rather than using Flexi, so using one of those wasn't an option.)
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)

namida

#1
Okay so, building an all-in-one EXE aside, the initial development of this is complete. It does need some further testing before I make the EXE building part; but at the moment it's pretty much a complete tool for (non-all-in-one) Flexi packs. No special formats here - it just loads and saves the same set of files that the external-file-based Flexi player uses.

Of course, the major draw will be once it can build the EXE...
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)

namida

#2
This is looking extremely promising. I should have the new, much more user-friendly toolkit out VERY soon.
Please note that it uses some Windows API calls when building the EXE, and as such I can't guarantee it'll work properly under WINE.

EDIT: Okay, here you go. Anyone trying to build a custom level pack (or who has a bit of spare time to test this), give this a try:

https://www.dropbox.com/s/tbf4h1l3yiz8had/FlexiToolkit.exe

Make sure you use a dedicated folder for each project. If you don't want to use the editor's built-in menu, you can just copy your files manually into that folder. Do not put any DAT, IT, OGG or TXT files in the project folder, except those that are actually part of the project.

DO NOT SAVE INTO A FOLDER THAT ALREADY CONTAINS FILES (unless you loaded from that folder). DO NOT COPY ANY DAT, IT, OGG OR TXT FILES INTO THE FOLDER MANUALLY WHILE THE APP IS RUNNING (close it first, copy the files, then reopen). DO NOT ASK FOR HELP IF YOU LOST DATA BECAUSE YOU IGNORED THESE WARNINGS. I'll improve things in the future to make this less of a hassle, but in the meantime... you have been warned. And, it is safe to have LVL files and EXE files in the project folder (in case you're using LookForLVLFiles while designing your levels).

And yes - it can build the all-in-one EXEs for you. :) MUCH simpler than the runaround in the previous Flexi Toolkit. This version builds EXEs based on NeoLemmix V1.35n, and you do not have to supply a copy of the Flexi Player (it has a copy embedded, which it then modifies to include your data).

For the moment, I've left the "classic" Flexi Toolkit up as well, since this is still somewhat experimental while the old one, while possibly the least user-friendly thing in Lemmings history, 100% definitely works. Also because this one doesn't really offer any obvious way to make a music pack (it can be done, but it's a very roundabout way of doing it); that'll be fixed in an update.

I'll write up a decent tutorial for this within the next day or so. (One tip: You can set preview/postview texts for a level within this tool. Just double-click the level in the level listing.)


I do not plan to make a traditional Lemmix version, so don't ask. However, I'll be making this open source in the near-future, so if anyone wants to modify it to work with traditional Lemmix they'll be able to.
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)

namida

Some bugs have been identified:
> The "Title" box (and possibly some other non-numeric input boxes), it's impossible to place a space at the end. You have to put a non-space character at the end, add the spaces before that, then delete the final character. This is of course not intended, and will be fixed when I update it. The workaround for now is, of course, exactly what I described (or alternatively, use NeoLemmix Editor's SYSTEM.DAT Editor then import the system.dat file into this tool).
> The Graphic Set menu seems to be broken. Although it will list graphic sets, the Add button doesn't work properly. Workaround: Save the project, close the tool, then copy the graphic sets into the folder manually. You can then reopen the tool.

And not a bug but obviously needs fixing:
> Currently levels can only be added one at a time. I'll make sure to allow multiple additions at once when I update it. (Probably do the same for graphic sets and musics too.)

Plus one feature I realised is missing, and if possible I'll do in the update (but it may take a bit longer, so won't guarantee this one):
> There's no way to edit the icon for the output EXE.


There's a lot of SYSTEM.DAT settings that can't be set in this tool, but that's intentional. If you want full control over the SYSTEM.DAT, use the NeoLemmix Editor's SYSTEM.DAT tool (under the "Tools" menu) to create a SYSTEM.DAT file, then import that into this tool (or just place it in the project directory while this tool is not open). This tool's settings editor is just meant to give quick access to the most important options (in fact, it's arguable whether the "Timed Bombers" option should really be in there, as its use is something I try to discourage with NeoLemmix).
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)

namida

#4
Looked into the issues, haven't looked into adding some way to modify the icon yet.
Fixed the spaces at end of text input one.
The graphic set one - it was actually adding them, but with a blank name, which made it *look* like it wasn't adding them - and definitely would've caused issues when attempting to save. Fixed it, as well as a couple of other issues I noticed with the Graphics Sets panel.
And yes - adding multiple levels, graphic sets or musics at once is now possible. (With the graphic sets ones, yes, you can select graphic sets and VGASPECs in the same "Add" click).

V0.91
-----
> It is no longer impossible to have spaces at the start or end of text inputs
> Adding multiple files at a time is now possible in the Levels, Graphics and
  Musics tab (for Musics, only possible with "Add", not "Replace")
> Fixed the bug where graphic sets would have a blank name (thus also wouldn't
  save properly) when added via the Graphic Sets tab.
> Fixed the bug where it was impossible to select graphic sets / vgaspecs
  from the lists for deletion
> Fixed the bug where regular graphic sets may be attempted to be saved as
  VGASPECs and vice versa.


https://www.dropbox.com/s/tbf4h1l3yiz8had/FlexiToolkit.exe (Same link as above)

As far as the icon issue goes - I'm probably not going to offer any kind of icon editor, even a rudimentary "import and convert" feature, so importing them will probably end up working in a similar way to MAIN.DAT and TALISMAN.DAT currently.

(Also - please note, having a TALISMAN.DAT file is completely optional! If you're not using talismans, you don't need to include a blank TALISMAN.DAT file; just don't have one at all.)

All previous warnings still apply, ie:
- Use a dedicated folder for every project.
- Do not place any DAT, OGG, IT or TXT files in the project folder, aside from those that are part of the project's data. EXE and LVL files are safe.
- You can manually manipulate files in the folder rather than doing it through the tool, but don't do so while the project is opened in the tool (close it first). Otherwise, when you save your project, these newly-added/modified files will be overwritten or deleted.
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)

namida

I'm working on a tutorial for this tool, as well as an official release version (got a few very helpful features I want to add first). If there's anything you've found confusing and think should be mentioned in the tutorial, let me know.
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)

namida

#6
V0.92 is here, as is the first part of the tutorial. :) As of now, this tool is officially replacing the old, cumbersome Flexi Toolkit. :)

V0.92
-----
> Official release version! :)
> If adding a graphic set with the same name as an existing one, it will overwrite
  it rather than result in a duplication with unpredictable results when saving
> All default graphic sets are now included and can be added to a project without
  needing a copy of the files. The same goes for musics, and a default MAIN.DAT.
> Fixed the bug where the default Code Seed value would follow a predictable pattern
  rather than being truly random each time a new pack is created.
> The tool now has its own icon.


Download: NeoLemmix Website
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)

namida

#7
Got the custom icon feature implemented for the next update. Aside from that, I've also added a warning message when attempting to use the Build EXE function on Windows versions that don't support the API calls it uses (even though I doubt those versions are still in use, but never hurts to have it - just for the record, this is 95 / 98 / ME only; it'll work fine on XP, and even 2000), and I'll also look at doing something for music packs rather than delaying that until yet another update.

Icon support will require an actual ICO file; I haven't written code to convert from other formats. I may look into that further down the line.
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)

namida

#8
Music pack support is added. I split the list on the Musics panel into two lists; the first one acts just like the existing one does now. The second one mirrors the first in terms of what's listed, but the contents of it are used to build a music pack instead of built into the EXE (if any track doesn't have a music pack version, the music pack will just use the standard version).

All functionality relating to this (including previewing music pack tracks in the tool) is implemented, but there's still a few aesthetic things to tidy up relating to it. (EDIT: Or maybe not; encountering some bugs with creating the music pack... Fixed.)

Three known bugs I've identified that are also fixed for the next update:
- Clicking "Move Up" in the musics panel actually moves the track down, even though the selection is still moved upwards (ie: it swaps the selected track with the one after it, but still moves the selection indicator in such a way that it would appear it functioned correctly)
- If the Frenzy music is an OGG and the Gimmick music is an IT (or vice versa), the gimmick music's file will have the wrong extension when saved
- When building an EXE, if you don't actually specify an EXE file extension, it'll save the EXE without any extension
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)

namida

V0.99 released (yeah, I skipped a few numbers, since this is pretty much a case of "only not V1.00 in case anything important to fix comes up"). This adds support for music packs and custom icons, plus fixes a fair few bugs.

V0.99
-----
> Can now create a music pack in addition to the standard built-in musics
> Now supports adding a custom icon to built EXEs
> Will give a warning when attempting to build an EXE on a version of Windows that doesn't
  support the nessecary API calls
> Music numbers for levels can be edited in the same popup window as pre/postview texts
> Fixed the bug where .EXE extension was not automatically appended to the EXE filename
  if no extension is specified
> Fixed the bug where the "Move Up" button on the Musics panel moved the track down instead
> Fixed the bug where the Gimmick music would be saved with the same filename extension as
  the Frenzy music, even if they were different formats
> Fixed the bug where some save file popup boxes may have an extension but no filename set
  as a default value
> Fixed the name of the edit pre/postview texts popup box
> Fixed various issues relating to pre/postview texts


Download links are as usual, see the start of the first post. :) Tutorials have also been updated to reflect the new features.
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)

namida

Uploaded V1.00 update (yep, already, but part of the reason is because of a new NeoLemmix player version).

Aside from including the new NeoLemmix version, it also has the fixed-exit-trigger-area version of the Martian graphic set, and fixes one bug relating to loading projects when there's a music pack in the folder.

V1.00
-----
> Updated the contained NeoLemmix player to V1.35n-B
> Built-in copy of Martian graphic set has been updated to fix the exit's trigger area
> Fixed the bug where if a music pack was present in the project folder, it would get
  loaded among the graphic sets
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)

namida

A bug has been discovered with the Flexi player (but therefore relevant to the toolkit). Flexi-based packs will crash if any of the rank names have spaces or commas in them. It's possible some other special characters may cause this issue too, but those are the only two that I can confirm do so. (I can also confirm that apostrophes, exclamation marks and dashes do not cause any problems.)

I don't think it's worth making an update just to fix this one issue, but it will of course be fixed in the next general update.
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)

namida

Discovered a potentially project-corrupting glitch with the "Save" option in the menu. This does not affect the "Save As" option, so use that one in the meantime. Of course I'll fix this in the next update.

It can also occur when building an EXE. However, it won't happen if, before building an EXE, you save the project (via "Save As", not "Save"), or if you build the EXE immediately after opening a project (without changing anything). As far as I can tell, it's even fine to change things as long as you haven't imported any external files since the last time you saved (in fact, it's a bit more complex than this - in many cases importing an external file won't cause issues, but it can, so I figure it's better to just say "save it if you've imported files" rather than trying to detail what will or won't cause it).




Also discovered an equally-risky glitch with the music tab. Until an update is released, please don't add or delete tracks via this menu (replacing them, or listening to them, is fine). Instead, save the project, then copy the tracks into the project folder, then re-open the project.
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)

Wafflem

On the last rank, if there is only one level and I press left or right, sometimes it winds up at Level 0 or Level 2, then the player freezes.
YouTube: www.tinyurl.com/YTWafflem
Twitch: www.twitch.tv/Wafflem467

Have level designer's block right now? Have some of my incomplete levels for LOTS of ideas!

namida

That'll be an issue with the player, not the toolkit; and probably isn't limited to Flexi, but just hasn't been noticed elsewhere because no other players have a rank with only one level (though it might possibly happen in a secret rank where only one level has been unlocked EDIT: no, I don't think it would happen there, since the only difference between a secret rank and a normal rank is that the first level doesn't automatically unlock in secret ranks; and no such issue seems to exist with normal ranks while only one level is unlocked).

I'll add it to the player bugs list, and make sure to sort it next time I update the player.
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)