0xdeadbeef
21 Feb 2006 18:37:50
Lemmini - Lemmings for Java - public Alpha
Finally my humble efforts to port Lemmings to Java have reached a state in which I think I can release it for a (more or less) public alpha/beta test.
I came up with the name "Lemmini" which is the scientific "tribe" name for lemmings since it not in direct conflict with the trademark "Lemmings". Sounds a little silly in my mother tongue, but maybe not as much in yours ;)

Please note that you need a (legal) copy of "Lemmings for Windows" to actually play the game. Lemmini is just a game engine which needs the resources of "Lemmings for Windows to run" ... mainly for legal reasons.
I'd recommend to keep the CD-ROM in reach or to copy the WINLEMM folder from the CD-ROM to your HDD since future updates of Lemmini might need to extract the resources again to reflect changes in the resources.

Secondly you'll need a Java runtime environment (JRE). I'd recommend to download the latest version "JRE1.5 Update 6" from here:

http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=jre-1.5.0_06-oth-JPR&SiteId=JSC&TransactionId=noreg

After installing Java and having your copy of "Lemmings for Windows" ready to hand, you are prepared to visit my Lemmini homepage:

http://home.arcor.de/0xdeadbeef/lemmini.htm

As described there, you might either run/install Lemmini as a Webstart application by clicking to the according link on the site (and answering all the following questions with "yes") or you can download the file "lemmini.jar" directly, copy it somewhere to your local HDD and start it with a double click. The advantage of Java Webstart is that this will automatically check for updates and download the latest version of Lemmini. Then again if you don't like that or don't have a permanent internet connection, you might want to stay with the Jar.

I'd call Lemmini a playable Alpha at this point, because a few game features are missing. Most noticeably you can play all levels from the beginning, the level codes are given, but you can't enter them anywhere and there's no kind of "game over" screen whatsoever.
Then again, all Levels of the Windows version (+5 additional levels) are in, the levels are completely playable, also music, sound and user interface are finished or at least nearly finished.
I tested quiet a lot during the last days on five different systems and had no crashes lately, so I hope it's more or less stable. Then again, I could only test on WinXP systems. So it might crash, refuse to work or behave strangely on different operating systems. Last time I tried in Linux, it crashed while loading resources. But that was some months ago and since then I reworked all the resource names to avoid conflicts with uppercase/lowercase file names. So it might work under Linux, but it's kinda unlikely.

About resources: the game needs almost no CPU-time during normal gameplay on the five systems I tested, where the lowest one was an 1.6MHz Centrino Notebook. It eats much more resources in "fast forward" mode, but this is a different story (limitations in the current Java runtime under Windows). The RAM consumption is about 60MB, so I guess if you have 100MB free, you shouldn't have problems.

The intention of this public alpha/beta test is to get feedback on the following topics:

- Does the game work (well) on your system (especially Windows versions before XP, Linux and Mac)?
- Is the timing ok (release rate, movement of lemmings, animation speed of lemmings, level objects like traps etc.)?
- Is the behaviour of lemmings ok in detail (height of obstacles, falling height, digging speed etc.)?
- Do the Traps and other level objects work as they should (also entries, exits)
- Are the level names, order, start position ok? Are all levels fully playable and "winnable" with the default solution?
- Anything else strange/wrong compared to the Amiga/DOS/Windows version?
- Are there glitches, bugs, crashes, freezes etc. ?

If this is ok with the Moderators, I'd suggest to post comments in this thread. Please don't spam me with emails or PMs for every little comment or issue. Also I'd ask you to keep this beta test internal to this forum for the moment.
And PLEASE don't ask for "Lemmings for Windows"! It's still on sale and I ask you to respect the rights of the copyright holders. I bought my copy at eBay for just 5€ as I started this project, so I think this should not be an issue.

Anyway, I can neither promise that Lemmini will work (well) on your system nor that I will consider/comment any issue discovered during the test. Please be aware that this is a spare time project any my interests may and will change from time to time.

Hope you enjoy it...
Ahribar
21 Feb 2006 22:46:56
Re: Lemmini - Lemmings for Java - public Alpha
And PLEASE don't ask for "Lemmings for Windows"! It's still on sale and I ask you to respect the rights of the copyright holders. I bought my copy at eBay for just 5€ as I started this project, so I think this should not be an issue.

That's entirely reasonable, but on the other hand I hope you agree that it's entirely reasonable of me not to want to pay for another version of Lemmings when I already have Lemmings for Mac and Cheapo. Pity; I'm very interested in your project!
ccexplore
21 Feb 2006 22:58:55
Re: Lemmini - Lemmings for Java - public Alpha
Don't worry, I know what you mean.  I'm pretty sure I have a copy of Windows Lemmings somewhere on my home computer.  I never installed it, but it doesn't matter since Lemmini only needs the graphics resources which are just files.

I'll post it up (probably just the graphics files) as soon as I can get to it, and it'll stay up until they arrest or sue me, ha-ha. ;)

In the meanwhile, may I suggest Google?  If I recall correctly that's how I got hold of my copy......
Mindless
21 Feb 2006 23:38:34
Re: Lemmini - Lemmings for Java - public Alpha
A couple of things I've noticed:
  • CPU usage is higher at the level intro screen than when playing the level. :o
  • The wrong password is displayed -- the password for the NEXT level should be displayed, not the password for the completed level.
  • Some sounds are chopped off (e.g. "Oing" and the tool selection sound.)
  • Floaters seem to fall too fast, but this may just be in my head.
  • The digging animation looks like it loops before it completes.


All in all, it's very well done. (Especially the mouse handling.)  ;D

Now for feature requests: :P
  • Full-screen mode, if possible.
  • Explosions similar to Lemmings or Cheapo

0xdeadbeef
21 Feb 2006 23:54:55
Re: Lemmini - Lemmings for Java - public Alpha
A couple of things I've noticed:
  • CPU usage is higher at the level intro screen than when playing the level. :o


  • Hm, on my machine it's between 0 and 2% in any intro/briefing/debriefing/game screen. Only fast forward needs more.

  • The wrong password is displayed -- the password for the NEXT level should be displayed, not the password for the completed level.


  • Oops, you're right. I'll change that in the next release...

  • Some sounds are chopped off (e.g. "Oing" and the tool selection sound.)


  • Did you try to select another Mixer in the Sound Menu? Also make sure that your using JRE1.5 Update5 or above. In earlier versions of the JRE, short sounds were not played correctly. The sound code itself is correct and works flawlessly on several machines.

  • Floaters seem to fall too fast, but this may just be in my head.


  • They should be accurate on pixel/frame basis, but if anyone can confirm, I'll check again...

  • The digging animation looks like it loops before it completes.


  • Hm, looks ok for me. Can anybody confirm?


    All in all, it's very well done. (Especially the mouse handling.)  ;D

    The mouse handling is a bit jerky since the mouse cursor is software drawn to be "in sync" with the game. And indeed I already doubled the frame rate.
    BTW:  I thought you'd praise the music ;)
    And you should really read the scrolltext :)
    Mindless
    22 Feb 2006 00:31:03
    Re: Lemmini - Lemmings for Java - public Alpha
  • Some sounds are chopped off (e.g. "Oing" and the tool selection sound.)


  • Did you try to select another Mixer in the Sound Menu? Also make sure that your using JRE1.5 Update5 or above. In earlier versions of the JRE, short sounds were not played correctly. The sound code itself is correct and works flawlessly on several machines.

    I restarted the game and the problem disappeared.


    All in all, it's very well done. (Especially the mouse handling.)  ;D

    The mouse handling is a bit jerky since the mouse cursor is software drawn to be "in sync" with the game. And indeed I already doubled the frame rate.
    BTW:  I thought you'd praise the music ;)
    And you should really read the scrolltext :)

    Doesn't seem jerky to me. :/

    And the music is good too. :D
    Ahribar
    22 Feb 2006 12:28:47
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, thanks to some files that ccexplore supplied I'm able to test this out!

    I've only tried one level (1 Tricky: This should be a doddle) so far, and noticed the following things:

    * On the intro screen the level number is "0" for some reason.
    * I'd much rather have a music system like the Mac version -- music fixed for each level -- so that I don't always have to hear the Cancan! It's OK, but there are much nicer musics down the line.
    * A big one. When two lemmings are under the cursor, the one already doing a skill has priority, as it should. BUT if the skill you're trying to assign is inapplicable, that priority doesn't get overridden! E.g. the first lemming builds over the gap, the second lemming comes up behind and needs to be given a builder also. You can't do it because the first lemming has priority but he can't be given another builder skill.
    * Changing the release rate caused the game to crash.
    0xdeadbeef
    22 Feb 2006 17:42:12
    Re: Lemmini - Lemmings for Java - public Alpha

    * On the intro screen the level number is "0" for some reason.

    Ok, this and the wrong levelcode will be fixed in the next release.


    * I'd much rather have a music system like the Mac version -- music fixed for each level -- so that I don't always have to hear the
    Cancan! It's OK, but there are much nicer musics down the line.

    The music is fixed for each level. And the first level "Just dig!" has CANCAN as fixed music like the Amiga had. So I don't really get the problem.


    * A big one. When two lemmings are under the cursor, the one already doing a skill has priority, as it should. BUT if the skill you're trying to assign is inapplicable, that priority doesn't get overridden! E.g. the first lemming builds over the gap, the second lemming comes up behind and needs to be given a builder also. You can't do it because the first lemming has priority but he can't be given another builder skill.

    Indeed there's no (intentional) priority handling at all. Indeed, just by chance, the "youngest" (which entered the level later) lemming has priority at the moment. I must admit I'm not sure if there was any designed priority handling in other versions. At least I did not had the impression when playing the windows version and can't really remember for the Amiga version.
    It might be a little confusing however, since the "type" of the "lemming under the cursor" is displayed and if there are 4 different types, which one's name should be printed. At this moment, the name is that of the one who will get the skill
    However I could implement something like that if there's demand for it. I put it on my list.


    * Changing the release rate caused the game to crash.

    Hm, this doesn't sound too good. Any more more input on this issue? Like: Does the game just exit or is a error message displayed? If so, could you post it? Does this happen always or sometimes, at first press or after N presses etc.?
    Does it also happen if you use the keyboard shortcuts ("+", "-")?
    Chmera
    22 Feb 2006 18:18:10
    Re: Lemmini - Lemmings for Java - public Alpha
    I played it on my father's Windows 98 and compared it with WinLemm. There were a few problems:

    *Walking speed too fast
    *The terrain height that causes the lemmings to turn around is too high(the lemmings were walking something like halfway up the right side of the top chamber in Just Dig)
    *No music whatsoever(most likely computer-specific, but still...)
    0xdeadbeef
    22 Feb 2006 18:27:10
    Re: Lemmini - Lemmings for Java - public Alpha

    *Walking speed too fast

    How much too fast? On my system, Lemmings for Windows run too slow. Indeed on minute game time takes much longer than a minute. Please check how long a minute game time takes for Lemmings and Lemmini on your system.


    *The terrain height that causes the lemmings to turn around is too high(the lemmings were walking something like halfway up the right side of the top chamber in Just Dig)

    That's a slope, not an edge.


    *No music whatsoever(most likely computer-specific, but still...)

    Did you turn it on? I think it's disabled by default.
    DragonsLover
    22 Feb 2006 18:59:01
    Re: Lemmini - Lemmings for Java - public Alpha
    Yep, I'm playing it on Win98 SE and, well...

    * The Lemmings, objects and toolbar are constantly flashing (that's a little bit annoying) and I think it causes the game to lag
    * Fast Forward Mode doesn't work
    * The game hangs after a while and requires to be closed using Cttl + Alt + Delete. And after, then, the music repeats a tiny part of the song constantly and it's pretty annoying. I need to restart my computer to avoid that! :( The only thing I did is to increase the release rate to 99 and when almost all Lemmings enter the exit: Crash! without any reasons.

    Music works and I don't think Lemmings are walking too fast. I didn't tested the terrain height problem, but it seems to be ok too.
    ccexplore
    22 Feb 2006 19:49:30
    Re: Lemmini - Lemmings for Java - public Alpha
    Indeed there's no (intentional) priority handling at all. Indeed, just by chance, the "youngest" (which entered the level later) lemming has priority at the moment. I must admit I'm not sure if there was any designed priority handling in other versions. At least I did not had the impression when playing the windows version and can't really remember for the Amiga version.
    It might be a little confusing however, since the "type" of the "lemming under the cursor" is displayed and if there are 4 different types, which one's name should be printed. At this moment, the name is that of the one who will get the skill
    However I could implement something like that if there's demand for it. I put it on my list.

    I'm pretty sure most versions of Lemmings that are close to the Amiga version use the same priority system.  Unfortunately I haven't at the moment work out the exact system yet, but what Ahribar said is definitely true, and it's also true that roughly speaking, the "youngest" gets priority except when someone's a non-walker.  And there's no confusion about the "type of lemming under the cursor" -- whoever has the highest priority for a skill assignment, his type is displayed.

    The skill assignment behavior is not negotiable in my point of view, it's way more important than your framerate.  Skill assignment is too fundamental to the gameplay.  When I have time I'll get to the bottom of this and report back how exactly it should work.  And don't forget about the right mouse button either......
    0xdeadbeef
    22 Feb 2006 19:55:08
    Re: Lemmini - Lemmings for Java - public Alpha
    Yep, I'm playing it on Win98 SE and, well...
    * The Lemmings, objects and toolbar are constantly flashing (that's a little bit annoying) and I think it causes the game to lag

    That's bizzare since all the drawing is done offscreen and then always the complete screen is copied to the front buffer at once.
    I will have to think about how this could happen at all...
    What kind of machine are we talking about??? What kind of videocard do you have? Do you know if it supports DirectX?


    * Fast Forward Mode doesn't work

    What does that mean? Is the speed of lemmings and timer not influenced by pressing the button (or "f") or is the icon not even "pressed"? What about CPU load when playing and when using FF mode?


    * The game hangs after a while and requires to be closed using Cttl + Alt + Delete. And after, then, the music repeats a tiny part of the song constantly and it's pretty annoying. I need to restart my computer to avoid that! :( The only thing I did is to increase the release rate to 99 and when almost all Lemmings enter the exit: Crash! without any reasons.

    If it hangs: does the menu still react? When you say it crashes, did it exit or freeze? No error message?


    Music works and I don't think Lemmings are walking too fast. I didn't tested the terrain height problem, but it seems to be ok too.

    Something at least...
    0xdeadbeef
    22 Feb 2006 20:10:05
    Re: Lemmini - Lemmings for Java - public Alpha

    The skill assignment behavior is not negotiable in my point of view, it's way more important than your framerate.  Skill assignment is too fundamental to the gameplay.  When I have time I'll get to the bottom of this and report back how exactly it should work.  And don't forget about the right mouse button either......

    Well, actually the game it quite playable despite of this and none of my private test players noticed that while they noticed changes in framerate at once. But of course they are no hardcore lemmings freaks.
    I will put it in if there's demand for it and there is time for it (there seem to be more urgent issues like crashes and redraw problems on Win98). However I'm a little perplexed by the phrasing "not negotiable". I mean, at the end I'll have to decide what I can or want to do and what I can't/don't.
    Ahribar
    22 Feb 2006 20:12:10
    Re: Lemmini - Lemmings for Java - public Alpha
    The skill assignment behavior is not negotiable in my point of view, it's way more important than your framerate.  Skill assignment is too fundamental to the gameplay.

    Right, and specifically on the problem I pointed out, if there are two lemmings under the cursor and one cannot take the skill (e.g. "builder" is selected and one of the two is already a builder) then the priority MUST pass over to the other lemming. This is absolutely vital to the gameplay. (Yes, the game is still playable, but there are situations where you can't do something you want to and should be able to.)

    About the music problem, if you have fixed the music for each level, then level 17 Fun should have music #17, level 18 should cycle back to music #1 (Cancan), and so the level I was playing, 1 Tricky, should have music #14, no?
    0xdeadbeef
    22 Feb 2006 20:21:02
    Re: Lemmini - Lemmings for Java - public Alpha
    The skill assignment behavior is not negotiable in my point of view, it's way more important than your framerate.  Skill assignment is too fundamental to the gameplay.

    Right, and specifically on the problem I pointed out, if there are two lemmings under the cursor and one cannot take the skill (e.g. "builder" is selected and one of the two is already a builder) then the priority MUST pass over to the other lemming. This is absolutely vital to the gameplay. (Yes, the game is still playable, but there are situations where you can't do something you want to and should be able to.)

    Calm down guys, I said it's on the list. However if someone gives me the rules for priority handling, it's more likely it'll make it into  a release soon.


    About the music problem, if you have fixed the music for each level, then level 17 Fun should have music #17, level 18 should cycle back to music #1 (Cancan), and so the level I was playing, 1 Tricky, should have music #14, no?

    You can have a look in the resource directoy in  "levels/orig/orig.ini" (and "levels/ohno/ohno.ini"). There the available music is defined as well as the definition which music to play for which level.
    At the moment, level Fun 17 has the following definition line:
    # Fun 17 - Easy when you know how (based on "Compression Method 1"/lvl0027.ini)
    fun_16 = lvl0027b.ini,CAKHLFLBDU,16

    The music is "16" which is defined as:
    music_16 = mountain.mod

    If there's something wrong with the music order, playe have a look in the ini file and tell me what do change.
    Indeed you can change the ini file(s) yourself to test for yourself.
    0xdeadbeef
    22 Feb 2006 20:24:31
    Re: Lemmini - Lemmings for Java - public Alpha
    And one general thing for those who observe crashes: please download "lemmini.jar" from my site, put it somewhere and start it from the command line (console) with

       java -jar lemmini.jar

    If the game crashes, please have a look at the console if there is any error text printed out by the virtual machine.
    geoo89
    22 Feb 2006 20:54:49
    Re: Lemmini - Lemmings for Java - public Alpha
    I had a first look a it, and I quite like it. The name Lemmini doesn't sound that bad IMO (I'm also German)
    However there are some problems, or differences to what I'm used to I noticed:

    - object animations continue when the game is paused or when fast forwarded, in same speed; that causes for traps, with fast forward more lemmings can pass one trap, it might cause a potential backroute for 'Compression method 1' (Taxing 6) and perhaps also for other levels; pressing pause again can cause that some more lemmings than intended get killed by a trap
    - already the first lemmig coming out is affected by the RR, actually the first lemming should come out not depending on the RR
    - the climbers seem far too fast to me (twice the speed they actually should have?)
    - a climber hitting his head does the 'vaulter' animation (transitioning to walker) at the beginning if his fall; a climber who should actually do this animation (when having finished climbing an object) doesn't do it however
    - changing the RR influences the outcoming of the lemmings instantly, at least in the DOS version the RR changes effectively only after outcoming of the next lemming (I actually don't have any problem with it, also, in Cheapo it works the same way, but anyway)
    - the 'jumper', a lemming climbing a step of a height 3 - 6 px doesn't have his own animation which causes a skip of a few frames (this problem also appears in the WinLemm version) - actually each 2 px of vertical movement should take one (I think) extra frame *image (jumper) below
    - when building on a miner's tunnel or a 45 degree slope (away from it, not into), the following lemmings cannot access the bridge of the builder, might be fixed having the bridge start by 1 px shifted
    - it is impossible to assign a builder to a lemming when he would hit his head before setting his first brick
    - I did one level with 97% saved (100% needed), and get the "Rock Bottom!" comment, which is (afaik) only meant for 0% saved

    Some things I'd like to suggest:
    - the scrolling seems a bit slow to me (fortunately there's still the mini-map to scroll), might get a little faster
    - the in/decreasing of the RR works also a bit too slow for my taste
    - I'd like to have the Enter key for fast forward, as it is used for Lemmings 2 and Cheapo
    - the exit in the hell style doesn't have its horns, in the brick style the exit is not completely displayed (the area where the trigger area is located is black), this should be corrected
    - it seems a bit strange to me that the numbers of skills/RR is displayed above the button (I don't know about the Amiga version however)

    The digger animation, as it was already said, seems a bit strage also to me.
    *) here's an image how the jumper looks like in e.g. the DOS version:
    Ahribar
    22 Feb 2006 21:17:39
    Re: Lemmini - Lemmings for Java - public Alpha
    Calm down guys, I said it's on the list. However if someone gives me the rules for priority handling, it's more likely it'll make it into  a release soon.

    I'm perfectly calm. The emphasis was just to distinguish what was the main point I was making and what wasn't.

    If there's something wrong with the music order, playe have a look in the ini file and tell me what do change.

    OK, I'll do that tomorrow (earliest I can do it, when I'm on my home computer again).
    ccexplore
    22 Feb 2006 21:30:24
    Re: Lemmini - Lemmings for Java - public Alpha
    However I'm a little perplexed by the phrasing "not negotiable". I mean, at the end I'll have to decide what I can or want to do and what I can't/don't.

    Well duh, you can make the lemmings fly and we can't stop you, but you know what I mean. ;) I'm sure there are more pressing matters at the moment, but it definitely did not square with me that you were at one point almost trivializing the skill assignment issue when you actually spent more time getting the game second to be perfect. ;) That's all.

    I still haven't gotten around to trying it out, but from what I'm hearing it sounds good so far.  Keep up the good work!
    0xdeadbeef
    22 Feb 2006 21:48:41
    Re: Lemmini - Lemmings for Java - public Alpha

    - object animations continue when the game is paused or fast forwarded; that causes for traps, with fast forward more lemmings can pass one trap, it might cause a potential backroute for 'Compression method 1' (Taxing 6) and perhaps also for other levels;
    pressing pause again can cause that some more lemmings than intended get killed by a trap

    Indeed I liked the idea to let the animations run because it looks a little silly if e.g. the flames stop to flicker just because pause was pressed. Then again, I agree it might be a problem with traps. I think, I will change that. Also the particles of an explosion are not influenced by pause mode. Will change that too, I guess, though it doesn't influence game play.


    - already the first lemmig coming out is affected by the RR, actually the first lemming should come out not depending on the RR

    I know. It's already on my todo list, but at some point, I wanted to release the Beta. Will be fixed.


    - the climbers seems far too fast to me (twice the speed they actually should have?)

    Climbers climb at one pixel per frame (I compensate the doubled resolution with a doubled refresh rate) just like Walkers walk one pixel per frame. I think this should be ok...


    - a climber hitting his head does the 'vaulter' animation (transitioning to walker) at the beginning if his fall; a climber who should actually do this animation (when having finished climbing an object) doesn't do it however

    Oops, I must admit I considered this animation to be a "climber to faller" animation  :-[.  But you're right. Will be fixed.


    - changing the RR influences the outcoming of the lemmings instantly, at least in the DOS version the RR changes effectively only after outcoming of the next lemming

    Phew, well, this doesn't sound like a major issue to me. Does this affect gameplay?


    - the 'jumper', a lemming climbing a step of a height 2 - 6 px doesn't have his own animation which causes a skip of a few frames - this problem also appears in the WinLemm version: each 2 px of vertical movement take one (I think) extra frame *image below

    Hm, if lemmings for windows doesn't have this animation, I'd have to draw it myself, which will most probably look worse than skipping it. But I'll put it on the list (which is already terribly large).


    - when building on a miner's tunnel or a 45 degree slope (away from it, not into), the following lemmings cannot access the bridge of the builder, might be fixed having the bridge start by 1 px shifted

    With miners, this is probably a problem of pixel alignment as (almost) everything in Lemmini is pixel accurate vs. 2 or 4 pixel accuracy in the "original" versions. Builder vs. builder is strange since builders only start at even positions and the step has an even width. You don't have a screenshot of this, do you?


    - it is impossible to assign a builder to a lemming when he would hit his head before setting his first brick

    True, but what would be the correct behaviour? Build the first brick anyway and then stop?


    - I did one level with 97% saved (100% needed), and get the "Rock Bottom!" comment, which is (afaik) only meant for 0% saved

    True. I was too lazy too find out all comments - there are much more missing. But I'll add them later.



    - the scrolling seems a bit slow to me (fortunately there's still the mini-map to scroll), might get a little faster

    Scrolling is limited to screen updates. So I could only increase the step size.
    There's a little trick however: if you scroll with keyboard (cursor keys) and mouse in parallel, the speed is doubled.


    - the increasing of the RR works also a bit too slow for my taste

    Yeah, I might rework this. It's so slow at the moment to allow changing it by one step without adding a more debounced delay.


    - I'd like to have the Enter key for fast forward, as it is used for Lemmings 2 and Cheapo

    Now that was easy.


    - the exit in the hell style doesn't have its horns, in the brick style the exit is not completely displayed (the area where the trigger area is located is black), this should be corrected

    Phew, the hell exit should look exactly like in the Windows version and I can't follow you with the brick style exit. The exit area is not black for me. The exit consists of two parts: a static part "styles\brick\bricko_0.gif" and an animated part "styles\brick\bricko_9.gif". Looks ok for me!?


    - it seems a bit strange to me that the numbers of skills/RR is displayed above the button (I don't know about the Amiga version however)

    It was displayed on the button, but there's not enough space on my buttons for this since the images are larger. Also the current font wouldn't work on the buttons.


    The digger animation, as it was already said, seems a bit strage also to me.

    Could you substantiate this? The animation is "misc/lemm_13.gif". As far as I remember, it cycles once from first to last frame, than applies the dig mask, than starts with frame 0 again.
    0xdeadbeef
    22 Feb 2006 21:54:47
    Re: Lemmini - Lemmings for Java - public Alpha
    ... when you actually spent more time getting the game second to be perfect. ;)

    Maybe you got me wrong there. I stumbled across a lot of problems regarding timing reaching deep into the Java virtual machine and even the Windows core. Because of bugs or strange implemenation on both sides, I had all kind of issues from semi-freezes to a speed up of the system clock by the factor of 2 when running Lemmini.
    That's why I listen closely if someone complains about wrong speed.
    Jazzem
    22 Feb 2006 22:10:45
    Re: Lemmini - Lemmings for Java - public Alpha
    First of all I'd like to congratulate you. This is a very impressive piece of work, and one that I'm sure took plenty of time and patience. So kudos :)

    Just a few things though...

    -The music starts straight away instead of beginning right after the trapdoor opens.
    -The RR increases/decreases at a much slower rate than usual.
    -I tried to build towards a wall sloping at 45 degrees above me, but I simply got the chink sound. The lemming would bang his head, but he should at least make one step before turning away.
    -http://www.rocketsoft.gm-school.uni.cc/uploads/Lemini%20mistake.JPG If you look at that, the digger seemed to finish off with just a little gap instead of the usual size, leaving that bit of terrain which the lemmings respond to.
    -Just something of preference really, but I think you should use the classic toolbar instead of the Cheapo one.
    -Speed up is a bit jerky, and occasionally makes the music stutter.
    -If you make a lemming in a small, huddled group a blocker, all the others will instantly react and change their direction. As ridiculous as this sounds (And I'm sorry for being so picky), the lemmings should really ignore it.

    Apart from those quirks I'm very impressed, and I look forward to the complete release  :)
    Ahribar
    22 Feb 2006 22:31:10
    Re: Lemmini - Lemmings for Java - public Alpha

    - it is impossible to assign a builder to a lemming when he would hit his head before setting his first brick

    True, but what would be the correct behaviour? Build the first brick anyway and then stop?

    You can always build one brick. The most important consequence is that when the lemming would hit his head after one brick, you can use the builder skill to make him turn round. A second consquence is that you can use many builders to get higher and higher until you get right up into the ceiling (or through, if it's thin enough). Indeed, this is the key to the normal solution to Mayhem 2: The Boiler Room.
    Mindless
    22 Feb 2006 22:40:36
    Re: Lemmini - Lemmings for Java - public Alpha
    - the exit in the hell style doesn't have its horns, in the brick style the exit is not completely displayed (the area where the trigger area is located is black), this should be corrected.

    The hell exit does not have horns in the Win95 graphics.  If someone designed a hires horned exit, 0xdeadbeef might add it to his patches.

    Other in game keys:
    • S - SuperLemming mode?
    • F - Fast Forward
    • P - Pause



    Edit:

    The digger animation, as it was already said, seems a bit strage also to me.

    Could you substantiate this? The animation is "misc/lemm_13.gif". As far as I remember, it cycles once from first to last frame, than applies the dig mask, than starts with frame 0 again.

    My lemm_13.gif: Animated:
    0xdeadbeef
    22 Feb 2006 22:43:33
    Re: Lemmini - Lemmings for Java - public Alpha
    At last someone noticed my ingenious patching framework  ;D

    And about the keys: "superlemming" mode is just available in cheat/debug mode (enabled by "c"). In cheat mode, there are some more keys, but I wouldn't advice to press them since they can mess the level data.
    ccexplore
    22 Feb 2006 22:44:07
    Re: Lemmini - Lemmings for Java - public Alpha
    Indeed I liked the idea to let the animations run because it looks a little silly if e.g. the flames stop to flicker just because pause was pressed. Then again, I agree it might be a problem with traps. I think, I will change that.

    Very low priority, but it might be possible to avoid/minimize/mask the stroboscopic issue (ie. "flames stop flickering") with some manner of alpha-blending the skipped frames.  Though no doubt it'll either increase the CPU load (if done dynamically) or memory footprint (if you pre-generated the blend frames beforehand and store them in memory), to say nothing of more code. ;)

    Climbers climb at one pixel per frame (I compensate the doubled resolution with a doubled refresh rate) just like Walkers walk one pixel per frame. I think this should be ok...

    Too fast.  In the actual game climbers only move, in effect, every other frame, so it sounds like it's moving twice as fast in lemmini unless I misread your description above.  (Your walkers sound okay.)

    Do keep the climber speed close to the real game.  It's hard enough for a player to time climber explosions (which is necessary in a few levels) without a speedier climber magnifying the variance.


    - it is impossible to assign a builder to a lemming when he would hit his head before setting his first brick

    True, but what would be the correct behaviour? Build the first brick anyway and then stop?

    Yes, that's correct.  Please keep to the original's behavior on this.  It affects Mayhem 2.  Probably not enough to make it unsolvable, but definitely affects the usual solutions such as the one described [u]here[/u].

    Phew, the hell exit should look exactly like in the Windows version

    You would not believe how many people would scream out at this. (Though admittedly, I didn't know the Windows version's hi-res hell exit are also missing horns like the Mac, and I don't really care too much myself.)  But since this is just a graphics issue, you don't really need to fix this yourself.  I can try uploading an alternative graphics with the horns at some point, once I go back to review how WinLemm stores its graphics......
    geoo89
    22 Feb 2006 22:48:38
    Re: Lemmini - Lemmings for Java - public Alpha
    I forgot to say: Everytime I say 'pixel' I mean a low-res pixel, i.e. you'd need to calculate with 2 px.

    The digger animation, as it was already said, seems a bit strage also to me.

    Could you substantiate this? The animation is "misc/lemm_13.gif". As far as I remember, it cycles once from first to last frame, than applies the dig mask, than starts with frame 0 again.

    I dunno exactly, but comparing with Winlemm or DOS, it is different. It seems to me that, when digging the first layer away, the animation is shown as usually, and when digging the second layer, the animation is shown horizontally mirrored.

    Phew, the hell exit should look exactly like in the Windows version and I can't follow you with the brick style exit. The exit area is not black for me. The exit consists of two parts: a static part "styles\brick\bricko_0.gif" and an animated part "styles\brick\bricko_9.gif". Looks ok for me!?

    Well, the horns also don't show up in WinLemm high-res, however in low-res.
    An a little high-res-like looking option is rendering it with '2XSAI Kreed's Engine", here's an image of the Genesis lemmings exit: http://207.58.177.175/~geoo89/lemmings/Hell_exit.PNG; however it doesn't match well to the other style (colors etc.)
    The Bricks exit, I just noticed, the problem doesn't appear in all levels: e.g. in Tame 1 it doesn't appear, however it appears in most of the other levels, e.g. Havoc 5, Crazy 2.; again, here's an image: http://207.58.177.175/~geoo89/lemmings/Brick_exit.PNG

    - changing the RR influences the outcoming of the lemmings instantly, at least in the DOS version the RR changes effectively only after outcoming of the next lemming

    Phew, well, this doesn't sound like a major issue to me. Does this affect gameplay?

    Not drastically, at least I don't have problems with it; the player just needs to change the RR a little later the way it is now.

    - when building on a miner's tunnel or a 45 degree slope (away from it, not into), the following lemmings cannot access the bridge of the builder, might be fixed having the bridge start by 1 px shifted
    With miners, this is probably a problem of pixel alignment as (almost) everything in Lemmini is pixel accurate vs. 2 or 4 pixel accuracy in the "original" versions. Builder vs. builder is strange since builders only start at even positions and the step has an even width. You don't have a screenshot of this, do you?

    No problem, here's a little image showing the situation: http://207.58.177.175/~geoo89/lemmings/slope_builder.PNG


    I somehow managed to have a lemming survive the nuke, I don't know how. But it happened twice, both times in the level "It's all a matter of timing".

    Then I noticed some things in Wild 16: Five alive:
    - The bomber, who also breaks through the thinned brick in the WinLemm version, doesn't break through; in the solution on the Lemmings solution page it is actually not needed, but iirc I used it when I solved the level and it also seems intended.
    - The miner doesn't turn around when hitting steel
    - The miner doesn't take out its mask completely when getting on steel, however I don't know whether it is intended to work that way, it firstly also works that way in Cheapo and is secondly more exact
    ccexplore
    22 Feb 2006 22:49:56
    Re: Lemmini - Lemmings for Java - public Alpha
    -Just something of preference really, but I think you should use the classic toolbar instead of the Cheapo one.

    The Cheapo toolbar is actually the toolbar graphics of WinLemm, despite looking very different from the toolbars in other versions of Lemmings.

    Actually I take that back.  They are not identical, but it's still true that the two are very similar, especially in the graphics of the lemming skills.  (Wikipedia's entry on Lemmings have a screenshot of WinLemm's toolbar.)

    Again, all graphics issues can theoretically be resolved once someone write a tool to convert from bitmaps to the format used by WinLemm.
    0xdeadbeef
    22 Feb 2006 23:00:41
    Re: Lemmini - Lemmings for Java - public Alpha

    Very low priority, but it might be possible to avoid/minimize/mask the stroboscopic issue (ie. "flames stop flickering") with some manner of alpha-blending the skipped frames.  Though no doubt it'll either increase the CPU load (if done dynamically) or memory footprint (if you pre-generated the blend frames beforehand and store them in memory), to say nothing of more code. ;)
    Dunno if I got what you mean here. I was talking about how silly it look if the flames stop moving just because I press the pause button. You talk about stroboscopic issues? Hm  :-/

    Climbers climb at one pixel per frame (I compensate the doubled resolution with a doubled refresh rate) just like Walkers walk one pixel per frame. I think this should be ok...

    Too fast.  In the actual game climbers only move, in effect, every other frame, so it sounds like it's moving twice as fast in lemmini unless I misread your description above.  (Your walkers sound okay.)

    Ok, will be fixed, builders as well I hope.




    I can try uploading an alternative graphics with the horns at some point, once I go back to review how WinLemm stores its graphics......

    I just need a gif or something. Maybe I'll have a look myself, but my list of things to do kinda exploded lately  :P
    ccexplore
    22 Feb 2006 23:26:25
    Re: Lemmini - Lemmings for Java - public Alpha
    -http://www.rocketsoft.gm-school.uni.cc/uploads/Lemini%20mistake.JPG If you look at that, the digger seemed to finish off with just a little gap instead of the usual size, leaving that bit of terrain which the lemmings respond to.

    Just so 0xdeadbeef knows what the issue is, basically the digger is one of the exceptions to lemmings checking only 1 pixel underneath their feet for falling (all pixels here are in low-res scale).  A digger's pit is 9 pixels wide, and on most versions, digging continues as long as at least one of the 7 pixels is terrain.  The leftmost and rightmost pixel of the 9-pixel width is ignored.
    Mindless
    22 Feb 2006 23:36:04
    Re: Lemmini - Lemmings for Java - public Alpha
    Small error...fixed.

    And don't forget about this.
    0xdeadbeef
    22 Feb 2006 23:43:19
    Re: Lemmini - Lemmings for Java - public Alpha

    I dunno exactly, but comparing with Winlemm or DOS, it is different. It seems to me that, when digging the first layer away, the animation is shown as usually, and when digging the second layer, the animation is shown horizontally mirrored.

    Hm, can't see any mirroring there, but I'll check.


    Well, the horns also don't show up in WinLemm high-res, however in low-res.
    An a little high-res-like looking option is rendering it with '2XSAI Kreed's Engine", here's an image of the Genesis lemmings exit: http://207.58.177.175/~geoo89/lemmings/Hell_exit.PNG; however it doesn't match well to the other style (colors etc.)

    Well, I think it's possible to add the horns, but it's some work to since it has to be done for every animation frame of "styles/fire/fireo_6.gif" and also the height of each frame mustn't change.


    The Bricks exit, I just noticed, the problem doesn't appear in all levels: e.g. in Tame 1 it doesn't appear, however it appears in most of the other levels, e.g. Havoc 5, Crazy 2.; again, here's an image: http://207.58.177.175/~geoo89/lemmings/Brick_exit.PNG

    Ok I see. Interesting. I have an idea what this could be, but this needs some investigation.



    No problem, here's a little image showing the situation: http://207.58.177.175/~geoo89/lemmings/slope_builder.PNG

    Ok, I'll see if I can fix somehow. Most probably I'll only have to move the mask a little.


    I somehow managed to have a lemming survive the nuke, I don't know how. But it happened twice, both times in the level "It's all a matter of timing".

    Did you press "c" and activated cheat/debug mode by chance?


    Then I noticed some things in Wild 16: Five alive:
    - The bomber, who also breaks through the thinned brick in the WinLemm version, doesn't break through; in the solution on the Lemmings solution page it is actually not needed, but iirc I used it when I solved the level and it also seems intended.
    - The miner doesn't turn around when hitting steel

    Hm, dunno about these two. The explosion mask is a little smoother, but not smaller AFAIK. The miner will turn around if he hits steel, only if he can also continue to walk, he will walk into the same direction.


    - The miner doesn't take out its mask completely when getting on steel, however I don't know whether it is intended to work that way, it firstly also works that way in Cheapo and is secondly more exact

    Miners, diggers and bashers don't erase steel areas. Originally, my bombers wouldn't delete steel pixels as well but I changed that for the sake of compatibility. Dunno if it's needed for the miners etc. though.
    0xdeadbeef
    23 Feb 2006 00:56:05
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I updated to 0.2. If you're using the Webstart link, you should get the new version automatically.
    Unfortunately this forces new a resource extraction since I changed the builder mask.
    You will become used to it I guess ;)

    (Hopefully) Fixed 0.1 -> 0.2
    #  Briefing screen of level one shows "Level 1"
    #  Debriefing screen shows code of following level
    #  Reworked JNLP to get more RAM (128MB) to avoid potential out of memory issues
    #  Fast Forward with Enter
    #  Animations + Explosions stop in pause mode
    #  No builder restrictions for first brick
    #  Reduced climber speed by two
    #  Moved step mask a little bit so it should work on slopes (please test)
    #  A climber reaching a plateau does the animation "climber to walker" now
       instead of using the animation for conversion from climber to faller
    #  Release of first lemming doesn't depend on release rate
    #  Digger won't stop until a gap of 12 pixels width below him is free.
       Well it should be 14, but this somehow doesn't work.

    Now I should get some sleep. I hope to fix some more issues tomorrow, err today.  :-/

    ccexplore
    23 Feb 2006 04:40:33
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I found the first bug that actually makes a level impossible to solve.

    Try Fun 30 or Mayhem 26 (edit: typo; I meant Mayhem 24).  The lemmings don't fall into the gaps.  Or rather, they seem to fall but they manage to climb right back out on the next frame, which is even more wrong.

    This makes Mayhem 24 ("All or Nothing") impossible to solve.
     Fixed! [smiley=thumbsup.gif]

    --------------

    Other things of note:

    1) I don't see why it should take up 100% CPU in paused state when fast forward is on.  This is not a big deal except if you choose the "Restart level" command in the menu while both paused and in fast forward mode, the 100% CPU apparently cause the app to hang very noticeably for a few seconds before finally restarting.   Fixed! [smiley=thumbsup.gif]

    2) I think someone said this already, but diggers are not reverted to walkers when they hit steel, so at that point they don't move down but still keeps on "stationary digging".  Fixed! [smiley=thumbsup.gif]

    3) There is a "digger glitch" that's analogous to the imfamous miner glitch I discovered in the real game.  Basically, when I dig, the position of the digger appears to be 2 pixels lower than what's displayed.  So when I change it to a builder, the first build brick is below the visual bottom of the digger's pit.  Similarly when you bash you noticeably see that the bash tunnel's ground level is lower than where the bottom of the digger's pit was.  Fixed! [smiley=thumbsup.gif]

    4) When you assign a lemming a digger, it should dig down immediately on the next frame, instead of waiting for the end of the first animation cycle.  In effect, you start off with the last frame of the animation cycle so you can dig down immediately.  This affects Mayhem 3  Fixed! [smiley=thumbsup.gif]

    5) The feature that lets you assign skills while pausing.  <snip> Perhaps better would be to automatically unpause whenever you assign a skill while paused (like the behavior in Lemmings 2).  Fixed! [smiley=thumbsup.gif]

    6) Surely you could at least bring us back to the game's start screen instead of "Error: 30" and abort when you finish the last level of a rating.  Fixed! [smiley=thumbsup.gif]

    7) Blocker status should not be cleared when the blocker is about to explode (ie. those 16 or so animation frames where it shudders and yells "oh no").  I know WinLemm does clear the status but it's wrong compared to pretty much every other version. Do clear blocker status though if the "oh-no-er" falls (as when the ground underneath him is removed).  Fixed! [smiley=thumbsup.gif]

    8) In the real game it does not allow you to overlap blockers.  Fixed! [smiley=thumbsup.gif]

    9) Fun 9's title is wrong.  You repeated the repeat's title.  The correct title should be "As long as you try your best" (don't remember capitalizations offhand).  Fixed! [smiley=thumbsup.gif]

    10) Maybe that's just the way the hi-res graphics look, but are there really all these weird vertical lines on snow walls in the snow graphics set (see, for example, the wall to the entrance's right in Havoc 4).  (discussed)

    11) Blockers must affect builders.  Blockers are able to turn builders in mid-build.  This is required in order for [u]Mayhem 5 to be solvable[/u] (so this is the second level-breaking bug found).  More generally in the original game, blockers affect lemmings in pretty much any state.  Fixed! [smiley=thumbsup.gif]

    12) As I have suspected, your desire to match game second to real second does appear to make Just a Minute Part II impossible, or at least much much harder than even the Amiga version (I haven't succeed yet in Lemmini).  I'm afraid you need to slow down the game second a little.  I'll try to measure what the Amiga game second is at.  [Edit:  I finally succeed, so at least this is not level-breaking, but since the clock speed on this level does affect its difficulty very directly, it is still best to have it match the speed on the Amiga.  Maybe Lemmini is in fact at the same speed but I need to check to make sure.]

    13) On the special graphics levels (Fun 22, Tricky 14, Taxing 15 and Mayhem 22), the palette for interactive objects should be partially modified to partially match the palette used by the special graphics terrain.  You can look at the screenshots in http://home.wanadoo.nl/lemmings-solution as a guide for how the modification should look.

    14) When highlighted by mouse cursor, a walker and I think faller lemming with either climber or floater status (ie. assigned those skills beforehand but not actually doing said skills) should make the type read "climber"/"floater" rather than walker/faller.  In the case of a lemming with both status, the type is termed "athlete".  Fixed! [smiley=thumbsup.gif]

    (cont'd)
    ccexplore
    23 Feb 2006 05:16:21
    Re: Lemmini - Lemmings for Java - public Alpha
    About the music problem, if you have fixed the music for each level, then level 17 Fun should have music #17, level 18 should cycle back to music #1 (Cancan), and so the level I was playing, 1 Tricky, should have music #14, no?

    You can have a look in the resource directoy in  "levels/orig/orig.ini" (and "levels/ohno/ohno.ini"). <snip>

    Ahribar wasn't being terribly clear, but he's basically pointing out that you're treating each difficulty rating independently, so for example, Fun 1, Tricky 1, Taxing 1 and Mayhem 1 all have the same music.  What should happen is that after Fun 30, the next music in the sequence is used for Tricky 1, as if Tricky 1 is Fun 31, so to speak.  Hope that's clear.
    ccexplore
    23 Feb 2006 06:35:33
    Re: Lemmini - Lemmings for Java - public Alpha
    By the way, you might want to re-download Mindless's MODs.  The ones you have in Lemmini seems to be of a slightly older version with some minor errors in certain instruments of certain music.  It's not a big deal for the most part, and I bet I'm probably the only one who noticed. ;)
    ccexplore
    23 Feb 2006 06:55:37
    Re: Lemmini - Lemmings for Java - public Alpha
    (cont'd ccexplore's bug list):

    15) When shrugging (builder finishing 12th brick), visually the shrugger's drawn position seems to be off, although the actual position (as is apparent if you interrupt the shrugger by assigning another skill) appears to be correct.  Visually it looks like the lemming suddenly shift to the edge of the build brick, shrugs, then suddenly shift back to the correct position and start walking.  Fixed!  [smiley=thumbsup.gif]

    16) somewhat nitpicking, but in the level mini-map at bottom right corner, often the lemming red dots look like they are floating off the ground they are walking on, even when they are really walking on flat ground.  Should be fairly easy to fix by shifting your calculation of the red dot positions down slightly.  Fixed!  [smiley=thumbsup.gif]

    17) Exit detection (and possibly detection of other interactive objects, I haven't checked) does not seem to work for builder.  Fixed!  [smiley=thumbsup.gif]

    18) Diggers do not detect exits (and possibly other interactive objects that I haven't tried yet).  Tricky 28 is a good level to repro this bug.  Fixed!  [smiley=thumbsup.gif]

    19) Tricky 28 is also good to repro the following visual bug.  Dig down that tree root that directly leads to water until the digger finally drowns, at a lower depth than other lemmings due to bug #18.  Notice anything interesting about the portion of the water formerly obscured by the root that was dug away?  (And fixing bug #18 is not sufficient to fix this, this bug can still be repro w/o bug 18, by turning the digger to a blocker when sufficiently low but above the water, and then blowing up the blocker.  Fixed!  [smiley=thumbsup.gif]

    20) Lemmings come out of the entrance at too low a height.  This is most noticeable at Havoc 14 upper left entrance.  In Lemmini the lemming enter from that entrance at a height that puts him right in the narrow gap, instead of on top of it.  At least according to DOS Lemmings, I believe the correct entering height should be:  the feet of the lemming, which is the row of pixels just below the lemming graphics when he's walking, should be y_entrance + 14 (low-res), where y_entrance is the upper-left corner of the entrance object.  In any case the lemming should at least appear above or on top of the pyramid in Havoc 14.  (edit: this affects Tricky 12, Mayhem 1 and Mayhem 21: the fall from the entrance should be fatal)  Fixed!  [smiley=thumbsup.gif]

    21) This is a little hard to repro, but I have seen cases where a lemming who is about to explode walks towards a cliff, then start falling even though he is also "shuddering" (yelling oh-no etc.) I think it happens if the falling occurs at or near the same frame that the lemming is converted to a "shudderer".<snip>  Fixed!  (I think...)  [smiley=thumbsup.gif]

    22) Also somewhat nitpicking, but I think when nuking in Lemmini<snip>to maintain the right speed you would only assign exploders every other frame.  It's not really a big deal (at least in the official levels) though it does help stretch out the nuke sequence a little.  Fixed!  [smiley=thumbsup.gif]

    23) I'm definitely able to repro Mindless's bug about nuking not assigning exploders to every lemming, and I verified it has nothing to do with cheat mode. Fun 8 is good for this.  I can pretty much repro it every time by doing this:  set RR to 99 before first lemming out.  Set a blocker about 2-3 blocks (a block being one of the rectangle blocks making up the platform) right of entrance.  Wait.  When you start hearing lemmings exiting, start nuking.  You will then often find some lemmings not being assigned exploders.  Fixed!  [smiley=thumbsup.gif]

    24) The explosion graphics when a lemming blows up is not clipped at the level's bottom boundary, <snip>  Fixed!  [smiley=thumbsup.gif]

    25) Go to Taxing 6 and focus on the leftmost entrance.  Wait until a lemming is right on the edge of the leftmost steel block, about to fall.  Pause the game at that point.  This is what it looks like:<snip>
    Now assign that lemming a blocker when paused, then unpause.  You will see that the blocker frees itself (as if about to fall), but then seems to turn itself around instead of falling.  The clincher:  the blocker field remains, so even though no blocker lemming is actually there anymore<snip>
     Fixed!  [smiley=thumbsup.gif]
    ccexplore
    23 Feb 2006 09:43:59
    Re: Lemmini - Lemmings for Java - public Alpha
    26) Mayhem 2:  the following should not be possible:



    The climber should be killed by the flamethrower but that doesn't happen in Lemmini.  You can also see this in Taxing 21:  a lemming can fall off the edge of the steel block without getting killed by the flamethrower.  So I guess you are not making the trigger area for the flamethrower extend far enough.
     Fixed! [smiley=thumbsup.gif]

    27) This requires good timing to repro:  a shrugger (the shrug when the builder finishes building) is able to cancel an impending explosion, I believe if the explosion countdown reaches 0 during the midst of the shrug (or something of the like).  You can repro this by assigning the exploder when the builder is somewhere in the middle of laying down the 8th build brick.  Fixed! [smiley=thumbsup.gif]

    28) Blocker field not removed when blocker is killed by a trap:  Taxing 4 is a good place to repro this one.  Set RR to 99 before first lemming is out.  After the first lemming triggers the rope trap on the right, wait for the lemming following closely behind him to walk to the position that would trigger the rope trap.  The rope trap of course doesn't get triggered yet since it's still working on the first lemming.  So assign blocker to the passerby lemming.  Here's the fun:  after the rope trap finishes with the first lemming, it will proceed to kill the blocker.  But the blocker field will remain long after the blocker is gone.  Fixed! [smiley=thumbsup.gif]

    29) Rather minor complaint, but I'm finding that with the font you are using for the numbers in the skill toolbar, the digit "2" and "8" looks a bit too similar especially from a distance.

    30) It shouldn't be possible to assign exploders, climbers or floaters to lemmings that are drowning, disintegrating (like those traps in Fun 9), or splatting from a high fall.  Fixed! [smiley=thumbsup.gif]

    31) Havoc 20 is unsolvable.  The lemmings on the left entrance splat upon landing, which shouldn't be the case.  I'm guessing the lemmings are entering an entrance at a slightly incorrect x position (analogous to the "too-low" problem of bug #20).  Looks to me that shifting the entering position 2 pixels (hi-res) right should do it, I think.  Fixed!  [smiley=thumbsup.gif]
    Ahribar
    23 Feb 2006 11:22:53
    Re: Lemmini - Lemmings for Java - public Alpha
    14) When highlighted by mouse cursor, a walker and I think faller lemming with either climber or floater status (ie. assigned those skills beforehand but not actually doing said skills) should make the type read "climber"/"floater" rather than walker/faller.  In the case of a lemming with both status, the type is termed "athlete".

    In fact, in standard versions a lemming doing anything else who happens to be a climber, floater or athlete is displayed as "climber", "floater" or "athlete" and not the other skill. I don't know if you want to change this behaviour to match; personally I find it rather annoying.
    0xdeadbeef
    23 Feb 2006 18:55:54
    Re: Lemmini - Lemmings for Java - public Alpha
    Oh well, I just need to start somewhere. Maybe I need some kind of professional bug tracking :(


    1) I don't see why it should take up 100% CPU in paused state when fast forward is on.  If you choose the "Restart level" command in the menu while both paused and in fast forward mode, the 100% CPU apparently cause the app to hang very noticeably for a few seconds before finally restarting.

    I could explain, but you wouldn't like to know. Basically, I have to work around a bug in the JVM, Windows or both.
    Believe me: having 100% CPU load beats the alternatives by far.
    "Restart level" is so slow because the level is completely reloaded (including style) and redrawn. It's pretty fast on my machine, but I noticed it on other machines as well. Is on my optimization list.


    2) I think someone said this already, but diggers are not reverted to walkers when they hit steel, so at that point they don't move down but still keeps on "stationary digging".

    Ah ok, I messed that last last time I was working on the "break on steel" conditions. Will be fixed in next release.


    3) There is a "digger glitch" that's analogous to the imfamous miner glitch I discovered in the real game.  Basically, when I dig, the position of the digger appears to be 2 pixels lower than what's displayed.

    Will be fixed in next release.


    4) When you assign a lemming a digger, it should dig down immediately on the next frame, instead of waiting for the end of the first animation cycle.

    Will be fixed in next release.



    5) The feature that lets you assign skills while pausing.  Well, the original game doesn't have it, but I'm not exactly complaining.  [...]  A compromise would be to only allow at most one successful skill assignment while paused.  Perhaps better would be to automatically unpause whenever you assign a skill (like the behavior in Lemmings 2).

    Hm, I actually like the pause mode the way it is. But I'll consider the automatic unpause.


    6) Surely you could at least bring us back to the game's start screen instead of "Error: 30" and abort when you finish the last level of a rating.

    Sure I can, but it's a bit more work behind that.


    7) Blocker status should not be cleared when the blocker is about to explode (ie. those 16 or so animation frames where it shudders and yells "oh no").

    I put it on the list.


    8) In the real game it does not allow you to overlap blockers.

    Does this influence gameplay in a nagative sense?


    9) Fun 9's title is wrong.  You repeated the repeat's title.  The correct title should be "As long as you try your best" (don't remember capitalizations offhand).

    Ok, will be fixed.


    10) Maybe that's just the way the hi-res graphics look, but are there really all these weird vertical lines on snow walls in the snow graphics set (see, for example, the wall to the entrance's right in Havoc 4).

    Yes, it looks like in WinLemm. Unfortunately, not all the Hires Graphics look good. Indeed most of them were just upscaled and look horrible. I fixed some things here and there, but it would took me too much time to fix all tiles. Also the size of the patches would dramatically increase.


    11) Blockers must affect builders.  Blockers are able to turn builders in mid-build.  This is required in order for Mayhem 5 to be solvable (so this is the second level-breaking bug found).  More generally in the original game, blockers affect lemmings in pretty much any state.

    Indeed blockers only affect walkers at the moment.
    In the next release, blockers should also affect builders, bashers and miners. However that'a a little difficult to check.
    Also maybe the blocker mask has to be changed to affect builders more effectively.


    12) As I have suspected, your desire to match game second to real second does appear to make Just a Minute Part II impossible, or at least much much harder than even the Amiga version [...] Maybe Lemmini is in fact at the same speed but I need to check to make sure.]

    If necessary, I thought of patching the critical levels instead by introducing a game time based on seconds instead of  minutes.
    I'd need a list of levels with second based times for this, though.


    13) On the special graphics levels (Fun 22, Tricky 14, Taxing 15 and Mayhem 22), the palette for interactive objects should be partially modified to partially match the palette used by the special graphics terrain.  

    Graphics modifications have very low priority for me at the moment. However anybody is invited to to this. The resources are there.


    14) When highlighted by mouse cursor, a walker and I think faller lemming with either climber or floater status (ie. assigned those skills beforehand but not actually doing said skills) should make the type read "climber"/"floater" rather than walker/faller.  In the case of a lemming with both status, the type is termed "athlete".

    Put it on the list. Indeed I have to rework the whole "lemming under cursor issue", so I might add this then.
    ccexplore
    23 Feb 2006 19:24:05
    Re: Lemmini - Lemmings for Java - public Alpha

    1) I don't see why it should take up 100% CPU in paused state when fast forward is on.  If you choose the "Restart level" command in the menu while both paused and in fast forward mode, the 100% CPU apparently cause the app to hang very noticeably for a few seconds before finally restarting.

    I could explain, but you wouldn't like to know. Basically, I have to work around a bug in the JVM, Windows or both.
    Believe me: having 100% CPU load beats the alternatives by far.
    "Restart level" is so slow because the level is completely reloaded (including style) and redrawn. It's pretty fast on my machine, but I noticed it on other machines as well. Is on my optimization list.

    True, but what I was specifically targeting is restarting in the case of fast forward.  Since the increased CPU load is mainly due to the fast forward, it seems to me that you should automatically turn off fast forward before doing a restart.  Restart is much more performant when fast forward is off.


    5) The feature that lets you assign skills while pausing.  Well, the original game doesn't have it, but I'm not exactly complaining.  [...]  A compromise would be to only allow at most one successful skill assignment while paused.  Perhaps better would be to automatically unpause whenever you assign a skill (like the behavior in Lemmings 2).

    Hm, I actually like the pause mode the way it is. But I'll consider the automatic unpause.

    Just to clarify, when I said "I'm not exactly complaining", I mean that I'm not complaining about having a pause feature in Lemmini, in fact I love it.  So the main point was only the automatic unpause to prevent the ability to assign an arbitrary number of skills in a single frame.

    Of course, maybe others will feel differently and actually see the ability to assign that many skills at once as an asset for custom levels.  I can go either way on this.



    8) In the real game it does not allow you to overlap blockers.

    Does this influence gameplay in a nagative sense?

    Probably not, but I'd need to think more about this.  It definitely allow some moves that are otherwise impossible in the real game, which is somewhat worrisome.  For example, in the region where the blockers overlap, if a lemming is walking there it basically won't detect either blocker, so this means you can potentially selectively allow a lemming to pass thru a blocker by squeezing him between the old blocker and a new, overlapping blocker.

    12) As I have suspected, your desire to match game second to real second does appear to make Just a Minute Part II impossible, or at least much much harder than even the Amiga version [...] Maybe Lemmini is in fact at the same speed but I need to check to make sure.]

    If necessary, I thought of patching the critical levels instead by introducing a game time based on seconds instead of  minutes.  I'd need a list of levels with second based times for this, though.

    That would work for most affected levels, but you definitely don't want to do that for the "Just A Minute" levels, since it ruins the pun in the title.  I also think the second-based timing in a sea of levels with minute-based time limits will stick out like a soar thumb.

    So I'm thinking I would much rather patch the levels themselves instead.
    ccexplore
    23 Feb 2006 19:36:07
    Re: Lemmini - Lemmings for Java - public Alpha
    Then again, all Levels of the Windows version (+5 additional levels) are in,

    I am missing Tame 15-20, but that could conceivably be just my copy of WinLemm.  Anyone else have the same problem?  (Granted, few people would care about the Tame levels anyway.)
    geoo89
    23 Feb 2006 21:49:38
    Re: Lemmini - Lemmings for Java - public Alpha
    Then again, all Levels of the Windows version (+5 additional levels) are in,

    I am missing Tame 15-20, but that could conceivably be just my copy of WinLemm.  Anyone else have the same problem?  (Granted, few people would care about the Tame levels anyway.)

    For me only levels 17 - 20 are missing. But this is since they're also missing for WinLemm.
    I don't know for level 15 and 16 however.

    Two more things to add:
    - any terrain removing action leaves a black space in the mini map, I think it should be the background green
    - lemmings can get past a blocker when they're walking on a little higher level than the blocker and the blocker is placed at a certain point: Situation in Taxing 6
    ccexplore
    23 Feb 2006 21:54:10
    Re: Lemmini - Lemmings for Java - public Alpha

    For me only levels 17 - 20 are missing. But this is since they're also missing for WinLemm.
    I don't know for level 15 and 16 however.

    I probably miscounted and only 17-20 is missing (in fact I was originally thinking the last 5 level, so I should've said 16-20 anyway).
    ccexplore
    23 Feb 2006 22:04:16
    Re: Lemmini - Lemmings for Java - public Alpha
    Yes, it looks like in WinLemm. Unfortunately, not all the Hires Graphics look good. Indeed most of them were just upscaled and look horrible. I fixed some things here and there, but it would took me too much time to fix all tiles. Also the size of the patches would dramatically increase.

    Maybe instead of patching, another possible approach would be to take a low-res version of the graphics and then scale it up w/ some sort of anti-aliasing interpolation (geoo89 mentioned 2xSAI as an example).  Then for each individual graphics piece, the game now has a choice of either using the hi-res or the scaled-up lo-res version, which hopefully will minimize the need to directly patch the graphics.

    This for example would sound like a good solution for the horns in the hell exit.
    Ahribar
    23 Feb 2006 22:19:56
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, I've had a bit of a play on version 2. Much improved, and SO MUCH FUN!

    A couple of points I notice:

    -- "All lemmings accounted for" should have a full stop at the end. Yeah, I'm picky. Sue me.

    -- I played quite a few levels without crashing, and then got the crash when I tried to increase the RR again. Tame 8 this time.

    -- I don't agree with ccexplore that the 2 and 8 in the "number of skills" font are hard to distinguish; 8 and 9, on the other hand.....

    -- The toolbar should say that number of lemmings currently under the cursor after "WALKER" or whatever. And the IN percentage shouldn't have a leading zero if it's under 10%.

    -- Steel detection seems to be too wide; on 7 Crazy you now need pixel perfect accuracy to break the ceiling and avoid the steel. You should be able to bash even if a few pixels of the bottom of the steel are within the basher's field.

    -- I love, love, LOVE the slower screen scroll movement. Don't change it.
    ccexplore
    23 Feb 2006 22:32:57
    Re: Lemmini - Lemmings for Java - public Alpha
    -- I love, love, LOVE the slower screen scroll movement. Don't change it.

    I don't.  Sounds like this could be a user-configurable setting.  Or see suggestion in another post below.
    Ahribar
    23 Feb 2006 22:37:08
    Re: Lemmini - Lemmings for Java - public Alpha
    Anyway, it is the true Amiga version of ONML Tame 1, so, um, too bad, unless someone bothers to create an alternate MOD from scratch.  (And frankly, while I'm not exactly crazy about the Amiga version, I can't help but think maybe this is just a case of you being used to a particular version.)

    Yes, of course it is  :P  As you see, I had second thoughts and deleted that comment (namely, as soon as I noticed all the other ONML musics are different from what I'm used to too, I realised they must just be different on the version he's using).
    Ahribar
    23 Feb 2006 22:53:29
    Re: Lemmini - Lemmings for Java - public Alpha
    -- I love, love, LOVE the slower screen scroll movement. Don't change it.

    I don't.  Sounds like this could be a user-configurable setting.

    In fairness to you and other people who've complained about this maybe I should explain why I'm so enthused. Firstly I'm not sure whether it's Cheapo or other version I've played, but I've definitely been annoyed in the past at versions that scroll too fast. Secondly I love the feeling of exploring the level, taking in its design and not just zooming past everything before you get a chance to notice it. Thirdly you do have the mini-map for when you need to jump straight to a particular place, and most of the time when your builder is heading off-screen and you need to catch up with him, you will only want to scroll a short distance. The slower scroll makes it much easier to do that and stop exactly where you want.
    0xdeadbeef
    23 Feb 2006 22:58:49
    Re: Lemmini - Lemmings for Java - public Alpha

    15) When shrugging (builder finishing 12th brick), visually the shrugger's drawn position seems to be off, although the actual position (as is apparent if you interrupt the shrugger by assigning another skill) appears to be correct.  Visually it looks like the lemming suddenly shift to the edge of the build brick, shrugs, then suddenly shift back to the correct position and start walking.

    I will check, but at first look it doesn't look to bad for me.


    16) somewhat nitpicking, but in the level mini-map at bottom right corner, often the lemming red dots look like they are floating off the ground they are walking on, even when they are really walking on flat ground.  Should be fairly easy to fix by shifting your calculation of the red dot positions down slightly.

    The dots are already extended to the right and lower side. I added rounding, but this will not "fix" this as it's a matter of loss of precision that has to be expected.


    17) Exit detection (and possibly detection of other interactive objects, I haven't checked) does not seem to work for builder.

    True, only walkers, bashers and miners were allowed to exit. I now added builders and diggers.
    Other interactive objects are not limited.


    18) Diggers do not detect exits or water

    For exists see #17, they should drown on water however. I just drowned one. but it's not easys to do as the water mask is a little to small.


    19) Tricky 28 is also good to repro the following visual bug. [...]  

    Yeah I know. It's an optimzation issue. To fix minimal visual issues like this I had to copy the draw background with bitmask transparency.
    I think the performance loss on low end systems would be substantial. Anyway, this is low prio IMHO.


    20) Lemmings come out of the entrance at too low a height.  
    (edit: this affects Tricky 12, Mayhem 1 and Mayhem 21: the fall from the entrance should be fatal)

    Ok. Will be fixed (I hope)


    21) This is a little hard to repro, but I have seen cases where a lemming who is about to explode walks towards a cliff, then start falling even though he is also "shuddering" (yelling oh-no etc.) I think it happens if the falling occurs at or near the same frame that the lemming is converted to a "shudderer". That shouldn't happen, either he starts falling and skips the shuddering, or he shudders before the falling happens. Note though that it is correct for a shudderer who wasn't falling to start falling if the ground underneath him is somehow removed by another lemming.

    I'm not even sure if I understand the problem. Should not affect gameplay though, right?


    22) Also somewhat nitpicking, but I think when nuking in Lemmini, the assignment of exploders might be happening a little too fast.

    Very likely. I'll assign every second frame.


    23) I'm definitely able to repro Mindless's bug about nuking not assigning exploders to every lemming, and I verified it has nothing to do with cheat mode. Fun 8 is good for this.

    Hell, you're right! Should be fixed in the next release.
     

    24) The explosion graphics when a lemming blows up is not clipped at the level's bottom boundary

    True, will be fixed.


    25) You will see that the blocker frees itself (as if about to fall), but then seems to turn itself around instead of falling.  The clincher:  the blocker field remains, so even though no blocker lemming is actually there anymore, the lemmings cannot pass through the field as if the blocker is still there.

    Couldn't reproduce this with my current version. I would think this is the same issue as your #0 "The lemmings don't fall into the gaps".
    If so, it will be fixed in the next release.
    0xdeadbeef
    23 Feb 2006 23:18:06
    Re: Lemmini - Lemmings for Java - public Alpha

    OK, I've had a bit of a play on version 2. Much improved, and SO MUCH FUN!

    Sounds good. Let's hope you like the next version even more.


    -- "All lemmings accounted for" should have a full stop at the end. Yeah, I'm picky. Sue me.

    Will be fixed in the next release. I will rework all the "debriefing" screens later. Lots of messages are missing.


    -- I played quite a few levels without crashing, and then got the crash when I tried to increase the RR again. Tame 8 this time.

    Damn, I hoped it was a memory issue. I'm a little puzzles what this could be. Maybe the sound?
    Did you try to start the JAR from the command line. Exceptions of the runtime environment (out of mem etc.) can't be 100% catched by the program, but there should be a error text printed on the command line.


    -- I don't agree with ccexplore that the 2 and 8 in the "number of skills" font are hard to distinguish; 8 and 9, on the other hand.....

    If the more important issues are fixed, I will have a look if I can improve the font or find another one. This was coming with Lemmings for Windows (though it's obviously not used).


    -- The toolbar should say that number of lemmings currently under the cursor after "WALKER" or whatever. And the IN percentage shouldn't have a leading zero if it's under 10%.

    The Amiga version definetely has a leading zero. E.g. it display "00%" at the start of each level.
    The "under cursor" thing will be completely reworked including priority etc., but this might take some time.


    -- Steel detection seems to be too wide; on 7 Crazy you now need pixel perfect accuracy to break the ceiling and avoid the steel. You should be able to bash even if a few pixels of the bottom of the steel are within the basher's field.

    I'm not sure what you mean here. Screenshot? "Pixel perfect accuracy" is something that nearly impossible with the high resolution and all. Steel detection will be a little bit tweaked in 0.3.


    -- I love, love, LOVE the slower screen scroll movement. Don't change it.

    There are more important issues anyway. Maybe I'll make it customizable...
    Or what about speeding it up when pressing space, shift or whatever?
    Ahribar
    23 Feb 2006 23:34:16
    Re: Lemmini - Lemmings for Java - public Alpha
    I will check, but at first look it doesn't look to bad for me.

    Does to me; I noticed this problem too.

    The Amiga version definetely has a leading zero. E.g. it display "00%" at the start of each level.

    Needless to say, I want everything to be faithful to the Mac version  :P

    I'm not sure what you mean here.

    First you need to know the solution to Crazy 7. One lemming climbs/floats to the left, builds up to the wall holding the lemmings, bashes right the way across. On the actual game, you have to be a bit precise in where you place the bridge -- you need to strike the wall about one lemming's height below where the crowd are contained, so that you're not too low that you don't release them, and not too high that the steel stops you bashing at all -- but because of what I said, you can still bash if a few pixels of steel overlap the bash tunnel, you don't need pixel precision. On your current version, you do, which is bad news if as you say the high resolution makes the required precision impossible!
    Ahribar
    23 Feb 2006 23:36:35
    Re: Lemmini - Lemmings for Java - public Alpha
    There are more important issues anyway. Maybe I'll make it customizable...
    Or what about speeding it up when pressing space, shift or whatever?

    Speeding it up when you press shift is a good idea.
    ccexplore
    23 Feb 2006 23:41:46
    Re: Lemmini - Lemmings for Java - public Alpha

    15) When shrugging (builder finishing 12th brick), visually the shrugger's drawn position seems to be off, although the actual position (as is apparent if you interrupt the shrugger by assigning another skill) appears to be correct.  Visually it looks like the lemming suddenly shift to the edge of the build brick, shrugs, then suddenly shift back to the correct position and start walking.

    I will check, but at first look it doesn't look to bad for me.

    I think this is most noticeable when building to the right.  I'm less sure about building to the left


    16) somewhat nitpicking, but in the level mini-map at bottom right corner, often the lemming red dots look like they are floating off the ground they are walking on, even when they are really walking on flat ground.  Should be fairly easy to fix by shifting your calculation of the red dot positions down slightly.

    The dots are already extended to the right and lower side. I added rounding, but this will not "fix" this as it's a matter of loss of precision that has to be expected.

    Well, as long as it works most of the time I'm ok with it.  The main thing was that right now you could see the dots floating quite often.

    17) Exit detection (and possibly detection of other interactive objects, I haven't checked) does not seem to work for builder.

    True, only walkers, bashers and miners were allowed to exit. I now added builders and diggers.
    Other interactive objects are not limited.

    To avoid repeating variations of this at later times, I think detection should be added for lemmings in pretty much every state except possibly those related to dying.  That's pretty much how it works in the real game for example.  (edit:  Falling lemmings should probably also be excluded from exit detection actually)


    18) Diggers do not detect exits or water

    For exists see #17, they should drown on water however. I just drowned one. but it's not easys to do as the water mask is a little to small.

    It still looks to me though that when the digger drowns, he's floating at a lower elevation than a lemming that drowns after falling into water, which doesn't seem right to me.I think the problem was actually due to the digger's vertical position being lower than it should when switching from one action to another.  Since you fixed that problem, it has appeared to fix the drowning issue I striked out.


    21) This is a little hard to repro, but I have seen cases where a lemming who is about to explode walks towards a cliff, then start falling even though he is also "shuddering" (yelling oh-no etc.) I think it happens if the falling occurs at or near the same frame that the lemming is converted to a "shudderer". That shouldn't happen, either he starts falling and skips the shuddering, or he shudders before the falling happens. Note though that it is correct for a shudderer who wasn't falling to start falling if the ground underneath him is somehow removed by another lemming.

    I'm not even sure if I understand the problem. Should not affect gameplay though, right?

    Basically one should only see these 2 cases:
     1) Lemming walks towards cliff, reaches countdown 0 before falling, stops walking, shudders, explodes.
     2) Lemming walks towards cliff, falls before reaching countdown 0, explodes immediately w/o shuddering.

    I'm reporting that I'm seeing a case of mixing up 1 & 2
     3) Lemming walks towards cliff and falls, but nevertheless still shudders first (while also falling at the same time) before finally exploding.

    I guess this arguably doesn't affect gameplay too much since you need good timing to repro.  Still, it can be noticeable when nuking.  Anyhow, I'm ok with leaqving this as low priority.

    Also, maybe this bug is just another manifestation of #0.  Let's hope. ;) [edit: looks like it is, so I think it's fixed.]
    ccexplore
    23 Feb 2006 23:43:05
    Re: Lemmini - Lemmings for Java - public Alpha
    There are more important issues anyway. Maybe I'll make it customizable...
    Or what about speeding it up when pressing space, shift or whatever?

    Speeding it up when you press shift is a good idea.

    That was in fact what I was going to proposed before being interrupted by work. ;)  The shift idea is simple and doesn't require writing code for a config UI, so I think it's ideal.
    Jazzem
    23 Feb 2006 23:48:32
    Re: Lemmini - Lemmings for Java - public Alpha
    http://www.rocketsoft.gm-school.uni.cc/uploads/Lemming%20jip.JPG

    I know it's not very clear in that picture, but if you look the lemmings don't seem to respond to the bridge. It seems that starting a builder lemming on a downwards slope will have them start a pixel to the left of the surface.

    EDIT: Also: http://www.rocketsoft.gm-school.uni.cc/uploads/Lemming%20Oh%20no!.JPG

    The digger lemming there is actually stuck, he's going through his animatipn but he won't budge :-/
    0xdeadbeef
    24 Feb 2006 00:02:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Before I get my well deserved sleep, here's another version.

    FIXED 0.2 -> 0.3
    #  Walkers now turn to fallers immediately if the fall distance is far enough (solves problems in e.g. Mayhem - All or Nothing
    #  Fun 9 renamed from "I have a cunning plan" to "As long as you try your best"
    #  Digger now stop (again) if they hit steel.
    #  When converting a digger to another skill, the new type is no longer starting 4 pixels too low
    #  A lemmings assigned to digger skill, will immediately apply the diging mask
    #  Blockers affect builders now (also bashers and miners if someone managed to create such a situation)
    #  Assigning a skill (successfully) to a lemming unpauses the game if it was paused
    #  Builders can exit a level
    #  Improved error output
    #  Blocker status is not cleared when the blocker is about to explode, but only when it has exploded
    #  Fixed position at which lemmings enter the level (a little higher and 2 pixels to the right)
    #  Nuke assigned to new level only every 2nd frame to compensate for higher frame rate
    #  No more lemmings should survive a nuke
    #  Explosions clipped to level area
    #  Small congratulations text (preliminary) instead of crash when last level of a difficulty level was won.
    #  Newer versions of MOD files (?)
    #  Changed order of music files played. Most probably still not 100% correct.
    ccexplore
    24 Feb 2006 00:13:57
    Re: Lemmini - Lemmings for Java - public Alpha
    Wow, that's a lot accomplished in one day!  Thanks! [smiley=thumbsup.gif] [smiley=party.gif]

    I should note that I will be on vacation in the upcoming 2 weeks with little to no internet access, so you can rest assure that you will have breathing room for that long before the buglist explodes again. ;D ;)
    tseug
    24 Feb 2006 00:25:19
    Re: Lemmini - Lemmings for Java - public Alpha
    Just some information about the builder mask: Building to the right, the leftmost pixel of the step is exactly where the lemming is. Building to the left, the rightmost pixel is one pixel to the right of where the lemming is.

    EDIT: Still haven't tried it, no winlemm files.
    Ahribar
    24 Feb 2006 00:27:40
    Re: Lemmini - Lemmings for Java - public Alpha
    Excellent! The music order does appear to be right now (though I haven't tried every level.....)

    But, I now get the crash happening sometimes just when I'm playing, there doesn't seem to be a particular event that triggers it.
    ccexplore
    24 Feb 2006 00:42:54
    Re: Lemmini - Lemmings for Java - public Alpha
    Just some information about the builder mask: Building to the right, the leftmost pixel of the step is exactly where the lemming is. Building to the left, the rightmost pixel is one pixel to the right of where the lemming is.

    Although what you said is true for Amiga and DOS Lemmings, I do know for a fact that it is false for Mac Lemmings and I think also WinLemm.

    Personally I think the setup should be symmetrical with respect to facing direction, so in both cases the brick should start off exactly at the lemming's position, the brick extending in the facing direction.  This is the way it would work in Mac and WinLemm.
    0xdeadbeef
    24 Feb 2006 00:45:11
    Re: Lemmini - Lemmings for Java - public Alpha
    Excellent! The music order does appear to be right now (though I haven't tried every level.....)

    But, I now get the crash happening sometimes just when I'm playing, there doesn't seem to be a particular event that triggers it.


    If there's no message box displayed it's most certainly an issue of the runtime itself. so again: please start the game for the command line ("java -jar lemmini.jar") and tell me what it prints out there if it's crashing...
    tseug
    24 Feb 2006 00:49:20
    Re: Lemmini - Lemmings for Java - public Alpha
    @cce: This appears to be modeled after winlemm, which I know nothing about. uhh.... just ignore me until I get winlemm.........
    ccexplore
    24 Feb 2006 00:53:29
    Re: Lemmini - Lemmings for Java - public Alpha
    EDIT: Still haven't tried it, no winlemm files.

    I have upload the data files of WinLemm at Mindless's portal:

    http://it.travisbsd.org/lemmings/lemmingswelt/index.php?cmd=get&file=winlemm_data.zip

    I purposely removed all the executable-code-containing files, so that this is only usable for Lemmini.  Just unzip the contents into some folder, and direct Lemmini to that folder when installing.

    ccexplore
    24 Feb 2006 06:33:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Continuing buglist after upgrade to ver 0.3:

    32)
    First crashing bug I encountered.If the cursor highlights a blocker lemming whose explosion countdown has expired, the game crashes.  I think it was supposed to display "bomber", but since now with the fix the lemming has both "blocker" and "impending explosion" status, this confused the game into a java.lang.ArrayIndexOutofBoundsException  Fixed! [smiley=thumbsup.gif]

    33) (part of bug #7, copied here)  Fixed! [smiley=thumbsup.gif]

    34) With the fixed title for Fun 9 ("As long as you tried your best"), the title is displayed too far left, so the "Lev" in "Level 9: ..." is cut off.  Fixed! [smiley=thumbsup.gif]

    35) (continuation of bug #11, copied here)Blockers must affect builders.  Fixed! [smiley=thumbsup.gif]

    36) The trigger area for the exit in Havoc 15 is wrong.  If I recall correctly, you should not be able to trigger the exit as is; you are supposed to use either a digger or exploder to clear out a little bit of snow first before reaching the exit's trigger area.  Fixed! [smiley=thumbsup.gif]

    37) Possibly level-breaking: the trigger area for the exit in Havoc 19 is, um, missing???  Fixed! [smiley=thumbsup.gif]

    38) On Mayhem 26 or Fun 21 there is an isolated water object to the very left of the level.  I'm guessing that's actually in the WinLemm lvl data, in which case I guess the fix would be either patching or just keep it.  Fixed! [smiley=thumbsup.gif]

    39) In Lemmini Tricky 13 is an exact copy of its repeat in Mayhem 25.  For the correct level data for Tricky 13, see

    http://home.wanadoo.nl/lemmings-solution/lemmings/lemmings_tricky_levels11-20.html
     Fixed! [smiley=thumbsup.gif]

    40) Havoc 5 appears to be unsolvable in Lemmini.  For the intended solution, see

    http://home.wanadoo.nl/lemmings-solution/ohnomore/ohnomore_havoc_levels1-10.html

    .  The problem I believe is that Lemmini's maximum safe falling distance is not high enough.  In the original games you should be able to survive a fall of 63 (lo-res) pixels.

    That being said, the falling distance calculations in the original game is a little buggy.  Therefore, I will suggest retesting Mayhem 1<snip>
     Fixed! [smiley=thumbsup.gif]

    41) The entrance order of Havoc 12 "It's all a matter of timing" is incorrect, potentially breaking the level.  In general, entrance order is based on the order the entrances were listed in the LVL file, and you cycle thru them in that order, except with 3 entrances where instead of an exact 1,2,3,1,2,3 cycling, the original game does 1,2,3,2,1,2,3,2.  In Havoc 12 in the original game, this means left,middle,right,middle,left,...  Fixed! [smiley=thumbsup.gif]

    42) If I pause the game when the entrance trapdoors just started to open, and increase the RR to 99, then upon unpause, the lemmings will begin to come out right away, even though the trapdoor hasn't even finished opening yet!  Fixed! [smiley=thumbsup.gif]
    Ahribar
    24 Feb 2006 12:01:07
    Re: Lemmini - Lemmings for Java - public Alpha
    If there's no message box displayed it's most certainly an issue of the runtime itself. so again: please start the game for the command line ("java -jar lemmini.jar") and tell me what it prints out there if it's crashing...

    If I understood any of that, I would......
    0xdeadbeef
    24 Feb 2006 18:31:28
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, let's try it again:

    1) Download the jar from my website or directly via this link
       http://home.arcor.de/0xdeadbeef/lemmini.jar
    and save it somewhere on your machine.

    2) Open a command line (command.com or cmd.exe). E.g. by using the start menu, then Execute/Run, then type "cmd.exe" or "command.com" (without the quotes, then press enter).

    3) Change to the directory where you saved the JAR file.
    E.g. if you saved it on "d:\temp", type the following lines in the command line (press Enter after each line):
       D:
       cd \temp

    4) Start the JAR from the command line by typing
      java -jar lemmini.jar

    5) Play until the game crashes

    6) Look for error messages on the command line
    If there are any, make a screenshot or cut out the text and post it here.


    And some information about your system would be helpful (RAM size, CPU type/frequency, VGA card, desktop color depth).


    About all the other topics: sorry folks, I was long in the office today, debugging some code for a peripheral processor that I messed up while optimizing it for size. So I'm kinda not in the mood now to continue debgging. Also I'll be away for the weekend in two hours. So there will be no updated before Sunday or Monday. We shall see.
    Ahribar
    24 Feb 2006 21:02:30
    Re: Lemmini - Lemmings for Java - public Alpha
    Thanks.

    I'm afraid I didn't succeed in carrying out step #6 -- ctrl-alt-del wasn't working (or it was, but the program wouldn't "End Task") so i couldn't get out to see what was in the command line and had to restart.

    Two small things I noticed while playing:

    * ccexplore complained that the safe fall distance is too *high* on Mayhem 1 and they survive the initial fall when they shouldn't. But also, it's too *low* on Tame 4 -- there are several places you can see this, notably falling left off the platform just over the exit. On every version I've played they should survive that.

    * I see the Tame 1 exit has been improved to get rid of the unsightly black rectangle -- but Tame 5 still has it!
    ccexplore
    24 Feb 2006 21:22:46
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm afraid I didn't succeed in carrying out step #6 -- ctrl-alt-del wasn't working (or it was, but the program wouldn't "End Task") so i couldn't get out to see what was in the command line and had to restart.

    it sounds like rather than a crash (where the program aborts, possibly with some dialog box from Windows or Java about some error), you are actually saying Lemmini is frozen?

    * ccexplore complained that the safe fall distance is too *high* on Mayhem 1 and they survive the initial fall when they shouldn't. But also, it's too *low* on Tame 4 -- there are several places you can see this, notably falling left off the platform just over the exit. On every version I've played they should survive that.

    You confused the two versions and misread my comment.  In the earlier version (0.2) I pointed out lemmings come out of entrances from too low a starting height, which is why they survived (notice I didn't say anything about fall distances yet in ver 0.2).  That was fixed for version 0.3, but then I discovered that I can't survive the fall when playing Havoc 5.  I suggest increasing the safe fall distance (so I actually am saying it is too low in Lemmini), but also warned 0xdeadbeef to recheck Mayhem 1 after increasing the safe fall distance, because I know in the original game they don't calculate fall distances consistently, whereas Lemmini is probably more consistent in the fall distance calculation, which for Mayhem 1's fall from entrance could lead to a difference.

    * I see the Tame 1 exit has been improved to get rid of the unsightly black rectangle -- but Tame 5 still has it!

    I'm still seeing it in quite a number of places, so I don't think it was ever actually fixed yet.  It might've just been luck that got rid of it for Tame 1.
    Ahribar
    24 Feb 2006 21:46:52
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm afraid I didn't succeed in carrying out step #6 -- ctrl-alt-del wasn't working (or it was, but the program wouldn't "End Task") so i couldn't get out to see what was in the command line and had to restart.

    it sounds like rather than a crash (where the program aborts, possibly with some dialog box from Windows or Java about some error), you are actually saying Lemmini is frozen?

    Yes. Pretty much the same thing that happened to DragonsLover (page 1 of the thread). Since he also has Windows 98, maybe it's something to do with that?
    ccexplore
    24 Feb 2006 22:32:20
    Re: Lemmini - Lemmings for Java - public Alpha
    That's possible, I have WinXP and so far I encountered no such problems.  On the other hand, my impression is that DragonLover's problems also seem partly symptomatic of a slower machine, whereas that doesn't seem to be the case for you.

    0xdeadbeef:  is there an option to turn off sound effects as well as music?

    The only reason I ask is because one thing about raising the release rate is (relatively) frequent playing of a sound effect, in fact the same sound.  And Ahribar's machine froze at least two times during a RR change.  On that line of inquiry:  Ahribar, what about if you pick a level with 100 lemmings, get them all out, then start nuking?
    Ahribar
    24 Feb 2006 23:16:58
    Re: Lemmini - Lemmings for Java - public Alpha
    An interesting point -- I did in fact once have the crash problem during a nuke. On the other hand I have several times changed the RR or nuked without triggering it, and I have also had it once when I wasn't doing anything that caused sound effects to play at all.
    0xdeadbeef
    26 Feb 2006 23:50:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Hm, I changed quite a few things over the weekend. Hope I didn't mess too many things.
    For the guys with crashes: please try to deactivate music and sound.
    I'm also still waiting for some system info (RAM/CPU, DirectX installed etc.).


    Fixes/Changes 0.3 -> 0.4
    #  Fixed ArrayIndexOutofBoundsException when selecting A Blocker that is about to explode
    #  When a blocker that is about to explode ("oh no") falls, the blocker mask is erased
    #  Blocker skill can't be assigned when overlapping a blocker any more
       However it's (probably) still possible to create a gapless "line of blockers"
       Was this possible in the original?
    #  Erased trailing spaces from Fun 9 level name "As long as you try your best"
       that caused the string being displayed too far to the left
    #  Changed the way fast forward (and Superlemming mode) works. Should work much better and with
       less CPU load on mid-range machines. Could cause frame skip on very low end machines though.
    #  Pressing shift doubles scrolling speed
    #  Dragging right mouse moves screen (well, not perfect, but a start)
    #  When a Blocker reflects a builder, only the direction is changed, but the builder keeps building
       Also a reflected miner keeps mining
    #  Fixed masks for flamethrower (fire) and steam (snow)
    #  Shruggers can explode now (hard to check though)
    #  When a Blocker is trapped, the blocking mask is always removed now (well, I hope so)
    #  Exit mask visible on some Brick exits was resolved
    #  Additional skills like climbing, floating etc. can't be assigned to lemmings that are drowning,
       leaving the exit, splatting, trapped or exploding.
    #  Hidden exit in Havoc 19 works now
    #  Exit in Havoc 15 is working as it should
    #  Explosions speed up with FF and stop when paused.
    #  Menu option to disable sound
    #  Completely reworked lemming coordinate system. This should fix this like shruggers being offset
       and make it easier to become more compatible. However it is very likely that I broke some things
    #  Digger animation corrected (doubled animation length)
    #  Fixed (WINLEMM) level errors in "Fun - Live and Lem" and "Mayhem - Steel Mines of Kessel"
    #  Fixed typos in orig.ini resultin in wrong stats for "Tricky - Lemming Drops"
    #  Messed around with fall distance and entry height
    Ahribar
    27 Feb 2006 00:12:45
    Re: Lemmini - Lemmings for Java - public Alpha
    Would it be possible to make shift double the speed at which the RR changes too?

    EDIT: or an even better idea, increase the speed at which it changes with a normal click, but make shift-click change it by just one at a time, making it easier to get a precise number......

    I'll try out the new version very soon.
    Mindless
    27 Feb 2006 02:38:21
    Re: Lemmini - Lemmings for Java - public Alpha
    When on the level intro screen, the level starts upon mouse button press, could you have it wait until the button is released?
    geoo89
    27 Feb 2006 20:55:17
    Re: Lemmini - Lemmings for Java - public Alpha
    Due to your new changes indeed some new bugs appeared:
    - builders hitting their head don't turn around anymore, they just keep on building
    - when a digger has finished digging or is assigned a skill, he'll walk/execute that skill to the right, no matter what direction he went before
    - the bug that lemmings don't walk up bridges starting on slopes (http://207.58.177.175/~geoo89/lemmings/slope_builder.PNG) is back again, however it only seems to happen in special cases: I could only reproduce it in Tame 5 on a miner's slope building to the left, and even then it happened not everytime

    #  Explosions speed up with FF and stop when paused.
    I don't know whether you forgot or justs did not do, but also objects should be speeded up in FF.

    #  Messed around with fall distance and entry height
    The we all fall down levels are solvable now and Mayhem 1 works correctly, but 'Take care, Sweetie' (Wild 16) is still impossible: the second fall on the left should actually be survivable, but it isn't. Since everything seems to work fine for original lemmings, perhaps you could do it the same way it is done in the DOS versions: setting the max-safe fall distance of ONML 3 (low-res)-px higher than the distance for original lemmings?
    0xdeadbeef
    27 Feb 2006 22:23:33
    Re: Lemmini - Lemmings for Java - public Alpha
    Small update only (yet no resource extraction this time)...

    Fixed/Changes 0.4 -> 0.41
    #  FF speeds up object animations as well
    #  Some memory optimizations - Memory footprint should be distinctly reduced
    #  Builders stop building when reaching ceiling again (bug introduced in 0.3)
    #  Diggers "remember" direction (bug introduced in 0.3)
    #  Fixed error in fall distance calculation for walker converted into fallers -> fixes lethal fall in WILD 16
       (bug introduced in 0.2 while fixing ccexplore's bug #0)

    About "safe distances": I'll most probably put that in the ini file of the levelpack (orig.ini and ohno.ini). So people can also define their own safe distances in their own levelpacks. Anyway, at the moment, a lemming will splat if it fell at least 123 hires pixels. Following ccexplore and others, it should survive even a fall of 126  hires pixels (63 lores pixels). I had problems with this higher value though - but I begin to think this was related to the wrong fall distance calculation for walkers turning into fallers.
    Will have to check again, but most probably I can go up to 126 being safe now...
    Mindless
    28 Feb 2006 00:24:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixed/Changes 0.4 -> 0.41

    I've talked to ccexplore about this before.

    With 0.41 (or 0.4.1), at this point:


    I get this error:


    Every time.
    0xdeadbeef
    28 Feb 2006 11:19:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, again a new bug introduced by a bug fix (giving the digger back his direction) :-[
    Will be fixed this evening - I can't sign the Jar from work.
    0xdeadbeef
    28 Feb 2006 17:54:13
    Re: Lemmini - Lemmings for Java - public Alpha
    Just a small update, yet with resource extraction for the builder issue.
    Hope I didn't mess any things this time...

    Any news regarding crashes on '98?

    Fixed 0.41 -> 0.42
    #  Fixed Builder mask (again) to work better on slopes (resource extraction)
    #  Fixed ArrayOutOfBoundException thrown when accessing second direction for lemmings
      with only one direction (bug introduced in 0.41 when fixing digger direction
      "memory")
    geoo89
    28 Feb 2006 20:23:17
    Re: Lemmini - Lemmings for Java - public Alpha
    When a climber climbed out at the top of the game field (Havoc 7: 'Creature discomforts', lemming of the left entrance is made climber), I got the following error message: http://207.58.177.175/~geoo89/lemmings/Error_1.PNG

    Also, climbers (output) look as they'd be climbing a little in the wall, and at least for climbers facing left, I noticed when they hit the top, there's one frame they get walker (you can assign any skill at that point) before they fall.

    And also, builders hitting their head aren't checked correctly still: they can still build a few (three or four) steps too far when their head is already in the terrain, I suppose it's just the checked pixel that is the wrong one.
    0xdeadbeef
    28 Feb 2006 22:55:46
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/Changes 0.42 -> 0.43
    #  Builders shouldn't be able to leave the screen any more to the top
       causing ArrayOutOfBoundExceptions
    #  Added basic priority handling for "lemmings under cursor"
       Please tell me if it's ok this way.
    #  Reworked entry timing: Lemmings can only enter level if trapdoor is fully opened
    #  Music starts only after trapdoor opened
    #  Floater, climber or both skills (athlete) are displayed as "(f)", "(c)" and "(a)" behind
       the main skill. Just a test to hear some opinions on this.
    #  Reworked Cursor: active Lemming gets its own border, so it's clearer which lemming is
       active. Mixture of Winlemm and Miga look. Also the Cursor is the default Cursor now,
       so it moves smoother
    Mindless
    01 Mar 2006 02:40:53
    Re: Lemmini - Lemmings for Java - public Alpha
    Just a couple of notes:
    - Lemmings don't get the updraft that they should when opening thier umbrellas.
    - For the sake of future customizablilty, please use separate graphics for left and right animations (e.g. walkers, fallers, etc.).

    Again... (you probably just missed it earlier)
    Actually, by version number standards, 0.41 is newer than 0.5 since it would be the 41st minor revision. Bug fixes usually go under the third revision section (e.g. 0.4.1)
    EricLang
    01 Mar 2006 11:33:39
    Re: Lemmini - Lemmings for Java - public Alpha
    @MisterDeadbeef:

    Can you supply me with some technical information about graphic en level files?
    I'm starting my own lemming-clone programming project (it will be freeware too).
    Thanks,
    Eric
    0xdeadbeef
    01 Mar 2006 11:52:46
    Re: Lemmini - Lemmings for Java - public Alpha
    For info on SPR and PAL formats, have a look in this thread.
    http://forum.lemmingswelt.de/cgi-bin/yabb2/YaBB.pl?num=1132849781
    I posted about everything I know there.

    For the LVL format, just google for "lemmings level format".

    BTW: do you aim for smaller/different platforms (PDA, cellular phone, GBA) or why would you start your own remake?
    EricLang
    01 Mar 2006 12:09:44
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok thanks.
    I start my remake because of hobby. I'm programming databases now and this is much more fun.
    I'm using delphi so it's a pure win-application (or eventually Linux)
    EricLang
    01 Mar 2006 12:15:05
    Re: Lemmini - Lemmings for Java - public Alpha
    So you use winlemm as a base. So I must have this.
    What about the DOS files? (main.dat, vgaxx.dat, groundxx.dat, levelxxx.dat)
    geoo89
    01 Mar 2006 15:14:32
    Re: Lemmini - Lemmings for Java - public Alpha

    #  Added basic priority handling for "lemmings under cursor"
       Please tell me if it's ok this way.
    I got an error message caused by the new addition to the text saying what lemming is selected. http://207.58.177.175/~geoo89/lemmings/Error_2.PNG
    It was outputting "Walker(f)-12" and was giong to switch to "Builder" which was probably too long.
    About the general system, I don't know too much about the original one, but it seems ok, as far as I checked.

    #  Reworked Cursor: active Lemming gets its own border, so it's clearer which lemming is
       active. Mixture of Winlemm and Miga look. Also the Cursor is the default Cursor now,
       so it moves smoother
    Having the normal cursor AND the border for the lemming is a bit...strange (to me). I don't like it actually. Waiting for other opinions...
    0xdeadbeef
    01 Mar 2006 16:55:01
    Re: Lemmini - Lemmings for Java - public Alpha

    It was outputting "Walker(f)-12" and was giong to switch to "Builder" which was probably too long.

    OK, I did a "silent" update on this one. Should not happen again...

    Having the normal cursor AND the border for the lemming is a bit...strange (to me). I don't like it actually. Waiting for other opinions...

    The Windows version does the same thing, but border and cursor are monochrome and less bold. Maybe it would look better with a little thinner graphics. Anyway, I must admit I like the idea of split Lemmings frame and cursor for a number of reasons.
    0xdeadbeef
    01 Mar 2006 16:59:25
    Re: Lemmini - Lemmings for Java - public Alpha
    So you use winlemm as a base. So I must have this.
    What about the DOS files? (main.dat, vgaxx.dat, groundxx.dat, levelxxx.dat)


    Search the forum. Some guys here (ccexplore and Mindless I guess) investigated the DOS files. I was only interested in the Hires graphics from Winlemm.
    tseug
    01 Mar 2006 17:14:53
    Re: Lemmini - Lemmings for Java - public Alpha
    What is the best free disassembler that anyone here knows of?
    0xdeadbeef
    01 Mar 2006 18:09:40
    Re: Lemmini - Lemmings for Java - public Alpha
    Did you try PvDASM?
    http://pvdasm.reverse-engineering.net/index.php?Section=1

    I must admit however that I used the trial of PE Explorer the last time I felt the need for a disassembler.
    geoo89
    01 Mar 2006 20:35:35
    Re: Lemmini - Lemmings for Java - public Alpha
    Having the normal cursor AND the border for the lemming is a bit...strange (to me). I don't like it actually. Waiting for other opinions...

    The Windows version does the same thing, but border and cursor are monochrome and less bold. Maybe it would look better with a little thinner graphics. Anyway, I must admit I like the idea of split Lemmings frame and cursor for a number of reasons.
    Then you seem to have a different version of WinLemm since in my version either the cursor (when no lemming is selected) or the border appears, but never both.

    I actually like the idea that the selected lemming is pointed out. It's just that having additionally to the cursor the border around the lemming makes it unintelligible and somewhat strange.
    Just to give a different aspect, in Cheapo an arrow from above is pointing on the lemming that would be selected.
    0xdeadbeef
    01 Mar 2006 20:47:55
    Re: Lemmini - Lemmings for Java - public Alpha
    ]Then you seem to have a different version of WinLemm since in my version either the cursor (when no lemming is selected) or the border appears, but never both.

    I actually like the idea that the selected lemming is pointed out. It's just that having additionally to the cursor the border around the lemming makes it unintelligible and somewhat strange.
    Just to give a different aspect, in Cheapo an arrow from above is pointing on the lemming that would be selected.


    Right, I confused WinLemm with DHTML lemmings.
    0xdeadbeef
    01 Mar 2006 23:11:24
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/Changes 0.43 -> 0.44
    #  Reworked whole redrawing scheme. Redraw will take a little longer
       but "hidden" exits don't need special treatment any more. Also graphical
       glitches like removed pixels in water should be gone now.
    #  Checked/Fixed lemmings leaving playfield and according Exceptions
    #  Fixed Diggers "hanging" on steel in special situations


    Well, I'd bet I screwed something when changing the redraw since this was a major one.
    I'd be also interested if the performance was degraded distinctly from a prior version
    to 0.44.
    tseug
    02 Mar 2006 04:10:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Did you try PvDASM?
    http://pvdasm.reverse-engineering.net/index.php?Section=1

    I must admit however that I used the trial of PE Explorer the last time I felt the need for a disassembler.

    That looks good for a PE, but it can't disassemble lemmings. (which is what I'm trying to do, I should have been clearer)
    0xdeadbeef
    02 Mar 2006 18:16:35
    Re: Lemmini - Lemmings for Java - public Alpha
    Then why don't you use a trial of one of the commercial disassemblers (PE Explorer, BDASM, IDA Pro or whatever)?
    At least some of them should still support 16bit executables.
    tseug
    02 Mar 2006 21:05:24
    Re: Lemmini - Lemmings for Java - public Alpha
    The trial of IDA Pro wasn't good. I shall use google.....

    EDIT: All disassemblers seem to be:
    free, good, can disassemble dos exe   -   choose 2
    Mindless
    02 Mar 2006 23:31:14
    Re: Lemmini - Lemmings for Java - public Alpha
    Are any of the ones listed on Wikipedia of any use?
    0xdeadbeef
    02 Mar 2006 23:55:38
    Re: Lemmini - Lemmings for Java - public Alpha
    To get this back on topic, the usual release after midnight (boy I need some sleep)

    Fixes/Changes 0.44 -> 0.45
    #  Reworked MiniMap internals. Also "hidden" exits are no longer shown neither in the Minimap nor in the level preview (briefing).
    #  Reworked Floaters: there's a little "jump" up when the parachutes opens
    #  New debouncing for release rate icons/keys: first press is debounced, then the RR increases/decreases faster
    #  Reworked nuking. Now really no lemming can survive a nuke. Also types like exiting or drowning lemmings should get nuked.
    #  Messed around with "free pixels above" again to improve builder behaviour.
    Mr. Ksoft
    04 Mar 2006 14:58:29
    Re: Lemmini - Lemmings for Java - public Alpha
    I FINALLY got around to playing this.  Excellent, excellent, EXCELLENT job.  I like it much better than WinLemm.
    0xdeadbeef
    04 Mar 2006 17:59:56
    Re: Lemmini - Lemmings for Java - public Alpha
    Nice to hear that some folks actually like it  :D

    Anyway, here is version 0.50  (and no, I won't change my chaotic version numbers  ;D)
    The game is pretty much complete now feature wise. I will probably rework the menus a little and may add replay if anybody wants it, but I think it's ok to call it a beta now, since it's pretty close to what I imagined to be the first "real" release.
    I also think I fixed all of the bugs noticed by ccexplore and other testers (apart from graphical thinks like horns, colors etc.).
    Yet I am convinced that there are still lots of bugs around. So give it a try.

    Fixes/Changes 0.44 -> 0.50
    #  Changed: Player handling is in (Menu "Player"). This also means that only the first
       level of each difficulty level is available by default (see below).
    #  Changed: new Menu item "Enter Level Code". The Amiga level codes should work.
       To enable all Levels for testing, use levelcode "0xdeadbeef". This also enables debug/cheat mode
       (press "C"). In cheat mode, create a lemming at the cursor position with "space" or draw/erase
       bricks by pressing left/mouse button after changing to draw mode with "D".
    #  Changed some pixels in the number font. So 2, 8 and 9 should be a little better to keep apart.
    #  Fixed entry order for levels with 3 entries (was shifted by one). However, WinLemm doesn't
       have special treatment for 3 entries at all.
    #  Reworked dirt_39 since a one pixel offset would lead to a fall in Mayhem - 1 being not
       lethal.
    #  Increased safe fall distance to 126 and moved this as configuration entry to the levelpack inis
       (so "oh no" and orginal lemmings could have different safe fall distances). To keep Mayhem 1 fall
       from trapdoor lethal, I changed the entry (foot) position to 20 hires pixels under the upper
       trapdoor coordinates. I may add that in Winlemm, the fall from the trapdoor is NOT lethal,
       but it is in the Amiga version.
    #  Added more debriefing screens. Should be complete now???
    #  Fixed: Scolling via MiniMap or mouseDragging could cause screen flicker.
    #  Fixed: on the rightmost border of the level, dragging the mouse left didn't work
    #  Reworked homepage a little: some minimal instructions can be found there now
    Mindless
    05 Mar 2006 00:18:18
    Re: Lemmini - Lemmings for Java - public Alpha
       To enable all Levels for testing, use levelcode "0xdeadbeef". This also enables debug/cheat mode
       (press "C"). In cheat mode, create a lemming at the cursor position with "space" or draw/erase
       bricks by pressing left/mouse button after changing to draw mode with "D".

    Debug cheating is way too fun.  ;D
    0xdeadbeef
    05 Mar 2006 00:41:05
    Re: Lemmini - Lemmings for Java - public Alpha
    I think the debug features are really helpful for testing borderline cases - that's why I posted how to enable them.
    Then again, I must admit I caught myself trying to solve levels by only painting and erasing in cheat/draw mode  ;)
    0xdeadbeef
    05 Mar 2006 12:57:54
    Re: Lemmini - Lemmings for Java - public Alpha
    Spend the whole morning investigating why the java process would get more and more memory while the heap inside my program was constantly low. Indeed I found one clear memory leak (music), one resource leak (sound) and one not so obvious resource leak (painting levels). The music issue is my fault, whereas the other two issues are a little obscure since the JDK documentation doesn't really tell that the resources HAVE to be freed explicitly.

    Anyway, while the memory used by 0.50 could easily reach 300MB and more (when playing lots of levels and playing lots of sounds - especially easy when using the RR buttons), the footprint of 0.51 should always stay below 64MB.

    Considering the sound related crashes on Win98, this could be solved now. Give it a try.

    Fixes/Changes 0.50 -> 0.51
    #  Fixed (kind of) resource leak when playing sounds (Clip.close() via LineListener).
    #  Fixed memory/resource leak when loading a new music
    #  Fixed (kind of) resource leak when painting level (flush() is used on all Images/BufferedImages)
    Mr. Ksoft
    05 Mar 2006 14:39:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Well, the RAM usage stayed steadily at around 64MB.  That's good, but I found a bit of a bug.  Upon finishing a level, the music starts to play like the computer's frozen.  It'll play about 1-2 seconds worth, then go back to the beginning of that 1-2 second fragment and play it again, and again, and again.  This only happens on the "Level Complete" screen.  As soon as I click away from it, the music fixes itself.

    I also noted that Lemmini runs smoother than any of the official ports that I've played (PC/Amiga/Mac/Win95/you name it).  I like that.

    EDIT:  Another thing that bothers me is that the noise the builders make on their last 3 bricks is supposed to be the clicking noise, not that sound made when a miner hits steel.
    0xdeadbeef
    05 Mar 2006 15:13:09
    Re: Lemmini - Lemmings for Java - public Alpha
    Well, the RAM usage stayed steadily at around 64MB.  That's good, but I found a bit of a bug.  Upon finishing a level, the music starts to play like the computer's frozen.  It'll play about 1-2 seconds worth, then go back to the beginning of that 1-2 second fragment and play it again, and again, and again.  This only happens on the "Level Complete" screen.  As soon as I click away from it, the music fixes itself.

    While this didn't happen at my system, I changed the music stop code a little for 0.52. Could you try it again?


    I also noted that Lemmini runs smoother than any of the official ports that I've played (PC/Amiga/Mac/Win95/you name it).  I like that.

    This might be due to the fact that the screen update speed is doubled to compensate for the higher resolution.



    EDIT:  Another thing that bothers me is that the noise the builders make on their last 3 bricks is supposed to be the clicking noise, not that sound made when a miner hits steel.

    From what I can tell, this is the same sound as in the windows version, so most probably I just don't have another one. Are you sure the sound should be different?
    Mr. Ksoft
    06 Mar 2006 01:25:44
    Re: Lemmini - Lemmings for Java - public Alpha
    About the builder sound, I was thinking of the Amiga version, and it's like that in the Mac version too.  The Windows version wasn't right.  I checked the WinLemm data files, the CORRECT sound from the Amiga/Mac version is TING.WAV.

    Will check the 0.52 ASAP.
    Ahribar
    06 Mar 2006 14:33:46
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm afraid my computer at home isn't working at the moment and has had to go in for repair, so I haven't had a chance to test out the new version yet.
    0xdeadbeef
    07 Mar 2006 18:24:39
    Re: Lemmini - Lemmings for Java - public Alpha
    Some smaller updates...

    Fixes/Changes 0.53 -> 0.54
    #  Fixed: stopper mask was not completely removed in case of explosion etc., which made setting a new
       stopper at the same position hard to impossible (walkers were usually not affected though).
    #  Fixed: bug in LineListener. Maybe connected to "freezes" happening from time to time since
       I introduced the LineListener. Most probably not, but who knows.
    #  Fixed: Lemmini doesn't work on Macs because version number contains characters (0-beta)

    Fixes/Changes 0.52 -> 0.53
    #  Slowed down RR changes a little
    #  Fixed empty masks when using miners/bashers/builders to the left.
    Ahribar
    07 Mar 2006 21:52:28
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, I've had a go with the new version.

    No crashes when changing the RR as yet (though I'll keep trying and see if anything happens).

    I did however get a different sort of crash when using the pause function. The music stopped, and when I opened a different window and went back to Lemmini the screen was grey and I couldn't get it to respond except by using ctrl-alt-del > End Task.

    A couple of suggestions, not related to the crash thingy:

    * "Squasher" is a very silly name for the third Lemmings style. Why not use one of its standard names, "pink" or "marble"?
    * How about adding option-click on the release rate buttons to change it straight to the minimum or maximum?
    0xdeadbeef
    07 Mar 2006 22:14:43
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, I've had a go with the new version.

    No crashes when changing the RR as yet (though I'll keep trying and see if anything happens).

    Ah, that's something.


    I did however get a different sort of crash when using the pause function. The music stopped, and when I opened a different window and went back to Lemmini the screen was grey and I couldn't get it to respond except by using ctrl-alt-del > End Task.

    Hm, interesting. Is this reproducable? How long did you wait before shutting Lemmini down? How much free RAM do you have?
    If you can reproduce it, please also try to disable sound and see if it still happens.


    * "Squasher" is a very silly name for the third Lemmings style. Why not use one of its standard names, "pink" or "marble"?

    The name squasher stems from the LVL format description by "rt". I must admit I don't really cared since this is an "internal" name anyway. Is there any info available what's the "official" name?


    * How about adding option-click on the release rate buttons to change it straight to the minimum or maximum?

    I'd bet ccexplore would complain this would make some levels too easy.


    BTW: It really runs pretty well under Linux (just tested with Knoppix)

    Fixes/Changes 0.54 -> 0.55
    #  Changed drawing in minimap (alpha value always 0xff) to avoid different background color under Linux

    Ahribar
    08 Mar 2006 10:42:53
    Re: Lemmini - Lemmings for Java - public Alpha
    Hm, interesting. Is this reproducable? How long did you wait before shutting Lemmini down? How much free RAM do you have?
    If you can reproduce it, please also try to disable sound and see if it still happens.

    I'll keep trying.... when I have time. I'm afraid time is really difficult for me at the moment. Essays, you see.  :(

    The name squasher stems from the LVL format description by "rt". I must admit I don't really cared since this is an "internal" name anyway. Is there any info available what's the "official" name?

    I don't think any of the styles have "official" names. Except on Cheapo, of course, where that one is called "pink". I've also seen it called "tile" or "marble".

    I'd bet ccexplore would complain this would make some levels too easy.

    It can't affect difficulty, since you could always achieve the same thing by pausing and changing the release rate the slow way. I'm not proposing it be possible to lower the release rate below the initial value for that level, of course, just that you can get back to the minimum value in one click. Just a little convenience to the player, you see. (Or a big convenience, given that wanting to change the RR to the maximum or minimum is much more common than wanting to change it to a precise in-between value.)
    Ahribar
    08 Mar 2006 21:02:11
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm afraid I got the RR-change crash glitch again.

    How do I find out how much free RAM I have? I seem to have 256MB but I think that's total RAM.

    I'll try with disabled sound next and see what happens.

    EDIT: tried, and it seems to be crash-free. The other bug I mentioned (with pausing) also doesn't happen. And I checked the fatal fall height in Tame 4; it seems to be OK now.

    A few more points, though:

    * In normal (non-fast-forward) mode the screen seems to flicker a lot; it makes it painful to look at and also seems to affect lemming selection -- it doesn't work if I click while the screen is flickering.

    * When I nuked and then right-clicked to return to the main menu, the text in the middle of the intro screen didn't display correctly.

    * Your "WALKER(c)" and "WALKER(f)" displays to show that a lemming is a climber or a floater might look neater with capital C and F to match the other capital letters. Maybe a space between WALKER and the bracket, too.

    * And when there are a number of lemmings under the cursor, the display WALKER-2 looks like it's talking about a negative number  :P  Every version I've played just says "WALKER 2" with a space, no dash.

    * RR change seems to be faster on Lemmings levels than ONML ones. Could be just me though.

    * It's irritating to lose the player (and hence which levels I've solved) information when I download a new version. Could this be remedied somehow? Also, how about a command to delete players (if I get tired of one, or just if I typoed)?

    EDIT 2: I can't seem to reproduce the pause crash glitch even with sound enabled. Could have been because I had a lot of other programs open at the time, perhaps?
    0xdeadbeef
    08 Mar 2006 22:57:11
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm afraid I got the RR-change crash glitch again.

    How do I find out how much free RAM I have? I seem to have 256MB but I think that's total RAM.

    Phew, that's not too much. I stripped down Lemmini to use only 64MB of heap, but when playing sounds, the Java runtime environment seems to allocate additional RAM which I can't really control. I would guess that this is the source of your problems and I don't really know what to do against it.
    I didn't use Win98 for many years. Doesn't the Task Manager show the available/free RAM?


    I'll try with disabled sound next and see what happens.
    EDIT: tried, and it seems to be crash-free. The other bug I mentioned (with pausing) also doesn't happen. And I checked the fatal fall height in Tame 4; it seems to be OK now.

    I could limit the whole sound output to just some output lines. I guess this would reduce the chance of crashes since to RAM outside the JRE would be allocated when playing a sound. However this  is a major rework and I'd rather do an editor (no promise) than that. I'm also not sure if this would really fix the problem. But maybe I'll do it anyway.



    * In normal (non-fast-forward) mode the screen seems to flicker a lot; it makes it painful to look at and also seems to affect lemming selection -- it doesn't work if I click while the screen is flickering.

    This is a complete mystery to me. The whole screen is drawn to an offscreen buffer, than the offscreen buffer is copied to the frame buffer in one go. That's the maximum I can do to avoid flicker. I'd suspect this could be something in the JRE as well.
    What colour depth does your desktop have? I'd guess Lemmini wil run best for truecolor modes. If you don't use truecolor, could you give this a try?


    * When I nuked and then right-clicked to return to the main menu, the text in the middle of the intro screen didn't display correctly.

    Phew, the screen is blanked and completely redrawn. This really shouldn't possibly happen. Can you reproduce this or make screenshot? Anyway, I think this can really only happen "outside" Lemmini. E.g. memory corruption or bugs in the JRE or whatever.


    * Your "WALKER(c)" and "WALKER(f)" displays to show that a lemming is a climber or a floater might look neater with capital C and F to match the other capital letters. Maybe a space between WALKER and the bracket, too.
    * And when there are a number of lemmings under the cursor, the display WALKER-2 looks like it's talking about a negative number  :P  Every version I've played just says "WALKER 2" with a space, no dash.

    In my (fading) memories, the Amiga version had dashes. But probably I'm wrong.
    @all: Any other opinions on lowercase f/c/a and dashes???


    * RR change seems to be faster on Lemmings levels than ONML ones. Could be just me though.

    Lemmini doesn't really know if a level is original or ONML - it just sees a level. I could only image that if your CPU load is 100% that maybe some levels with more objects are slower and the the whole redraw is slowed down which would also affect the release rate. Did you check your CPU load when running Lemmini (e.g. Task Manager). Is it close to 100%?


    * It's irritating to lose the player (and hence which levels I've solved) information when I download a new version. Could this be remedied somehow? Also, how about a command to delete players (if I get tired of one, or just if I typoed)?

    Hm, is it really overwritten? I must admit I didn't notice it since most of the time I play my local version of course.
    I will move the player directory to the same directory as the resources.


    EDIT 2: I can't seem to reproduce the pause crash glitch even with sound enabled. Could have been because I had a lot of other programs open at the time, perhaps?

    Hm, how stable is your system anyway?
    Just to get an impression - could you try Paradroidz? This is a Java remake of the C64 classic Paradroid in 3D:
    http://www.jpct.net/paradroidz/
    0xdeadbeef
    08 Mar 2006 23:56:27
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/Changes 0.55 -> 0.56
    #  Speed up cleaning of bgImage when changing levels (not noticeable though)
    #  Moved players directory ro resource directory and player definitions from main ini to players.ini
       in the resource directory. Also allowed capital letter for players ini files.
    #  Skill attributes a,c,f now displayed in capital letters A,C,F
    #  Space is displayed instead of dashed for number of lemmings beneath the cursor.
    Ahribar
    09 Mar 2006 11:08:47
    Re: Lemmini - Lemmings for Java - public Alpha
    Phew, that's not too much. I stripped down Lemmini to use only 64MB of heap, but when playing sounds, the Java runtime environment seems to allocate additional RAM which I can't really control. I would guess that this is the source of your problems and I don't really know what to do against it.
    I didn't use Win98 for many years. Doesn't the Task Manager show the available/free RAM?

    Um...... where will I find Task Manager? (Sorry to be such a hopeless n00b...... I've always hated Windows and the way it seems to go out of its way to be as user-hostile as possible. But now I'm stuck using this computer because it's the one that has the internet connection. Damnable, really.)

    I could limit the whole sound output to just some output lines. I guess this would reduce the chance of crashes since to RAM outside the JRE would be allocated when playing a sound. However this  is a major rework and I'd rather do an editor (no promise) than that. I'm also not sure if this would really fix the problem. But maybe I'll do it anyway.

    I don't want you to do a major rework just to make it OK with antiquated systems!

    What colour depth does your desktop have? I'd guess Lemmini wil run best for truecolor modes. If you don't use truecolor, could you give this a try?

    Yes, I do use truecolor.

    Phew, the screen is blanked and completely redrawn. This really shouldn't possibly happen. Can you reproduce this or make screenshot? Anyway, I think this can really only happen "outside" Lemmini. E.g. memory corruption or bugs in the JRE or whatever.

    I'll have a go.
    Mindless
    09 Mar 2006 12:40:13
    Re: Lemmini - Lemmings for Java - public Alpha
    How do I find out how much free RAM I have? I seem to have 256MB but I think that's total RAM.

    Phew, that's not too much. I stripped down Lemmini to use only 64MB of heap, but when playing sounds, the Java runtime environment seems to allocate additional RAM which I can't really control. I would guess that this is the source of your problems and I don't really know what to do against it.
    I didn't use Win98 for many years. Doesn't the Task Manager show the available/free RAM?

    No, it doesn't, it only lists tasks.  Process Explorer might tho.
    lemmingzappa
    09 Mar 2006 15:31:04
    Re: Lemmini - Lemmings for Java - public Alpha
    Wow excellent work with this, ive just downloaded it so i'll give it a go and get back to you if I find any problems. Hopefully I wont post any which have been posted before  [smiley=cool.gif]
    Ahribar
    09 Mar 2006 16:43:22
    Re: Lemmini - Lemmings for Java - public Alpha
    Phew, the screen is blanked and completely redrawn. This really shouldn't possibly happen. Can you reproduce this or make screenshot? Anyway, I think this can really only happen "outside" Lemmini. E.g. memory corruption or bugs in the JRE or whatever.

    Screenshot:

    EDIT: screenshot taken down as the problem seems to be solved in the new version
    0xdeadbeef
    09 Mar 2006 20:10:03
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/Changes 0.56 -> 0.57
    #  Added a sychronization monitor to paint()/redraw() to (maybe?) avoid flicker on low end machines
    #  Added a sychronization monitor to the textscreen class to (maybe?) avoid redraw issues on low end machines
    #  Double-Clicking the release rate icons will jump to maximum/minimum value.
    Ahribar
    09 Mar 2006 20:30:29
    Re: Lemmini - Lemmings for Java - public Alpha
    Excellent! The flickering is completely gone, and I note that the player information retrieval works perfectly too.
    0xdeadbeef
    09 Mar 2006 20:43:06
    Re: Lemmini - Lemmings for Java - public Alpha
    And did you notice you can change the release rate to min/max with just one double click  8-)

    Fixes/Changes 0.57 -> 0.58
    #  Limited number of sounds to played in parallel to 6
    Ahribar
    09 Mar 2006 21:15:09
    Re: Lemmini - Lemmings for Java - public Alpha
    It didn't take much noticing, since you drew attention to it in your post  ;)  But thank you.
    Ahribar
    09 Mar 2006 21:49:34
    Re: Lemmini - Lemmings for Java - public Alpha
    Right, now that I can actually play without it crashing all the time, I'll keep testing it and see what I notice!

    Just a couple of points thus far:

    * The colon is missing in the title of 1 Crazy, "Quote: That's a good level".
    * When you nuke and return to the main menu, the window titlebar still shows the level title. I don't think it should.
    * Sometimes a click doesn't succeed in assigning a skill; it seems a bit hit-and-miss. It's annoying, because it means I have to pause an awful lot on the higher-precision levels.
    * Stretching a bridge is hard or impossible. By that I mean that on other versions, when a builder shrugs and becomes a walker, he can always take two steps before falling off his own bridge, so you can start the next bridge a little bit along. I can't get this to work in Lemmini.
    0xdeadbeef
    09 Mar 2006 23:30:31
    Re: Lemmini - Lemmings for Java - public Alpha
    Right, now that I can actually play without it crashing all the time, I'll keep testing it and see what I notice!

    Would be nice to have no crashes any more on Win98. I'll keep my fingers crossed.


    * The colon is missing in the title of 1 Crazy, "Quote: That's a good level".

    This is somewhat interesting. Actually, the colon is also missing on the Amiga version of ONML. However it's definitely in the Win95 LVL file. Then again, thereis no colon in the Amiga font. I wonder if it was just forgotten? I could easily add the colon to the font of course and most probably will do.


    * When you nuke and return to the main menu, the window titlebar still shows the level title. I don't think it should.

    Agreed


    * Sometimes a click doesn't succeed in assigning a skill; it seems a bit hit-and-miss. It's annoying, because it means I have to pause an awful lot on the higher-precision levels.

    I'll increase the minimum distance for a lemming to get considered to be beneath the cursor.


    * Stretching a bridge is hard or impossible. By that I mean that on other versions, when a builder shrugs and becomes a walker, he can always take two steps before falling off his own bridge, so you can start the next bridge a little bit along. I can't get this to work in Lemmini.

    While stretching a bridge is actuall quite easy IMHO, as you have the whole "shrugging" phase to assign the builder skill again, I'll look if I can/should shift the lemmings or step position a little. I moved the step to the opposite direction lately to fix the "builder on slopes" issue.
    Ahribar
    10 Mar 2006 10:10:31
    Re: Lemmini - Lemmings for Java - public Alpha
    While stretching a bridge is actuall quite easy IMHO, as you have the whole "shrugging" phase to assign the builder skill again, I'll look if I can/should shift the lemmings or step position a little. I moved the step to the opposite direction lately to fix the "builder on slopes" issue.

    Yes, assigning another builder to a shrugger is easy. I'm taking about stretching the bridge by letting him take one or two steps AFTER transitioning back into a walker. So that the bridge reaches further horizontally than it would if you assigned the builder immediately. It's possible and not too difficult on all other versions of Lemmings.
    0xdeadbeef
    10 Mar 2006 11:38:49
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I see. Most probably I'll just have to move the shrugger a little more to the left (if building to the right), so if converted to a walker, he'll start further to the left.
    0xdeadbeef
    10 Mar 2006 16:29:23
    Re: Lemmini - Lemmings for Java - public Alpha

    Fixes/Changes 0.58 -> 0.59
    #  Increased distance at which a lemming is considered "beneath the cursor"
    #  Changed window title back to "Lemmini" when jumping back to the intro screen.
    #  Use of own synchronization monitor for paint()/redraw() instead of using image as monitor
      (else first paint() could throw a NullPointerException resulting the menu being corrupted).
    ccexplore
    11 Mar 2006 19:26:38
    Re: Lemmini - Lemmings for Java - public Alpha
    * How about adding option-click on the release rate buttons to change it straight to the minimum or maximum?

    I'd bet ccexplore would complain this would make some levels too easy.

    Actually, since you can change the RR at will with the game paused (unless you decided to disable that in recent versions which I haven't gotten to), this will not affect level difficulty in any way.  In fact, I would go a step further and possibly consider the idea of some input method that lets the user directly enters via keyboard typing the desired RR (presumably with the game paused during the typing).

    Anyway, I'm back from my vacation.  Since it's been 2 weeks, it'll take a little time I guess before I fully catches up with recent developments.  I'll re-test my buglist on your latest version as soon as I get a chance, but from what I've read it sounds like the pre-vacation buglist should now be all cleared.  [smiley=thumbsup.gif]
    ccexplore
    12 Mar 2006 09:08:24
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm pretty sure most versions of Lemmings that are close to the Amiga version use the same priority system.  Unfortunately I haven't at the moment work out the exact system yet

    I've now disassembled the portion of the DOS version of lemmings that deals with skill assignment.  It is pretty much what everyone has known or expected.  It's just stated here in a more precise manner for programming purposes.

    I still haven't worked out however the exact way the game determines collision between a lemming and the cursor.  However, I did determine that the game calculates some (Lx, Ly) based on the lemming's position, some (Cx, Cy) based on the cursor's position, and then use the following test (in lo-res pixel units) as the condition for the lemming to be "under the cursor":

    (Cx >= Lx && Cy >= Ly && Cx <= Lx + 12 && Cy <= Ly + 12)

    which is equivalent to

    (Cx - 12 <= Lx <= Cx && Cy - 12 <= Ly <= Cy)

    So looks like to me this basically means the cursor square within which the lemming is considered to be "under the cursor", the size is 13x13 lo-res pixels.

    The game then loops thru all lemmings currently under the cursor (as explained above), and looks for the following candidates for assigning the skill to:

    candidate P: the most recently entered prioritized lemming

    a prioritized lemming is defined as one who is carrying out one of the following actions:
    • blocking
    • building
    • bashing
    • mining
    • digging
    • shrugging (when the builder finishes)
    • oh-no-ing (when the explosion countdown reaches 0 but before the actual explosion)
  • Notice that carrying the climber or floater skills does not earn the lemming prioritization.


  • candidate N: the most recently entered non-prioritized lemming (non-prioritized is the exact opposite of "prioritized")

    Note that either of the candidates may not exist.  Candidate P does not exist if all lemmings under the cursor are non-prioritized (ie. walkers etc.), and Candidate N does not exist if all lemmings under the cursor are prioritized (ie. a whole bunch of builders, say).

    After finding the two candidates, the following happens:

    1) if the non-prioritized selection mode is active, or if there are no prioritized lemmings

    Then the game will only consider up to 1 candidate for skill assigment, namely candidate N (if exists)

    "non-prioritized selection mode" is activated in Amiga and DOS Lemmings by holding down the right mouse button while clicking with the left.  For the Mac whose mouse has only one button, holding down the Option key (or some such key) on the keyboard stands in for the right mouse button.

    Lemmini currently does not support this non-prioritized selection mode, but a few levels (especially Havoc 5) intends for this to be used, so it should be supported.  I would further suggest that both the right mouse button and the keyboard method should be supported (so that if eithe the right mouse button or the XXX button or both are held down, you are in the mode).

    2) otherwise

    Then the game considers up to 2 candidates for skill assigment.  First choice candidate is candidate P, second choice candidate is candidate N (if candidate N exists).

    The game then displays the lemming type name for the first choice candidate, whatever it happens to be.

    Next, regarding the actual skill assigment.  Note that the description above might contradict some stuff I said in earlier posts; the description below is the authoratative version (as far as DOS is concerned).  Going through the 8 possible skills to assign:

    (cont'd next post)
    ccexplore
    12 Mar 2006 09:51:53
    Re: Lemmini - Lemmings for Java - public Alpha
    (cont'd from above)
    Before I dwelve into the specifics, note that the general form of handling is roughly like this:

    1) if first choice candidate is not already doing the skill you are trying to assign, nor doing actions like falling/climbing/blocking that doesn't really allow for most skill assignments, then assign to lemming.
    2) otherwise, check the second choice candidate instead if there is one.

    The actual details of course are a little more complex and sometimes unusual.  For bashers/miners/diggers there are of course also tests for steel and such.  And, contrary to what I said before, you apparently can assign exploders to drowning or exiting lemmings.  Not that it matters since the explosion would never happen.  It's also the case that the second candidate is often ignored.  There are also cases where the second candidate requires less tests, which are probably bugs that should be fixed for Lemmini.

    assigning a climber:

    1) if the first candidate is not already a climber, and if he is not doing any one of the following actions: blocking, splattering, exploding, then assign.
    2) otherwise, do not assign and ignore the second candidate.

    assigning a floater:

    1) if the first candidate is not already a floater, and if he is not doing any one of the following actions: blocking, splattering, exploding, then assign.
    2) otherwise, do not assign and ignore the second candidate.

    assigning an exploder:

    1) if first candidate does not already has explosion countdown status, and is not in any of these actions: oh-no-ing, fried, exploding, splattering, then do the assignment.
    2) otherwise, do not assign and ignore the second candidate.

    assigning a blocker:

    1) if first choice candidate's current action is one of the following: building, bashing, mining, digging, shrugging, walking, and if this lemming's blocker field would not overlap with another blocker's field, then do the assignment.
    2) otherwise, do not assign and ignore the second candidate.

    assigning a builder:

    1) if first choice candidate is too close to level's top boundary, then do not assign and ignore the second candidate.
    2) otherwise, check if the second choice candidate's current action is one of bashing, mining, digging, shrugging, walking.  If so, allow the assignment.
    3) otherwise, and if there exists a second choice, check if the second choice's current action is one of bashing, mining, digging, shrugging, or walking.  If so, allow the assignment to the second choice.

    Notice the bug here where the second choice candidate does not need to pass the boundary test.  This bug which is in the real game should probably be fixed in Lemmini.

    assigning a basher:

    1) if the first choice candidate's current action is one of building, mining, digging, shrugging, or walking, then
     i) check for steel and one-way walls.  If yes, then do not assign  and ignored the second candidate.  Otherwise assign.

    2) Otherwise, and if there exists a second choice, check if the second choice's current action is one of building, mining, digging, shrugging, or walking.  If so, then:
     i) check for steel and one-way walls for second choice.  If yes, then do not assign.  Otherwise assign to second chocie.

    assigning a miner:

    1) if the first choice candidate's current action is one of building, bashing, digging, shrugging, or walking, then
     i) check for steel and one-way walls.  If yes, then do not assign  and ignored the second candidate.  Otherwise assign.

    2) Otherwise, and if there exists a second choice, check if the second choice's current action is one of building, bashing, digging, shrugging, or walking.  If so, then:
     i) check for steel and one-way walls for second choice.  If yes, then do not assign.  Otherwise assign to second chocie.

    assigning a digger:

    1) if first candidate is standing on steel, then do not assign and ignore the second candidate.
    2) otherwise, check if the first candidate's current action is one of building, bashing, mining, shrugging, or walking.  If so, allow the assignment.
    3) otherwise, and if there exists a second choice, check if the second choice's current action is one of building, bashing, mining, shrugging, or walking.  If so, allow the assignment to the second choice.

    Notice the bug here where the second choice candidate does not need to pass the steel test.  This bug which is in the real game should probably be fixed for Lemmini.

    -----------------------

    One final thing to point out is that this system is not well-equipped for assigning climbers and floaters, because there, only the first candidate is considered.  And when you think about it, since already having climber/floater status doesn't affect priority, you end up with the situation where if you have a whole bunch of lemmings under the cursor and the most recently entered one is already assigned a climber, you would not be able to easily assign the other lemmings as climbers, unless you move the cursor (and that still won't help if some of the lemmings actually occupy the exact same position).  Thus it is probably helpful at least for those cases to deviate from the real game and redesign the assignment system so that climbers and floaters can be more easily assigned.
    Ahribar
    12 Mar 2006 10:16:50
    Re: Lemmini - Lemmings for Java - public Alpha
    Whew! Good work for finding all that out and thanks for going to all the trouble of explaining it! I do hope 0xdeadbeef can manage to make some use of all that information.

    However, I have a query. You say that climber/floater status doesn't affect priority. But what about the "floater method" for getting out of a situation where the lemmings are crowded in a pit and it's imperative to build out in the right direction? (11 Taxing, 26 Taxing etc.) I can think of three possibilities -- (1) you missed something; (2) it only works on certain versions; (3) it doesn't work at all and the times it's succeeded for me have actually just been luck.  :-?
    ccexplore
    12 Mar 2006 10:33:30
    Re: Lemmini - Lemmings for Java - public Alpha
    You say that climber/floater status doesn't affect priority. But what about the "floater method" for getting out of a situation where the lemmings are crowded in a pit and it's imperative to build out in the right direction? (11 Taxing, 26 Taxing etc.) I can think of three possibilities -- (1) you missed something; (2) it only works on certain versions; (3) it doesn't work at all and the times it's succeeded for me have actually just been luck.  :-?

    I remember testing your method way earlier, I believe in both DOS and Mac Lemmings, and I long knew that your explanation of the "floater method" is inaccurate, but since I didn't have an authoratitive way to determine what the game really does until today, I didn't speak about it.

    If you want to test this out yourself on the Mac, pick a tame level, and place two blockers fairly close to each other to trap the crowd to an area slightly larger than the cursor size.  Then assigning a lone lemming who isn't the last one out a floater.  Then wait until everyone's out and try to highlight the floater with the cursor.  Compare with the ease of doing so when the floater assigned was the last lemming out.

    The "floater method" really only works I think because:

    1) the way you used it on the levels you mentioned, the lemming you assigned floater to comes out late enough
    2) the area where the crowd is milling about is large enough
    3) you assign the next skill to the floater soon enough (so that there aren't that many, if any, lemmings following or otherwise being too close to the floater).

    so that the floater usually will not be overlapping under the cursor with another lemming that comes out even later.  In that case, your floater would happen to be "candidate N" (the latest non-prioritized lemming out under the cursor) with no candidate P's, so it becomes the first (and only choice) candidate.

    Nonetheless, your method is still useful to some extent, because if used properly, it can still serve as a method to track the position of a particular lemming out of a crowd of walkers, and tracking the lemming would allow you to usually determine its direction.  Namely, the lemming type text will read "floater", so you can tell where the floater lemming is, providing there isn't another lemming also under the cursor which came out even alter.
    Ahribar
    12 Mar 2006 11:26:56
    Re: Lemmini - Lemmings for Java - public Alpha
    Well, I'll have to take your word for it..... that's disappointing. I really thought I had something there....

    The "floater method" really only works I think because:

    1) the way you used it on the levels you mentioned, the lemming you assigned floater to comes out late enough
    2) the area where the crowd is milling about is large enough
    3) you assign the next skill to the floater soon enough (so that there aren't that many, if any, lemmings following or otherwise being too close to the floater).

    OH! When I read this bit I was thinking "wtf, the floater isn't any more likely to be a lemming that comes out late", but of course that's not true, because when you select the floater priority will be given to a lemming that comes out late. (Which I think might mean that the opposite of your second is true -- it works best when the area the crowd are confined to is as small as possible. But it's hard to calculate exactly.)

    So the method does work but not with certainty as I originally thought. Still worth knowing, I think (or hope). Thank you!
    ccexplore
    12 Mar 2006 13:12:04
    Re: Lemmini - Lemmings for Java - public Alpha
    OH! When I read this bit I was thinking "wtf, the floater isn't any more likely to be a lemming that comes out late", but of course that's not true, because when you select the floater priority will be given to a lemming that comes out late.

    That's right.

    (Which I think might mean that the opposite of your second is true -- it works best when the area the crowd are confined to is as small as possible. But it's hard to calculate exactly.)

    It's been a while since I remembered your method.  I was thinking you assigned the floater at the moment it appears out of the entrance, rather than after it already fell into the crowd.  In your case it would indeed be better that the crowd is confined to a small area instead.

    If you do assign the floater before it merges into the crowd and the floater you assign and start tracking right at that point, then it should make sense that, by either making the floater be as late as possible, and/or by making the crowd area larger (so the floater is less likely to run into a later lemming, with the extreme case where if the area is large enough so that the crowd density is very low, you can more or less tracked the lemming by direct visual without using the floater), you get more accurate tracking.

    ----------

    I also want to add that after some thought, perhaps Lemmini doesn't have to be 100% compatible with the way skill assignments are handled in DOS Lemmings, which, now that I've written it down, does have some "unusual" corner cases.  Especially since in usual play you mostly run into simple cases (mostly those involving just one lemming being under the cursor), so the way it works now in Lemmini is "almost good enough" most of the time.  One could even consider expanding the selection method to support Cheapo extensions like selecting only certain facing directions and true tracking of a single lemming.
    Ahribar
    12 Mar 2006 13:23:20
    Re: Lemmini - Lemmings for Java - public Alpha
    I also want to add that after some thought, perhaps Lemmini doesn't have to be 100% compatible with the way skill assignments are handled in DOS Lemmings

    Probably not, but any discrepancies that actually make the level harder to solve should definitely be got rid of. Like the bug I noticed to begin with and still don't know if it's fixed or not, that if you had two lemmings under the cursor, one a builder, sometimes it would look at that lemming and think "already a builder so can't assign builder skill" and not even consider the other.

    I was thinking you assigned the floater at the moment it appears out of the entrance, rather than after it already fell into the crowd.

    Because I didn't know what I know now about skill selection mechanics!  ;)  In fact, I think I can use this to provide a method that really does give certainty:

    (1) Make last lemming a floater as it leaves entrance
    (2) Hold cursor just touching edge of crowd confinement area and wait for floater to appear
    (3) Calculate when floater will be in the centre facing the right direction

    Similar to what you were saying, but you see that it doesn't depend on "tracking" the lemming from the time it leaves the entrance to when you're ready to release the crowd.
    0xdeadbeef
    12 Mar 2006 17:24:25
    Re: Lemmini - Lemmings for Java - public Alpha
    Damn, ccexplore's vacation is already over  :-/  ;D
    Jazzem
    12 Mar 2006 17:56:15
    Re: Lemmini - Lemmings for Java - public Alpha
    Better start sleeping in the office! ;)
    Ahribar
    12 Mar 2006 18:02:49
    Re: Lemmini - Lemmings for Java - public Alpha
    Damn, ccexplore's vacation is already over  :-/  ;D

    Whether that's a good or a bad thing depends on which he has more time for -- finding more faults with Lemmini or getting back to work on my MIDIs!  :D
    ccexplore
    13 Mar 2006 16:43:51
    Re: Lemmini - Lemmings for Java - public Alpha
    Whether that's a good or a bad thing depends on which he has more time for -- finding more faults with Lemmini or getting back to work on my MIDIs!  :D

    Hmm, and I was thinking getting bugs fixed is a good thing for Lemmini......  ::) ;)

    Anyhow, some of you might have noticed that I have finished verifying and crossing out almost all of the bugs on my old buglists, so things have definitely improved in Lemmini, and no doubt this means the buglist will expand more slowly than when it was before my vacation.

    And now [ominous music begins... ;)], bugs for version 0.59:

    43) The password system needs to be rewritten.  In the real game (Amiga, PC, Mac version at least; probably also true about WinLemm), the passwords are actually calculated algorithmically, based on how you did on the preceding level.  (See also this thread.)  One unfortunate result is that there can be multiple valid passwords for any given level.  Whereas it appears that Lemmini uses a fixed password list, with exactly one valid password per level.<snip>  (discussed...)

    44) There's something wrong with being able to switch players while you are playing a level.  For example, say I completed Fun 1-2 on Player 1, and then at the title screen or actual level of Fun 3, I use the menu to switch to Player 2.  The completion of Fun 3 would then cause Player 2 to be updated as having access to Fun 4, and Player 1 is not updated as such.

    It seems to me that the logical solution would be to go back to the game's title screen whenever you switch players, so one player cannot "steal" the progress of another as described above.

    45) On a similar note, right now player progress appears to be saved for only the current player, and only when the game is exited, whereas I'd think it should either be saved at every level completion (the ideal solution, in case the game crashes at some point), or at least also be saved during a player switch.  Fixing. [smiley=mikecool.gif]

    46) Fun 25's title is incorrect (it used its repeat's title).  The correct title is "Lemmings Lemmings everywhere".  I've also checked every Lemmings levels' titles, and this is the only incorrect title found.  Fixed! [smiley=thumbsup.gif]

    47) Strange behavior with blockers turning builders:  pick a level, say, Taxing 1.  Have the first lemming out build immediately upon landing.  Then have the second lemming out be a blocker immediately upon landing.  Even though the second lemming out would be slightly to the left of the first, and the first is building to the right, nevertheless the first lemming immediately turns around and builds left.  Fixed! [smiley=thumbsup.gif]

    48) Steel/one-way-wall detection for miner needs to be revised.  For example, see this screenshot from Fun 23:



    This is the last stroke before the miner is finally stopped by the steel.  I would think he should be stopped a little sooner, certainly before half his body has already sunken into the steel.

    49) In Fun 9, do nothing and wait until the crowd starts approaching the grinder on the left, and more than 1 lemming has been killed.  Move the cursor to be as left as possible while still highlighting lemmings (basically, highlight the lemmings that are being killed).  You will find that the lemming type text will often read " 4" or the like (ie. a blank followed by a number).  Fixed! [smiley=thumbsup.gif]

    (cont'd)


    ccexplore
    13 Mar 2006 17:06:44
    Re: Lemmini - Lemmings for Java - public Alpha
    50) This has already been pointed out, but I kinda like to see it fixed so I'm repeating it here:  the jumper.  I know there is currently no graphics yet for the jumper.  So for now, just pick one of the animation frames for the walker to stand in for the jumper, or perhaps just continue on with the walker animation during jumping.  The important thing is that on a step of 3-6 lo-res pixels tall, the lemming (at least in Amiga/PC/Mac etc. Lemmings) does not instantaneously jump to the top of the step, instead it moves up vertically by up to 2 lo-res pixels per lo-res frame until it reaches the top of the step.  Note also that jumpers are not eligible for skill assignment, so you can't for example have it start bashing before it finishes jumping.  Fixed! [smiley=thumbsup.gif]

    51) I know a while ago, for compatability's sake, you decided to make exploders behave like the real game, where all terrain is taken out when the bomber is standing on steel, and no terrain is taken out when the bomber is not standing on steel.

    However, since Lemmini is still masking out steel and one-way-walls when bashing and mining (unlike the original game), I think Lemmini might as well break compatability for exploders also.  That is, go back to the masking approach rather than testing where the bombing is standing.
     Done. [smiley=thumbsup.gif]

    52) Lemmings can walk thru walls that are only 1 hi-res pixel thick.  You can get this to happen on Fun 20.  After building to the platform with the poles, send a climber up to the first pole.  Then have it build one brick while on the top and then dig down.  If done right, you can have the digger leave undisturbed the leftmost column of hi-res pixels of the pole.  Have the digger dig all the way down the pole and then stop digging.  You've now created a wall only 1 hi-res pixel thick, and lemmings can walk through it.

    Since this is clearly a hi-res only issue, I need to install WinLemm to test out what happens there.  I suppose if WinLemm exhibits the same behavior, I think I can live with it, weird as it obviously is.
    EricLang
    13 Mar 2006 17:14:43
    Re: Lemmini - Lemmings for Java - public Alpha
    About the passwords. There are indeed many valid passwords for a level. Maybe it would help if a we collect a list of valid passwords for a level and try a little "reverse engineering". Try to see what's the same about these strings...
    Ahribar
    13 Mar 2006 17:23:40
    Re: Lemmini - Lemmings for Java - public Alpha
    49) In Fun 9, do nothing and wait until the crowd starts approaching the grinder on the left, and more than 1 lemming has been killed.  Move the cursor to be as left as possible while still highlighting lemmings (basically, highlight the lemmings that are being killed).  You will find that the lemming type text will often read " 4" or the like (ie. a blank followed by a number).

    I think that's because there is no name yet for a lemming that's being killed in the manner shown in Fun 9.  I don't know of a standard name myself.  You can also choose not display anything for this case, since after all, right now you would get " " without even the number anyway, if only 1 lemming has been killed.


    I think the logical solution would be to follow Cheapo -- the lemming being killed isn't actually a lemming any more, it's part of the trap animation. So cursor should say "WALKER 1" if there's one other lemming under the cursor and be blank if he's the only lemming under it.
    ccexplore
    13 Mar 2006 17:27:12
    Re: Lemmini - Lemmings for Java - public Alpha
    About the passwords. There are indeed many valid passwords for a level. Maybe it would help if a we collect a list of valid passwords for a level and try a little "reverse engineering". Try to see what's the same about these strings...

    That's a good idea but there's no need.  The lengen.zip I mentioned above already contains the information for encoding a password.  So it's mainly just a matter of understanding the encoding process in order to come up with the inverse, the decoding process.  Understanding the encoding process is also useful if we make Lemmini imitate the real game better when giving out passwords, by giving out a generated password (like the real game does) rather than a password stored in a list.

    Also, some people did make an effort to try to reverse engineer it by looking at the codes only; see this thread I mentioned earlier.
    ccexplore
    13 Mar 2006 17:30:05
    Re: Lemmini - Lemmings for Java - public Alpha
    I think the logical solution would be to follow Cheapo -- the lemming being killed isn't actually a lemming any more, it's part of the trap animation. So cursor should say "WALKER 1" if there's one other lemming under the cursor and be blank if he's the only lemming under it.

    Is that how things works in Cheapo?  Remember that the trap in Fun 9 is a so-called "constant trap", meaning it kills lemmings continuously no matter how many are already in the process of being killed.  This is why you could even get multiple killed lemmings in the same position in the first place, which is the cause of the "<blank><number>".  This is in contrast to the type of "non-constant" traps like the squasher trap in Taxing 6 (compression method 1).  Being a constant trap also means the lemming being killed is not part of the trap animation.
    Ahribar
    13 Mar 2006 17:46:57
    Re: Lemmini - Lemmings for Java - public Alpha
    Is that how things works in Cheapo?

    Oh -- you're right that I confused the two types of traps, but I was still at least half right. Turns out that with constant traps, Cheapo doesn't decrease the number of lemmings IN until the death animation is over, but just as I said, as soon as the animation starts the lemming no longer counts when counting how many are under the cursor.
    ccexplore
    13 Mar 2006 18:32:39
    Re: Lemmini - Lemmings for Java - public Alpha
    Turns out that with constant traps, Cheapo doesn't decrease the number of lemmings IN until the death animation is over, but just as I said, as soon as the animation starts the lemming no longer counts when counting how many are under the cursor.

    That seems reasonable to me, regardless of how it worked in the real games.
    ccexplore
    13 Mar 2006 19:10:09
    Re: Lemmini - Lemmings for Java - public Alpha
    Regarding the lemmings selection algorithm, here's a revised version that's slightly different from the game, but is IMHO more consistent compared with the real game:

    1) Find candidate P, the most recently entered prioritized lemming.

    Prioritized lemming can be defined as in the real game, namely one of oh-no-er, blocker, basher, builder, miner, digger, shrugger.  On the other hand, since you can't assign any skills to an oh-no-er anyway, one might as well take that action off from prioritization.

    2) Find candidate N, the most recently entered non-prioritized lemming.

    Non-prioritized lemming can simply be defined as the negation of prioritized.  Or, one can refine it by excluding lemmings that shouldn't be able to receive any skills, such as drowning lemmings etc.

    3) Again, make first choice be P (if exists, and not in non-prioritized selection mode) and second choice be N (if exists).  Remember that non-prioritized selection mode needs to be implemented!

    4) Try to assign the skill to first choice, invoking all the necessary tests (ie. lemming not already performing the skill that is being assigned, steel and one-way-walls, etc.).

    5) If failed, then try to assign the skill to the second choice, invoking the exact same tests as one would for the first choice.  (This is where the real game differs, but I consider the difference a bug in the real game.)

    ------------

    As a variation that makes selection slightly easier in special cases:

    For candidate N, redefine it as follows:

    The most recently entered lemming that is non-prioritized as explained above, plus the additional condition that it is not already performing the currently selected skill, or having that permanent skill (such as "climber") already assigned.

    This new definition is intended to deal with the case of, for example, when there are a whole lot of crowded lemmings under the cursor, and you want to be able to assign all of them as climbers, say, without needing to carefully move the cursor so as to not cover lemmings that were already assigned that skill.  Note again that this variation is not supported in the real game, but as far as I know it doesn't lead to solutions that shouldn't be possible.  It's just a nicety for skill assignments.
    0xdeadbeef
    13 Mar 2006 20:48:27
    Re: Lemmini - Lemmings for Java - public Alpha

    43) The password system needs to be rewritten.
    ...
    This is bad since people who kept their own list of passwords will now be in for a rude surprise as some might no longer work in Lemmini even when they'd work in the real game.

    I actually disagree for a number of reasons. Firstly, the levelcodes are just a bonus. The way Lemmini is supposed to be played is by clearing one level after the other and in contrary to the Amiga version, Lemmini automatically saves the progress. That being said, the level codes are merely a gimmick to make it feel a little bit more like the Amiga.
    Secondly, the codes given by Lemmini work for Lemmini. You couldn't expect more. I must admit, I orginally thought about writing my own algorithm with my very own level codes. I gave this up mainly for having more flexibility.
    Thirdly, codes based on the original algorithm wouldn't necessarily work for a custom level pack. I mean even if I could read the info "game 3" from it, what would than mean for a custom level pack? Whereas the way it is now, the creator of the level pack can create his/her own codes and they will work fine. They can even have some meaning to hint which level they belong to.


    44) There's something wrong with being able to switch players while you are playing a level.  For example, say I completed Fun 1-2 on Player 1, and then at the title screen or actual level of Fun 3, I use the menu to switch to Player 2.  
    45) On a similar note, right now player progress appears to be saved for only the current player, and only when the game is exited, whereas I'd think it should either be saved at every level completion.

    The player management is a little buggy, I agree. Will be fixed in the next release I hope.


    46) Fun 25's title is incorrect (it used its repeat's title).

    Will be fixed


    47) Strange behavior with blockers turning builders:  pick a level, say, Taxing 1.  Have the first lemming out build immediately upon landing.  Then have the second lemming out be a blocker immediately upon landing.  Even though the second lemming out would be slightly to the left of the first, and the first is building to the right, nevertheless the first lemming immediately turns around and builds left.

    Not sure if I completely got this, but if you mean that a builder (or any other turns) when you assign a blocker directly next to it, this is probably true. Indeed, when creating a blocker, the blocker mask is copied into the mask array. For a lemming which is inside the blocker mask at this moment it "feels" as if he bumped into the mask, since for the last step it wasn't there and now it is.
    Dunno, maybe I should have two different blocker masks: one to the left of the blocker and one to the right. Then every lemming could check if it the blocker is left or right to it. I'll think about it.


    48) Steel/one-way-wall detection for miner needs to be revised.  For example, see this screenshot from Fun 23:

    Indeed, the whole steel digging/bashing/mining issue is a little trickier than it seems. My hope was I could find a "generic" solution without too much special treatment. However, no matter where I set the threshhold for number of steel pixels in the mask before stop mining/bashing/digging, the are always corner cases where it looks shitty.


    49) In Fun 9, do nothing and wait until the crowd starts approaching the grinder on the left, and more than 1 lemming has been killed.  Move the cursor to be as left as possible while still highlighting lemmings (basically, highlight the lemmings that are being killed).  You will find that the lemming type text will often read " 4" or the like (ie. a blank followed by a number).

    Yeah, some states don't have names as the one which indicates a lemming being killed by a trap (but not part of the trap animation). Internally I call these guys "trapped". I think I should exclude all nameless lemming from the "under the cursor" routine since they can't be assigned a skill anyway.
    0xdeadbeef
    13 Mar 2006 21:03:56
    Re: Lemmini - Lemmings for Java - public Alpha
    50) This has already been pointed out, but I kinda like to see it fixed so I'm repeating it here:  the jumper.  I know there is currently no graphics yet for the jumper.  So for now, just pick one of the animation frames for the walker to stand in for the jumper, or perhaps just continue on with the walker animation during jumping.  The important thing is that on a step of 3-6 lo-res pixels tall, the lemming (at least in Amiga/PC/Mac etc. Lemmings) does not instantaneously jump to the top of the step, instead it moves up vertically by up to 2 lo-res pixels per lo-res frame until it reaches the top of the step.  Note also that jumpers are not eligible for skill assignment, so you can't for example have it start bashing before it finishes jumping.

    I put it on my list. Maybe I can come up with a a little animation myself, but probably my artistic skills are not sufficient. We'll see.


    51) I know a while ago, for compatability's sake, you decided to make exploders behave like the real game, where all terrain is taken out when the bomber is standing on steel, and no terrain is taken out when the bomber is not standing on steel.
    However, since Lemmini is still masking out steel and one-way-walls when bashing and mining (unlike the original game), I think Lemmini might as well break compatability for exploders also.  That is, go back to the masking approach rather than testing where the bombing is standing.  As far as I know, no levels in the original games of Lemmings or ONML requires the compatible behavior to be solvable.  On the other hand, the compatible behavior often introduces solutions that were probably unintended.

    IMHO the possibilities introduced by explosion mask handling are too different to use the correct solution. I mean you guys complain about jumpers and other stuff that doesn't really matter for solving a level, but when it comes to creating massive holes in steel tiles, compatibility doesn't matter? I'm puzzled...
    I'd bet there are some custom levels or crude solutions that are based on this "feature".


    52) Lemmings can walk thru walls that are only 1 hi-res pixel thick.  You can get this to happen on Fun 20.  After building to the platform with the poles, send a climber up to the first pole.  Then have it build one brick while on the top and then dig down.  If done right, you can have the digger leave undisturbed the leftmost column of hi-res pixels of the pole.  Have the digger dig all the way down the pole and then stop digging.  You've now created a wall only 1 hi-res pixel thick, and lemmings can walk through it.

    I must admit they can also walk through thicker walls. I'd guess up to 8 pixels. So I don't think it's a hires issue. I'm aware of this an wil fix this if I have the time and find an elegant solution.
    Another bug if I may mention it: when you build up to the ceiling and then keep assigning lemmings the builder skill if they reach the highest step, finally a builder will create a step in the ceiling, move up and get stuck. This was introduced as I was told to remove the checks from the builder before building the first step. Indeed I think I should check the space above the step before stepping up. But at the moment, there is no check...

    Did you try the cheat mode (drawing and stuff) by the way? Makes it much easier to check strange behaviour.
    ccexplore
    13 Mar 2006 21:21:42
    Re: Lemmini - Lemmings for Java - public Alpha

    43) The password system needs to be rewritten.
    ...
    This is bad since people who kept their own list of passwords will now be in for a rude surprise as some might no longer work in Lemmini even when they'd work in the real game.

    I actually disagree for a number of reasons. Firstly, the levelcodes are just a bonus. The way Lemmini is supposed to be played is by clearing one level after the other and in contrary to the Amiga version, Lemmini automatically saves the progress. That being said, the level codes are merely a gimmick to make it feel a little bit more like the Amiga.
    Secondly, the codes given by Lemmini work for Lemmini. You couldn't expect more.

    Unfortunately this leads to massive misunderstanding by users of Lemmini, since the passwords for Lemmini right now not only looks too much like Amiga's, but are actually all valid passwords in Amiga Lemmings.

    I believe that if you don't intend for the Amiga passwords to be fully compatible with Lemmini, you should either remove the passwords altogether in Lemmini, or make them sufficiently different from the Amiga ones.  It shouldn't be hard to write a quick program to generate random 10-letter passwords for the 200 or so levels involved.


    Not sure if I completely got this, but if you mean that a builder (or any other turns) when you assign a blocker directly next to it, this is probably true. Indeed, when creating a blocker, the blocker mask is copied into the mask array. For a lemming which is inside the blocker mask at this moment it "feels" as if he bumped into the mask, since for the last step it wasn't there and now it is.

    Dunno, maybe I should have two different blocker masks: one to the left of the blocker and one to the right. Then every lemming could check if it the blocker is left or right to it. I'll think about it.

    The real game does use a left/right mask, just so you know.
    Ahribar
    13 Mar 2006 21:32:43
    Re: Lemmini - Lemmings for Java - public Alpha
    50) This has already been pointed out, but I kinda like to see it fixed so I'm repeating it here:  the jumper.  I know there is currently no graphics yet for the jumper.  So for now, just pick one of the animation frames for the walker to stand in for the jumper, or perhaps just continue on with the walker animation during jumping.  The important thing is that on a step of 3-6 lo-res pixels tall, the lemming (at least in Amiga/PC/Mac etc. Lemmings) does not instantaneously jump to the top of the step, instead it moves up vertically by up to 2 lo-res pixels per lo-res frame until it reaches the top of the step.  Note also that jumpers are not eligible for skill assignment, so you can't for example have it start bashing before it finishes jumping.

    I put it on my list. Maybe I can come up with a a little animation myself, but probably my artistic skills are not sufficient. We'll see.

    I could e-mail you the animation from the Cheapo graphics, if that would help.
    ccexplore
    13 Mar 2006 21:36:22
    Re: Lemmini - Lemmings for Java - public Alpha
    IMHO the possibilities introduced by explosion mask handling are too different to use the correct solution.

    I'm not sure why that would be the case.  Steel areas are clearly intended to be indestructible, and there are no levels I know of that requires "creating massive holes in steel tiles", other than "custom levels or crude solutions".

    Another bug if I may mention it: when you build up to the ceiling and then keep assigning lemmings the builder skill if they reach the highest step, finally a builder will create a step in the ceiling, move up and get stuck. This was introduced as I was told to remove the checks from the builder before building the first step. Indeed I think I should check the space above the step before stepping up. But at the moment, there is no check...

    This is actually the observed behavior in the real game, that you can get the Lemming stuck on a terrain ceiling by building gradually up towards it in the manner you described.  So it's not really necessary to fix that bug; it's up to you.

    edit: in fact, upon further thoughts I'm advising against fixing this bug.  The platform in Mayhem 2 you need to build from underneath in order to eventually get above it.  That platform happens to be 6 lo-res pixels thick, the maximum height a lemming can jump up to.  If in Lemmini, the lemming doesn't step up after building the step that would get it "stuck", it sounds to me like the lemming wouldn't be able to get onto the top of the platform thru building.
    0xdeadbeef
    13 Mar 2006 22:07:14
    Re: Lemmini - Lemmings for Java - public Alpha

    I could e-mail you the animation from the Cheapo graphics, if that would help.

    No, I don't want to steal from Cheapo. Indeed, I painted a minimalistic jumper animation and put the jumper skill in in the last half hour. So it will be in 0.60. Looks a bit silly though.
    ccexplore
    13 Mar 2006 22:07:56
    Re: Lemmini - Lemmings for Java - public Alpha
    I could e-mail you the animation from the Cheapo graphics, if that would help.

    If I recall, although the lemmings in Cheapo does jump, there is no jumper animation in Cheapo; instead the walker animation is used even during jumping (so their legs continue moving about as if walking even as they rise up vertically).  This is what I meant when I suggest the possibility of continuing with the walker animation during jumping.  It doesn't look as good as the actual jumper, but I think it'd work okay for the most part.
    0xdeadbeef
    13 Mar 2006 22:21:40
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm not sure why that would be the case.  Steel areas are clearly intended to be indestructible, and there are no levels I know of that requires "creating massive holes in steel tiles", other than "custom levels or crude solutions".

    Hm, if you keep picking on this, I'll go back to my previous solution. However I'm sure someone will complain ;)


    edit: in fact, upon further thoughts I'm advising against fixing this bug.  The platform in Mayhem 2 you need to build from underneath in order to eventually get above it.  That platform happens to be 6 lo-res pixels thick, the maximum height a lemming can jump up to.  If in Lemmini, the lemming doesn't step up after building the step that would get it "stuck", it sounds to me like the lemming wouldn't be able to get onto the top of the platform thru building.

    That being said, I notice that the builder actually gets stuck in Mayhem 2 as well. So there is something to fix anyway.
    Ahribar
    13 Mar 2006 22:29:57
    Re: Lemmini - Lemmings for Java - public Alpha
    If I recall, although the lemmings in Cheapo does jump, there is no jumper animation in Cheapo; instead the walker animation is used even during jumping (so their legs continue moving about as if walking even as they rise up vertically).  This is what I meant when I suggest the possibility of continuing with the walker animation during jumping.  It doesn't look as good as the actual jumper, but I think it'd work okay for the most part.

    No, there really is a jumper animation. (And 0xdeadbeef: you wouldn't be stealing from Cheapo, since the Cheapo lemmings animations are themselves stolen from the original game......  :P )
    Ahribar
    13 Mar 2006 22:30:58
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm not sure why that would be the case.  Steel areas are clearly intended to be indestructible, and there are no levels I know of that requires "creating massive holes in steel tiles", other than "custom levels or crude solutions".

    Hm, if you keep picking on this, I'll go back to my previous solution. However I'm sure someone will complain ;)

    Well, just for the record, I'm with ccexplore on this one.  ;)
    EricLang
    13 Mar 2006 23:22:48
    Re: Lemmini - Lemmings for Java - public Alpha
    About the steel-destruction-by-explosion: I would leave it as it as in the original game by default.
    A few of this detail-things could be made optional: instead of making a choice leave the decision to the end-user.
    This item is definitely an "option" to me :).
    That's because it is a bug.
    But i've played levels where lemmings just did NOT die falling from a certain distance because of the bug.
    I do not remember which level but a standard one.
    Also the miner has a "feature" of mining through steel sometimes (also in the original :)).
    Is this known?
    ccexplore
    13 Mar 2006 23:52:30
    Re: Lemmini - Lemmings for Java - public Alpha
    About the steel-destruction-by-explosion: I would leave it as it as in the original game by default.
    A few of this detail-things could be made optional: instead of making a choice leave the decision to the end-user.

    Eek, I'm quite against the idea of having the core game mechanics be end-user-configurable, especially if we also start throwing in custom levels made by end-users.  The game mechanics should be uniformly applicable to all Lemmini levels, so there's no surprise in what to expect of the game mechanics in any levels, nor the need for level designers and players to think about which game-mechanical "options" to set when playing a particular level.

    This item is definitely an "option" to me :).
    That's because it is a bug.
    But i've played levels where lemmings just did NOT die falling from a certain distance because of the bug.
    I do not remember which level but a standard one.

    But while the solution happens to work, it clearly falls under the category of "crude solutions" (to quote 0xdeadbeef).  It's clear from http://home.wanadoo.nl/lemmings-solution that no levels in Lemmings nor ONML requires the ability to bomb through steel in order to solve the level.  For example, Fun 17 and Taxing 6 would be an example where being able to bomb through steel would create a solution, but othere solutions that are clearly more intended also exist.

    It's implicit that in testing Lemmini against the official game levels, I'm not expecting Lemmini to support all possible solutions that work in the real game.  Doing so would pretty much require Lemmini to be exact in its emulation of the real game's mechanics.  Instead, it should be the case that all the levels remain solvable in Lemmini, and that the "intended"/popular solutions continue to work in Lemmini.


    Also the miner has a "feature" of mining through steel sometimes (also in the original :)).
    Is this known?

    Can you clarify?  It's true that in the real game, the miner tends to stop after the miner stroke that hits (and therefore removes terrain of, due to lack of masking) steel.  But it nevertheless stops, so it isn't quite accurate to say that you could mine through steel.

    Or do you have an actual example in the real game where you can create a pretty deep mine tunnel into steel???

    0xdeadbeef
    14 Mar 2006 00:12:28
    Re: Lemmini - Lemmings for Java - public Alpha
    Nightly update - let's see what I've broken this time :-?

    Fixes/Changes 0.59 -> 0.60
    #  Replaced menu "New Player" with "Manage Players" which also allows deleting players
    #  Fixed wrong background color of Minimap in 16bit color mode.
    #  Current player's progress is stored when changing player or entering the "manage players" menu
    #  Introduced "Jumper". Looks a bit silly though.
    #  Re-enabled old (exact) explosion masking: only destructible parts are erased.
    #  Keys 1..8 can be used to select skills
    #  Changed inner workings of blocker mask: it's split into left and right part. A lemming moving right
       will not be influenced by a right side blocker mask and a lemming moving left won't be influenced
       by a left side blocker mask. This should fix lemmings turning around if a blocker was assigned
       next to them though they already passed him.
    #  Lemmings with no name (e.g. drowning, killed by a trap, splatting etc.) will not be considered
       for cursor selection. Thus also no "empty" names can appear any more.
    #  Fixed name of Fun 25 ("Lemmings Lemmings everywhere")
    ccexplore
    14 Mar 2006 03:05:31
    Re: Lemmini - Lemmings for Java - public Alpha
    Nightly update - let's see what I've broken this time :-?

    Unfortunately, there appears to be some embarassing breaks, especially with the first two:
    53) The sound of exiting lemmings is incorrect--in version 0.6 it's now the same sound as the trapdoor opening. ;D
    [edit: it seems that there are many other screwed up sound effects as well.  For example, in Taxing 2 the bear trap has the sound effect of drowning, in Taxing 4 the rope trap has the sound effect of exiting, in Wild 15 the muddy water has the sound of something decidedly non-water, etc.]
     Thankfully, fixed. [smiley=thumbsup.gif]

    54) Also, I'm not seeing trap animations anymore when they kill a lemming.  Although in one case, namely Havoc 10, when the leftmost trap is killing a lemming the animation is shown on the rightmost trap.  This is a serious problem because levels like Havoc 10 and Taxing 6 needs the ability of lemmings passing through a trap unharmed while the trap is operating (trap animation being played).  Thankfully, fixed. [smiley=thumbsup.gif]


    55) The title change in Fun 25 caused the same issue as when you changed Fun 9:  on the level's title screen the "Level 25: ....." is placed too far left with parts of "Level" cut off.  Fixed! [smiley=thumbsup.gif]
    EricLang
    14 Mar 2006 10:23:56
    Re: Lemmini - Lemmings for Java - public Alpha
    @ccexplore: I have no example of deep tunnels through steel :). The "mining" a referred to was the "lack of masking" you described.

    I don't think there's anything wrong with configurable lemmings, especcially because it is a remake. It's just a some checkbox for highly advanced users: "Apply Steel Explosions Native Bug To Stay Compatible".
    Well it was just an idea.
    0xdeadbeef
    14 Mar 2006 11:37:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Nightly update - let's see what I've broken this time :-?

    Unfortunately, there appears to be some embarassing breaks, especially with the first two:
    53) The sound of exiting lemmings is incorrect--in version 0.6 it's now the same sound as the trapdoor opening. ;D
    [edit: it seems that there are many other screwed up sound effects as well.  For example, in Taxing 2 the bear trap has the sound effect of drowning, in Taxing 4 the rope trap has the sound effect of exiting, in Wild 15 the muddy water has the sound of something decidedly non-water, etc.]

    54) Also, I'm not seeing trap animations anymore when they kill a lemming.  Although in one case, namely Havoc 10, when the leftmost trap is killing a lemming the animation is shown on the rightmost trap.  This is a serious problem because levels like Havoc 10 and Taxing 6 needs the ability of lemmings passing through a trap unharmed while the trap is operating (trap animation being played).

    55) The title change in Fun 25 caused the same issue as when you changed Fun 9:  on the level's title screen the "Level 25: ....." is placed too far left with parts of "Level" cut off.


    Hm, interesting. I have no idea how I possibly could have messed the sound effects in 0.60 as I didn't change a single line there. And the jumper was appended to the end resource wise...
    Sure this didn't happen in 0.59? Anyway, I will have a look at it when I come home from work.
    Ahribar
    14 Mar 2006 12:06:42
    Re: Lemmini - Lemmings for Java - public Alpha
    I don't think there's anything wrong with configurable lemmings, especcially because it is a remake. It's just a some checkbox for highly advanced users: "Apply Steel Explosions Native Bug To Stay Compatible".

    Obvious problem: that would cause havoc with user-created levels. Either you'd have to always check that your level was compatible with every setting (I say every, not both, because I guess there are other bugs that could also be turned on or off), or else the player would have an unfair disadvantage if he was playing a level with the wrong settings and didn't realise different ones were meant to be used. If this is meant to be distributed more widely than just this board, that's intolerable.

    Oh, and please don't say "just an idea". Sorry, it's a bit of a pet peeve, but I hate that phrase. Explaining why I disagree with your idea -- even complete disagreement as in this case -- is not a personal attack and you don't need to get defensive about it.
    Mindless
    14 Mar 2006 12:09:10
    Re: Lemmini - Lemmings for Java - public Alpha
    @ccexplore: I have no example of deep tunnels through steel :). The "mining" a referred to was the "lack of masking" you described.

    I don't think there's anything wrong with configurable lemmings, especcially because it is a remake. It's just a some checkbox for highly advanced users: "Apply Steel Explosions Native Bug To Stay Compatible".
    Well it was just an idea.

    If the option was implemented, it would be best to leave the option up to the level designer, not the user.
    Ahribar
    14 Mar 2006 13:41:24
    Re: Lemmini - Lemmings for Java - public Alpha
    Well..... better, yes, but not best. There would still be two severe problems: we'd have to decide which option to implement for the standard Lemmings and ONML levels, and whichever we chose would almost certainly be used as standard by level designers (how many levels does this really affect?). Worse, users from outside this board who don't know about all the bug discussion would be thrown by levels using non-standard game rules -- it would be radically unfair.

    The best (and in my opinion the only) option is to do as ccexplore suggested, fix the bug as though it had never existed.
    ccexplore
    14 Mar 2006 17:41:04
    Re: Lemmini - Lemmings for Java - public Alpha
    Hm, interesting. I have no idea how I possibly could have messed the sound effects in 0.60 as I didn't change a single line there. And the jumper was appended to the end resource wise...
    Sure this didn't happen in 0.59?

    Fairly sure no.  Certainly the exit sound effect was correct in 0.59, or it would've been noticeable right away.

    Has anyone else tried 0.60?
    Ahribar
    14 Mar 2006 18:31:50
    Re: Lemmini - Lemmings for Java - public Alpha
    I have, and I get the same as you, the lemmings exiting make the "creak" sound effect.

    Incidentally, the best thing about the instant release rate change facility is that now I can play with sound on without fear of crashing! Just so long as I don't nuke.....
    0xdeadbeef
    14 Mar 2006 20:23:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/changes 0.60/0.61
    #  Fixed stencil after extending it from short to int (again). Partly short access led
       to wrong sounds being played, wrong trap behaviour and so on.
    #  Eliminated trailing spaces on Fun 25 ("Lemmings Lemmings everywhere")

    And about the explosion mask issue: it would be no problem to make this a level pack configuration like the safe fall distance. But to be honest, I don't like the idea.
    ccexplore
    14 Mar 2006 21:04:17
    Re: Lemmini - Lemmings for Java - public Alpha
    Secondly, the codes given by Lemmini work for Lemmini. You couldn't expect more.

    I just want to add here that because the levelcodes for Amiga Lemmings are calculated and validated algorithmically, in quite a few ports the same algorithms are ported verbatim, so the Amiga levelcodes (and all the possible ones for each level) actually work identically across several other ports including PC/DOS, Mac, and I think the Atari ST and WinLemm.  (And for the ports that uses different levelcodes, it's generally the case that they redesigned the levelcode system altogether, often due to hardware differences like lack of keyboards on gaming consoles.)

    Which makes it all the more important to have substantially different levelcodes in Lemmini if they were only to work for Lemmini.
    0xdeadbeef
    14 Mar 2006 21:43:52
    Re: Lemmini - Lemmings for Java - public Alpha
    Secondly, the codes given by Lemmini work for Lemmini. You couldn't expect more.

    I just want to add here that because the levelcodes for Amiga Lemmings are calculated and validated algorithmically, in quite a few ports the same algorithms are ported verbatim, so the Amiga levelcodes (and all the possible ones for each level) actually work identically across several other ports including PC/DOS, Mac, and I think the Atari ST and WinLemm.  (And for the ports that uses different levelcodes, it's generally the case that they redesigned the levelcode system altogether, often due to hardware differences like lack of keyboards on gaming consoles.)

    Which makes it all the more important to have substantially different levelcodes in Lemmini if they were only to work for Lemmini.

    I must admit I don't see the point. You get a levelcode and if you enter this levelcode, you will get to the according level, though most people wil never use this anyway. As a bonus, the levelcode also works for the Amiga version.
    To come up with and type in 200+ levelcodes just because someone might be disappointed if he entered an Amiga levelcode which doesn't work on Lemmini, seems a lot of effort for a little benefit ... especially since the situation is not improved at all: still the Amiga levelcodes wouldn't work.
    And again: in a "closed" game which only supports a given set of levels, algorithmic level codes are a fine thing. However lemmini is supposed to be extended by custom level packs which are treated exactly like Lemmings and ONML. IMHO the best way to do this is to have fixed level codes which are part of the levelpack configuration.
    Ahribar
    14 Mar 2006 22:06:45
    Re: Lemmini - Lemmings for Java - public Alpha
    To come up with and type in 200+ levelcodes just because someone might be disappointed if he entered an Amiga levelcode which doesn't work on Lemmini, seems a lot of effort for a little benefit ... especially since the situation is not improved at all: still the Amiga levelcodes wouldn't work.

    If you thought that would be too much work, I could easily write a program to generate 216 random ten-letter codes. There would be a benefit: the player who wasn't part of this board and hadn't followed this discussion wouldn't expect his Amiga codes to work after seeing that the first couple work perfectly and guessing that the rest will too.
    ccexplore
    14 Mar 2006 22:25:14
    Re: Lemmini - Lemmings for Java - public Alpha
    I must admit I don't see the point. You get a levelcode and if you enter this levelcode, you will get to the according level, though most people wil never use this anyway. As a bonus, the levelcode also works for the Amiga version.

    That's not much of a bonus.  Lemming has been around for so long, pretty much everyone who played the game already has at least a partial list of levelcodes, and Googling will easily get you to websites with complete lists of levelcodes.

    To come up with and type in 200+ levelcodes just because someone might be disappointed if he entered an Amiga levelcode which doesn't work on Lemmini, seems a lot of effort for a little benefit ...

    It's rather hard to take your phrase "a lot of effort" seriously given that you're a programmer.  Writing a program to replace the levelcodes should be a piece of cake compare with writing Lemmini.  I could probably do this myself once I figure out where you store the passwords.

    especially since the situation is not improved at all: still the Amiga levelcodes wouldn't work.

    I actually see this as an improvement.  You see, you're looking at this going in the wrong direction, the direction of getting levelcodes from Lemmini and possibly using them on the Amiga.  Given what I said earlier, this is an unlikely scenario.

    On the other hand, since the Amiga/PC/Mac etc. versions of the game has been around long before Lemmini, for the end user, they are far, far more likely to try the opposite:  using the list of levelcodes they gained from the original games, noting that they work across multiple ports, and using them on Lemmini.  In fact, that's pretty much the first thing I tried after you implemented the levelcodes in Lemmini.  I wanted to go to a particular level without having to turn on 0xdeadbeef, lest there be bugs that only manifest themselves with 0xdeadbeef on/off.  And of course, the levelcode I have for that one level (Mayhem 5) didn't work in Lemmini.  It didn't help that after playing Fun 1, I got a levelcode for Fun 2 that not only looks very much like (but different from) the one I have, but in fact the Lemmini levelcode worked also in the original game.

    Because multiple levelcodes are valid per level, one person's list of levelcodes will differ from another person's, including the one Lemmini uses.  So the end user will discover that some of their levelcodes work on Lemmini while others don't, a clearly confusing situation, especially since not everyone realize that the original games can give different levelcodes for the same level.

    In the absence of having every such levelcode work on Lemmini, the other alternative would be for none of the Amiga levelcodes to work in Lemmini.  That way it is at least clear to the end user that they should not even bother trying to use the levelcodes they collected from the original game on Lemmini.  This would in turn lead them to do what you have in mind, to play the Lemmini levels in order to get the working levelcodes.

    To make it even more clear to the end user of the difference, the Lemmini levelcodes can, for example, be of different lengths compared to the original game.


    And again: in a "closed" game which only supports a given set of levels, algorithmic level codes are a fine thing.  However lemmini is supposed to be extended by custom level packs which are treated exactly like Lemmings and ONML. IMHO the best way to do this is to have fixed level codes which are part of the levelpack configuration.

    I agree that for custom levels it's probably best for the level designer to decide the passwords.  However I should note that the algorithmic method is actually still applicable to custom levelpaks.  The algorithm used by the original games uses several inputs to generate a password.  One input is a constant string in the game executable; think of it as a sort of "seed" for the levelcode generator.  Indeed, the seed string is different for Lemmings and ONML.  They have to in fact, or you'll end up with basically the same set of passwords for both games.

    From there, you can see how the algorithm method can apply for custom levelpaks, by having the level designer specify the seed string from which the passwords are generated.  Or, the level editor can calculate the seed string itself based on some hashing of data from the levelpak.

    I don't see this method as particularly compelling myself either.  The point is simply that it is possible to extend the algorithmic system to custom levelpaks.

    And besides, there's no reason why Lemmini can't support both.  Levels can either contain a stored password or no stored password, and when there is no stored password the program generates one via the algorithm.  With that system, the original levels will have no stored passwords, while user-created custom levels will always have stored passwords.
    Mindless
    14 Mar 2006 22:41:46
    Re: Lemmini - Lemmings for Java - public Alpha
    I really don't see the big deal about the level codes anyway.  You'd have to use a some type of hash to avoid having multiple levels in different level sets having the same password.  And if the password is hard-coded into the level files, what will happen if two designers choose the same password?

    Edit: I can ccexplore's point about having seeded passwords, but IMHO it's a lot of work that won't be extremely useful.  Perhaps when the game is nearly finished this could be added, but it doesn't seem important right now.

    Edit, again: If the player is really that desperate to get to the level that he was on, he can hack the player file.  :P
    ccexplore
    14 Mar 2006 22:48:26
    Re: Lemmini - Lemmings for Java - public Alpha
    I really don't see the big deal about the level codes anyway.  You'd have to use a some type of hash to avoid having multiple levels in different level sets having the same password.  And if the password is hard-coded into the level files, what will happen if two designers choose the same password?

    Personally I can live with Lemmini having no levelcodes at all, especially since currently it is about as good as having no levelcodes--I have no clue which ones in my list would work in Lemmini.

    But then when it comes to playing custom levels, there will be cases where the player wants to skip over a level they are stumped on (though, there are ways to support this without levelcodes or cheat modes).

    As for avoiding levelcode collisions, that's a generic problem independent of whether the levelcodes are generated or specified.  Both can result in collisions.  So Lemmini will probably need to support some notion of "the current levelpak", and apply the given levelcode to the current levelpak only.  [edit:  or,  extend the levelcode entry UI to allow specifying which levelpak]  Anyway, that's something else for 0xdeadbeef to think about.
    ccexplore
    14 Mar 2006 23:11:31
    Re: Lemmini - Lemmings for Java - public Alpha
    While we're on the subject of levelcodes and such, and of custom levelpaks, I want to throw in the following obvious observation:

    When it comes to custom levelpaks, such as the numerous ones being discussed in the thread "CustLemm level list game", it's obvious that most people don't really try to solve the levels strictly sequentially.  At some point they inevitably ends up skipping a level or more, for various reasons.

    Unlike later Lemmings game such as the Tribes, levels in Lemmings/ONML are independent of each other.  The ordering generally attempts to form some sort of a difficulty curve (often not a particularly successful one--just count the debates about level ordering in the original games alone...).  And since the original game introduced the concept of repeating a level later as a more difficult version, ordering is also needed there.  Other than that, there isn't much compelling reason for the level ordering, much less enforcing them on the player.

    With that in mind, I propose that a more flexible system be in place in Lemmini.  At a minimum, it should support the case of a levelpak where the player can go to any level in the pak they want (like in Cheapo, and in CustLemm using levelcodes), and support the current system where, in lieu of obtaining the levelcodes via other means, you have to solve the levels in a levelpak/rating sequentially.

    To introduce more flexibility, levelpaks can specify "unlock conditions".  A simple but useful form of an unlock condition could be something like:

    levels A thru B is unlocked when levels C thru D are solved, or when levelcode Y is entered.

    Then you can have things like, "you can solve the first 10 levels in any order, but you must solve them all before having the levelcode (and access) to the next 10 levels".

    No doubt this is more complex, but if we are serious about supporting custom levelpaks, I think having this flexibility is better than the extreme of complete sequentiality or total open access.
    ccexplore
    14 Mar 2006 23:21:24
    Re: Lemmini - Lemmings for Java - public Alpha
    Shifting the topic of the day, let me say that the jumper animation in Lemmini right now is not as bad as I imagined.  It looks reasonably okay when there's just a single step to jump up to.  Where it looks a little silly is when there's a steep slope (in effect, multiple consecutive tall steps).  The jumper graphics right now makes it looks like the lemming is flying up the slope. ;D ;)

    The main issue is I think because the lemming is leaning too much forward in the jumper graphics.  In the jumper graphics of the original games there is pretty much no leaning, the lemming is practically standing straight.

    The important thing is, gone is the sudden jump from the bottom to the top of the step.  The main thing about jumper, and the reason why they bothered to implement it in the original games, is that it makes the lemming's walking speed look more constant even when walking up steep slopes and such.
    0xdeadbeef
    14 Mar 2006 23:29:36
    Re: Lemmini - Lemmings for Java - public Alpha
    I really don't see the big deal about the level codes anyway.  You'd have to use a some type of hash to avoid having multiple levels in different level sets having the same password.  And if the password is hard-coded into the level files, what will happen if two designers choose the same password?

    The situation is even worde for algorithmic levelcodes, so I don't see the problem here. If two levelpacks use the same password, then  the levelpack has to be known. For algorithmic levelcodes, the levelpack has ALWAYS to be known to have the seed. Also it's obvious that different seeds might create the same password. The situation is FAR easier to control with fixed codes.


    Edit: I can ccexplore's point about having seeded passwords, but IMHO it's a lot of work that won't be extremely useful.  Perhaps when the game is nearly finished this could be added, but it doesn't seem important right now.

    The implementation itself won't be much work. The trouble created from it will however.
    Mr. Ksoft / Timmy the Geek
    15 Mar 2006 00:30:16
    Re: Lemmini - Lemmings for Java - public Alpha
    Just a question.... why the heck are we whining about PASSWORDS!?  It's not like it's a huge deal, is it?
    ccexplore
    15 Mar 2006 00:38:43
    Re: Lemmini - Lemmings for Java - public Alpha
    No one's "whining" about anything.  The discussion about levelcodes is merely expanding through natural discussion.  First I mentioned my experience with it and some opinions and criticisms.  0xdeadbeef mentioned his views.  Mindless introduced the concern about levelcode collisions.  I threw in the idea about unlocking conditions.  etc.

    Also keep in mind that having much discussion is often better than no discussion.  After all, if Lemmini doesn't interest me I would not be testing it at all.
    ccexplore
    15 Mar 2006 00:53:06
    Re: Lemmini - Lemmings for Java - public Alpha
    The situation is even worde for algorithmic levelcodes, so I don't see the problem here. If two levelpacks use the same password, then  the levelpack has to be known. For algorithmic levelcodes, the levelpack has ALWAYS to be known to have the seed. Also it's obvious that different seeds might create the same password. The situation is FAR easier to control with fixed codes.

    I'm afraid I could only understand unambiguously the last two sentences.

    About different seeds creating the same password, that of course can happen, although from what I understand about how the levelcodes are generated with the algorithm used in Lemmings, much of the levelcode's form comes from the seed string itself (indeed, the majority of the levelcode is just a cycling of various parts of the seed string, explaining the similarity of one level and the next level's levelcode), so it's actually relatively predictable.  Thus collisions and fixing thereof is not necessarily any harder than that for fixed, specified levelcodes.

    Anyway, I was never advocating extending the algorithm to custom levels, or even necessarily using them in the official levels in Lemmini.  It was just threw in merely to show that it can be done, for better or worse.

    The main thing to actually consider at this point is whether Lemmini should be using specified levelcodes that would nevertheless work in the real game, instead of having its own, separate set of levelcodes.  After all, many console ports of Lemmings already have their own separate levelcodes anyway (generally of shorter lengths in fact, due obviously to the cumbersomeness of entering levelcodes with the typical d-pad).
    Mr. Ksoft / Timmy the Geek
    15 Mar 2006 03:45:18
    Re: Lemmini - Lemmings for Java - public Alpha
    ...hehe... sorry, it seemed to me that some people were complaining that Lemmini didn't have its own passwords or something.

    And a Q:  I hadn't played Lemmini for a while, so the Java Webstart upgraded me from 0.51 to 0.61.  This caused me to lose my saved progress, so I had to start all over.  Is is possible to prevent this frustration?
    ccexplore
    15 Mar 2006 08:51:00
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, continuing on buglist after upgrade to v0.61:

    ...is it even v0.61?  When I downloaded the jar file locally (as I've been doing all the time) and run it, it didn't trigger a resource update, and the INI file still has 0.60.  So the bug about trailing spaces in the edited Fun 25 title ("Lemmings Lemmings everywhere") isn't fixed.

    But at least the two other embarassing bugs were gone.  I made a run through that tried to cover many of the traps and haven't found any issues with traps.

    Anyway, other bugs:

    56) walkers/jumpers, or indeed anyone who can move up, should turn around when they get too high.  Builders in the real game (perhaps not WinLemm but certainly Amiga) in fact will stop building when they get too high (you can basically define "too high" by pretending there's actual terrain at the row of pixels just off the top of the screen; it's not exactly the same as the real game but close enough).  They certainly should not be able to walk up above the level's top boundary, as they currently could in various levels.  This in turn could lead to behaviors not possible in the real game like digging down the pole near the left entrance in Havoc 7, and also subtly alter the lemming's movement in Mayhem 23 (although not enough to affect solving the level too much).

    57) The builder is currently not detecting the ceiling overhead soon enough.  As a guide, in Amiga lemmings, when a lemming is in the middle of a horizontal tunnel created by a basher, if you make him build, he will stop building after one brick.  If you instead make him dig down just once before building, he will build two bricks before stopping.  Lemmini currently allows 5 build bricks before stopping when building inside a bash tunnel.

    Feel free to hold off on fixing this though; I can provide you later with the exact conditions (for lo-res anyway) the game uses to check for walls and ceilings when building.

    58) On Taxing 28, the trap near the exit should be in front of the terrain rather than behind, at least according to the Amiga version.  Might conceivably be an error in WinLemm's data.

    59) On Mayhem 14, the "peas" in the pea soup should be behind rather than in front of the "soup".  (if what I said isn't clear, see this pic)

    60) On Wild 15, the water closest to the exit is incorrectly being covered by brick terrain.  See this pic for the correct look.
     All fixed! [smiley=thumbsup.gif]
    Ahribar
    15 Mar 2006 10:52:09
    Re: Lemmini - Lemmings for Java - public Alpha
    And a Q:  I hadn't played Lemmini for a while, so the Java Webstart upgraded me from 0.51 to 0.61.  This caused me to lose my saved progress, so I had to start all over.  Is is possible to prevent this frustration?

    That's a flaw that I already pointed out and has been fixed in between those two versions. So now you've got 0.61 it won't happen again.
    0xdeadbeef
    16 Mar 2006 00:16:51
    Re: Lemmini - Lemmings for Java - public Alpha
    The usual nightly update...

    Fixes/changes 0.61 -> 0.62
    #  Forced resource extraction (needed for the fun 25 title change fixed in 0.61)
    #  Fixed drawing order: animated objects that don't have the "no overdraw" flag set
       will not be drawn behind the terrain any more.
       Should fix ccexplore's #58-#60
    #  Drawing order also fixed in minimap (all objects were drawn behind the terrain)
    #  Walkers, Jumpers and Builders can't leave the level to the top any more
    #  Increased number of pixels that have to be free above a builder to continue building.
    #  Reworked jumper animation. Looks a little less silly in my eyes. Yet maybe not in yours.
    Ahribar
    16 Mar 2006 10:18:09
    Re: Lemmini - Lemmings for Java - public Alpha
    Just one small point..... version numbers don't carry, so what you've called 0.60, 0.61 and 0.62 should really be 0.5.10, 0.5.11 and 0.5.12. I mention this because with all these little updates, and with ccexplore finding so many bugs, you might run yourself out of available version numbers very soon.....
    ccexplore
    16 Mar 2006 10:42:35
    Re: Lemmini - Lemmings for Java - public Alpha
    This v0.62 is looking pretty good! 8-) I think we might've reached a point where 0xdeadbeef can go back to concentrating on new features (action replay please?), and let the bugs piled up a little (it should hopefully be coming in a little more slowly now).

    Then again, lately too much of the testing has been done by only one person.  I'd love to cover every single Lemmings and ONML levels in Lemmini to make sure they all held no surprises, but that's just too much for a single person.  I urge more people to play with Lemmini more often!  Pick one or two random levels a day and play it on Lemmini, make sure everything looks and works ok.  Besides, the more people, the more machines Lemmini gets run on.  Testing on different machine/OS configurations is definitely not something I can do myself even with total free time, and yet they can sometimes be the source of unexpected crashes and freezes.  Just ask Ahribar about it. ;)

    Ok, buglist:

    61) My fault actually.  Regarding the jumper, you should still be able to assign climbers, floaters and exploders to them, just not the other five skills.

    62) I'm seeing lemmings surviving a nuking, but I'm not sure why.  Go to Taxing 16.  Set a blocker somewhere to the right.  Have a lemming build 3 bricks to the left so that the lemmings can jump up to the chain.  Increase RR to 99 and wait until all 80 lemmings are out.  Now nuke.  Most of the time, towards the end I'm seeing one or two lemmings falling down with neither an explosion countdown nor ever exploding (and the fall is long enough that they should've exploded before going off the level's bottom).

    I have a suspicion this is somehow jumper-related but I could be totally wrong.  My suspicion arises because it seems if I alter the setup above so that there are no jumper lemmings before nuking, the bug doesn't seem to repro.  Yet I haven't quite work out how to repro it on isolated lemmings.  Good luck.
     All fixed. [smiley=thumbsup.gif]
    Ahribar
    16 Mar 2006 10:53:31
    Re: Lemmini - Lemmings for Java - public Alpha
    Does that mean you'll be getting on with the MIDIs now?  ;)

    As for me, I should have my essay finished by tomorrow -- then a break at last, and I will certainly use at least some of the time to keep playing Lemmini and see what happens!

    [EDIT: ooh, my 1111th post! Nice!]
    EricLang
    16 Mar 2006 11:32:41
    Re: Lemmini - Lemmings for Java - public Alpha
    Not bug but wish:
    I always played DOS lemmings and used to its function keys.
    F1 = RR-, F2 = RR+, F3 = Climber... F10 = Digger, F11 = Pause, F12 = Nuke
    Yet in WinLemmings the keys are different (I can't get used to them)
    So I badly need keyboard input. And there would be at least one happy user if these were configurable.
    0xdeadbeef
    16 Mar 2006 23:24:57
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/changes 0.62 -> 0.63
    #  Jumpers can now be assigned at least "additional" skills like Floater and Climber
    #  Fixed a bug that would let Jumpers survive a nuke. Now also splatters, drowners etc.
       can be nuked - I thought they could, but there was a bug obscured by the fact that
       these types die anyway.
    #  Keys F1-F8 can be used in addition to 1..8 for skill assignment.
    ccexplore
    16 Mar 2006 23:48:30
    Re: Lemmini - Lemmings for Java - public Alpha
    #  Keys F1-F8 can be used in addition to 1..8 for skill assignment.

    Reread Eric Lang's post more carefully.  The keys should be assigned as follows:

    F1 to decrease RR, F2 to increase RR.
    F3 - F10 for the skill assignments.
    F11 to pause, and F12 to nuke.
    0xdeadbeef
    17 Mar 2006 00:08:14
    Re: Lemmini - Lemmings for Java - public Alpha
    I noticed it myself. I should really get some sleep, but at least the weekend is near.
    Will be in the next release I guess.

    BTW: are you sure about the Jumper behaviour? In Mary Poppins's land it's now pretty hard to set a blocker on that steep ramp. It's not in the windows version since it has no jumpers. But also in the Amiga version, the stoppers can be easily placed on the ramp.
    Lemmini now definitely behaves differently from the Amiga version due to the jumpers and their limited skill assignment.
    ccexplore
    17 Mar 2006 01:59:34
    Re: Lemmini - Lemmings for Java - public Alpha
    BTW: are you sure about the Jumper behaviour? In Mary Poppins's land it's now pretty hard to set a blocker on that steep ramp. It's not in the windows version since it has no jumpers. But also in the Amiga version, the stoppers can be easily placed on the ramp.

    If your jumpers revert to walker immediately at the point where they reach the top of the step, there should be no differences as far as I can tell.

    The main point is that you can't assign skills while the lemming is in the middle of the step (which happens since the jumper can take a few frames to get all the way up), not having gone all the way up yet.  That corresponds to being a jumper.  What do you see on the Amiga version?  Were you really able to set a blocker when he isn't yet fully on top of a step?

    If this is still leading to difficulties in assigning skills while going up a steep slope, one other possibility to try in Lemmini is to buffer the skill assignment request when a jumper is in progressed, and carry it out as soon as the jumper finishes jumping.

    Later tonight I'll try out the Amiga version's level and see.
    ccexplore
    17 Mar 2006 10:24:40
    Re: Lemmini - Lemmings for Java - public Alpha
    One problem in doing an accurate Amiga/Lemmini comparison is that you can't assign skills while paused on the Amiga.  I tried out a couple of things on the Amiga and I'm convinced that they don't let you assign skills while jumping:

    1) It's true that in Taxing 16 it's easier than Lemmini to assign a blocker on the steep ramp.  It's also true though that you never see a blocker assigned in the middle of going up a step.

    2) I then test a special condition (an obscure bug in the real game actually) that would lead to jumping up a much greater distance than normally allowed (at the same jumping speed, so the jump lasts longer than normally achievable).  In that condition it is absolutely unambiguous that the jumper cannot be assigned a blocker in the midst of his jump.

    3) Next, on Fun 11, I created an extremely steep slope on the left side of the one-way wall, by repeatedly digging and bashing.  The slope consists only of very narrow 1-lores-pixel wide, 6-lores-pixels tall steps, to maximize the proportion of jumper to walker time when a lemming walks up this slope.  (Thank god for WinUAE savestates.)  I find that with this setup, your ability to assign a blocker on the very steep slope is noticeably less successful.

    As for explanation of #1, one possibility might be that in the real game, the game tries skill assignments twice per frame, once before the lemmings were updated for the frame and again after the update.  I seem to see something like this when disassembling the DOS game.  In that case, since on Taxing 16 the jumper only lasts one frame per jump on the ramp, you would always have a successful skill assignment.  Whereas on test #3, since the jumper lasts more than one frame on the ramp, your probability of success is lowered correspondingly.

    I still think buffering the skill assignment when jumping is a more logical solution, albeit perhaps a little more complicated to code and maybe slightly more bug-prone.
    Ahribar
    17 Mar 2006 20:00:36
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, getting on with the new version. Four things, two of which are ones I've brought up before but haven't been dealt with yet.

    (1) Stretching bridges. I got it to work once so it's possible, but it's very very hard, much more so than on the real game. This really needs to be amended; it's an immensely useful trick. (And the player used to other versions of Lemmings will get really exasperated with levels like Crazy 4 where it's so hard to break the habit and deliberately not try to stretch.....)

    (2) Bashing steel. At the moment you can't bash when any steel is in the basher's way. This makes 7 Crazy well-nigh impossible. On the real game you can still bash when there are just a couple of pixels of steel at the top of the basher's field.

    (3) I know you dealt with the level graphics flickering, but the cursor still flickers  :(  It's most annoying.

    (4) Not sure about this one, but I notice that when you build into a wall and make the builder bash, if after bashing there is a gap of just one hi-res pixel, the basher will continue into the wall and not fall through the gap. It's such ages since I played the Mac version, but I don't remember this being possible.
    EricLang
    17 Mar 2006 21:07:06
    Re: Lemmini - Lemmings for Java - public Alpha
    I did not really test the stuff but the following things I noticed while playing:

    1) I agree with A. Stretching bridges is difficult but not very difficult.
    I only have comparison with DOS in which I think it was quite easy to do. Maybe it is just the resolution (?)
    2) In my opinion too many "cursors". Difficult too focus on the lemming you want to select. I better like one cursor changing. I really can't see the lemming under the rectangle and +.
    0xdeadbeef
    17 Mar 2006 21:41:01
    Re: Lemmini - Lemmings for Java - public Alpha
    OK, getting on with the new version. Four things, two of which are ones I've brought up before but haven't been dealt with yet.
    (1) Stretching bridges. I got it to work once so it's possible, but it's very very hard, much more so than on the real game. This really needs to be amended; it's an immensely useful trick.

    I tried to fix it, but it didn't work out well. The builder animation clearly defines that the builder stands on the corner of the step.
    I can't move the lemming back since this would be visible, I can't move the step back since then steps on slopes wouldn't work and I can't enlarge the step, since this would create much broader steps in contradiction to the original.
    Really dunno how to solve this.


    (2) Bashing steel. At the moment you can't bash when any steel is in the basher's way. This makes 7 Crazy well-nigh impossible. On the real game you can still bash when there are just a couple of pixels of steel at the top of the basher's field.

    As I said earlier in this thread, the approach to steel detection is generic at the moment, but obviously it doesn't work well. I will rework this one way or the other, but I'm not really sure yet how.


    (3) I know you dealt with the level graphics flickering, but the cursor still flickers  :(  It's most annoying.

    If you mean the main cursor: I don't even draw it (I just replace the system cursor with the lemming cursor for the lemmini window) and it doesn't flicker on any system I tried (including an 800MHz Athlon XP with 256MB RAM and a very slow video card). If the cursor flickers under Win98, it's abug in the Java runtime environment and I don't have a chance to fix this.
    I could only go back to a software drawn cursor but it's sluggish compared to the system cursor.



    (4) Not sure about this one, but I notice that when you build into a wall and make the builder bash, if after bashing there is a gap of just one hi-res pixel, the basher will continue into the wall and not fall through the gap. It's such ages since I played the Mac version, but I don't remember this being possible.

    Though I don't really get the problem described, I agree that lemmings can walk through one hires pixel walls and won't fall through one hires pixel gaps. It's somehting I built in long ago because at that time I thought that one pixel gaps/walls could only be artifacts. I think I will remove this to avoid confusion.
    Ahribar
    17 Mar 2006 21:44:58
    Re: Lemmini - Lemmings for Java - public Alpha
    If you mean the main cursor: I don't even draw it (I just replace the system cursor with the lemming cursor for the lemmini window) and it doesn't flicker on any system I tried (including an 800MHz Athlon XP with 256MB RAM and a very slow video card). If the cursor flickers under Win98, it's abug in the Java runtime environment and I don't have a chance to fix this.
    I could only go back to a software drawn cursor but it's sluggish compared to the system cursor.

    It's not a huge deal and it doesn't affect gameplay; if you can't fix it then don't worry about it. No point mucking up the game to make it compatible with my antiquated machine  :P

    Btw, I'd like to add a voice in support of what Eric said about the cursor -- having both the box and the cross is also annoying.
    Mindless
    18 Mar 2006 03:28:41
    Re: Lemmini - Lemmings for Java - public Alpha
    Lemmini Retro

    I'm not sure what the point is, but this replaces the hi-res styles with the low-res ones.  This does cause problems with jumpers, I think.
    geoo89
    18 Mar 2006 18:15:25
    Re: Lemmini - Lemmings for Java - public Alpha
    [...]
    Btw, I'd like to add a voice in support of what Eric said about the cursor -- having both the box and the cross is also annoying.
    Nice, then I'm not the only one complaining. ;) I'd still suggest the arrow (like in Cheapo) as an alternative option.
    As for the bridge stretching, it also seems more difficult to me, I dunno however. There seems to be still only one frame to make a bridge overlap of 2px, but due to the doubled frame rate, it is twice as hard as for the DOS version to hit the right frame? Additionally, for the DOS version it is possible to stretch a bridge with only one px overlap when building to the right. However, this is only possible for building to the right, so I don't think that it would be neccessary for Lemmini.

    The last four Tame levels are still missing, just in case you'd like to add them, I uploaded them: http://207.58.177.175/~geoo89/lemmings/Tame4l.zip

    Some old bugs I'd like to remind you of, and a few new ones I found:
    - miners and bashers still don't turn around when hitting steel (they should do even if they'd be able to continue walking)
    - it is possible to build through a 1 lo-res pixel thick wall, other walkers however cannot pass such a wall
    - bashers can (as Ahribar mentioned for the hi-res pixel) bash past an 1 lo-res pixel gap below them
    - ccexplore once mentioned that the palette for the objects in the special graphics levels might be changed
    - when a digger breaks through, he immediately starts to fall while still doing the digger animation, at this point it's impossible to assign a skill to him. This behaviour causes that the digger can continue digging when he fell low enough, i.e. he can pass a 2 lo-res px gap without stopping digging. The other thing is, for a digger who's on thin air i.e. has no terrain below him, in the DOS version he does another complete digger animation before falling, and during this period you can still assign any skill to him.
    - the horns for the fire exit are still missing. If anyone wants, I could try to design those.
    0xdeadbeef
    18 Mar 2006 19:10:01
    Re: Lemmini - Lemmings for Java - public Alpha

    Nice, then I'm not the only one complaining. ;) I'd still suggest the arrow (like in Cheapo) as an alternative option.

    Chances are low for this as I like it the way it is and so do my "personal" beta testers.
    Additionally, making it an option is not as easy as it sounds.
    The main cursor will however be a little smaller ("thinner") in the next version.


    As for the bridge stretching, it also seems more difficult to me, I dunno however. There seems to be still only one frame to make a bridge overlap of 2px, but due to the doubled frame rate, it is twice as hard as for the DOS version to hit the right frame?

    No, since the walker also walks only one hires pixel per frame.



    The last four Tame levels are still missing, just in case you'd like to add them, I uploaded them: http://207.58.177.175/~geoo89/lemmings/Tame4l.zip

    I will have a look


    Some old bugs I'd like to remind you of, and a few new ones I found:
    - miners and bashers still don't turn around when hitting steel (they should do even if they'd be able to continue walking)
    - it is possible to build through a 1 lo-res pixel thick wall, other walkers however cannot pass such a wall
    - bashers can (as Ahribar mentioned for the hi-res pixel) bash past an 1 lo-res pixel gap below them
    - ccexplore once mentioned that the palette for the objects in the special graphics levels might be changed

    It's not necessary to repeat stuff like this, especially if it was repeated before. Anyway I commented on all of these topics before and usually ignore repeated postings. This does not mean however, that I forgot.
    BTW: The one pixel hires wall/gap check was not really bug by the way, more like a feature (though maybe misguided). Nevertheless I already changed it yesterday in my development build, though I fear that 1 hires pixel accuracy might add more problems than it solves. Then again, maybe I'm wrong.


    - when a digger breaks through, he immediately starts to fall while still doing the digger animation, at this point it's impossible to assign a skill to him. This behaviour causes that the digger can continue digging when he fell low enough, i.e. he can pass a 2 lo-res px gap without stopping digging. The other thing is, for a digger who's on thin air i.e. has no terrain below him, in the DOS version he does another complete digger animation before falling, and during this period you can still assign any skill to him.

    I'm not sure if you're talking about Lemmini or DOS lemmings in the first two sentences.
    In Lemmini, a digger can fall 1-7 hires pixels without stopping digging at the moment. It will fall (up to) 3 hires pixels per frame as a faller, but is still a digger. After falling down 8 hires pixels, it will be converted into a faller.
    Also, as a falling digger is still a digger, you can assign any skill to it that you could it it was not falling (makes no difference).
    geoo89
    18 Mar 2006 20:47:45
    Re: Lemmini - Lemmings for Java - public Alpha
    No, since the walker also walks only one hires pixel per frame.
    You mean that also for this case when the lemming is standing on the edge there are two frames he'll build the the same place? I had thought this might be a special case and one of the frames is already the faller frame...well, then the seemingly increased difficulty is probably just illusion.

    'm not sure if you're talking about Lemmini or DOS lemmings in the first two sentences.
    In Lemmini, a digger can fall 1-7 hires pixels without stopping digging at the moment. It will fall (up to) 3 hires pixels per frame as a faller, but is still a digger. After falling down 8 hires pixels, it will be converted into a faller.
    Also, as a falling digger is still a digger, you can assign any skill to it that you could it it was not falling (makes no difference).
    The first two sentences are referring to Lemmini.
    The behaviour is quite a bit strange to me, but if it is intended to be a feature, well, it also has indeed advantages.
    Although a skills can be assigned to the digger after the 'fall', it cannot be done during the fall, that's what I meant with my sentence before.
    0xdeadbeef
    19 Mar 2006 00:12:45
    Re: Lemmini - Lemmings for Java - public Alpha

    You mean that also for this case when the lemming is standing on the edge there are two frames he'll build the the same place? I had thought this might be a special case and one of the frames is already the faller frame...well, then the seemingly increased difficulty is probably just illusion.

    Ok, to be more precise: if a builder built right, built the last step, converted to a shrugger and then to a walker, the walker (in his 1st animation frame) will stand just on the edge of the step, meaning his rightmost "toe" pixel is still on the step. The "foot position" (used for collision detection with the mask) of the walker however is three pixels left of this. Since a walker moves 1 hires pixel per frame, he will be on the step for at least 4 frames. In Lores, it would be only two pixels and thus only two frames, which however would last twice as long. I even tried to increase the step by 4 more pixels. Even then stretching a bridge was more or less a matter of luck.

    The first two sentences are referring to Lemmini.
    The behaviour is quite a bit strange to me, but if it is intended to be a feature, well, it also has indeed advantages.
    Although a skills can be assigned to the digger after the 'fall', it cannot be done during the fall, that's what I meant with my sentence before.

    Well as I said, a digger is still a digger, even if it's falling. So also the skill assignment ist the same. However, some skills can't be assigned mid-air, especially digger and miner (but you couldn't assign a digger a digger anyway). It's a little hard to test, but at least there is no code inside Lemmini that would hinder a falling digger to be assigned climber, floater, bomber or whatever.
    If this behaviour is correct, is another question of course. The idea behind is, that a digger will not move down, but he will actually dig a hole and fall in. So the mask determines how deep he falls.
    0xdeadbeef
    19 Mar 2006 00:27:09
    Re: Lemmini - Lemmings for Java - public Alpha

    You mean that also for this case when the lemming is standing on the edge there are two frames he'll build the the same place? I had thought this might be a special case and one of the frames is already the faller frame...well, then the seemingly increased difficulty is probably just illusion.

    Ok, to be more precise: if a builder built right, built the last step, converted to a shrugger and then to a walker, the walker (in his 1st animation frame) will stand just on the edge of the step, meaning his rightmost "toe" pixel is still on the step. The "foot position" (used for collision detection with the mask) of the walker however is three pixels left of this. Since a walker moves 1 hires pixel per frame, he will be on the step for at least 4 frames. In Lores, it would be only two pixels and thus only two frames, which however would last twice as long. I even tried to increase the step by 4 more pixels. Even then stretching a bridge was more or less a matter of luck.
    I might add that 4 hires frames or two lores frames are just 132ms, so this is not a very long period.

    The first two sentences are referring to Lemmini.
    The behaviour is quite a bit strange to me, but if it is intended to be a feature, well, it also has indeed advantages.
    Although a skills can be assigned to the digger after the 'fall', it cannot be done during the fall, that's what I meant with my sentence before.

    Well as I said, a digger is still a digger, even if it's falling. So also the skill assignment ist the same. However, some skills can't be assigned mid-air, especially digger and miner (but you couldn't assign a digger a digger anyway). It's a little hard to test, but at least there is no code inside Lemmini that would hinder a falling digger to be assigned climber, floater, bomber or whatever.
    If this behaviour is correct, is another question of course. The idea behind is, that a digger will not move down, but he will actually dig a hole and fall in. So the mask determines how deep he falls.
    ccexplore
    19 Mar 2006 01:43:18
    Re: Lemmini - Lemmings for Java - public Alpha
    If this behaviour is correct, is another question of course. The idea behind is, that a digger will not move down, but he will actually dig a hole and fall in. So the mask determines how deep he falls.

    That's an interesting take on the game mechanics, and I guess it doesn't affect the original levels (at least I don't recall).  But in the interest of better support on existing custom levels designed for CustLemm (i.e DOS Lemmings), it might be worthwhile to be more compatible and make the digger fall as soon as there's "nothing more" to dig.
    0xdeadbeef
    19 Mar 2006 10:16:35
    Re: Lemmini - Lemmings for Java - public Alpha

    That's an interesting take on the game mechanics, and I guess it doesn't affect the original levels (at least I don't recall).  But in the interest of better support on existing custom levels designed for CustLemm (i.e DOS Lemmings), it might be worthwhile to be more compatible and make the digger fall as soon as there's "nothing more" to dig.

    Could you clarify this? The digger in lemmini will convert into a faller as soon as there is "nothig more to dig" - which means in the line below him, there are at least 12 (or something) holes deep enough to convert him into a faller (>= 8 hires pixesl deep).
    My "dig a hole and fall in" algorithm just kicks in if the hole is not deep enough - either because it is the one dug by the digger or if there is a small horizontal "channel" due to level design.
    I'm not sure about how this was implemented in the DOS/Amiga versions, but I guess, they just applied the mask and moved the lemming down. This would mean that a gap only on pixel in height would stop the digger. Is this the way it should be?
    ccexplore
    19 Mar 2006 13:58:00
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm not sure about how this was implemented in the DOS/Amiga versions, but I guess, they just applied the mask and moved the lemming down. This would mean that a gap only on pixel in height would stop the digger. Is this the way it should be?

    Sounds like maybe I just misread what you are doing.  Anyway, yes, in DOS/Amiga versions they just apply the mask and move the lemming down, and a gap of only one pixel in height would stop the digger.
    0xdeadbeef
    19 Mar 2006 18:23:19
    Re: Lemmini - Lemmings for Java - public Alpha

    Sounds like maybe I just misread what you are doing.  Anyway, yes, in DOS/Amiga versions they just apply the mask and move the lemming down, and a gap of only one pixel in height would stop the digger.

    Since I'd move down 2 hires pixels at once, this means that only 1 hires pixel gaps can be detected that are by chance on the same as the digger foot's Y coordinate. If the gap is 1 pixel off, the digger will jump over it. Else the digger would have to go down pixel by pixel and each time check for a gap.
    0xdeadbeef
    19 Mar 2006 23:41:41
    Re: Lemmini - Lemmings for Java - public Alpha
    Lots of changes this time with lots of chances to have messed something. Give it a try.

    Fixes/changes 0.63 -> 0.64
    #  Reworked skill assignment. Assignment request is buffered and applied at the beginning
       and if that fails at the end of the lemmings movement update. This should make skill assignment
       generally better to apply.
    #  Reworked main loop. Usually missing animation updates are caught up if possible to maintain
       game time. However, under special cirumstances (high system load for a second or so) this led to a
       kind of forced "fast forward" mode until the game time was synchronous with the real time again. To avoid this,
       any time difference larger than 5 frames (165ms) will now be skipped instead of being caught up.
    #  Reworked function key assignment: F1 to decrease RR, F2 to increase RR, F3 - F10 for the skill assignments,
       F11 to pause and F12 to nuke.
    #  Removed check that considered one pixel walls/gaps as artifacts. So Lemmings are reflected by one hires pixel
       walls and fall through one pixel gaps now.
    #  Made main cursor a little thinner (there are issues though, since obviously, the cursor is scaled up to some system default)
    #  Put "load level" feature back in to load a single level file (INI or LVL). It's still a little unstable though (quick hack),
       so use it on your own risk ;)
    #  Added the 4 "Tame" levels 17..20 missing in the windows version
    #  Reworked break conditions for miners, diggers and bashers when hitting an indestructible pixel (e.g. steel).
       Now they all use an additional mask which should improve the behaviour.
    #  When a digger, miner or basher hits steel, the "chink" sound is played.
    #  Changed the way the digger works. Now he will move 2 pixels down at each animation cycle instead of falling down
       digging. Now a digger can be stopped by a vertical gap just one hires pixel in height. However, as he moves down 2 hires
       pixels at once, he will "jump" over such a line with a probability of 50%. Only if the gap is 2 hires pixels
       high, he will be stopped for sure.  
    #  Added the dreaded horns to the fire exit. May need some rework, but for the start, it's ok.
    #  Renamed "squasher" to "marble"


    BTW: since I changed resouces quite a little, it might be a good idea to remove your resource directories from time to time to force an extraction and have a "clean" resource directory again. Just don't remove players.ini and the players directory if you want to keep your player stats.
    JM
    20 Mar 2006 16:20:40
    Re: Lemmini - Lemmings for Java - public Alpha
    Lemini seems quite cool. Keep it up Oxdeadbeef. Some good stuff there. Can you end up putting your own levels into the game?
    Ahribar
    20 Mar 2006 17:19:25
    Re: Lemmini - Lemmings for Java - public Alpha
    Excellent!

    * The skill selection seems much, much smoother now.

    * The thinner cursor looks a lot nicer, as well as making the flickering much less annoying -- indeed, I hardly noticed it.

    * For some reason the cursor sometimes displays walker lemmings as FALLER even when there are no fallers around.
    0xdeadbeef
    20 Mar 2006 18:53:28
    Re: Lemmini - Lemmings for Java - public Alpha
    Lemini seems quite cool. Keep it up Oxdeadbeef. Some good stuff there. Can you end up putting your own levels into the game?

    You can already load and play own LVL files. Additionally, it's possible to create whole own levelpacks and styles. Then again, there's no documentation on this yet. However, if you look closely at the ini files in the resource directory, you'll see that this is no rocket science. The only part missing right now is a full featured LVL->INI converter (Lemmini loads levels from INI files which are more or less ASCII versions of LVL files). If there's demand, I could quickly hack a converter together. Anyway, there's a trick right now: if you load a LVL file, Lemmini will actually write a file "test.ini" in you resource directory and then load this file as level.
    If you copy this file and rename it, you have your LVL converted to an INI file.
    0xdeadbeef
    20 Mar 2006 19:00:35
    Re: Lemmini - Lemmings for Java - public Alpha

    * The skill selection seems much, much smoother now.

    Ah, at least something ;)


    * The thinner cursor looks a lot nicer, as well as making the flickering much less annoying -- indeed, I hardly noticed it.

    Maybe I'll go back to software cursor anyway. A drawback of the system cursor (apart from flickering under win98) is, that its size is changed to some system default. That makes e.g. the yellow dot in the middle larger than it should be. Then again, the system cursor moves much smoother as it's not bound to the 33ms screen update of the rest of the game. Tricky...


    * For some reason the cursor sometimes displays walker lemmings as FALLER even when there are no fallers around.

    Actually, this happens ALWAYS, not only sometimes  :-[
    I simply forgot to swap the strings as I cleaned lemming.ini. Will be fixed in the next update.
    0xdeadbeef
    20 Mar 2006 21:21:58
    Re: Lemmini - Lemmings for Java - public Alpha
    While I'm at it: what are your expectations regarding action replay? How do you like the action replay in WinLemm? Should action replay in lemmini be similar or different?

    Key points:
    - Should the cursor/playfield move around or do you want to control the cursor/scrolling?
    - Should this be just a passive replay to show how you did this level or do you want to take over the action like in WinLemm?
    - Is storing/loading stored action replays a needed feature?

    Any other ideas/comments about action replay?
    Jazzem
    20 Mar 2006 21:37:05
    Re: Lemmini - Lemmings for Java - public Alpha
    Yeah, action replay should be identical to that of Winlemm: A replay of all your moves, but should the player come in and make a change not done before commence the end of the replay.

    Oh, and storing/loading action replays would be pretty nifty, but by no means necessary.
    ccexplore
    20 Mar 2006 22:12:02
    Re: Lemmini - Lemmings for Java - public Alpha
    - Should the cursor/playfield move around or do you want to control the cursor/scrolling?

    I have only experienced Action Replay as implemented in Cheapo (though I suspect it is modeled closely after WinLemm's action replay).  There, the player retains full control of cursor and playfield; the program does nothing on its own with those.  I haven't found that to be a problem during my uses of Cheapo.

    On the other hand, if action replay is being used to demonstrate a solution to someone who has no idea how the solution goes (which never happens in Cheapo since you can't save and reload action replays), I can see how it might be useful to have the game automatically adjust the playfield whenever it's about to replay a skill assignment to a lemming outside the current view of the level.

    Perhaps the two behavior can be user-selected thru the menu or something.


    - Should this be just a passive replay to show how you did this level or do you want to take over the action like in WinLemm?

    Allowing the user to take over is much preferred, although I can live without it.

    I would also note that even if the user is not allowed to interrupt at midpoint and take over, the user should at least be able to pause and fast-forward the action replay.


    - Is storing/loading stored action replays a needed feature?

    I would certainly like that feature very much.
    ccexplore
    20 Mar 2006 22:25:35
    Re: Lemmini - Lemmings for Java - public Alpha
    Any other ideas/comments about action replay?

    Just some comments:

    1) Nuking should be recorded by action replay.  Some levels (none in Lemmings/ONML, but there's actually one in Xmas Lemmings 94, as well as some custom levels) actually make use of nuking as part of the solution, so it needs to be recorded.

    2) Pauses/fast forwards should not be recorded by action replay.  Increase in RR that occurs when paused can be played back by abruptedly jumping to the final RR value which was attained when unpaused.

    3) Assignment of climbers and floaters are not easily noticed in an action replay if the cursor doesn't shift to the lemming being assigned.  As a way to compensate that doesn't involve programmatically moving the cursor (which is still one valid possibility), one method is to display (only during playback of action replay) a "C", "F" or "A" over the head of the lemming being assigned, essentially at the same place where you would normally display the explosion countdown.
    0xdeadbeef
    20 Mar 2006 23:07:14
    Re: Lemmini - Lemmings for Java - public Alpha

    Just some comments:

    1) Nuking should be recorded by action replay.  Some levels (none in Lemmings/ONML, but there's actually one in Xmas Lemmings 94, as well as some custom levels) actually make use of nuking as part of the solution, so it needs to be recorded.

    Sure. There are even fun levels which at least are usually finished by nuking.


    2) Pauses/fast forwards should not be recorded by action replay.  Increase in RR that occurs when paused can be played back by abruptedly jumping to the final RR value which was attained when unpaused.

    Sure. I never actually planned to record plause/FF anyway since the replay needs to be animation frame based to be sure that it's 100% accurate.


    3) Assignment of climbers and floaters are not easily noticed in an action replay if the cursor doesn't shift to the lemming being assigned.  As a way to compensate that doesn't involve programmatically moving the cursor (which is still one valid possibility), one method is to display (only during playback of action replay) a "C", "F" or "A" over the head of the lemming being assigned, essentially at the same place where you would normally display the explosion countdown.

    Hm, for the very first go, I think the change will not be marked, just like it WinLemm. For the future, it might be nice to have some gfx effect on any Lemming that's assigned a skill (like changing colour or having a box around it or whatever). You can see which skill by either checking the lemming with the cursor or by looking which icon is pressed and which counter decreased.
    Mindless
    21 Mar 2006 00:53:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Just a thought: maybe saved ARs should move the cursor around but shouldn't be interruptable?  and unsaved should be the opposite?
    It would limit the user and be more work to program, so I'm not sure that it's really a good idea.
    ccexplore
    21 Mar 2006 03:37:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Just a thought: maybe saved ARs should move the cursor around but shouldn't be interruptable?  and unsaved should be the opposite?

    That idea implicitly assumes that saved ARs are only used for communicating solutions.  But it could potentially be used for other things as well.  If we think of unsaved ARs as a sort of savestate, then I have definitely run into cases where to execute a very tricky solution on a version of Lemmings that runs on a console emulator, I might create multiple savestates along the way.  And so if I ran across such a situation in Lemmini I would probably be wanting saved ARs that are interruptible.
    Ahribar
    21 Mar 2006 10:05:51
    Re: Lemmini - Lemmings for Java - public Alpha
    3) Assignment of climbers and floaters are not easily noticed in an action replay if the cursor doesn't shift to the lemming being assigned.  As a way to compensate that doesn't involve programmatically moving the cursor (which is still one valid possibility), one method is to display (only during playback of action replay) a "C", "F" or "A" over the head of the lemming being assigned, essentially at the same place where you would normally display the explosion countdown.

    I don't really see why this is so important. If the player sees a lemming climb or float, he'll know he's meant to make it a climber or floater at some point prior to that. There isn't a specific point when it's essential to assign the skill, unlike with the other skills.
    covox
    22 Mar 2006 13:53:05
    Re: Lemmini - Lemmings for Java - public Alpha
    Tried to run under Linux (Ubuntu Dapper). Case-sensitive file/directories are somewhat ignored, so none of the levels will convert from LVL to INI if your export directory contains a capital letter. (interestingly, the graphics still convert without a hitch)

    After picking a path that's entirely lowercase, the conversion process works fine for a while, but keels over when trying to patch the first level ("CRC of source differs from that in patch header"). One guess is that during the LVL2INI conversion process, the file I/O methods in UNIX Java translate "\n" into just a linefeed character (i.e. the civilized way), whereas under Windows Java it may instead give a carriage-return + linefeed (2 characters, a nasty relic from DOS and the norm for Windows text editing).

    If this were the case it would certainly throw off the binary diff. Of course this is all guesswork, I haven't got a working Windows machine to litmus-test the theory on. Just for fun, here's my extracted copy of lvl1000.ini:
    # LVL extracted by Lemmini # lvl1000.lvl
    releaseRate = 1
    numLemmings = 80
    numToRecue = 80
    timeLimit = 3
    numClimbers = 0
    numFloaters = 0
    numBombers = 0
    numBlockers = 0
    numBuilders = 12
    numBashers = 0
    numMiners = 0
    numDiggers = 0
    xPos = 1216
    style = brick

    # Objects
    # id, xpos, ypos, paint mode (), upside down (0,1)
    # paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)
    object_0 = 1, 1344, 128, 4, 0
    object_1 = 1, 1408, 64, 4, 0
    object_2 = 1, 1472, 0, 4, 0
    object_3 = 0, 1376, 232, 4, 0
    object_4 = 9, 1376, 264, 4, 0

    # Terrain
    # id, xpos, ypos, modifier
    # modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
    terrain_0 = 24, 1376, 198, 0
    terrain_1 = 24, 1440, 198, 0
    terrain_2 = 24, 1436, 128, 0
    terrain_3 = 24, 1500, 128, 0
    terrain_4 = 24, 1500, 64, 0
    terrain_5 = 24, 1564, 64, 0
    terrain_6 = 31, 1508, 262, 0
    terrain_7 = 31, 1568, 198, 0
    terrain_8 = 31, 1632, 124, 0
    terrain_9 = 30, 1508, 278, 0
    terrain_10 = 30, 1508, 310, 0
    terrain_11 = 30, 1568, 214, 0
    terrain_12 = 30, 1568, 246, 0
    terrain_13 = 30, 1568, 278, 0
    terrain_14 = 30, 1568, 310, 0
    terrain_15 = 30, 1632, 140, 0
    terrain_16 = 30, 1632, 172, 0
    terrain_17 = 30, 1632, 204, 0
    terrain_18 = 30, 1632, 236, 0
    terrain_19 = 30, 1632, 268, 0
    terrain_20 = 30, 1632, 300, 0
    terrain_21 = 30, 1696, 288, 0
    terrain_22 = 30, 1696, 256, 0
    terrain_23 = 30, 1696, 224, 0
    terrain_24 = 30, 1696, 192, 0
    terrain_25 = 30, 1696, 160, 0
    terrain_26 = 30, 1696, 128, 0
    terrain_27 = 30, 1696, 96, 0
    terrain_28 = 30, 1696, 64, 0
    terrain_29 = 30, 1696, 32, 0
    terrain_30 = 30, 1696, 0, 0
    terrain_31 = 2, 1432, 302, 0
    terrain_32 = 2, 1368, 302, 0
    terrain_33 = 2, 1304, 302, 0
    terrain_34 = 19, 1714, 0, 4
    terrain_35 = 19, 1778, 0, 4
    terrain_36 = 20, 1834, -8, 4
    terrain_37 = 20, 1834, 8, 4
    terrain_38 = 20, 1850, -8, 4
    terrain_39 = 19, 1714, 288, 8
    terrain_40 = 19, 1778, 288, 8
    terrain_41 = 20, 1834, 302, 8
    terrain_42 = 20, 1834, 286, 8
    terrain_43 = 20, 1850, 302, 8
    terrain_44 = 19, 1240, 288, 8
    terrain_45 = 19, 1208, 288, 8
    terrain_46 = 19, 1208, 0, 12
    terrain_47 = 19, 1272, 0, 12
    terrain_48 = 19, 1336, 0, 12
    terrain_49 = 19, 1368, 0, 4
    terrain_50 = 20, 1424, 8, 4
    terrain_51 = 20, 1440, -8, 4
    terrain_52 = 20, 1424, -8, 4
    terrain_53 = 20, 1296, 286, 0
    terrain_54 = 20, 1312, 302, 0
    terrain_55 = 20, 1296, 302, 0
    terrain_56 = 42, 1216, 0, 0
    terrain_57 = 42, 1248, 0, 0
    terrain_58 = 35, 1234, 32, 0
    terrain_59 = 42, 1250, 160, 0
    terrain_60 = 42, 1218, 160, 0
    terrain_61 = 42, 1232, 192, 0
    terrain_62 = 42, 1752, 288, 0
    terrain_63 = 42, 1784, 288, 0
    terrain_64 = 35, 1768, 160, 0
    terrain_65 = 42, 1752, 128, 0
    terrain_66 = 42, 1784, 128, 0
    terrain_67 = 42, 1766, 96, 0
    terrain_68 = 20, 1200, 286, 0
    terrain_69 = 20, 1200, 302, 0
    terrain_70 = 20, 1200, 8, 12
    terrain_71 = 20, 1198, -6, 12

    #Steel
    # id, xpos, ypos, width, height

    #Name
    name =  It's all a matter of timing
    0xdeadbeef
    22 Mar 2006 16:33:10
    Re: Lemmini - Lemmings for Java - public Alpha
    Tried to run under Linux (Ubuntu Dapper). Case-sensitive file/directories are somewhat ignored, so none of the levels will convert from LVL to INI if your export directory contains a capital letter. (interestingly, the graphics still convert without a hitch)

    After picking a path that's entirely lowercase, the conversion process works fine for a while, but keels over when trying to patch the first level ("CRC of source differs from that in patch header"). One guess is that during the LVL2INI conversion process, the file I/O methods in UNIX Java translate "\n" into just a linefeed character (i.e. the civilized way), whereas under Windows Java it may instead give a carriage-return + linefeed (2 characters, a nasty relic from DOS and the norm for Windows text editing).

    If this were the case it would certainly throw off the binary diff. Of course this is all guesswork, I haven't got a working Windows machine to litmus-test the theory on. Just for fun, here's my extracted copy of lvl1000.ini:

    Hm, not too long ago I booted a Knoppix CD and played lemmini without any problem. Then again, probably I chose/created a lower case path back then. So probably I convert a whole path to lower case where I should only convert the file name...
    The linefeed theory however is interesting but wrong, since all text files are created the "unix" way even on my windows machine.
    I will try again with Knoppix, if the current version still works there.
    ccexplore
    22 Mar 2006 16:46:23
    Re: Lemmini - Lemmings for Java - public Alpha
    Rather out of topic, but recently I ran across some game manuals of Lemmings online.  The SNES manual apparently listed these additional "official" names for certain lemmings actions:

    JUMPER--Lemming walking over a small bump in the ground.
    FLIPPER--A Climber who has finished climbing.
    WAVER--A Builder who has finished building.

    Not that I care to have these names used in Lemmini, but I have been looking forever to find a name for the action "climber who has finished climbing and is transitioning back to walker".  Now I know!  (Though "flipper" does sound a little odd I think.)
    0xdeadbeef
    22 Mar 2006 17:23:53
    Re: Lemmini - Lemmings for Java - public Alpha
    Flipper sounds like a dolphin (or a part of one  ::) )
    And I don't think it would be a good iedea to change a Walker's name to Jumper each time he jumps up. This would cause the name to flicker like hell in certain levels.

    But back to Linux:
    I had a look at the extraction code and found two placed where I converted the whole path to lower case where I wanted to convert only the file name. I tried this version with Knoppix and it worked with a resource (target) directory containing capital letters.
    The source (WINLEMM) directory always contained capital letters, but as it's an NTFS partition, I'm not sure if capital letters are preserved.
    Anyway, give the new version a try. It also fixes two other errors, one of them found while testing under Linux.

    Fixes/changes 0.64 -> 0.65
    #  Swapped Walker/Faller strings. Was overlooked when cleaning up lemming.ini for 0.64
    #  Lemmini wouldn't work on Linux if the resource or game directory used capital letters. Should be fixed now.
    #  Width of yellow frame in MiniMap was derived from Screen resolution, not from window's width. Fixed.
    ccexplore
    22 Mar 2006 19:29:38
    Re: Lemmini - Lemmings for Java - public Alpha
    But back to Linux:
    I had a look at the extraction code and found two placed where I converted the whole path to lower case where I wanted to convert only the file name. I tried this version with Knoppix and it worked with a resource (target) directory containing capital letters.
    The source (WINLEMM) directory always contained capital letters, but as it's an NTFS partition, I'm not sure if capital letters are preserved.

    NTFS is case-insensitive but also case-preserving for filenames.  But Windows doesn't necessarily use NTFS, even on XP.

    Not sure how this applies anyway, since I don't know your extraction code, and in particular don't know what you are doing that would require converting cases on any part of the path.
    0xdeadbeef
    22 Mar 2006 19:38:05
    Re: Lemmini - Lemmings for Java - public Alpha


    Not sure how this applies anyway, since I don't know your extraction code, and in particular don't know what you are doing that would require converting cases on any part of the path.


    I think you got me wrong here: I mounted my NTFS-Windows Partition as drive under Linux (Knoppix) and I'm not sure if Linux is case sensitive for NTFS-Partitions, cause as you said, NTFS itself is not (really) case sensitive. Since I used the WINLEMM directory from my (Windows) NTFS partition as extraction source under Linux, I'm not completely sure if that proves that also the extraction source paths with uppercase and lowercase characters work under Linux.

    covox
    22 Mar 2006 23:46:58
    Re: Lemmini - Lemmings for Java - public Alpha
    FAT32 partitions mounted under Linux have ambiguous case recognition (i.e. 'cat /mnt/win-c/Games/ReadMe.txt' and 'cat /mnt/win-c/games/rEaDmE.TXT' will find the same file), presumably NTFS support does the same thing.

    I'll give the new build a try later on.
    Ahribar
    24 Mar 2006 12:46:14
    Re: Lemmini - Lemmings for Java - public Alpha
    I had an idea for solving the controversy over level codes. Instead of going to the trouble of generating new codes for every level, how about just removing the first (or the last, as you prefer) letter of each one?

    One feature I definitely hope Lemmini will support is minutes-and-seconds time limits for user-created levels; they open up so many new possibilities!  ;)
    ccexplore
    24 Mar 2006 14:35:31
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm pretty sure Lemmini already supports second-resolution time limits, since 0xdeadbeef once proposed extending the time limit of 1-minute levels by a few seconds to account for the faster clock coutdown in Lemmini compared to Amiga/PC/Mac Lemmings.
    ccexplore
    24 Mar 2006 15:30:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Very minor issues when playing v0.65:

    63) During the entrance animations for the "rock" (eg. Tame 2) and "pillar" (eg. Fun 2) styles, the entrance graphics shifts slightly towards the end of the animation.  The rock entrance shifts slightly left, and the pillar entrance shifts slightly right.  The entrances animations in the other styles were fine.  Conceivably an error in WinLemm's hi-res graphics data.

    64) In Taxing 4, there is an obvious error in the layout of one of the pillars on the right side of the level (the pillar doesn't connect with the level's bottom boundary).  It's an error in the WinLemm data actually (and in fact even the DOS version has the same problem).
    0xdeadbeef
    24 Mar 2006 16:32:47
    Re: Lemmini - Lemmings for Java - public Alpha
    I had an idea for solving the controversy over level codes. Instead of going to the trouble of generating new codes for every level, how about just removing the first (or the last, as you prefer) letter of each one?

    When I'll have finished the replay stuff (which may take some time, since I was lazy lately), I'll come back to the level code. I might even consider auto generated codes again. No promises, but let's just wait and see.


    One feature I definitely hope Lemmini will support is minutes-and-seconds time limits for user-created levels; they open up so many new possibilities!  ;)

    I'm pretty sure Lemmini already supports second-resolution time limits, since 0xdeadbeef once proposed extending the time limit of 1-minute levels by a few seconds to account for the faster clock coutdown in Lemmini compared to Amiga/PC/Mac Lemmings.

    Indeed, there was no support yet in 0.65, though it was long prepared and on my todo list. But it's in 0.66 now.


    Regarding ccexplore's bugs: should be all fixed in 0.66 I hope.

    Fixes/changes 0.65 -> 0.66
    #  Support for second exact level time. Keyword is "timeLimitSeconds" instead of "timeLimit". E.g. "timeLimitSeconds = 356" for 5 minutes and 56 seconds
    #  Fixed gap in pillar of LVL0025.ini (Taxing 4)
    #  Fixed one pixel shift in last animation frame of entries of ROCK and PILLAR


    BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.
    Mindless
    27 Mar 2006 02:45:51
    Re: Lemmini - Lemmings for Java - public Alpha
    BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.

    The JAR link is broken. It's easy enough to guess what the link should be, though.
    0xdeadbeef
    27 Mar 2006 10:08:59
    Re: Lemmini - Lemmings for Java - public Alpha
    BTW: I moved the Lemmini page to http://lemmini.de. Since I updated the JNLP on the original site and also set a redirector to the site, I hope this should not create any problems.

    The JAR link is broken. It's easy enough to guess what the link should be, though.

    Oops, I will have a look when I'm at home. This should have been a relative link anyway...
    The JNLP should work however.
    Mindless
    31 Mar 2006 22:20:39
    Re: Lemmini - Lemmings for Java - public Alpha
    Just some random weirdness, but I noticed 0xdeadbeef on Slashdot.  Odd.  :P
    0xdeadbeef
    31 Mar 2006 23:11:23
    Re: Lemmini - Lemmings for Java - public Alpha
    Just some random weirdness, but I noticed 0xdeadbeef on Slashdot.  Odd.  :P

    Just another guy who thought this would be a funny name ;)
    But if you'll put it this way, there's even an article in wikipedia about "me": http://en.wikipedia.org/wiki/0xdeadbeef

    Talking about strange web findings, I recently found this: http://slashnet.org/channels/bullshit/
    It's a little offending to see my site as title in a channel named "bullshit".
    And I'd really like to know what "Join the cult! It's all bullshit! (FREE PUNCH AND PIE)" would mean in this context  :-/


    Anyway, Replay is more or less finished. I'd like to do some more testing and maybe need to rework some "visual" stuff.
    But I guess there'll be a new version out by tomorrow evening.


    0xdeadbeef
    01 Apr 2006 17:02:56
    Re: Lemmini - Lemmings for Java - public Alpha
    Here we are:

    Fixes/changes 0.66 -> 0.67
    #  Added replay functionality
    #  Introduced text buttons instead of left/right clicking in debriefing screen
    #  Set Focus explicitly on graphics pane. Maybe helps with flicker on low end machines?
    #  Fixed some (more) bugs in LVL1016 (doubled entry, wrong water object)
      Who made this level anyway? It containes at least three bugs ;)
    #  Split loading and painting levels so when restart/replay is used, the level is not loaded completely
      but (more or less) only redrawn
    #  Reset Basher to Walker conditions to what it was before 0.64


    Please test the replay functionality. Should be pretty much complete, but I'm sure you'll find something.
    Mindless
    01 Apr 2006 22:55:03
    Re: Lemmini - Lemmings for Java - public Alpha

    When 100 Lemmings are out, the time gets knocked off the screen.


    After successfully completing a loaded level.  I've only tried loading Kindness That Can Kill, though.
    0xdeadbeef
    01 Apr 2006 23:12:09
    Re: Lemmini - Lemmings for Java - public Alpha
    I fixed the crash with a "silent" update (same version number).

    About the font issue: it's already on my list since quite some time. Problem is that I created the font a little too broad. There are also some levels which have too long names for the briefing screen. Will be fixed soon, but rescaling the font is a stupid work and up to now I never could decide to do it.
    0xdeadbeef
    02 Apr 2006 10:55:50
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/changes 0.67 -> 0.68
    #  Lemmini crashed when a single level loaded with "Load Level" was won
       (indeed fixed as silent update in 0.67)
    #  Reduced font width from 20 to 18 pixels. Looks more like the Amiga
       and fixes display issues when text is too long.
    #  Added colon (":") to font (though it was missing on the Amiga as well)
    #  Fixed wrong briefing display after changing levels (introduced in 0.67)
    #  Key "S" does a full level screen shot ("level.png") in resource directory
    0xdeadbeef
    05 Apr 2006 18:20:53
    Re: Lemmini - Lemmings for Java - public Alpha
    Not much going on here lately. Are you already tired of it  :o ?
    Some feedback on replay and the algorithmic level codes would be nice...

    Fixes/changes 0.68 -> 0.69
    #  Replaced fixed levelcodes with codes calculated by the original algorithm
    #  removed levels/levels.ini. Now subfolders of levels will be assumed to be
       levelpacks (alphabetical order)
       Note: in this context, also the level folder names have changed. So it's
       time for deleting the resource directory to clean things up.
    #  Extended Extractor/Patcher to support files of same name in different
       folders (hope this doesn't destoy Linux compatibility)
    #  Added fade in/out effects like on the Amiga
    #  Lemmings walking down a steep slope (at least 45° or more) accumulated
       "fallen" pixels which were never reset. This led to splashing if they
       converted to fallers after the slope even if the fall distance was
       minimal -> fixed
    #  Levels (*.ini) loaded via "Load level" are checked for start string "# LVL"
    EricLang
    05 Apr 2006 19:23:05
    Re: Lemmini - Lemmings for Java - public Alpha
    I am not tired of it:)
    Lemmini is already better than the WinLemmings original I think!
    I am very happy with the function keys.
    EricLang
    05 Apr 2006 19:50:59
    Re: Lemmini - Lemmings for Java - public Alpha
    Found another bug I think.
    This level I created with my editor. When you build in front of the trap, the stairs are not visible.
    (Between dotted lines = ini file)

    --------------------------------------
    # LVL ericbrick.ini
    # Edited with Alpha version of Lemmings Level Editor
    releaseRate = 1
    numLemmings = 50
    numToRecue = 48
    timeLimit = 4
    numClimbers = 1
    numFloaters = 1
    numBombers = 1
    numBlockers = 0
    numBuilders = 8
    numBashers = 2
    numMiners = 1
    numDiggers = 1
    xPos = 420
    style = brick

    # Objects
    # id, xpos, ypos, paint mode (), upside down (0,1)
    # paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)
    object_0 = 9, 964, 192, 4, 0
    object_1 = 0, 964, 160, 4, 0
    object_2 = 7, 786, 165, 0, 0
    object_3 = 1, 496, 85, 0, 0

    # Terrain
    # id, xpos, ypos, modifier
    # modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
    terrain_0 = 5, 946, 229, 0
    terrain_1 = 5, 1010, 229, 0
    terrain_2 = 5, 1074, 229, 0
    terrain_3 = 5, 1138, 229, 0
    terrain_4 = 5, 1202, 229, 0
    terrain_5 = 5, 818, 229, 0
    terrain_6 = 10, 434, 225, 0
    terrain_7 = 35, 750, 101, 0
    terrain_8 = 35, 750, -27, 0
    terrain_9 = 5, 1116, 48, 0
    terrain_10 = 5, 1180, 48, 0
    terrain_11 = 5, 1244, 48, 0
    terrain_12 = 5, 562, 229, 0
    terrain_13 = 5, 1266, 229, 0
    terrain_14 = 5, 498, 229, 0
    terrain_15 = 5, 626, 229, 0
    terrain_16 = 5, 690, 229, 0
    terrain_17 = 5, 754, 229, 0
    terrain_18 = 7, 746, 48, 8
    terrain_19 = 7, 810, 48, 0
    terrain_20 = 7, 874, 48, 0
    terrain_21 = 7, 938, 48, 0
    terrain_22 = 7, 1002, 48, 0
    terrain_23 = 7, 1066, 48, 0
    terrain_24 = 7, 691, 48, 8

    #Steel
    # id, xpos, ypos, width, height

    #Name
    name = When
    -------------------------------------
    EricLang
    05 Apr 2006 19:56:01
    Re: Lemmini - Lemmings for Java - public Alpha
    Not sure if it's a bug. When I have the "no overwrite" flag set for the trap, then it's ok.
    0xdeadbeef
    05 Apr 2006 20:10:03
    Re: Lemmini - Lemmings for Java - public Alpha
    Indeed. However, I can't 100% tell how WinLemm would behave here. For Lemmini, the stairs are terrain, so if the NO_OVERWRITE is not set for an object like traps, exits and so on, it will overwrite terrain (and stairs).
    EricLang
    05 Apr 2006 20:13:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok. As soon as I can save LVL files (sigh...) I can test it with WinLemm.
    Mindless
    11 Apr 2006 11:33:39
    Re: Lemmini - Lemmings for Java - public Alpha
    In Lemmini's level format, shouldn't
    numToRecue
    be
    numToRescue
    ?
    EricLang
    11 Apr 2006 12:22:55
    Re: Lemmini - Lemmings for Java - public Alpha
    Very sharp :)
    I just copied the "mistake" into the code of my level-editor.
    Indeed in Lemmini ini files we see "numToRecue"
    0xdeadbeef
    11 Apr 2006 15:49:52
    Re: Lemmini - Lemmings for Java - public Alpha
    Ah, damned typos  :-[

    I will kick out a new release for this later today.

    Then again I wonder if anybody want to comment on new features as replay :-?
    0xdeadbeef
    11 Apr 2006 16:19:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, should be fixed now in 0.70. Give it a try.
    EricLang
    11 Apr 2006 19:51:19
    Re: Lemmini - Lemmings for Java - public Alpha
    Replay looks ok on the first sight. (I never used it in WinLemmings, so I am not an expert)

    I was replaying a saved replay, which was not a standard level. I got this message:

    "The resource is missing.
    Please restart to extract all resources."

    On the next restart lemmini is indeed extracting again all the resources.
    EricLang
    11 Apr 2006 19:57:31
    Re: Lemmini - Lemmings for Java - public Alpha
    Looks ok to me at first sight (I am surely not a replay-expert).

    However: when opening a saved replay of a custom (not standard) level I get this message:

    "The resource is missing.
    Please restart to extract all resources"

    And on restart Lemmini extracts all files again.

    Maybe some extra information should be stored in the rpl-file
    JM
    11 Apr 2006 20:58:02
    Re: Lemmini - Lemmings for Java - public Alpha
    EricLang when is that level editor going to be finished?
    EricLang
    11 Apr 2006 21:06:21
    Re: Lemmini - Lemmings for Java - public Alpha
    Have patience... I will start a new thread with an alpha version within a few weeks.
    0xdeadbeef
    11 Apr 2006 21:30:25
    Re: Lemmini - Lemmings for Java - public Alpha
    Looks ok to me at first sight (I am surely not a replay-expert).

    However: when opening a saved replay of a custom (not standard) level I get this message:

    "The resource is missing.
    Please restart to extract all resources"

    And on restart Lemmini extracts all files again.

    Maybe some extra information should be stored in the rpl-file


    Hm, most probably I'll disable the possibility to save replay for levels started via "load level". For custom level packs, it should be ok though.
    JM
    11 Apr 2006 22:20:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Have patience... I will start a new thread with an alpha version within a few weeks.


    That should be good. Will this editor show extended graphics while editing a level?
    Mindless
    11 Apr 2006 22:56:31
    Re: Lemmini - Lemmings for Java - public Alpha
    2 bugs:
    • Upside-down objects are not drawn
    • Upside-down trapdoors deploy Lemmings

    EricLang
    12 Apr 2006 06:08:27
    Re: Lemmini - Lemmings for Java - public Alpha
    Actually there is more.
    1) Some objects upside down (entrances) are not drawn.
    2) Other objects upside down (water, exit) are not drawn upside down but just normal.

    --------------------
    # LVL ericbrick.ini
    # Edited with Alpha version of Lemmings Level Editor
    releaseRate = 1
    numLemmings = 50
    numToRescue = 48
    timeLimit = 4
    numClimbers = 1
    numFloaters = 1
    numBombers = 1
    numBlockers = 0
    numBuilders = 8
    numBashers = 2
    numMiners = 1
    numDiggers = 1
    xPos = 420
    style = brick

    # Objects
    # id, xpos, ypos, paint mode (), upside down (0,1)
    # paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)
    object_0 = 9, 964, 192, 4, 1
    object_1 = 0, 964, 160, 4, 1
    object_2 = 7, 786, 165, 4, 1
    object_3 = 1, 496, 85, 0, 1

    # Terrain
    # id, xpos, ypos, modifier
    # modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
    terrain_0 = 5, 946, 229, 0
    terrain_1 = 5, 1010, 229, 0
    terrain_2 = 5, 1074, 229, 0
    terrain_3 = 5, 1138, 229, 0
    terrain_4 = 5, 1202, 229, 0
    terrain_5 = 5, 818, 229, 0
    terrain_6 = 10, 434, 225, 0
    terrain_7 = 35, 750, 101, 0
    terrain_8 = 35, 750, -27, 0
    terrain_9 = 5, 1116, 48, 0
    terrain_10 = 5, 1180, 48, 0
    terrain_11 = 5, 1244, 48, 0
    terrain_12 = 5, 562, 229, 0
    terrain_13 = 5, 1266, 229, 0
    terrain_14 = 5, 498, 229, 0
    terrain_15 = 5, 626, 229, 0
    terrain_16 = 5, 690, 229, 0
    terrain_17 = 5, 754, 229, 0
    terrain_18 = 7, 746, 48, 8
    terrain_19 = 7, 810, 48, 0
    terrain_20 = 7, 874, 48, 0
    terrain_21 = 7, 938, 48, 0
    terrain_22 = 7, 1002, 48, 0
    terrain_23 = 7, 1066, 48, 0
    terrain_24 = 7, 691, 48, 8

    #Steel
    # id, xpos, ypos, width, height

    #Name
    name = When
    ----------------
    Happy_Feet
    14 Apr 2006 04:13:18
    Re: Lemmini - Lemmings for Java - public Alpha
    the resource extractor doesnt do anything for me.... help help  :'(
    ccexplore
    14 Apr 2006 04:18:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Then again I wonder if anybody want to comment on new features as replay :-?

    I'd love to, but currently I'm focusing on other stuff.  I'll hopefully revert back to a more Lemmini mode of life in a week or two. ;)
    0xdeadbeef
    14 Apr 2006 09:08:47
    Re: Lemmini - Lemmings for Java - public Alpha
    Fixes/changes 0.70 -> 0.71
    #  Upside down objects are drawn correctly. Also upside down objects are inactive.
    #  Fixed bug introduced in 0.69 which prevented level progress from being saved in the player stats
    #  "Save Replay" is not possible any more for single levels started with "load level"
    #  If a level doesn't contain a valid entry, Lemmini won't crash any more.

    @ccexplore
    I sure hope so, though I'm in a "not so much lemmings" mode as well at the moment ;)

    @Happy_Feet
    What exactly is the problem? Do you have Lemmings for Windows at all? Did choose the WINLEMM directory as source directory for the extraction? What happened then? Any error messages? Your OS would also be helpful...
    Happy_Feet
    14 Apr 2006 23:23:32
    Re: Lemmini - Lemmings for Java - public Alpha
    i have windows xp professionel and the latest version of java. of course i have the windows version of lemmings, im not an idiot  :-? . yes of course i set it to extract from the WINLEMM directory. it just gets to the Extracting Resources window and stops... so i have to click cancel... la de da da da nothing :'( :( so yeh, thanks!
    0xdeadbeef
    15 Apr 2006 00:08:05
    Re: Lemmini - Lemmings for Java - public Alpha
    There is nothing printed in the extraction dialog? No message boxes as well? If so, I would guess either Lemmini or the JVM throws an Exception that is either unexpected and not properly caught or uncatchable (e.g. out of memory).

    You could try to download the JAR from my site and start it from the command line. Start cmd.exe, change to the directory, in which you copied the JAR, then type "java -jar lemmini.jar". Now (try to) extract as usual and have a look at the command line. Are there any errors/exceptions printed?
    Mindless
    15 Apr 2006 02:49:24
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm not sure if this should be considered a bug or just a side-effect of hi-res.

    Edit: Shouldn't "no" be capitalized in Oh No! More Lemmings?
    0xdeadbeef
    15 Apr 2006 08:45:34
    Re: Lemmini - Lemmings for Java - public Alpha
    I'm not sure if this should be considered a bug or just a side-effect of hi-res.

    To be honest, I messed around quite a little with this damned builder break conditions and either the digger will continue to dig through pretty large gaps or he'll stop digging too early. I put it on my list, though I'm not sure completely how the perfect algorithm would look like.


    Edit: Shouldn't "no" be capitalized in Oh No! More Lemmings?

    Most probably true. Will be fixed.
    0xdeadbeef
    15 Apr 2006 09:17:32
    Re: Lemmini - Lemmings for Java - public Alpha
    Last update for some days, as I will be away until monday evening.
    Happy Easter to all of you  :D

    Fixes/changes 0.71 -> 0.72
    #  All level files start with "# LVL" now (well, I hope so)
    #  General exceptions are caught during extraction. Also tried to catch hard errors (java.lang.Error)
       during extraction and in main game loop.
    #  Renamed "Oh no! More Lemmings" to "Oh No! More Lemmings" (capital "N")
    #  Extended basher break condition by one pixel to compensate for hires problems (one pixel left after
       mask is applied, but basher stops).
    EricLang
    16 Apr 2006 15:26:53
    Re: Lemmini - Lemmings for Java - public Alpha
    I noticed in the previous version that at the beginning of a level the lemmings go faster for some reason. The falling is faster and then for about 1 second the walk faster and then the tempo becomes normal. Did anyone notice?
    Mindless
    20 Apr 2006 23:43:26
    Re: Lemmini - Lemmings for Java - public Alpha
    2 requests:
    custom lemming graphics support
    special graphics lvl's cannot be loaded

    I like the new code dialog, btw.
    0xdeadbeef
    21 Apr 2006 10:46:23
    Re: Lemmini - Lemmings for Java - public Alpha
    Custom lemmings and "special graphics" styles have to be added as Lemmini styles as I can't extract them from WinLemm.
    Also I must admit that I'm not so keen on writing another converted for the DOS format. Well, it would be possible of course, but I don't really think it's worth it.

    Anyway, creating styles is possible already and everybody is invited to do so. For this, all the graphics have to be converted to or (re-)created in hires of course, which will be the main work to do. For a first fo, simple (linear) upscaling should do (though I wouldn't guarantee that some lemming types might misbehave). Graphics have to be in GIF format, animated object are stored one frame above the other.  Writing the styles ini is then straightforward even without editor support. I'm also willing to support any styles creator with that if anything is unclear.

    Loading "LVL" files that were designed for other styles than that supported by WinLemm will always be a problem since there is no definition what the style value inside the level file means for non standard levels (even if the according Lemmini style would exist). Note that loading LVL files is a bonus anyway to allow people to play their custom levels in Lemmini without conversion.
    The usual way however should be to load levels in ini format. Indeed as I wrote somewhere in this thread, Lemmini converts the LVL to ini anyway, so you can can grab this temporary file and e.g. change the style to an existing Lemmini style. This way, also loading levels with custom styles will work.

    Happy_Feet
    09 May 2006 01:30:38
    Re: Lemmini - Lemmings for Java - public Alpha
    i changed my OS to ubuntu dapper drake 6.06 beta. installed the latest java runtime engine and switched to it as well. ran java -jar lemmini.jar. when extracting, following dialogue appears in terminal O.o

    Exception in thread "Thread-2" java.lang.NullPointerException
           at extract.Extract.extractLevels(Extract.java:318)
           at extract.Extract.run(Extract.java:60)
           at java.lang.Thread.run(Unknown Source)

    any ideas?
    0xdeadbeef
    12 May 2006 16:49:34
    Re: Lemmini - Lemmings for Java - public Alpha
    i changed my OS to ubuntu dapper drake 6.06 beta. installed the latest java runtime engine and switched to it as well. ran java -jar lemmini.jar. when extracting, following dialogue appears in terminal O.o

    Exception in thread "Thread-2" java.lang.NullPointerException
           at extract.Extract.extractLevels(Extract.java:318)
           at extract.Extract.run(Extract.java:60)
           at java.lang.Thread.run(Unknown Source)

    any ideas?


    This should mean that there are no files in the directory used as source of the level extraction.
    E.g. "\LEVEL\OHNO". Another possibility would be that your source directory names aren't capital letters. Or maybe there's still a glitch path handling if the source path contains uppercase and lowercase characters. I could try some testing with Knoppix next week.
    What are your full source and destination paths you enter in the extraction dialog?
    LU Admin
    25 May 2006 20:57:40
    Re: Lemmini - Lemmings for Java - public Alpha

    Fixes/changes 0.64 -> 0.65
    #  Swapped Walker/Faller strings. Was overlooked when cleaning up lemming.ini for 0.64
    #  Lemmini wouldn't work on Linux if the resource or game directory used capital letters. Should be fixed now.
    #  Width of yellow frame in MiniMap was derived from Screen resolution, not from window's width. Fixed.


    I just tried on my Mac and I get the same error discussed earlier with the patch failing.  Works fine under Windows 2000 in Virtual PC.  I'm running OS X 10.4.6 with the latest version of Java.  I even tried puttting the resources folder at /winlemm/ and the extract to folder at /lemmini/ and it still didn't work.  I'd be happy to help you with further testing if you'd like (sounds like you don't have a Mac).
    0xdeadbeef
    25 May 2006 22:55:17
    Re: Lemmini - Lemmings for Java - public Alpha
    Hm, yeah, I sometimes tried under Knoppix, but my source folder was on an NTFS partition. Chances are that Linux treats mounted NTFS volumes case insensitive. I will check again if I somehow messed the capital letters in the source path.
    Anyway: Can you please post the exact error message and maybe the last lines printed out in the text window?
    0xdeadbeef
    26 May 2006 14:16:22
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I just tried again with Knoppix. This time I copied everything (source, jar, dest) into the Knoppix RAM disk. Also I used a mix of upper and lower case characters for source and destinations paths. Worked flawlessly.

    My guess it that the path or file names of the source directory are wrong. In the WINLEMM directory if the original CD, every path and file name is uppercase. If you use the files from the CD or copied them from there, this should be the case and the extraction should work. If, for any reason, the paths/files inside WINLEMM are lowercase, then rename them to uppercase.

    Anyway, I added some error checking, so when source paths are missing, the correct error should appear now. Give it a try.
    LU Admin
    28 May 2006 00:35:52
    Re: Lemmini - Lemmings for Java - public Alpha
    I downloaded a new copy from your website and tried it again.  This time I extracted straight from the CD's WINLEMM folder without copying to the hard drive first.  The Finder as well as an ls from the terminal both show that all the folder and file names in there are uppercase as you would expect.  Lemmini still fails with the same error.  I'm using /lemmini/ for the destination folder.  Here's a screenshot of the error: http://www.lemmingsuniverse.net/lemmini.png

    In case it's important, the complete path to the WINLEMM folder on the CD is /Volumes/PAINTBALL/WINLEMM (I have Windows Lemmings as part of Lemmings Paintball).
    0xdeadbeef
    28 May 2006 15:52:20
    Re: Lemmini - Lemmings for Java - public Alpha
    Well, maybe that's exactly the problem...
    I wasn't aware that there are other distributions of WINLEMM but chances are that some of the files were changed fot this re-release on the Paintball CD.
    Since you are a legal owner of WINLEMM: could you try the data files from the Lemmings File Portal (link in Mindless' sig). Maybe you could make a diff of both directories to see which files differ or send me your files so I can have a look. My mail address is on my lemmini page.

    And btw: why is there no link to yet to Lemmini on your site  ;) ?
    LU Admin
    28 May 2006 19:48:06
    Re: Lemmini - Lemmings for Java - public Alpha
    That's strange...I already wrote this once, but it didn't show up.

    I downloaded the Windows Lemmings data files from the Lemmings File Portal, and renamed the folder they came in to WINLEMM.  Ran the extractor and got the exact same error as before.  Running diff showed that there were no differences between files.  The only thing it reported were some missing files in the stuff from TLFP, namely the exe and dlls (to be expected).

    Anyway, I don't think it's the files on the Lemmings Paintball CD that are the problem, because I ran the extractor in Windows 2000 in Virtual PC (on the same machine) and it worked fine.  I even was able to copy the extracted files over to OS X, modify lemmini.ini, and Lemmini worked fine.  I guess the good news is that other than this problem with the extractor, everything else seems to work fine under OS X.

    Is there anything I can do to run Lemmini and have it give you more output that would be helpful?  I don't know Java, but I'm reasonably good with C and Objective-C.  I'm not completely inexperienced when it comes to development/debugging, so I'm certainly willing to help with whatever I can.


    And btw: why is there no link to yet to Lemmini on your site  ;) ?


    Done :).

    (I linked to lemmini.de.  If you'd prefer that I link to the redirector you posted here, let me know and I'll change it.)
    0xdeadbeef
    28 May 2006 21:28:10
    Re: Lemmini - Lemmings for Java - public Alpha

    I downloaded the Windows Lemmings data files from the Lemmings File Portal, and renamed the folder they came in to WINLEMM.
    ...
    Anyway, I don't think it's the files on the Lemmings Paintball CD that are the problem, because I ran the extractor in Windows 2000 in Virtual PC (on the same machine) and it worked fine.  I even was able to copy the extracted files over to OS X, modify lemmini.ini, and Lemmini worked fine.  I guess the good news is that other than this problem with the extractor, everything else seems to work fine under OS X.

    Yes, sorry, you're right. If it works in Win2k emulation, the files must be ok.


    Is there anything I can do to run Lemmini and have it give you more output that would be helpful?
    I don't know Java, but I'm reasonably good with C and Objective-C.  I'm not completely inexperienced when it comes to development/debugging, so I'm certainly willing to help with whatever I can.

    I uploaded another version which prints out both checksums (expected, real). Though I thought I cared about endian issues, one of the ideas I came up with would be that on a PPC Mac, the CRC32 might create different results due to big endian format. Or do you already have an Intel Mac?
    Give it a try and post (or mail me) both CRCs printed in the error message.
    If the checksums are just not endian flipped, please send me the GIF file the extractor complains about (bricko_0.gif), so I can investigate why it's different.
    My second idea would be that the GIF extractor I use creates different files on WinXP/Intel and MacOSX/PPC. If so, I could try to switch the extractor or use PNG instead.


    Done :).
    (I linked to lemmini.de.  If you'd prefer that I link to the redirector you posted here, let me know and I'll change it.)

    No, Lemmini.de is fine. Thanks :)
    LU Admin
    29 May 2006 01:02:04
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I downloaded the new version and ran it.  Same error.  Here's the output:

    Patch files
    styles/brick/bricko_0.gif
    Patching of file /lemmini/styles/brick/bricko_0.gif failed.
    CRC of source (0x60d9a1ef) differs from that in patch header (0xc429a510)

    I'm doing all of this on my main machine which is a 1.33 GHz PowerBook G4.  I've also got a dual G5, but I haven't tried Lemmini on that machine.  I don't have an Intel Mac yet, but I'm considering buying one pretty soon.

    I'm having real trouble with this forum loading (as I think are other people).  Do you mind moving the discussion to email?  My email address is on my website, and I'm assuming the address on your website is OK.
    0xdeadbeef
    29 May 2006 22:32:38
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, I think know what the problem is. Indeed, the Mac JVM behaves a little differently when it comes to handling images with indexed colors. I'm not quite sure if this is a bug or a feature but I think I know a way to work around this.
    Then again, for this I need to patch lots of my reference resources, so I might need some days to come up with a new version.
    LU Admin
    30 May 2006 06:22:44
    Re: Lemmini - Lemmings for Java - public Alpha
    Glad to hear that you think you've figured it out.  Let me know if you need me to do any more testing for you.
    Mindless
    02 Jun 2006 17:45:48
    Re: Lemmini - Lemmings for Java - public Alpha
    What's the current fall-speed of fallers and floaters in Lemmini?
    0xdeadbeef
    02 Jun 2006 22:27:26
    Re: Lemmini - Lemmings for Java - public Alpha
    Damn, this forum is so slow :(

    Anyway, Fallers fall at 3 pixels per frame, floaters at 2 pixels per frame.
    Pixels here are hires pixel with 1 lores pixel = 2 hires pixels.
    To compensate for the higher resolution, Lemmini runs at 30ms/frame instead of 60ms/frame.
    I did some (rough) visual comparison with the PAL Amiga version which looked ok for me.

    Regarding Mac issues: the problem is the palette index. Problem is that when I extract the pictures to GIFs, some pictures need the palette at offset 0 and others need it at offset 0x80. So I just copy the palette to both offsets which I supposed to be a "quick'n'dirty" solution at the time. However it would have been more clever to patch the indices in the image data to always use the "low" palette.
    The problem is that on the Mac, for some reason, when creating the GIF, "automagically" only the low indices are used, while on Win/Linux, the indices are not altered (so some are low, some are high).
    I first thought that a API function called "PixelGrabber" would behave differently by detecting double entries or whatever. This theory proved wrong unfortunately, though it seemed to be the most logical explanation. Indeed I wrote my own cheap Pixelgrabber-Code, but the result was the same.
    Now obviously the BufferedImage-Class itself is implemented differently on the Mac and I can't simply recreate it or modify its behavior.
    Solution is to adapt the Linux/Win-Versions to the behavior on the Mac: I will now patch the indices of the pixel data to always use the low data - so the outcome should be the same as now on the Mac. Unfortunately I patched quite a lot of pictures which I use as reference for creating the patches - which I use to create the wanted resources from the extracted resources. This means I have to patch all of my changed "reference" pictures to low indexed palettes which would be too much work to do manually. So I have to write myself a tool for this, which will delay the fix a little.
    Still I hope this issue will be fixed next week. The upcoming weekend is a "long weekend" in Germany, since Monday is a holiday. Let's just hope I manage to stop playing around with my new GPS-PocketPC (great toy) and write that bloody palette patcher ;)
    0xdeadbeef
    05 Jun 2006 17:20:59
    Re: Lemmini - Lemmings for Java - public Alpha
    Ok, thanks to the long weekend and Andrew's (LU Admin's) testing efforts, Lemmini should finally work on the Mac. Well, gameplay obviously worked before, but not the extraction.

    Fixes/changes 0.73 -> 0.73
    # Fixed bug that hindered Lemmini from loading custom styles from the "styles" folder
    # Changed GIF extraction routine to work around bugs in the Mac JVM: in indexed color mode
      the MAC JVM doesn't use the correct indices when creating a BufferedImage from a pixel buffer
      and an IndexColorModel. Firstly, it always selects the lowest possible index for colors that appear
      multiple times in the palette. Secondly, sometimes wrong indices with similar colors are used.
    Mindless
    07 Jun 2006 01:34:00
    Re: Lemmini - Lemmings for Java - public Alpha
    Instead of saying "You finished level <insert rating name here>" could the congrats message say something like "You finished all the <insert rating name here> levels."?
    0xdeadbeef
    07 Jun 2006 23:02:44
    Re: Lemmini - Lemmings for Java - public Alpha
    Should be no issue. I think I'll change that in the next update...