[RELEASE][2.1 UPDATE] RetroLemmini - A brand new version of Lemmini for 2025!

Started by WillLem, February 04, 2025, 12:30:28 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem


A brand new version of Lemmini for 2025!

This version of Lemmini continues where Charles left off with SuperLemminiToo. The goal of this version is to make the Lemmini platform as plug-and-play as possible, future-proof it for Java updates, as well as enhance a few features and fix a few bugs. I don't plan to do anywhere near as much with this as I have been doing with Neo/SuperLemmix, but I think one or two decent-sized updates per year are definitely worth it to keep Lemmini going and glowing.



Features List
:lemming: Updated File System

In what is perhaps the flagship update, the "root.lzp" zip file has been removed and replaced with a simple "resources" directory into which all of your existing (Super)Lemmini(Too) resources can be placed.

The file system is now completely open, similar to Neo/SuperLemmix and Lix, enabling you to completely customise your copy of RetroLemmini and keep track of files much more easily. It also makes dev-side updates to the graphics, music, sound, levels, etc much easier to implement and test.

The program no longer creates folders and settings files all over your PC / Mac. Instead, all resources are kept in the root directory (where the .jar is) and the settings file is saved into a dedicated "settings" folder, also in the root directory. So, the program is now self-contained and fully portable!

:lemming: Fixed Timed/Untimed Bomber Replay Bug

SuperLemminiToo's "5 Second Timed Bomber" option was a welcome feature, but it came with a particularly difficult problem: if a user creates a replay with one option enabled, and then that replay is played back with the other option enabled, all of the Bomber assignments are out of sync.

RetroLemmini resolves this so that replays are played back exactly as they were created, regardless of current setting, on an assignment-by-assignment basis.

:lemming: DMA Lemmings / Oh No! More Lemmings

RetroLemmini features the remastered versions of these packs, complete with:

• Fixed steel areas
• Fully restored decorations & level sizes
• Enhanced graphics for the 4 "special" levels
• See this topic for more details...

:lemming: Physics

•  Oh-Noers can now exit without exploding.
Estimated impact: This is no doubt a significant exit physics bugfix, but since the use case involves a very specific trick requiring particularly deliberate set-up, it's very unlikely to affect any existing levels/replays directly

•  If an exit's trigger overlaps with another object's trigger, the exit trigger is preferred.
Estimated impact: Low to none. I don't know of any levels which involve an exit's trigger being completely overlapped by an object. The physics update is more to ensure that exits can always be interacted with, wherever possible

:lemming: Skill Panel

• Updated time counter colour scheme:
• •  Infinite time is displayed in Blue
• •  For timed levels, the count is shown in Green
• • • When 59 seconds remain, the count changes to Yellow
• • • When 10 seconds remain, the count changes to Red

•  Increased speed of release rate re-fire when the button is held (existing replays are unaffected) and widened the range of the pitch-shifted sound to more closely match the Amiga

• The animations have been recoloured slightly to improve the overall appearance (you're more than welcome to drop the SLToo versions into the "resources\gfx\iconbar" folder if you prefer those!).

• The Vertical Lock button is now hidden when not needed.

:lemming: Floater Sprite

• Recoloured yellow umbrella to red and white

:lemming: Main Menu Updates

• Brand new RetroLemmini logo

• Scroller updated for readability - the colours for the "Classic" scroller have been switched to yellow-on-blue, and for the default Lemmini scroller the font is yellow and un-stretched

• Mouse click event handlers added to all menu screens
• •  Menu - LMB loads the first level of the first group of the first pack, or opens the level select menu (this will later be updated to load the next unsolved level in the last active level pack, but that's for another day)
• •  Briefing (Preview) - LMB starts the level, RMB exits to menu
• •  Debriefing (Postview) - LMB continues to next level or restarts the current level (depending on pass/fail), RMB exits to menu

• Improved size & visibility of cursor

More updates to the Main Menu are planned, but for now it's good to go!

:lemming: Options Menu Updates

• Added option to "Auto-Save Successful Replays" for successfully completed levels
• Added an option to "Show Level Name on Status Bar", unchecked by default and only available when "Enhanced Status Bar" is enabled. Charles actually did previously implement this option but it never appeared in the Options menu, so it's added now.
• Added option to Show/Hide menu bar (it's also possible to toggle this on-the-fly using hotkey Ctrl + M from anywhere)
• Added option to choose Exit sound ("Yippee", "Boing" or "Auto", where Auto is set by the level's style)
• Menu screen now updates when toggling Classic Scroller on/off without having to close and re-open the program
• Re-shuffled the Options menu layout a bit for clarity and readability.
• "Stop Fast-Forward When Pausing" is now checked by default, and "Show Button Labels" is unchecked by default.

More updates are planned for the Options menu - tooltips and layout updates at the very least.

:lemming: Hotkeys

• Added a "Hotkeys" menu item which opens a form displaying a list of all in-game hotkeys (this will later be replaced by a hotkey config, but for now users should have access to this info at all times)

Plus, added the following hotkeys:
• Show Hotkeys (Ctrl + F11) - from anywhere
• Cancel Replay (X) - from in-game
• Turbo Fast Forward (G) - from in-game
• Load Replay (Ctrl + L) - from anywhere
• Save Replay (Ctrl + S) - from in-game and debriefing (postview)
• Manage Players (Ctrl + F4)  - from anywhere
• Enter Code (Ctrl + F5) - from anywhere
• Select Level (Ctrl + F9) - from anywhere
• Options (Ctr + F10) - from anywhere
• About RetroLemmini (Ctrl + F12) - from anywhere
• Load default level (Enter/Space) - from main menu
• Start level (Enter/Space) - from briefing (preview)
• Continue to next level/restart current level depending on pass/fail (Enter/Space) - from debriefing (postview)
• Exit to menu (Esc) - from briefing (preview) and debriefing (postview)
• Close RetroLemmini (Esc) - from main menu

:lemming: Debug Mode / Maximum Exit Physics Mode

•  Updated Debug mode access (Level Code is now "0xlemdebug" without quotes, hotkey is Ctrl + Alt + D from in-game). This mode gives access to a number of hidden features such as Draw mode (draw/erase pixels to the game screen), infinite skills, infinite time on/off, spawn lemmings at cursor, etc. A full list, plus key access, can be found in Key Assignments.txt. NOTE: If this mode is active, the level will count as having been "cheated" and records will not be saved

•  Improved Debug Mode panel display

•  In Debug Draw mode (Ctrl + Alt + D, then D again to activate), the number keys (1 - 0) set the size of the "paintbrush". LMB draws terrain, RMB erases

•  Maximum Exit Physics can be enabled either by typing a Level Code (code is "exitrule0k" or "directdr0p" without quotes) or pressing (Ctrl + Alt + E) from in-game. This mode allows lems to exit on contact with the exit trigger, regardless of action (so, for example, Climbers can now exit mid-climb) or state (so, Fallers, Splatters, etc can exit). Like Debug mode, if this mode is active, the level will count as having been "cheated" and records will not be saved

:lemming: Setup Instructions Included

It seems a small feature, but it's a much-requested and much-needed one! The SetupInstructions.txt file included in the root directory provides full setup instructions, as well as how to create a Windows shortcut, and set your own icons, should you wish to do so

:lemming:  UI Features

• Window caption now also displays pack title, rating name and level number (as well as level title and save requirement)

• Saving the level as an image now auto-saves the image with the same name as the level (if such an image already exists, (n) is appended to the filename)

•  Additional app information and web links added to "About" window



Wish List For The Future
Planned for the future

Quality of Life/Interface Features

:lemming: [WIP] Full-screen mode. WIP - Option implemented, currently does nothing. First few attempts at a working Full Screen mode have failed, but some progress has been made with each attempt. Main problem at the moment is getting the border to disappear when the window is already displayed and visible: apparently, Java doesn't like us doing that.

:lemming: Link .rpl files to their corresponding .ini files more comprehensively (possibly via an ID system), to prevent unnecessary error messages when loading replays for External Levels

:lemming: User hotkey configuration

:lemming: Allow mods to be used on a per-level as well as per-pack basis

:lemming: Show all level records on postview screen (i.e. max saved, time elapsed, skills used)

:lemming: Update the graphics sets so that exits are one single graphic (rather than two which must be joined together in the editor manually :eyeroll:) NOTE: Backwards-compatibility with existing levels may need to be built-in to the graphic itself; this feature won't go ahead if it can't be done without manual editing of levels later

:lemming: Group the player assist options and toggle them all on/off with a single "Classic Mode" option

:lemming: A user-friendly levelpack compiler

:lemming: A built-in level Editor (ideal) or added support for .nxlv (at least)

:lemming: Support for custom logos (so level packs can display logos; it's already possible to mod the menu background and cursor)

:lemming: Parental settings which remove blood effects/other graphic imagery from trap animations (this could perhaps be achieved via the mods system), and limit the amount of time you spend playing

:lemming: Remove all empty space from the edges of terrain and object pieces (not essential, but desirable)

:lemming: Offline 2-player mode (and, eventually, online multiplayer)

Physics

:lemming: Improved steel detection for Bashers and Miners

:lemming: Fix left-facing lem collision detection



To install, simply extract the attached .zip to a location of your choosing. Please feel free to reply here if you have any questions, suggestions or issues.

Chances are that RetroLemmini will just work, as long as you have the latest version of either Java JRE or JDK installed on your system. If you do have any issues getting it to run, please let me know and I'll do my best to resolve them as soon as possible.

Source code is available here: RetroLemmini Source Code.



WillLem

Version 1.0 Updates:

:lemming: Updated File System

In what is perhaps the flagship update, the "root.lzp" zip file has been removed and replaced with a simple "resources" directory into which all of your existing (Super)Lemmini(Too) resources can be placed.

The file system is now completely open, similar to Neo/SuperLemmix and Lix, enabling you to completely customise your copy of RetroLemmini and keep track of files much more easily. It also makes dev-side updates to the graphics, music, sound, levels, etc much easier to implement and test.

The program no longer creates folders and settings files all over your PC / Mac. Instead, all resources are kept in the root directory (where the .jar is) and the settings file is saved into a dedicated "settings" folder, also in the root directory. So, the program is now self-contained and fully portable!

:lemming: Fixed Timed/Untimed Bomber Replay Bug

SuperLemminiToo's "5 Second Timed Bomber" option was a welcome feature, but it came with a particularly difficult problem: if a user creates a replay with one option enabled, and then that replay is played back with the other option enabled, all of the Bomber assignments are out of sync.

RetroLemmini resolves this so that replays are played back exactly as they were created, regardless of current setting, on an assignment-by-assignment basis.

:lemming: DMA Lemmings / Oh No! More Lemmings

RetroLemmini features the remastered versions of these packs, complete with:

• Fixed steel areas
• Fully restored decorations & level sizes
• Enhanced graphics for the 4 "special" levels
• See this topic for more details...

:lemming: Skill Panel Updates

• The animations have been recoloured slightly to improve the overall appearance (you're more than welcome to drop the SLToo versions into the "resources\gfx\iconbar" folder if you prefer those!).
• The Vertical Lock button is now hidden when not needed.

:lemming: Main Menu Updates

• Brand new RetroLemmini logo
• Scroller updated for readability - the colours for the "Classic" scroller have been switched to yellow-on-blue, and for the default Lemmini scroller the font is yellow and un-stretched.

More updates to the Main Menu are planned, but for now it's good to go!

:lemming: Options Menu Updates

• Added an option to "Show Level Name on Status Bar", unchecked by default and only available when "Enhanced Status Bar" is enabled. Charles actually did previously implement this option but it never appeared in the Options menu, so it's added now.
• Re-shuffled the Options menu layout a bit for clarity and readability.
• "Stop Fast-Forward When Pausing" is now checked by default, and "Show Button Labels" is unchecked by default.

More updates are planned for the Options menu - tooltips and layout updates at the very least.

:lemming: Setup Instructions Included

It seems a small feature, but it's a much-requested and much-needed one! The SetupInstructions.txt file included in the root directory provides full setup instructions, as well as how to create a Windows shortcut, and set your own icons, should you wish to do so.

WillLem

Version 1.1 hotfix update:

:lemming: Replay bugfix

• Timed Bomber option is now written/read correctly to/from replay files - I thought this was done, but it was only working to/from the live replay stream rather than the actual replay files themselves
• Added backwards-compatibility for SuperLemmini(Too) replays

:lemming: Options Menu

• Added option to "Auto-Save Successful Replays" for successfully completed levels
• (Bugfix) "Show Level Name" option is now only available when "Enhanced Status Bar" is checked

:lemming: Floater Sprite

• Recoloured yellow umbrella to red and white



Get the latest version here.


WillLem

Version 2.0 features:

Version 2.0 is here! This version features plenty of UI updates to enhance the general usability of RetroLemmini, as well as being the first version to include physics updates. It may be worth double-checking any levels/replays you think might be affected, but impact should be relatively low.

Physics

:lemming: Oh-Noers can now exit without exploding.
Estimated impact: This is no doubt a significant exit physics bugfix, but since the use case involves a very specific trick requiring particularly deliberate set-up, it's very unlikely to affect any existing levels/replays directly

:lemming: If an exit's trigger overlaps with another object's trigger, the exit trigger is preferred (Thanks to Simon for the help with this and for providing a signpost for better factoring of objects in general).
Estimated impact: Low to none. I don't know of any levels which involve an exit's trigger being completely overlapped by an object. The physics update is more to ensure that exits can always be interacted with, wherever possible

Skill Panel

:lemming: Updated time counter colour scheme:
• Infinite time is displayed in Blue
• For timed levels, the count is shown in Green
• • When 59 seconds remain, the count changes to Yellow
• • When 10 seconds remain, the count changes to Red

:lemming: Increased speed of release rate re-fire when the button is held (existing replays are unaffected) and widened the range of the pitch-shifted sound to more closely match the Amiga

Options Menu

:lemming: Added option to Show/Hide menu bar (it's also possible to toggle this on-the-fly using hotkey Ctrl + M from anywhere)

:lemming: Added option to choose Exit sound ("Yippee", "Boing" or "Auto", where Auto is set by the level's style)

:lemming: Menu screen now updates when toggling Classic Scroller on/off without having to close and re-open the program

Hotkeys

:lemming: Added a "Hotkeys" menu item which opens a form displaying a list of all in-game hotkeys (this will later be replaced by a hotkey config, but for now users should have access to this info at all times)

:lemming: Plus, hotkeys for the following:
• Show Hotkeys (Ctrl + F11) - from anywhere
• Cancel Replay (X) - from in-game
• Turbo Fast Forward (G) - from in-game
• Load Replay (Ctrl + L) - from anywhere
• Save Replay (Ctrl + S) - from in-game and debriefing (postview)
• Manage Players (Ctrl + F4)  - from anywhere
• Enter Code (Ctrl + F5) - from anywhere
• Select Level (Ctrl + F9) - from anywhere
• Options (Ctr + F10) - from anywhere
• About RetroLemmini (Ctrl + F12) - from anywhere
• Load default level (Enter/Space) - from main menu
• Start level (Enter/Space) - from briefing (preview)
• Continue to next level/restart current level depending on pass/fail (Enter/Space) - from debriefing (postview)
• Exit to menu (Esc) - from briefing (preview) and debriefing (postview)
• Close RetroLemmini (Esc) - from main menu

Quality of Life/Interface Features

:lemming: Mouse click event handlers added to all menu screens (so, it's now possible to interact with these screens without necessarily clicking a text button)
• Menu - LMB loads the first level of the first group of the first pack, or opens the level select menu (this will later be updated to load the next unsolved level in the last active level pack, but that's for another day)
• Briefing (Preview) - LMB starts the level, RMB exits to menu
• Debriefing (Postview) - LMB continues to next level or restarts the current level (depending on pass/fail), RMB exits to menu

:lemming: Improved size & visibility of cursor

:lemming: Saving the level as an image now auto-saves the image with the same name as the level (if such an image already exists, (n) is appended to the filename)

:lemming: Additional app information and web links added to "About" window

Debug Mode / Maximum Exit Physics Mode

:lemming: Updated Debug mode access (Level Code is now "0xlemdebug" without quotes, hotkey is Ctrl + Alt + D from in-game). This mode gives access to a number of hidden features such as Draw mode (draw/erase pixels to the game screen), infinite skills, infinite time on/off, spawn lemmings at cursor, etc. A full list, plus key access, can be found in Key Assignments.txt. NOTE: If this mode is active, the level will count as having been "cheated" and records will not be saved

:lemming: Improved Debug Mode panel display

:lemming: In Debug Draw mode (Ctrl + Alt + D, then D again to activate), the number keys (1 - 0) set the size of the "paintbrush". LMB draws terrain, RMB erases

:lemming: Maximum Exit Physics can be enabled either by typing a Level Code (code is "exitrule0k" or "directdr0p" without quotes) or pressing (Ctrl + Alt + E) from in-game. This mode allows lems to exit on contact with the exit trigger, regardless of action (so, for example, Climbers can now exit mid-climb) or state (so, Fallers, Splatters, etc can exit). Like Debug mode, if this mode is active, the level will count as having been "cheated" and records will not be saved


Fun with Debug Draw mode...!



Get the latest version here.



WillLem

Version 2.1 hotfix update:

:lemming: "Time is up" bugfix

• Fixed a bug in which gameplay didn't end if time ran out, there were still lemmings remaining, and Debug Mode wasn't active. It's possible that overtime could be implemented as a legit gameplay feature at some point, but let's make it intentional

:lemming: UI Features

• Window caption now also displays pack title, rating name and level number (as well as level title and save requirement)

A reminder of what's new in 2.0.



Get the latest version here.