NeoLemmix (Player: V1.26n-C | Editor: V1.26n-B)

Started by namida, January 15, 2014, 09:26:16 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

namida

I'll have to load that specific level into it and see how it reacts. Although I'm thinking he'd just move upwards onto the bashed-out terrain and continue normally.

Anyway - one person noticed and PM'd me, but as you might notice from that screenshot, I also upgraded it to support 32 color palettes (of which 24 can be customized). That isn't in the version I uploaded, by the way, I did that more recently. (The screenshot is just for testing purposes; I have no plans to remaster the LPII graphics anytime soon - though I'm not saying it couldn't ever happen either.)

Currently, it doesn't try to detect whether it's loading a 16-color or 32-color graphic set; it just treats all of them as 32 (and assumes they *do* have the pixel-perfect trigger areas). I'll need to come up with some method of uniquely identifying the 32-color ones so that it can retain full compatibility with the 16-color ones; at present, while LemSet-generated styles such as the LPII ones work fine in it (due to the 32-color format being merely an extension of the existing format, not an entirely new one), the official styles do not. It's a very quick two-line change to switch the player between 16-color sets and 32-color sets (though official styles would still have minor problems, due to it *also* assuming the files are set to have pixel-perfect trigger areas). I'll probably use animation flags on the first object or something to mark them.

32-color styles also work fine in older engines, albeit with weird colorings (and possibly some terrain becoming non-solid on DOS, though not on Lemmix). If you're careful when creating the style, you can make one that will work properly on both 32-color and 16-color engines. (If you don't use the pixel-precise trigger areas, and you know the format, you could even make one that works across 32-color, 16-color, *and* CGA/Tandy. If you use the pixel-precise trigger areas, it uses some bytes that are usually used for CGA/Tandy to store information on them, so you can only make it backwards compatible as far as EGA - and pixel-precise trigger areas obviously won't work on older engines, they'll round up to the nearest multiple of 4.)


EDIT: Working on re-coding it to detect these. In doing so, I've also done it so that it'll be quite simple to further extend the palette (apart from having to work out where exactly I'll fit the data in, unless old engines don't throw a fit at oversized groundXo.dat files but rather just ignore the extra bytes; or I just break backwards compatibility for 64-color and higher), though for now I'll leave it at 32 since this allows decent variety while (in my opinion) still retaining the Lemmings feel.


EDIT AGAIN: Done. It now only attempts to load pixel-precise triggers and 32-color images if the appropriate flags are set. The two are independant of each other, so you can create a 16-color graphic set while still taking advantage of perfect triggers without worrying about 32-color mode interfering, and if you know the CGA/Tandy formats, since their bytes are only taken over for trigger areas (not for 32-colors), if you don't use pixel-perfect triggers you can create a set that's compatible with 32-color, VGA/EGA *and* CGA/Tandy. (Note that pixel-perfect triggers on graphic sets merely refers to aligning the trigger area to the object graphic within the graphic set itself; you can still place objects pixel-perfect and their trigger areas will move pixel-perfectly accordingly even if the graphic set uses the older 4x4  grid-based triggers.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Tested it; that glitch doesn't occur, but testing this has exposed another (unique to the updated version) glitch - specifically, that the lemming will move up even if there's a gap between what it's standing on and what it's moving onto.

I fixed this glitch, I also implemented your suggestion of the lemming simply not moving forward further (rather than stopping bashing) if it runs into a 4-pixel or higher wall that isn't steel or a wrong one-way. (In fact, it only cares if the top pixel is; if the top one isn't but the lower three are, it'll stop moving forwards, take out that top pixel as part of its next stroke, and proceed to ascend the now-3-pixel wall while moving forward this time.)

Hm, I can think of an interesting (though I wouldn't classify it as a glitch) way that skills could interact here to give rise to a new trick that wouldn't've come up under original mechanics... I might keep the idea to myself for now though.

Anyway, gonna take a bit of a break from fixing bugs / enhancing features, to add a new gimmick. I'll leave exactly what it is as surprise until I decide to use it, though. http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" /> All I'll say is that it's one that is extremely hilarious to watch. (Or maybe I'm just easily amused.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

ccexplore

Yeah, the Tricky 5/Taxing 8 setup won't exhibit the issue with basher trying to walk up a tall step.  I've attached a test level that I believe would.  I haven't tested it but I think in previous version of your fixes, the basher may stop bashing at the bottom of the slope depending on where exactly on the slope you started bashing from.

And if we want to be absolutely consistent it should be 3-pixel or higher, since 3-pixel wall is when a walker would've started to need to jump. However that's rather hair-splitting so I'm not hung up on that (especially since in the original mechanics, the basher is already inconsistent with the walker when it comes to falling--the latter needs a 4-pixel fall to transition to faller, the former only needs 3).

namida

Nope, no problems. =)
Well, apart from that the lemming fell onto the bit at the top, but after I moved the window one pixel left, it worked fine.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

ccexplore

How can I configure it to use the graphics sets from the official game, for testing it out with my own LVLs via LookForLVLFiles?

namida

That upload doesn't support it, it only has the LPII styles; I added the official ones in shortly after uploading it tbh xD. I got a few IRL things to do right now, once I'm done I'll upload a new version including the recent updates and default styles.

EDIT: Here you go. For obvious reasons, replays from traditional Lemmix won't work with it, but it definitely can play its own replays. By the way, in addition to existing gimmicks, feel free to give 0x420B and 0x420C a try and see what they do. http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" /> 420B is the one I was referring to before, whereas 420C could be seen as taking one of the existing gimmicks and inverting it.

http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip
(EDIT: This link previously pointed to wrong versions, and at one point incorrectly to the LPII Bonus Pack; it's completely fixed now. Thanks to DynaLem for pointing this out.)

Style numbers:
0 - Tree (LPII)
1 - Purple (LPII)
2 - Psychedelic (LPII)
3 - Metal (LPII)
4 - Desert (LPII)

6 - Test style (Ground/VGAGR file attached)

16 - Dirt
17 - Fire
18 - Marble
19 - Pillar
20 - Crystal
21 - Brick
22 - Rock
23 - Snow
24 - Bubble
25 - Holiday

All official and LPII styles (including Psychedelic, which previously I showed screenshots with it slightly modified) are normal 16-color styles that don't use the new pixel-perfect trigger capabilities - they're just the normal, existing versions of the styles.

The test style (6) however, does use 32-colors and pixel-perfect triggers. It loads fine in older engines for editing purposes, playing might be a bit weird (not that the style is really suitable yet for anything other than testing).

By the way, for those who are just for fun trying to solve LPII levels in it, I can also confirm all three of the tuned lemming levels are possible. Also, I found a working solution to Cheeky 8 (replay attached), though 60% (the requirement exactly) seems to be the maximum it's possible to save. (Now that mechanics are more or less complete, I should probably start making a list of which LPII levels are problematic, so I know for if/when I release a version of it based on this engine... though so far, the only one that I can confirm for sure is *not* possible is Genius 8.)

I'm aware of the following glitches, in fact I've fixed them already (but since uploading this, so the uploaded version has them), with the new gimmicks:
  • 0x420B - Lemmings in the same place as a blocker get stuck.
  • 0x420B - Sliders look weird.
  • 0x420C - Miners don't turn around when hitting steel/oneways.


And the following, which I haven't fixed:
  • (general) I still haven't fixed the push-into-wall glitch for one-way fields (I thought I had, but turns out I only fixed it for blockers). >_> Fixed
  • 0x420B - Mining into steel with a precise terrain arrangement and starting position may result in the lemming getting stuck inside the steel. This actually could happen even under normal conditions, it's just that the lemming would usually be only one pixel inside and facing outwards (two pixels in is only possible under 0x420B), so he'd walk straight back out and it wouldn't be noticable. Under 0x420B, it became noticable. Fixed for both cases.


    If you downloaded it more recently than when this line was put here, you have a version with the above glitches fixed. =)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Okay, that's embarassing. For a while I had the wrong link in the above post - I had posted the link for the LPII Bonus Pack instead. Anyway, the correct link (and the correct version of the file) is there now.

It would also seem inconsistent fall distances between different skills have somehow snuck back in, though I've fixed up all of them except the basher now. While working on this I noticed I never actually made fall distances pixel-precise, so I've fixed that too. That being said, an inconsistent fall distance for the climber, I decided to leave as-is, because while numerically it's inconsistent, from a gameplay point of view it makes sense (since the climber hits his head). It may even be that it isn't inconsistent, but just looks it - I tested it by climbing up a wall that was basically an upside-down L shape and testing how many extra steps were needed to make it safe, then testing the same thing by digging away the horizontal bit so that lemmings would fall exactly from the corner (on the inside); walkers going off the edge needed 5 steps more than climbers did, but that's roughly the height of a climber lemming so it makes sense IMO.

Here's an updated version with all my new fixes:
http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip

(NOTE: The link is the same as the above post. If you downloaded that one, then saw this and think "oh crap I have to download again", nope, the above link will also be updated. I'm trying to keep the link the same for this exact reason.)


By the way - in case you're wondering - I used Wimpy 21 to do the testing, since it has a fall that's exactly one pixel too far, so it was good for calibrating. (Actually, at first I used Psycho 28, until I realised "builders would be really, REALLY useful for this" xD).


EDIT: Teleporters are added! =D
Mechanics of them is that they automatically assume the next object is a receiver (eg: if the 3rd object in a level is a teleporter, it'll attempt to teleport you to the 4th object). The lemming is teleported to the same point relative to the top-left corner of the trigger area. The exact point at which the coordinates are changed is when the teleporter's animation finishes and the receiver's one starts.
Detecting which teleporter has been activated is implemented in a similar way to how Lemmix implements traps.

Current version also seems to throw a lot of error messages in levels that *don't* contain objects of a specific type... looking into this now.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Okay, I tracked down the source of the rapid-fire error messages and fixed that. The reason I was having trouble is because although the presence of one type of object caused the errors to not occur, it was the teleporter's code that was actually causing it, with the former type's presence simply having a preventative effect. (I would explain more detailed, but that would give away what exactly this "other" object is... http://www.lemmingsforums.com/Smileys/lemmings/wink.gif" alt=";)" title="Wink" class="smiley" /> )

http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/65v6ip89vfq2izj/LemmingsPlusIINeo.zip
There's the fixed version. Since I'm releasing so many versions, I decided to start adding version numbers. They may look random, but there's a pattern to it: YYYY.MMDD.HHMM.xxxx. You can probably guess what Y, M, D, H, and the other M are; xxxx is AAAA in this release and I'll make it AAAB in the next, AAAC after that, and so on. The date/times are GMT+12, since that's what it is where I live.

And here's a level so you can see teleporters in action, since screenshot doesn't do them much justice. Requires this version (or the previous one, if you can tolerate all the error messages it throws at you). It's not a hard level by any definition of the word, though it's not just "watch lemming walk into teleporter, then walk into exit".
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Here's the newest test version. You may notice some slight differences from the previous one, such as the content being an updated-for-NeoLemmix version of LPDOS content rather than the plain old unadjusted LPII content. This is because this version is (albeit in beta form) the official NeoLemmix LPDOS release. =)

http://www.mediafire.com/download/vj1lxqm1debgd00/LemmingsPlusDOSNeo.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/vj1lxqm1debgd00/LemmingsPlusDOSNeo.zip

Any discussion that doesn't relate to the NeoLemmix engine (ie: level design errors, or general talk about the content rather than the engine) might be more suited for the LPDOS topic.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Updates for next version (for the engine itself):
> Fixes the bug where you can turn a miner around by making a different lemming build.
> Lots of behind-the-scenes stuff to make it easier to add and update new players (for different packs/games).
> Fixed a bug where certain object types that should never be rendered still get rendered on the preview screen.
> Made it so that whether main.dat contains 4 or 5 rank images can be set independantly of which game is being compiled.
> Same for the existance of secret levels.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

I'm not uploading an LPDOS update yet because there's some level fixes needed for it that I haven't done yet, but here's something else that I'm sure you guys will probably like...

http://www.mediafire.com/download/uia28yqz1856rdm/CustLemmixNeo.zip" class="bbc_link" target="_blank">NeoLemmix CustLemm! =D

Unlike the traditional-mechanics versions of CustLemm which don't support any new features except for 32-color palettes, this is fully NeoLemmix based and thus supports all NeoLemmix (and LPII) features.

I've now completely integrated everything into one folder, compiling off the same codebase (just like the vanilla Lemmix source does for Orig, OhNo and H93) - Orig, OhNo, H94, LPDOS, LPII, LPIIBonus and Cust. So, when I make any updates now (unless of course, it's updates to a specific game's datafiles (levels, graphic sets, etc)), it'll instantly be applied to the whole lot. =D This probably sounds like an everyday kinda thing to the progamming experts here, but to me, this is fancy s***. xD For that matter, I can also very easily add new games to it, for if I'm making Lemmix players for any of the large packs other people have made, or Lemmings Plus III if/when that happens...

I'm getting a bit sick of organisational stuff now, so the next thing I do will probably be a new gameplay feature. Pickup skills, most likely, or perhaps a new gimmick if I get a good idea. (I did have one idea recently but I'm not sure if it's enough on its own to be worth making - nuclear lemmings! In other words, bombers take out a MUCH larger area.) EDIT: Working on pickup skills now.

Also, QuikEdit has been updated to fix the Y coordinate bug and add support for editing the pickup skills. Note that pickup skills aren't actually implemented in NeoLemmix yet (not to mention you'd need a graphic set that has the object for them).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Okay well, they are now. Gonna hold off on uploading yet another 5-minutes-later update for now, but here's a couple of screenshots to show it. They also show (or at least strongly hint at) another new feature. Actually, I showed this one to a few people already, but didn't so much say it publically... anyway, as you can see in this shot, it's also possible now to have lemmings that are already present at the start of the level (and yes, you can make them face left if you want).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

mobius

 http://www.lemmingsforums.com/Smileys/lemmings/thumbsup.gif" alt=":thumbsup:" title="Thumbs Up" class="smiley" /> very cool! What's with the circle around the builder? I couldn't get that to happen in game.

so the lemmings that are already on screen, are they not counted in the lemming start count?

the teleporters are very cool of course  http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" />
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


namida

That builder isn't a lemming, rather, the thing is a pickup skill. Once a lemming walks past it, notice how an extra builder is gained? It's a new feature I only just added in; I haven't released any version of the player that supports it yet. (Neo CustLemmix supports the teleporters and pre-placed lemmings though; though you do need a style file that contains objects for them.)

And yes, they are counted in the total.


Also, I mentioned before how I worked out how to have multiple versions (Orig, OhNo, etc) compiling from mostly the same code, and that I had added all those various games... I just now added Covox and Prima too, just for completeness's sake. (I haven't started doing level tune-ups on anything beyond LPDOS at the moment.)


EDIT: Redownload CustLemmix (I just updated it to version 1.01n of NeoLemmix) and use this graphic set and level, it shows all the new object types (except secret level triggers, but you've already seen those in LPII):
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

I had a thought*. How would everyone feel about a feature where certain terrain pieces (in other words, the steel blocks) can be automatically made into steel by the NeoLemmix engine without having to be marked with steel areas? Of course, the style would need to be modified accordingly to accomodate this (there are two spare bytes on each terrain piece that can be used for this), and I'd probably also make it set on a per-level basis. The other advantage to this is that the portion of the LVL file used for steel areas could then be repurposed for something else, perhaps extra objects. Not to mention it would negate 99% of the work of updating existing levels for it; only some minor object adjustments would be needed. Obviously, it wouldn't work for VGASPEC levels, but there aren't many of those full stop, and even fewer with steel (only one official VGASPEC level has any steel in it, not quite sure about fan levels). One other potential issue is dealing with where steel is overlapped by other terrain - though if I'm able to handle this fairly easily, it'd become an advantage rather than an issue, Danger 11 and Psycho 4 are some examples from LPDOS where it'd make a pretty big difference (although a bit late now - though Danger 11, there's simply no way I was actually going to try and implement that diagonal cut-off by hand).

Also, since some of you may be wondering - this would indeed mean there would be no limit to how much steel you could have in the level (apart from the number of terrain pieces).

* My original thought was actually writing an app to detect relevant terrain pieces and automatically create steel areas based on them, but then while writing this I thought "why not just build it directly into NeoLemmix".
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)