Open source, cross-platform Lemmings engine?

Started by BradLee, February 15, 2015, 04:32:33 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

BradLee

Hi all,

I was just thinking recently that it's a shame is that there is not some kind of cross-platform Lemmings engine.

Morads tried to do this and failed miserably... probably because their business model was too vague and their main character was too ugly. I'm also not sure that Kickstarter was the best way to go about such a project anyway.

Then there is the open source Pingus which looks pretty good and runs on Linux, Windows & MacOSX. It has a lot going for it, but sadly only has 2 committers and hasn't been updated since 2011. I find this very surprising since it is very popular and has been written about on numerous websites.

I know that the each of the developers have their own personal projects that they are working on, but it would be great to see them combine efforts and resources for something bigger.

Anyway just musing with the idea...

Mindless

#1
If you want it, you gotta make it.  That's the open-source way.  :lix:

Actually, there's Tundra, but the links are broken, and I think it wasn't working with recent versions of Python or Pygame last time I tried it.  I can probably dig up the files if you want to try to make it work.

BradLee

Quote from: Mindless on February 15, 2015, 04:35:21 AM
If you want it, you gotta make it.  That's the open-source way.  :lix:

Ah, sadly I don't have the know-how to do any coding. :(

ccexplore

#3
Um...

http://www.lemmingsforums.net/index.php?board=8.0
http://www.lixgame.com
https://github.com/SimonN/Lix/blob/master/doc/copying.txt

*cough* *cough* *cough* ;P

Ok, to be fair it's been perpetually in pre-release status.  But still, it exists and is working decently well at this point.

And you mentioned Pingus.  So examples clearly exist, contrary to statement "there is not some kind of cross-platform Lemmings engine".  Seems like what you really mean is, you wish they have a bigger following?  I don't know if that problem's unique to open-sourced lemmings though.  I mean, IIRC even PSP Lemmings wound up shutting down their online system for distributing user-made levels, for example, which suggests not enough people are using it to justify the costs for them.

BradLee

@ccexplore, sort of...

The main reasons I have for suggesting this are:

1. Being able to play different levels from one application, instead of having to have multiple Lemmings engines installed.

2. Since my favourite Lemmings engine is not likely to receive a port to my preferred platform, an open source project that supports multiple OS's is much more likely to make this happen.

3. Pick and choose the bits that you want.

E.g traditional DOS-like (with glitches), or Namida's smooth and improved. You could even turn exploits on and off so that you weren't presented with levels that require knowledge these exploits to be solved.

HD or traditional resolution.
Do you want things pretty? Or do you want them traditional and blocky and chunky?
Do you want backgrounds on/off... no background (traditional black) or pretty pics.

Multi-player support or not?

etc.

4. Bugs are identified and resolved quicker, because the user base is larger.

5. Improvements benefit all.  If someone makes a new level set or a or a "theme pack" then everyone can play it, rather than what currently happens. P.S. I know that they can be converted, but this is really cumbersome solution.


I just think that there are so many benefits to being able to pool resources, rather than the current fragmented state of having everyone do their own thing.

Nepster

So you suggest a new Lemmings engine, that will likely fragment the Lemmings community even more? :P

I think it unlikely that you will see all developers combing their efforts:
a) The existing engines are written in different languages, so there is no easy way to "combine" them. So a completely new project has to be started and who would give up his/her own project after working on it for such a long time?
b) Everyone would have to agree on one set of game mechanics and additional features. I am not sure this is ever going to happen.
c) Currently almost all Lemmings engines support loading traditional Lemmix .lvl-files (which are still the majority in the database). So apart from some levels made specifically for other engines (mainly Lemmini and Lix), the biggest difference lies in what game mechanics you prefer.
d) If you want ports to Android, then you want ports to mainly touch-controlled devices. But apart from LPJM's engine, most Lemmings games are written to be controlled by mouse and hotkeys, and will likely turn out to be very frustrating if just run on a tablet. So the question here is: Is there enough demand for such ports (given LPJM's project and other slightly less faithful Lemmings clones) to make the effort to include proper touch control?

BradLee

Quote from: Nepster on February 15, 2015, 11:12:11 AM
So you suggest a new Lemmings engine, that will likely fragment the Lemmings community even more? :P

No, I'm suggesting an approach to consolidate our efforts. :/

Quote from: NepsterI think it unlikely that you will see all developers combing their efforts:
a) The existing engines are written in different languages, so there is no easy way to "combine" them. So a completely new project has to be started and who would give up his/her own project after working on it for such a long time?

I'm not saying to combine the different languages... I *know* that that is impossible. What I am suggesting is that a fresh project be developed. Sure some stuff would be inevitably lost, but many hands make lighter work.

Also, if it was planned properly then a core project could be developed that would also allow for developers to create their own forks for additional features that they consider important to them

Quote from: Nepster on February 15, 2015, 11:12:11 AM
c) Currently almost all Lemmings engines support loading traditional Lemmix .lvl-files (which are still the majority in the database). So apart from some levels made specifically for other engines (mainly Lemmini and Lix), the biggest difference lies in what game mechanics you prefer.

That's true, which is why I suggested having selectable options.

Quote from: Nepster on February 15, 2015, 11:12:11 AM
d) If you want ports to Android, then you want ports to mainly touch-controlled devices. But apart from LPJM's engine, most Lemmings games are written to be controlled by mouse and hotkeys, and will likely turn out to be very frustrating if just run on a tablet. So the question here is: Is there enough demand for such ports (given LPJM's project and other slightly less faithful Lemmings clones) to make the effort to include proper touch control?

Again you would have a main core engine... and then whoever was responsible for the Android port would look after that section themselves.

Specifically as to whether Lemmings game mechanics would work well on a small screen, well there are already PSP and Vita Lemmings, which are not terrible. Also there are plenty of other other iPhone and Android Lemmings clones. So it's not a problem that could not be solved with some thought.

Besides if working on game input for touch devices does not interest you, then you don't have to work on that part. The beauty of being a cross-platform app is that you can work on the parts you want to work on and leave the other bits for someone else.

Also the last benefit of having a combined project is that it is less likely to die or be completely abandoned.

If one developer gets too busy to work on it anymore or decides they are no longer interested, then the project does not stop die completely because there are many other people working on it too.

Just some more thoughts -shrug-

namida

It's a nice idea, but it's unlikely to see it happen. I doubt there's much interest in having several different sets of mechanics in one app - the only engine I know of that does this is traditional Lemmix, and even that's only to reflect the same differences between various DOS games (and these differences are fairly subtle; far smaller than the differences you'd find between any two out of Lemmix, NeoLemmix, Lemmini, SuperLemmini or Lix).

One other case that should be considered for analyzing touch-control, by the way, would be Lemmings DS. I don't have a DS anymore, but I remember it being good enough to be playable.
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)

BradLee

#8
Quote from: namida on February 15, 2015, 12:17:14 PM
It's a nice idea, but it's unlikely to see it happen.

Everyone keeps saying that! :(

Quote from: namidaI doubt there's much interest in having several different sets of mechanics in one app - the only engine I know of that does this is traditional Lemmix, and even that's only to reflect the same differences between various DOS games (and these differences are fairly subtle; far smaller than the differences you'd find between any two out of Lemmix, NeoLemmix, Lemmini, SuperLemmini or Lix).

And yet the different game mechanics are one of the main reasons for developers creating all the different versions we have. Some people say it's not such a big deal for them, yet others are quite passionate and vocal about it in their discussions on here. Then you also have a group of people on here who like to specifically design levels where you must exploit game glitches in order to complete them successfully. Then you have in the body centre vs front-of-foot collision detection. So it *is* a big deal for some.

Quote from: namidaOne other case that should be considered for analyzing touch-control, by the way, would be Lemmings DS. I don't have a DS anymore, but I remember it being good enough to be playable.

I was not aware that this even existed, so I searched for it. It appears to be a home brew port though?


So now we have three different Lemmings strains that you have listed there, if we count Lemmix/NeoLemmix and Lemmini/SuperLemmini as one each. plus Lix. Also now you have LJLPM's (sorry IDK his real name) Android lemmings project, which will likely be different to the others and incompatible yet again. So that makes four.

Do you see where I'm heading with this, how we keep reinventing the wheel and re-duplicating our efforts?

Nepster

Quote from: BradLee on February 15, 2015, 11:52:49 AM
I'm not saying to combine the different languages... I *know* that that is impossible. What I am suggesting is that a fresh project be developed. Sure some stuff would be inevitably lost, but many hands make lighter work.
This is precisely what I tried to say as well and this is precisely the reason why I posed the question: Who would give up his/her own project especially if it is already fully functional (apart from few bugs) like SuperLemmini, Lix of NeoLemmix?

Quote
That's true, which is why I suggested having selectable options.
Then there is not much difference to having separate programs imo, or do I miss something? Assume for a moment you are the developer of SuperLemmini (or one of the other engines). Would you really want to code almost everything again, only to see the same game mechanics again? As namida already mentioned, the details in the game mechanics vary quite a bit: Different sprites for the lemmings actions are used, terrain checks differ, steel handling is a big mess, ...

Quote
Specifically as to whether Lemmings game mechanics would work well on a small screen, well there are already PSP and Vita Lemmings, which are not terrible. Also there are plenty of other other iPhone and Android Lemmings clones. So it's not a problem that could not be solved with some thought.
Yes, I know that playing Lemmings on small screens can work with the right controls. But the question is: Assume a game is written origianally for computers and afterwards features are added to ease playability on tablets, iPhones, ... Will it turn out to be equal to a program written especially for such use?

Quote from: BradLee on February 15, 2015, 12:37:43 PM
Do you see where I'm heading with this, how we keep reinventing the wheel and re-duplicating our efforts?
Yes, I see your point. The problem is, that we already have a few fully functional Lemmings engines now with freely available sourcecode. So anyone who wants to create some port or add some new features may use the existing code. Certainly, in some cases (like for Android) this might not work. But if we start with some uniform new project right now, who can guarantee that in a few years there won't be new OSs, which are utterly incompatible with your project.
And sometimes it is just easier to create something completely anew, than to try to understand someone else's code and then extend/modify it.

namida

It's worth considering the different targets of each port too.

Lemmix: This was originally created as a windows-compatible version of DOS Lemmings, and intends to mimic it exactly (and does a damn good job of it), except with some added fine-control features. (In fact, I believe that project was initially done as a playtest mode for a level editor, then was later built into a standalone player when the author realised "why not?")
NeoLemmix: This was created to be based off the same interface and feel as Lemmix (and by extension, the original DOS Lemmings), while removing the glitches that break levels, and adding some new features, without going overboard to the point of basically turning it into L2. To be perfectly honest, I primarily created it with my own level packs in mind, but saw little reason not to make it available for everyone to use.
Lemmini: This was (IIRC) around before Lemmix, and simply aimed to be a cross-platform version of Lemmings that was consistent across all various systems; there was no intention of perfectly mimicing the original behaviour, just of roughly estimating it and providing a playable Lemmings game.
SuperLemmini: This was created as an upgrade of Lemmini, to bring it more in line (though not 100%) with Amiga mechanics, as well as adding some new features (although not to the same extent as NeoLemmix has).
Lix: This is an entirely different ballgame altogether; the purpose here was (as far as I know) to create an online multiplayer Lemmings-like game; originally it was actually using Lemmings but was changed to an original character for copyright reasons.

So, as you can see, each of these projects essentially fills a different niche. I would, in all honesty, somewhat argue that Lemmini has outlived its usefulness due to SuperLemmini (whereas NeoLemmix doesn't so much replace traditional Lemmix in the same way, due to traditional Lemmix's aim of being an exact port), but given that the amount of content available for Lemmini is probably second only to the amount for traditional Lemmix, I doubt it'll disappear anytime soon. (There again, Cheapo had a lot of content, yet it eventually died out - though with that being said, there's currently ongoing work to port existing Cheapo content into the NeoLemmix engine.)
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)

BradLee

#11
Quote from: Nepster on February 15, 2015, 02:03:34 PM
Quote from: BradLee on February 15, 2015, 11:52:49 AM
I'm not saying to combine the different languages... I *know* that that is impossible. What I am suggesting is that a fresh project be developed. Sure some stuff would be inevitably lost, but many hands make lighter work.
This is precisely what I tried to say as well and this is precisely the reason why I posed the question: Who would give up his/her own project especially if it is already fully functional (apart from few bugs) like SuperLemmini, Lix of NeoLemmix?

Again, I'm not suggesting people "give up' what they have already done. I'm just suggesting that we CONSOLIDATE our efforts and POOL our resources. So we are not duplicating what has already been done over and over. Otherwise when another developer gets too busy or loses interest and decides to put their project down for good, we are again at point A.

Also this "big work" that you allude to and "starting from scratch" would not be such a huge task with many people involved in such a project.

Also you would have the benefit of hindsight, which I have seen several developers say that they would do things differently/better next time. Not that they would do it all over again if it was only just them. So maybe adding some helpers might motivate them?

Quote
Quote
That's true, which is why I suggested having selectable options.
Then there is not much difference to having separate programs imo, or do I miss something?

Code duplication avoidance... no different + incompatible levels... quicker development time from multiple people working on it.., less likelihood of abandonment if one developer stops... portability across different OS platforms... a bigger list of features.

I'm sure there are more reasons...

QuoteAssume for a moment you are the developer of SuperLemmini (or one of the other engines). Would you really want to code almost everything again, only to see the same game mechanics again? As namida already mentioned, the details in the game mechanics vary quite a bit: Different sprites for the lemmings actions are used, terrain checks differ, steel handling is a big mess, ...

Again not such a big work when you have MANY people involved in such a task.
Maybe there is not as much incentive for an existing developer but perhaps some new ones might bite?

Quote
Quote
Specifically as to whether Lemmings game mechanics would work well on a small screen, well there are already PSP and Vita Lemmings, which are not terrible. Also there are plenty of other other iPhone and Android Lemmings clones. So it's not a problem that could not be solved with some thought.
Yes, I know that playing Lemmings on small screens can work with the right controls. But the question is: Assume a game is written origianally for computers and afterwards features are added to ease playability on tablets, iPhones, ... Will it turn out to be equal to a program written especially for such use?

So split the levels off! Have common levels that work well on any platform or device, then have and additional set of phone/touch specific levels that don't translate well to the PC.

Quote from: BradLee on February 15, 2015, 12:37:43 PM
Do you see where I'm heading with this, how we keep reinventing the wheel and re-duplicating our efforts?
Quote
Yes, I see your point. The problem is, that we already have a few fully functional Lemmings engines now with freely available sourcecode. So anyone who wants to create some port or add some new features may use the existing code. Certainly, in some cases (like for Android) this might not work. But if we start with some uniform new project right now, who can guarantee that in a few years there won't be new OSs, which are utterly incompatible with your project.
And sometimes it is just easier to create something completely anew, than to try to understand someone else's code and then extend/modify it.

Well the aim would be to keep it as platform agnostic as possible in order to be able to compile it for different OSes current AND future.That way you would future proof it.

Anyway I'm still absolutely convinced that having one game engine is better than 3.

ccexplore

I think your idea is probably "too late" in the sense that many of the projects here have already progressed well beyond "point A" and already have hundreds of levels that would motivate both users and developers to stick with the existing working engines.  It would also be more convincing if you can provide examples from other games where the approach you are asking for had worked out, and where it didn't simply come about because of A) it actually started off with many different game engines, then all but one died off; or B) there was ever really only one engine done by one person and everyone just stuck with it.

namida

The whole "dying off" thing isn't a completely solid point either. Newer versions of traditional Lemmix, as well as NeoLemmix and SuperLemmini, and the NeoLemmix Editor, were all made from open-source code that the author was no longer working on.

However, I do agree that if for any reason there was to be a new project, your idea could be worth using for that. I just don't see much likelihood of there being one at the moment; between Lemmix, NeoLemmix, SuperLemmini and Lix, pretty much all bases are covered (except HD, which isn't really seen as a big deal here).
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)