Lemmings 2 Data Formats

Started by RavenNine, December 01, 2021, 12:22:35 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

RavenNine

#30
Thanks for the feedback :)

I have now switched to OpenGL 3.3 Core profile and removed the requirement for the COMPAT flag. (I was using Quad primitives instead of Triangle for drawing the Blitter Buffer texture to screen. Quad not supported in Core)

Good catch, my MakeBrick routine was placing the first 2 pixels on top of the first 2 which represent the brick in the animation. I'll take a look at the left/right differences too.

Currently the skill assign logic works as follows;

- Check if Walking state
- Check if already running a skill
- Check if already has a permanent skill
- Special case for Blocker

This is rudimentary and doesn't reflect the game as you know :)
At some point I will need to look into and compile a list of which skills can be interrupted. And which states allow for assignment of permanent skills. e.g. Kayaker - Must be in drown state

<Edit>: The pdf manual contains all of this info in a handy list ;)

The floater seems to be skipping the first few frames of the looping part. Should be a quick fix.

:D even when I played it on my Amiga 500 back in the day I never learned the keyboard shortcuts. Even on the DOS version. But I do appreciate its more efficient for Fast-Forward and Pause/Resume etc. I'll get those worked in for the next test release as I now have a PDF of the original game manual.

Yea, the idea is that the only asset dependencies are the original game files. Eventually the player will have a level and style editor so you can easily make new levels/objects/brushes and create new styles if you want to. However, any levels/styles created will be in the new player format. So will only work with the player. However, you can still import L2 levels made by other tools as long as they adhere to original game format/rules.

The next test release will let you test all 10 Classic levels and switch between them on the level select screen.

As always, I appreciate the time and effort people have put in to provide feedback and answer my endless and hopefully not too annoying queries :)


RavenNine

A quick preview from the filler class which will handle Fill, Glue and Sand...

RavenNine

Test Build 2

The first 10 levels of Classic can now be played with all 8 skills available to Classic. The level select screen will let you continue past Classic 10 into the other Tribes. This is more for curiosity if you are interested in seeing the progress made to level and object rendering for the later tribes. You can choose the skills on the skill bar. They just won't do anything.

Windows: https://drive.google.com/file/d/11rOFAlbql-uzNOncFyQ6LBhw_iovVRxI/view?usp=sharing
Linux: https://drive.google.com/file/d/1Nt5dzERC6JPIS_JFu0e-GN8H76j49dRZ/view?usp=sharing

Note: If you have already tried the first Test Build, you would need to start clean with the cache directory and the root level directory with the binaries.

Changes

- Skill counts now updated when used.
- Digger/Basher/Miner can now change skills
- Press B to toggle Debug brush mode. (LMB paint terrain, RMB clear terrain)
- When building cache now reports which source DOS files are missing if any.
- Keyboard mappings added. (F1-F8, Space, P, Return, Z, X, Escape)
- Switched to OpenGL 3.3 Core (Removes COMPAT flag requirement on Linux)
- Builder collision checks fixed
- Builder brick offset bug fixed (2 pixels where lemming stood missing)
- Builder brick now overhangs 5 pixels facing right and 4 pixels facing left when stood on last pixel of a ledge
- Windows builds now include OpenAL
- Added level selection (Only Classic levels currently)
- Centered level title/time layout on level select screen
- Cleaned up cache format.
- Image data is now compressed.
- .NET runtimes are now compiled into the executable and extracted directly to RAM. (Much less clutter)
- Exploder skill now behaves accordingly when in Classic vs other tribes.
- Each tribe uses its own Exit animation.
- Floater animation fixed.
- Fast-Forward not resetting when changing level fixed.

WillLem

I'd like to test this but get an error message asking if I want to unpack stuff. I type "Y" for yes, and then nothing happens.

RavenNine

Have you put a copy of Lemmings 2 for MS-DOS in the data/dos sub directory?

If you see my post for Test 1 it has further instructions. If that doesn't work, please let me know.

WillLem

Quote from: ravenix83 on December 21, 2021, 07:09:35 PM
Have you put a copy of Lemmings 2 for MS-DOS in the data/dos sub directory?

If you see my post for Test 1 it has further instructions. If that doesn't work, please let me know.

I will give this a try at some point, but I would very strongly recommend making installation of your clone a 1-step process with a clickable .exe that opens the game.

Until very recently, (Super)Lemmini suffered from a need to extract WinLemm resources for years, and its popularity has waned considerably over that time. Lemmings Revolution setups are also typically bogged down with resource/data faff as well.

I'd say "opens with 1 (double-)click" should be any developer's top, top, top priority when creating an app/program.

RavenNine

I agree and I am open to suggestions. The reason it isn't a one step deal as I would have to bundle a copy of Lemmings 2 with it. An alternative would be if I make it so you drop a copy of the Player into your DOS Lemmings folder and it does the rest. Same as say Doom/Quake .exe replacements.

I'll update it for the next test build.

Dullstar

Quote from: WillLem on December 23, 2021, 07:42:14 PM
Quote from: ravenix83 on December 21, 2021, 07:09:35 PM
Have you put a copy of Lemmings 2 for MS-DOS in the data/dos sub directory?

If you see my post for Test 1 it has further instructions. If that doesn't work, please let me know.

I will give this a try at some point, but I would very strongly recommend making installation of your clone a 1-step process with a clickable .exe that opens the game.

Until very recently, (Super)Lemmini suffered from a need to extract WinLemm resources for years, and its popularity has waned considerably over that time. Lemmings Revolution setups are also typically bogged down with resource/data faff as well.

I'd say "opens with 1 (double-)click" should be any developer's top, top, top priority when creating an app/program.

It's not always feasible, and this is one such scenario, as creating such a program would require bundling L2's resources, which, while NL's continued existence shows it likely won't be an issue, is always a bit risky - while you might not get DMCA'd (among other possible penalties), bundling the assets certainly opens you up to it. That's why many of these sorts of projects have you provide the assets from an existing copy of the game.

Still, you can improve the process beyond simply telling users they need to drop things where you expect them. Instead, you can have your program check for those assets where you want them, and then if it doesn't find them there, you present a dialog that asks where Lemmings 2 is, and then have the program copy everything over to the expected directory instead of asking the user to do it. (Obligatory disclaimer: Not a lawyer. This is not legal advice. I'm simply mentioning what I've seen other projects do, so I assume this is the legally clean way to do it, but technically I don't actually know for a fact that this is 100% guaranteed not to get you in trouble).

WillLem

Quote from: Dullstar on December 30, 2021, 07:01:39 AM
It's not always feasible, and this is one such scenario, as creating such a program would require bundling L2's resources, which, while NL's continued existence shows it likely won't be an issue, is always a bit risky

Sure, fair enough. By making the clone in the first place, though, you're already flirting with copyright. Might as well make it easy for people to access your clone by bundling the resources, making it fully functional from the getgo.

From what I've seen, DMCAs only tend to get involved when a project is either monetised, widely promoted, or otherwise attracting a lot of attention. Lemmings 2 is now abandonware and very unlikely to suddenly gain mass appeal, so the copyright owners have nothing to gain by pursuing legal action.

I am of course fully aware that these assumptions don't change the fact that the risk is there, I'm just saying it's a risk worth taking.

Dullstar

Quote from: WillLem on December 30, 2021, 10:18:40 PM
Sure, fair enough. By making the clone in the first place, though, you're already flirting with copyright.

Not necessarily. I've seen this "you need the original game to extract the resources from" tactic used several times, with OpenRCT2 and OpenTTD being fairly high profile examples. Realistically, it mainly depends on who owns the rights whether or not you get DMCA'd for these types of fan projects: Sony *probably* won't. Hypothetically speaking, if Nintendo were to purchase the rights, on the other hand, of the currently supported clones, only Lix would likely survive the wave of cease and desists that their lawyers would fire off... well, except there's a bunch of disassemblies/decompilations of their games that also use the "original copy required to build" approach that they either haven't noticed, or haven't been able to do anything about. The entire concept of romhacks basically sustain themselves off of not actually distributing the edited ROMs; rather, they distribute a file that's basically a set of instructions on how to change the original ROM into the edited one.

It's not unusual for software not to run out of the box, though generally if it needs setup it should really provide an installer to take care of that (although tbh I suspect a lot of installers nowadays, at least for free software, are basically just for non-tech savvy users' convenience and don't actually seem to do much of anything except create a desktop icon and put all the actual filesystem clutter somewhere the user doesn't have to look at if they don't want to). OpenRCT2 will prompt the user to tell it where to look, and then it handles the process of copying everything where it wants on its own and you don't really have to worry about whatever it is that it's doing.*

*Actually, I don't remember if that's an OpenRCT2 feature or if it's part of the unofficial launcher a lot of people use for it, but either way, there exists a mostly automatic guided setup process for it.

WillLem

Quote from: Dullstar on December 31, 2021, 05:05:53 AM
if Nintendo were to purchase the rights, on the other hand, of the currently supported clones, only Lix would likely survive the wave of cease and desists that their lawyers would fire off

Gosh yes, let's hope Nintendo doesn't have any interest whatsoever in Lemmings rights! :crylaugh:

Quote from: Dullstar on December 31, 2021, 05:05:53 AM
It's not unusual for software not to run out of the box

I know, but I've always hated setup processes more complicated than "1. Install, 2. Run". So, if I have an opportunity to influence this aspect of a project (as in this particular case), then I'll speak up :)

Ste Woz Ere

A Lemmings 2 clone? Yes please :thumbsup:

Even better if it (eventually) has player aids - while I managed fine using DOSBox with savestates, having NL-type stuff like rewinds, framestepping etc. would be even better. (might even make my L2 level pack a bit more palatable :P)
Tribes of Steel - a whole new Lemmings 2 game! (120-level pack)
Currently a WIP - all tribes are complete, testing and feedback is welcome!

RavenNine

Happy new year all! Hope everyone had a good holiday all things considered.

@Dullstar / WillLem - I have reworked it so you can unzip the L2Player into your Lemmings 2 MS-DOS install folder and the rest is automatic. I feel this should hopefully be a good middle ground.
@Ste Woz Ere - Rewinds are on the roadmap along with a user friendly integrated level editor focused on ease of use and rapid iteration.
@exit - I had a go at working in your explosion physics code. Just in the process of comparing to DOSBox and need to fix a few quirks with reflecting y velocity. Also, with the explosion initialisation moving the lemming up 1 pixel with no regard as part of the setup, I have opted to fix this official glitch by having it do a collision check before moving.

Video link of the physics in action: https://youtu.be/PgAiXLyOeXw

607


RavenNine

@exit - Great stuff! And thank you kindly. I'll take a look and let you know :)

@607 - Thanks, hoping to have tech preview 3 up within about a week or so.