Lemmini - Lemmings for Java - public Alpha

Started by 0xdeadbeef, February 21, 2006, 06:37:50 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ccexplore

Quote from: 0xdeadbeef link=1140547071/180#194 date=1142554094BTW: 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. &#A0;That corresponds to being a jumper. &#A0;What do you see on the Amiga version? &#A0;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

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.

Proxima

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

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

Quote from: Ahribar link=1140547071/195#197 date=1142625636OK, 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.

Quote
(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.

Quote
(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.


Quote
(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.

Proxima

Quote from: 0xdeadbeef link=1140547071/195#199 date=1142631661If 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

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.

geoo

Quote from: Ahribar link=1140547071/195#200 date=1142631898[...]
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

Quote
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.

Quote
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.


Quote
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

Quote
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.

Quote
- 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).

geoo

QuoteNo, 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.

Quote'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

Quote from: geoo89 link=1140547071/195#204 date=1142714865
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.

QuoteThe 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

Quote from: geoo89 link=1140547071/195#204 date=1142714865
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.

QuoteThe 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

Quote from: 0xdeadbeef link=1140547071/195#205 date=1142727165
Quote from: geoo89 link=1140547071/195#204 date=1142714865If 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

Quote from: ccexplore link=1140547071/195#207 date=1142732598
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

Quote from: 0xdeadbeef link=1140547071/195#208 date=1142763395I'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.