SuperLemmini 0.104a

Started by Tsyu, May 25, 2014, 06:20:08 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Lomax

Just wanted to say thanks!

I have also included a fix for Flag test map.

CharlieLove

I really enjoy Super Lemmini.  It is by far my favorite version to play Lemmings. I have a few feature requests.

1) Fullscreen: It seems like something you'll add eventually. I've been able to fake fullscreen by having Super Lemmini on one monitor whilst playing it through OBSE on another.

2) Cursor lock: Super Lemmini is more authentic in that moving your mouse cursor to the edge of the screen scrolls the image. This is great until you move your cursor too far to the left and right and click off the screen. Having the cursor locked into the game window would be great. Perhaps have a key to toggle to lock and unlock the mouse?

3) Lemming skinning: I really like how this package basically includes all the original lemmings levels including expansions. It would be amazing if the Xmas stages had the Lemmings dress as Santa just like in the originals.


Tsyu

I have also included a fix for Flag test map.
Just so you know, Lemmix strips away all of the new SuperLemmini features, such as adjustable width. (You can do a text comparison to see what got lost; a number of websites let you do this without downloading anything.)

Anyway, the way that the Genesis version renders objects is different from many other major versions. For example, it seems that entrances are always drawn behind terrain (even if it's configured to be drawn in front), and water may be rendered only partially in front of terrain. It's possible that exits are rendered like entrances, which would explain what you noticed.

http://www.lemmingsforums.com/index.php?topic=999.msg21024#msg21024">Quote from: CharlieLove on 2014-06-28 12:22:39
1) Fullscreen: It seems like something you'll add eventually. I've been able to fake fullscreen by having Super Lemmini on one monitor whilst playing it through OBSE on another.
Yes, I would like at add this. I'm not quite sure how I'm going to do it, though.

http://www.lemmingsforums.com/index.php?topic=999.msg21024#msg21024">Quote from: CharlieLove on 2014-06-28 12:22:39
2) Cursor lock: Super Lemmini is more authentic in that moving your mouse cursor to the edge of the screen scrolls the image. This is great until you move your cursor too far to the left and right and click off the screen. Having the cursor locked into the game window would be great. Perhaps have a key to toggle to lock and unlock the mouse?
From what I can tell, this can't be done well without using a software-drawn cursor, and I would rather not resort to that. If I can implement full-screen support, though, this shouldn't be a big problem if you run in full screen.

http://www.lemmingsforums.com/index.php?topic=999.msg21024#msg21024">Quote from: CharlieLove on 2014-06-28 12:22:39
3) Lemming skinning: I really like how this package basically includes all the original lemmings levels including expansions. It would be amazing if the Xmas stages had the Lemmings dress as Santa just like in the originals.
I intend to do this soon. (This is already possible with the mod feature; all that's needed is for the Santa lemmings to be created.) And no, I'm not just going to use the sprites from Holiday Lemmings; I want them to be done in the same style as the ones already in SuperLemmini. Fortunately, since I only need to modify existing sprites, this shouldn't be too much trouble.

namida

Alright, it's taken me a while to get around to it, but I'm planning to start adding support for this to the http://www.lemmingsforums.com/index.php?topic=911" class="bbc_link" target="_blank">NeoLemmix Editor very soon. Main thing I'm waiting for is for people to report any known issues with standard Lemmini - best to have the basics sorted before moving on to the advanced stuff. I've already done some basic looking through the code to see where I might have to change things to add SuperLemmini support.

Tsyu, if you're around - are *all* new features relevant to level designing documented in the Level Format file included with the current version? I notice that some level names have slashes added in them - what purpose does this serve, and is it required?


I've started on implementing SuperLemmini features - at the moment, it can load (but not yet save) and save XPosCenter rather than XPos, seconds-based time limits (NeoLemmix also uses these so it was a very easy thing to add), and variable widths (though it still can't edit the last one, it's stuck with what the level's set to when it loads - obviously I plan to change that http://www.lemmingsforums.com/Smileys/lemmings/tongue.gif" alt=":P" title="Tongue" class="smiley" /> it can now).

I'm a bit wary of adding certain features - for example, the fake terrain pieces. Outside of maybe the odd gimmicky situation, these really serve no purpose other than to be annoying... :/


EDIT: Marking objects as invisible does not work. I tried a couple of other values just in case the one you'd documented was wrong. In the case of the terrain pieces, you've documented the flags wrong, but they do all work once the correct values are used - but it seems that invisible objects don't. (I even checked SuperLemmini's source code in case that helped work out how to set it, but it appears that the documented way is correct, and it just simply doesn't work.)


EDIT: Alright, here we go. Doesn't quite support 100% of features yet, but it supports most of them. https://www.dropbox.com/sh/z1h2vwtu90w8igs/AACKeoJX31NHzRvJvoOhopWqa/NeoLemmix/NeoLemmix Editor/NeoLemmixEditor_V1.16n-B.zip" class="bbc_link" target="_blank">Download here. Let me know if you find any issues.

Please remember, this editor is not an official part of SuperLemmini, so any requests / comments / bugreports for it should go in the NeoLemmix topic, even if they relate to SuperLemmini 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)

Tsyu

I have been more focused on other projects lately, so I haven't been very active here. I'm still monitoring this thread (and, to some extent, the rest of the forum) and will fix bugs and add certain features when appropriate.

Tsyu, if you're around - are *all* new features relevant to level designing documented in the Level Format file included with the current version? I notice that some level names have slashes added in them - what purpose does this serve, and is it required?
Aside from the error that you pointed out, the documentation should be complete and accurate as far as level files are concerned. However, I still need to write documentation for other files and structures, as well as general information that applies to all text-based files.

The slashes that you mention are actually backslashes, and they're inserted before certain characters to ensure that such characters are interpreted correctly. For more information, see here: http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29" class="bbc_link" target="_blank">http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load%28java.io.Reader%29

EDIT: Specifically, when writing level names, SuperLemmini inserts backslash characters before the following characters:
  • \ (This is important!)
  • #
  • =
  • :
  • !
  • The first leading space character, if one exists

EDIT: Marking objects as invisible does not work. I tried a couple of other values just in case the one you'd documented was wrong. In the case of the terrain pieces, you've documented the flags wrong, but they do all work once the correct values are used - but it seems that invisible objects don't. (I even checked SuperLemmini's source code in case that helped work out how to set it, but it appears that the documented way is correct, and it just simply doesn't work.)
Both of these will be fixed in the next release, which should be ready today or tomorrow.


EDIT: And it's out now! The invisible-object bug and the documentation fix are the only things that changed.

Tsyu

I noticed today that 0xdeadbeef released http://lemmini.de/" class="bbc_link" target="_blank">Lemmini 0.85, which adds a zoom option for those who want a larger window (so things aren't tiny on 1080p+ screens). I'm currently working on adding the same feature to SuperLemmini.

Tsyu

SuperLemmini 0.93 has been released! Here are the changes:
  • Added the zoom feature from Lemmini 0.85, along with optional bilinear filtering (which is not in Lemmini 0.85).
  • Added support for infinite numbers of skills. To use this feature with a skill, use "Infinity" (case sensitive, no quotes) for the number of that skill. (E.g., for infinite builders, use "numBuilders = Infinity".)
  • When classic steel is not enabled, steel and no-bash areas are no longer applied where terrain does not exist, and removing terrain also removes the no-bash status. (I think the original Lemmini works this way too.)
  • Added support for autosteel via the autosteelMode parameter. See the level documentation for information on how to use this.
  • Added support for steel erasers. To turn a steel entry into an eraser, add a fifth value to the entry and set it to 1.
  • Partial support for the latest NeoLemmix level formats. Non-classic skills, oddtabling, music selection, and gimmicks other than superlemming are unsupported; everything else (assuming I didn't miss anything) should work fine.

The Genesis/Mega Drive pack has also been updated to add autosteel support to the modified styles.

Lomax

Thanks!

However, I seem to have found an issue with "allLevelsUnlocked = true".

I added this to the original levels, than played "Not as complicated as it looks".

This is how the menu looked afterwards:
http://i4.photobucket.com/albums/y128/MithosYggdrasil/LemminiGlitch_zps50b5f074.png" alt="" class="bbc_img" />

Tsyu

"allLevelsUnlocked = true" works fine for me. You're putting that in levelpack.ini, not the level files, correct?

If putting that in levelpack.ini doesn't work, then send that file to me (as an attachment or otherwise). Also send me your player file; you can find it in your [superlemmini.jar location]\players folder.

Lomax

Yes, it was in levelpack.ini.

Menu was back to normal when SuperLemmini was restarted, but I was able to recreate the issue.

Tsyu

Just so we're clear, the problem is that most of the levels aren't actually being unlocked, correct?

Anyway, how were you able to recreate the issue?

Tsyu

I figured out how to trigger the problem that Lomax was happening: Play and complete a level from a level pack that has the "allLevelsUnlocked" property set to true, and the level selection menu will "forget" that all levels of that pack are supposed to be unlocked. This will be fixed in the next version.

Tsyu

SuperLemmini 0.93a is out! Here are the changes:
  • Removed direct drop since it's not in the Amiga version. (It's not in the original Lemmini either.)
  • When the game window loses focus, all keys and mouse buttons should now be released, and the level should stop scrolling.
  • Fixed a bug that basically caused the level selection menu to "forget" the "allLevelsUnlocked" parameter of a level pack if a level from that pack was completed.

namida

Some bugs, from least major to most:
- If you have your mouse over a bomber when it explodes (at least, if it was a blocker beforehand), the cursor still changes and registers as having an Exploder under it when the mouse is hovered over its position. I'm not sure how long exactly this lasts; it definitely stopped after I selected a different skill. If it matters, the skill I had active at the time was Floater. Can't really demonstrate this one with a replay.
- If you mine into steel from the right position, the lemming may get stuck in the terrain. Attached level may be useful in trying to trigger this. I don't know if this is all steel or only autosteel. Replay attached.
- If you dig through the negative-steeled bit and block near the bottom, then release the blocker with a bomber, the lemmings that fall past turn around as they fall. It seems this doesn't need too much precision to trigger. Replay attached.
- When using autosteel mode 2 ("standard autosteel" by NeoLemmix terminology), non-steel terrain is treated as non-solid. Try the same level but with autosteel mode 2. I don't think a replay is needed for this one.


Also - have you added, or planning to add, an "ignore levelsteel" option like NeoLemmix has? If you are, let me know how you plan to implement it, and I'll get it ready in advance in the editor. This option would possibly be useful to people who are converting existing levels and want to switch to autosteel without having to remove steel data, or possibly also during development.
Another NeoLemmix feature that I reckon people might find very useful and would suggest adding (at some point, anyway; it is a bit of a tricky one to implement) is the oddtabling; or at least some form of oddtabling.

EDIT: One more bug; setting a skill count to "infinity" causes SuperLemmini to crash.
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)

Tsyu

Thanks for the bug reports. Everything that I consider a bug has been fixed. However, I'm currently adding a few features that still have to be ironed out, such as a level selection dialog to replace the current menu (mainly for things like player records), so it may be a little while (probably about a week or so) before the next release.

- If you have your mouse over a bomber when it explodes (at least, if it was a blocker beforehand), the cursor still changes and registers as having an Exploder under it when the mouse is hovered over its position. I'm not sure how long exactly this lasts; it definitely stopped after I selected a different skill. If it matters, the skill I had active at the time was Floater. Can't really demonstrate this one with a replay.
This is intentional; it's how the original games worked. If it bothers people, though, I can easily change this behavior without affecting gameplay. (Of course, if it happens well after the explosion particles have disappeared, then that does need to be fixed.)

- If you mine into steel from the right position, the lemming may get stuck in the terrain. Attached level may be useful in trying to trigger this. I don't know if this is all steel or only autosteel. Replay attached.
- If you dig through the negative-steeled bit and block near the bottom, then release the blocker with a bomber, the lemmings that fall past turn around as they fall. It seems this doesn't need too much precision to trigger. Replay attached.
- When using autosteel mode 2 ("standard autosteel" by NeoLemmix terminology), non-steel terrain is treated as non-solid. Try the same level but with autosteel mode 2. I don't think a replay is needed for this one.
All of these have fixed for the next version.

Also - have you added, or planning to add, an "ignore levelsteel" option like NeoLemmix has? If you are, let me know how you plan to implement it, and I'll get it ready in advance in the editor. This option would possibly be useful to people who are converting existing levels and want to switch to autosteel without having to remove steel data, or possibly also during development.
I don't think I'm going to implement this, mainly because it can be simulated by commenting out each steel entry with a number sign or exclamation point. If you don't want to comment out the lines (in case doing so makes them unreadable to the NeoLemmix editor), you can instead prefix the entries with underscores--SuperLemmini will never use entries whose keys begin with an underscore, at least not by default.

Another NeoLemmix feature that I reckon people might find very useful and would suggest adding (at some point, anyway; it is a bit of a tricky one to implement) is the oddtabling; or at least some form of oddtabling.
I'll look into implementing this, but probably not in the next version.

EDIT: One more bug; setting a skill count to "infinity" causes SuperLemmini to crash.
It has to be "Infinity", with a captial I. This matches how http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#parseDouble%28java.lang.String%29" class="bbc_link" target="_blank">Double.parseDouble() and http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#valueOf%28java.lang.String%29" class="bbc_link" target="_blank">Double.valueOf() (the former of which is used by SuperLemmini to read floating-point values from files) work, which also require "Infinity" to be capitalized like that.