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

Ah, much better. Objects are now rendered, too. (The pickup skills don't quite render properly because at the moment, it just renders the first frame of the object, and pickup skills do special stuff involving frames - so that's not a bug/glitch, just an advanced feature that I haven't implemented in the editor yet.)
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

w00t!
Currently displaying at a 320x200 resolution, simply because I haven't written the code to resize the rendered level to fit a 640x400 window yet. However, ultimately, it'll run in 640x400 to keep open the option of supporting Lemmini.
(Toolbar is visible but non-functional at this stage; it's hardcoded to open a specific LVL file, though if you replace that LVL file with a different one it'll load whatever LVL you put there - it currently does not pay attention to the screen start position or graphic set in the file, it just uses set values for those, but obviously that wont' be the case once it's fully working.)


EDIT: It still is hardcoded for what level file it tries to open, but it now defaults the screen position to the level's starting screen position, and loads the correct graphic set instead of always loading set #1. Additionally, although no editing functionality is implemented yet, you can now scroll the loaded level. =D And, running in the proper 640x400 resolution now. Also, toolbar displays the mouse X and Y and screen position (didn't implement the slider yet). So I guess so far, it's a (almost) fully-functional level viewer. xD
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

Alright, here's V1.05n. Got a few changes here that don't require specially-made levels; most notably that you can now choose between percentages or plain lemming counts, and in CustLemmix you can now choose to load a levelpack other than LEVELPAK.DAT (this feature has also been backported to traditional CustLemmix).

Code: [Select]
v1.05n
------
*  Fixed some bugs relating to the reverse skill count gimmick.
*  Skill panel now displays 0 instead of a blank white square
   when none of a skill remains.
*  Infinite uses of a skill is now possible. This is done by
   setting the skill count to 200.
*  Time limits can now have seconds as well as minutes. The
   preview screen has been slightly changed to accomodate this.
*  Explosion particles now disappear properly.
*  There is now an option in the INI file to choose between
   using percentages or using number of lemmings.
*  Levels with >100 lemmings no longer sometimes count an attempt
   as successful when it's a few lemmings short but still enough
   to, when rounded down to a whole number, reach the same percent
   as the goal would be.
*  Some slight changes to the formula to determine which victory
   or failure message is shown.
*  CustLemmix - The level pack name to load can be changed in the
   INI file.
*  New object: Low-gravity zones. Lemmings fall slower and are far
   less likely to splat afterwards, and will never splat if they
   land while still in this zone.



ALSO: I turned off autosteel for LPDOS, since the manually done perfect steel gives better results on
every level except Medi 19 / Danger 11, and even there, the slight inaccuracies in it have no impact
on any known solution to this level nor do they allow for any known backroutes that would otherwise
not be present. All other players still have it globally enabled (except CustLemmix of course).

Download here, I'm still in the middle of uploading them so some may not be available yet, just give it a few minutes done:
https://www.mediafire.com/folder/16bynte4q5w5m/V1.05n" class="bbc_link" target="_blank">https://www.mediafire.com/folder/16bynte4q5w5m/V1.05n

(Note: First release of V1.05n had a major bug; in that the time limit "wrapped around" after 7:59, causing an 8 minute level to instantly declare "time up" and a 9 minute level to only give 1 minute. Within minutes of uploading I caught this bug, and rather than wait till V1.06n, I uploaded a fixed version of V1.05n. I don't think anyone actually downloaded the bugged version, but if you did and you're getting that bug, redownload it.)

----
I am aware of (and have already fixed for V1.06n) the following:
  • When skipping levels using the cheat code, if percentages are disabled, the postview screen only displays the number of lemmings you actually managed to save (it still lets you move on to the next level) instead of saying you saved all of them (like it does when you have percentages enabled and it says you saved 100% in this case). - This glitch relates to a feature that was only introduced in V1.05n. Thanks to DynaLem for pointing this out.
  • If a bomber countdown runs out while a lemming is exiting, the lemming restarts the exiting animation and plays the "yippee" sound a second time. - I think this glitch is even present in the DOS games; at any rate it's definitely present in all versions of Lemmix, so fixing it was overdue. :P


Editor-wise, the toolbar (at least the default version, not the slightly different versions for terrain / objects / steel) is now fully functional! Well, most of the buttons don't do anything yet, but they function as clickable buttons and do in fact, behind the scenes, each report a different code so that they can be handled seperately. To an end user it doesn't really make much difference, but for me, all I have to do is code what those buttons actually do now; detecting them being clicked is already fully in place. The only ones that actually *do* anything though are the scroll arrow buttons and the "Exit" button (also, the scrollbar also is fully functional).

EDIT: I now have also implemented (quite generically, so it can be reused for every such input box in the editor) code for typing into the input boxes. So far, the only input box you can actually get to appear (and thus, the only one you can use) is the screen position one on the toolbar; but it works perfectly! You may quite rightly be wondering - that's a textbox that only uses numbers, how can you be sure letters will work too - but the way it's designed actually means there's very little difference between the two (the only change is what range of ASCII characters it'll accept - text boxes accept anything from " " to "~", while number boxes only accept the digits).
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

Well, NeoLemEdit can finally actually edit something! At this stage, it can only edit the skills, though. Besides the traditional setting the amount of skills, it also has a button to set a skill's uses to infinite, as supported in NeoLemmix V1.05n and onwards (if you try to load such a level in older versions or other engines, depending on the engine in question it'll either give you 200, 99 or none - older Lemmixes do 200, I believe).

I still haven't made a proper save/load menu yet. It just always loads from a specific filename (not going to say what that is, as it would reveal the position of one of those two levels in LPIII) when starting up, and saves to the same filename with an "A" on the end if you push the S key. I'm not sure what I'm going to do next, but it'll be either the general stats menu or the loading and saving LVL files (DAT will come later - although the nessecary underlying code for *loading* from DATs is already there; code for saving only exists for LVLs so far).

First screenshot just shows the skills menu. In the second one, I've clicked the infinite button for a few skills and am typing in the amount for bashers.
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've yet to actually implement it into the program, but here's what the general stats window looks like. Much more crammed than the old LemEdit one. o_O

Note to self: Don't add any more features relating to general level stats. xD

Also, in a later version, I plan to actually do a dropdown list or popup box or something for gimmick selection. But at first, it's going to be a matter of "enter the code". xD I should also mention, Autosteel will be turned *on* by default when creating a new level; but of course you can turn it off.


EDIT: Implemented. Though (except for the button to set the starting screen position to the current position, and the "Confirm" and "Cancel" buttons) it's not functional yet.

EDIT AGAIN: And it's functional now. Including that if you change the graphic set number, once you exit that menu (it doesn't do it in the background while you're still in there), it correctly loads up the new graphic set. (VGASPEC support still isn't implemented; the Ext field just allows you to view/change the extended set number stored in the level file.) You probably also notice that I expanded the time limit minutes, graphic set number and VGASPEC number fields to 2 digits, and the lemmings and requirement to 3. =)

And if anyone's gonna ask: Yes, those are the actual stats and skillset for that level, I didn't change them for the screenshot. xD
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

wow, cool! I missed this thread. This is looking really nice. I like all these new graphics people are making lately  http://www.lemmingsforums.com/Smileys/lemmings/thumbsup.gif" alt=":thumbsup:" title="Thumbs Up" class="smiley" />

I voted for the pre-placed athlete because I thought it might offer the biggest level design opportunity. But it looks like the vote is pretty divided. IMO, that or portals are the coolest.
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

NeoLemEdit now boots to a blank level, and the menu option to load a LVL file now works (including that you can enter any file you want). =D Saving... I'll do it tomorrow. Done enough for tonight. Mostly that I can't be bothered doing the popup box to confirm you want to overwrite existing files, right 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

I'm wondering - I put a poll up for this, but feel free to post if you want to say more than what the poll can - would there be any interest in support for VGASPECs with more than 8 colors? The reason I ask is because, I did expand the normal graphic sets by an extra 16 colors - but I plan to make use of that myself. On the other hand, I don't see myself being very likely to make use of extended VGASPECs, so it's a feature I'm only going to code if people are likely to use it. But if I am going to code it, I'd like to know that I'm going to do so *before* I start coding any VGASPEC support into NeoLemEdit.

Just to be clear - just like how NeoLemEdit and NeoLemmix can use the old 16-color graphic sets as well as the new 32-color ones (and for that matter, most old formats); they will likewise remain able to use both the older and the new VGASPECs.

EDIT: Also, I noticed the bug involving bashers and diagonal steel has somehow revived itself. The code I added to fix it is still there, so I'm guessing something else brought it back. At any rate, it'll be fixed (again) in V1.06n.
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)

Minim

I have tried your NeoLemmix program, but I found it a lot slower compared to the original Lemmix programs (The fast-forward button doesn't work and the skip-time buttons cause the game to freeze). I just wonder what exactly is causing the NeoLemmix games to be so slow?
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

namida

Probably because NeoLemmix does a lot of checks that normal Lemmix doesn't, thus, it needs more power to run. In fact, Lemmix (in traditional form) can exhibit those kind of behaviours too, under intense circumstances (such as levels with very high numbers of lemmings); it just takes less to push NeoLemmix to that point because it does more work.

This is especially true of blockers - under traditional mechanics, the trigger area grid is made up of 4x4 sections, whereas in NeoLemmix, it's pixel-perfect. This essentially means that the engine has to do 16 times as much work each time a blocker is placed or removed, since what was previously one spot of the trigger map is now 16 spots. In practice, it isn't *quite* 16 times, because the blocker's fields don't cover quite as large an area as they did before, but it's still a LOT more. Likewise, any skill that applies a terrain destruction mask can no longer just blindly slap the mask down, but also has to check if any of the pixels shouldn't be removed (due to being steel or wrong one ways). Likewise, climbers now perform terrain checks more often (though the checks themself aren't any more intensive, I don't think; they're just more frequent), builders perform a couple of extra checks each step, etc.

That being said, on my system - a laptop from about 3 years ago, that was probably somewhere between "good" and "great" for its time but definitely nowhere near top-of-the-line - it doesn't have any problem with fast forward or time skip; it does sometimes take a while to load a saved position, depending on various factors (how complex the level is, how many lemmings, what skills are used). Maybe try running it on a different system, or with less processes running in the background? I might see if I can get an older PC up and running to see just how bad the performance issues are and if I can identify anything that's really straining and if there's any way to improve it. Indeed, some of the earliest fixes I implemented could probably be implemented in more efficient ways; the hard part is tracking down exactly which ones cause the big issues when my system isn't one where the issues are particularly noticable. But, I would certianly rather not make it unusable on older systems if I can avoid it.
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

Alright. While it's nowhere near complete, since NeoLemEdit can now load and save files properly (at least for LVLs), and edit the stats and skillsets (including NeoLemmix features, even some that QuikEdit doesn't support yet - and probably won't, since I probably won't bother updating it anymore), it might actually be somewhat useful, even though it can't edit any aspect of the actual level layout yet. (Also, it shows that I am actually doing something, rather than just taking screenshots of LemEdit and editing them. http://www.lemmingsforums.com/Smileys/lemmings/tongue.gif" alt=":P" title="Tongue" class="smiley" />)

So, here's the first release. Just to re-iterate - it is nowhere near complete and you will not be able to create a level from scratch in it. Not yet, anyway.

http://www.mediafire.com/download/luhbfjnf3bbpazo/NeoLemEdit_v0.30.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/luhbfjnf3bbpazo/NeoLemEdit_v0.30.zip


If it's of interest to anyone, the NeoLemEdit.dat file is a standard Lemmings format DAT file, and contains the following sections:

Section 0: Palette info. Just the default Lemmings palette. Probably don't want to edit this.
Section 1: Unused, reserved for future use. (It'll be a list of gimmicks and their codes.)
Section 2: Unused, reserved for future use. (It'll be a list of trigger effects, their codes, and what properties need to be set for them.)
Section 3: A blank level, this is what it loads when it boots up (or, in the future, when the "Create New Level" option is selected). You can modify it if you want, but keep in mind that, except on startup, it ignores the graphic set number stored in this file.
Section 4: Contains some data on the positioning, sizes, and effects of the buttons and input boxes in the interface. You probably don't want to edit this either.

The interface images aren't stored in the DAT file, they're directly embedded in the EXE.
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)

Minim

That being said, on my system - a laptop from about 3 years ago, that was probably somewhere between "good" and "great" for its time but definitely nowhere near top-of-the-line - it doesn't have any problem with fast forward or time skip; it does sometimes take a while to load a saved position, depending on various factors (how complex the level is, how many lemmings, what skills are used). Maybe try running it on a different system, or with less processes running in the background?

OK, I've figured out what was going wrong. http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" /> I think it all depends on the type of computer you have. My Windows XP computer was the reason why it was playing so slow, despite being a fast machine. I did as you said and decided to run it on my Windows 7 laptop and it was MUCH better (I could read the scroll at the bottom of the title screen, and avoid the 5-second delay on each fadeout (Which I briefly asked http://www.lemmingsforums.com/index.php?topic=879.msg18511#msg18511" class="bbc_link" target="_blank">here), some of the things that my XP was unable to match). Thanks, namida!
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

namida

Alright, here's V0.31 of NeoLemEdit. It doesn't have any new features from V0.30, just a few improvements to existing features:

> Level images are now saved with the proper black background, rather than a transparent one.
> Much less lag while scrolling.
> Tolerance for invalid data *very* slightly improved. It's still likely to crash if you try to make it do so, though.

http://www.mediafire.com/download/ad7lh4d98zuy3ah/NeoLemEdit_v0.31.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/ad7lh4d98zuy3ah/NeoLemEdit_v0.31.zip

If you're wondering what I did to improve the lag; previously, it redrew the entire level every time anything on-screen changed (whether it was that it had been drawn over by a menu, scrolling, changing graphic set...). Now, it only redraws it when nessecary - if nothing's changed, it re-uses the same image it generated the last time it drew the level. Additionally, it doesn't render the whole level (except when saving an image file, obviously), but only the parts on the screen and about 200 pixels either side (this is so that it doesn't have to regenerate the layout just because you scrolled 8 pixels).
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

Well, this is quick even by my standards. V0.32 is here.
I wasn't going to release a new version so soon - the only new feature is that it can now display steel areas - but I found some major rendering bugs relating to objects, and also with terrain pieces that have contradictory properties (such as having both No Overwrite and Eraser activated - NeoLemEdit was trying to apply both, whereas the correct behaviour is to only apply No Overwrite in this situation. Most editors won't allow setting contradictory properties like that, but some levels from the official games have terrain pieces set like that.)

Aside from the fixes and rendering steel, it also now gives an "are you sure you want to quit" box when you try to exit (as long as you use the exit button - clicking the X is an instant close still, I probably won't change that).

Mayhem 6 is a good level to compare the versions. As you can probably guess from the attached image, it doesn't include the steel areas when saving an image; it only displays them actually inside the editor.

And, with this one, make sure you replace NeoLemEdit.dat as well as the EXE, as it contains a bit of data that's new.

http://www.mediafire.com/download/v7a6w9x3s7sij8f/NeoLemEdit_v0.32.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/v7a6w9x3s7sij8f/NeoLemEdit_v0.32.zip

Next thing on my todo list is placing/editing steel areas - that's by far the hardest thing to do without a graphical tool that supports it. (Even though autosteel does render it somewhat redundant, but just in case.)
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

Question! You know how when editing a piece, LemEdit has those directional buttons on the toolbar to move it (instead of drag&drop or using the arrow keys)... does anyone actually use these, and if so, would you really miss them if they weren't there? It's just because I see them as kind of redundant, and would like to be able to re-use that space for other purposes (except on steel, where I'll probably keep the arrows but re-use them themself for adjusting the sizes, rather than those fiddly buttons LemEdit normally has next to them); especially on objects.

At this point I'm going ahead with my idea of getting rid of / repurposing them, but if anyone really wants their original function retained, the sooner I'm aware of it the easier it'll be to change it back to how it was in the original.

I should be able to release a new version pretty soon. Steel editing is almost complete - selection is done, editing position/size via the input boxes on the toolbar is done, resizing via the arrow buttons is done. Just have to implement moving via arrowkeys (done) and drag/drop.

Not sure whether I'll do terrain or objects next after that. Terrain will be easier, but objects will be more useful - there's no terrain-related new properties in NeoLemmix after all (except the autosteel which doesn't require any special editor attention for terrain editing).
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)