Future of NeoLemmix development

Started by namida, August 30, 2023, 04:11:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

So, I haven't really been getting much work done on NeoLemmix in the past year and a half or so. A bit here and there, but not nearly enough to really keep the project going.

NeoLemmix is, overall, in a good state. Sure, there are some UI bugs that would be nice to get rid of, some room for better QOL features, etc, but overall, it's the most popular engine for a reason - because it's in good shape, it does what's needed, it isn't overly bloated with features, etc.

I had already decided to work towards a final version as a vague goal, but I have made the decision that I'm going to move very quickly towards that now. Most proposed features / suggestions are not going to happen, and likewise for minor fixes.

I do intend to do one more major update in the traditional sense (ie: an update that brings significant new features), with possibly one more "major" version after that for bugfixing purposes, in particular for any bugs that are introduced in the next update. This is because of the new objects - they are very close to ready, and it doesn't make sense to throw that work away at this point when not much further effort is needed to get it ready for release.

However, other proposed features - such as an improved replay editor - are going to be discarded, so that things can be wrapped up. I am also going to discontinue any further work on the editor, except for what is necessary to properly support the new objects (most of which is already implemented in the codebase and released in experimental form alongside the new objects experimental player).

I realise this might not be the news some people wanted to hear, but it had pretty much de-facto become the situation anyway - all I'm really doing here is making it official.

To address this before anyone suggests it - no, I do not want to hand further development of the game over to someone else. With that being said, NeoLemmix is open source, and anyone who wants to do so is welcome to fork it to create a new engine - SuperLemmix is already a case of this, though it may be that someone wants to create a fork that retains the NeoLemmix philosophies but continues to add / improve new features within that. It would then be for content creators and players to decide whether to adopt the fork or stick with NL's final version. Likewise, anyone who wants to create their own editor (either using the existing one as a basis, or an entirely new one) is of course free to do so. NeoLemmix and its tools will remain open source and free for anyone who wishes to fork, to do so.
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)

WillLem

#1
A few questions that were destined to arise eventually:

1) Since I'm currently working on some UI stuff in NeoLemmix anyway, would you like me to go ahead and add in some of the QOL features present in SuperLemmix (stuff like Esc to exit forms, the ability to use keystrokes to browse and load levels, wider dropdowns, improved hotkey config form, etc)? I could post it all over to you in one go or on a feature-by-feature basis, whichever you'd prefer. Same goes for the Editor's GUI updates.

2) Would you prefer it if a forked version of NeoLemmix didn't use the same name? If we continue to develop it as a community beyond its final version, it should ideally still be called "NeoLemmix", since that's so well established now. And it's my understanding that no changes would be made to this version that didn't get significant approval from the community anyway. Perhaps simply adding "CE" (Community Edition) to the version number could be enough to mark it as the newer version without the need to re-title it completely?

3) Or, perhaps you might reconsider handing development over? I've learned a lot over the past year with SLX and I know the codebase well enough by now that I could at least help to bugfix, even if new features are kept to an absolute minimum (and by that, I mean I would probably limit my input to stuff I've already done for SLX that is a no-brainer for/is highly requested for NL). Just thought I'd ask because it's been a while since the OP and there's increasing talk of me potentially working on the existing version of NeoLemmix. I'd rather go ahead with guidance and approval, and an understanding that since I've got SLX out of my system and I know the codebase so well I'm a decent candidate for taking the wheel. OK if not, of course - it would be much easier to just continue working on SLX anyway!

4) ETA on the next NeoLemmix update? Maybe l can help?

Armani

My understaning is that Superlemmix is a kind of "every stuff WillLem wanted to do" project.
And that is the reason why I(and I'm sure there're more people) didn't bother to reply or give opinion on some of the controversial physics changes like dd, timed bomber, classic mode, many many new powerful skills, making both sides force field... etc. I want Neolemmix to be remain the way it is right now. Especially in terms of physics.

To be honest, I think Superlemmix has gone too far after it branched off from Neolemmix to use the same name with NL, both Neolemmix or Neolemmix CE. They are very different games and have different userbase.
My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

WillLem

#3
Quote from: Armani on March 04, 2024, 11:31:58 AM
I want Neolemmix to be remain the way it is right now. Especially in terms of physics.
...
I think Superlemmix has gone too far after it branched off from Neolemmix to use the same name with NL, both Neolemmix or Neolemmix CE. They are very different games and have different userbase.

You've definitely misunderstood what I'm asking. Apologies for the confusion, allow me to clarify:

I'm not suggesting that SuperLemmix become the new NeoLemmix. At all. We agree here - they are both very different and will remain different platforms for the reasons you've correctly identified (different physics, timebombers, classic mode, powerful new skills, etc).

What I'm asking is whether I should help to continue development of NeoLemmix itself, adding only features that the NeoLemmix userbase has specifically requested (or QOL/GUI improvements that would not affect gameplay or physics).

I could do this either by taking the wheel with the "official" version, simply continuing with version 13.0.0, etc - or, if namida would still prefer not to allow this, then do so by creating a new fork, as suggested.

My question is then: should such a fork be re-named to something other than "NeoLemmix"? I think it shouldn't, because its development would simply be a continuation of the existing version (i.e. no controversial SuperLemmix features!). At most, it should have something appended to the version number, to mark it as the "next gen" or whatever.

So, the new fork could be called NeoLemmix CE 1.0, or something like that, and would represent a continuation of the current NeoLemmix lineage as opposed to an entirely new version like SuperLemmix.

IchoTolot

I would try to avoid yet another fork. Too many versions are just confusing.

But implementing some QOL/UI-Improvents that a larger majority agreed on (and were properly tested), I would say would be a good thing.

If namida agrees I would say you helping out with some QOL/UI stuff can be very beneficial for everyone. :)

WillLem

Quote from: IchoTolot on March 04, 2024, 05:34:55 PM
I would try to avoid yet another fork. Too many versions are just confusing.

But implementing some QOL/UI-Improvents that a larger majority agreed on (and were properly tested), I would say would be a good thing.

If namida agrees I would say you helping out with some QOL/UI stuff can be very beneficial for everyone. :)

My thoughts exactly.

Always nice when Icho and I agree! :lemcat:

Simon

namida is happy to merge end-of-game improvements (unless we screw that up), and I'm sure he'll  merge more good contributions. No need to fork.

You can still have a public repository for experimental NL work, for code review, ...

-- Simon

Armani

Oh.. yeah looks like I misunderstood what you're asking. My bad :forehead:
What I said is completely off topic then.

Adding some QOL or newbie-friendly features is always very nice for the game!
It's all come down to whether namida agree with this or not but he's already okay with merging the most recent QOL(no auto-exit the level on losing all lemmings) to official NL. So I'm optimisitic that he's okay to approve some other QOL features as well given that they're well developed and tested by the community.
Though I don't think we need another NL fork for such new changes, nor does namida need to hand over the development to someone else. He's been not only an competent developer but also an excellent decision-maker who makes the current NL possible.
My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

Crane

One thing I would like to do one day is get NeoLemmix working on the Raspberry Pi.

It is a bit of an undertaking though because besides porting the source code over to the Free Pascal Compiler, I'll probably need to make some AArch64-specific assembly language improvements to the GraphicEx library, if their maintainers would permit.  The Bass library, despite being closed-source, does have an AArch64 binary available.

Granted I'm only suggesting this because I frequently contribute to the Free Pascal Compiler, and recently have been focusing on improving the generated code for the AArch64 implementation.

WillLem

#9
Maybe the best thing to do would be to have done with it and port the entire NeoLemmix codebase to something like C#, which is much more powerful and future-proof.

From working on SLX, it's very clear that the codebase has severe graphical limitations.

Tan_x_dx is already working on something in C#, not sure how far along he is with that, but it's certainly promising. Even so, my concern with this and SuperLemmix is that we end up with too many engines that aren't community-approved in the way that NeoLemmix is.

NeoLemmix is great, nobody doubts that, but namida no longer wants to maintain it. It's important that we know whether he's happy for us to continue its development as a community - not a fork, not an alternative engine, but NeoLemmix itself.

If his wish is still for NL development to discontinue with the final version, then that leaves us with 2 options:

1) Start a "Community Edition" fork which will essentially pick up where the final version of NL leaves off.

2) Adopt a new engine as the community standard. We need something that's actively maintained and open for business or people will basically just lose interest.

IchoTolot

Quote from: WillLem on March 06, 2024, 05:58:49 PM
If his wish is still for NL development to discontinue with the final version, then that leaves us with 2 options:

1) Start a "Community Edition" fork which will essentially pick up where the final version of NL leaves off.

2) Adopt a new engine as the community standard. We need something that's actively maintained and open for business or people will basically just lose interest.

Here I disagree. 

Having a final version that is stable is totally fine!

Option 3: Accept the final version and continue playing with it is 100% viable.

Just because there are no patches anymore, interest will not automatically go away and there is also no need to forcefully switch the standard.
+ adding more and more stuff for eternity != a better version. There needs to be a limit at some point and I think it can be now.

WillLem

#11
Quote from: IchoTolot on March 06, 2024, 09:59:02 PMOption 3: Accept the final version and continue playing with it is 100% viable
...
adding more and more stuff for eternity != a better version. There needs to be a limit at some point and I think it can be now.

Right, but we're talking about adding a few QOL/UI improvements, not loads of additional game-changing features.

Some specific examples of what I'm talking about
  • Allow [Esc] to close dialogs
  • Allow browsing of the level select screen with arrow keys, and [Enter] to load the currently-selected level
  • Various improvements to hotkey dialog (see the one in SLX)
  • Add Replay-after-restart-or-not option (widely requested)
  • Display level name and save requirement in Window caption
  • Add "assignment fail" sound for anytime a skill assignment can't be made (this one's probably pushing it a bit)

Hypothetically speaking: let's suppose I were to make a fork of NeoLemmix that's the same in every regard as the "final version" but has even just the improvements listed above. Assuming we agree that these additions are worthwhile, why would anyone continue to use the other version? They wouldn't, and so we'd end up with NeoLemmix CE.

None of us seems to want this, so instead I'll offer to help make the final version of NL as good as it can be. Namida is of course welcome to decline this offer, it's ultimately up to him.

I also acknowledge that Namida has previously pre-empted some of what I'm asking, but it's been so long and we haven't had any update on what's actually happening with NeoLemmix. So, I'm asking the questions anyway; I might as well offer to help.

namida

#12
As I explained in another topic - the end-of-gameplay change is a one-off special case and I won't otherwise be making exceptions to the plan to wrap things up. However, if a fork were to retain the existing physics / data formats exactly and purely add cosmetic or QoL improvements, while being equally (or more) stable, I can't see why it wouldn't become popular; but that's ultimately up to (potential) users to decide.

Regarding naming, I would prefer that forks use a name that clearly differentiates them from NL. While I can't force you not to use the name, I would suggest that any forks' names should either not contain "Neo", or not contain "Lemmix", or have another word inbetween them. I have seen many cases where confusion has arisen from simply adding a prefix or suffix (as one well-known example, AdBlock vs AdBlock Plus).
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)

Floyd Brannon

I just wanted to add my two cents worth of opinion here.

I like the idea of the Neo-Lemmix engine gaining some of the QOL improvements that Super Lemmix has. Like the navigate by arrow keys, editor things, even the neat icons. And keep the non-slx mechanics though.

It's only my opinion, but I think keeping the name Neo-Lemmix would better remember Namida as the creator. But that's his decision. A CE-Lemmix or something would be fine with me to see future updates to the engine. But if I was in Namida's shoes I'd want it continued with my name staying on it and keeping the same name. Not everyone thinks like me I guess.

I do look forward to whatever the future holds for this.

Armani

Neolemmix is the most popular and widely-played engine at the moment. That's true. But there was no official community consensus on "adopting" a certain engine as a community standard.(correct me if I'm wrong) There are several other engines out there but the reason why NL is considered the community standard is that NL has the largest user base. NL has attracted most people and that's it. If there emerge a superior engine that attracts more people, it will naturally take over Neolemmix's position and considered the next community standard. People are enjoying whichever engine they like the most and the it's the natural selection which decide the community standard as it always has been.

Also,
Quote from: WillLem on March 06, 2024, 05:58:49 PM
If his wish is still for NL development to discontinue with the final version, then that leaves us with 2 options:

1) Start a "Community Edition" fork which will essentially pick up where the final version of NL leaves off.
2) Adopt a new engine as the community standard. We need something that's actively maintained and open for business or people will basically just lose interest.
was there any community consensus on this? ???

I'm honestly not fond of both options. Let just leave Neolemmix as it is(outside of the already planned end-of-gameplay change). And if you have some features you'd like to impletement you can do it for your own fork, superlemmix in your case. I also have my own modified version of Neolemmix although I'm don't have any plans of public release. I put in some joke skills(like the bubbler I showcased in the discord sever eariler) and tuned some of the QOL features to my taste.
My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

WillLem

#15
Quote from: Floyd Brannon on March 07, 2024, 04:11:04 AMI like the idea of the Neo-Lemmix engine gaining some of the QOL improvements that Super Lemmix has ... keep the non-slx mechanics though.

Me too, but is it worth a completely new fork?

Namida has taken a hard line with not wanting to add anything, and whilst it's frustrating I do both understand and respect his reasoning: he wants the final version to be as stable as possible. Adding new features, however small, has the potential to create further work down the line.

As it stands, if we want NeoLemmix to include any QOL stuff from SuperLemmix, it'll have to be as a new version...

Quote from: Floyd Brannon on March 07, 2024, 04:11:04 AMIt's only my opinion, but I think keeping the name Neo-Lemmix would better remember Namida as the creator. But that's his decision. A CE-Lemmix or something would be fine with me to see future updates to the engine.

If enough of us want NL development to continue beyond its final version, and we agree not to change physics or add any game-breaking features, I think "NeoLemmix CE" is a perfectly reasonable suggestion given its intended purpose. I'd probably want to get namida's approval with that anyway.

With that said, it's a bridge to cross when and if the time comes.

Quote from: namida on March 07, 2024, 02:32:52 AMif a fork were to retain the existing physics / data formats exactly and purely add cosmetic or QoL improvements, while being equally (or more) stable, I can't see why it wouldn't become popular

Yes, exactly.

The discussion here is really: do we want such a fork to exist? I think most of us don't, but it might come about as a result of necessity given that there's no chance of further development to NL itself.

Either that, or we develop a totally new engine which does everything NL does but has a more future-proof codebase and runs on a 64-bit system. For the record, I see this as being the most likely future scenario even if I do bother to fork NL again.

Quote from: Armani on March 07, 2024, 05:34:45 AMthe reason why NL is considered the community standard is that NL has the largest user base. NL has attracted most people and that's it.

When I said "adopt a new engine as the community standard", I didn't necessarily mean that it would happen as the result of a direct decision. In fact, it's far easier to see it happening by natural selection, as you've suggested.

Imagine that there are 2 versions of NeoLemmix - the final version, and the final version but with an improved config menu (for example). Why would anyone continue to use the former when the latter is available?

You can replace the words "improved config menu" with anything that you personally would consider to be an improvement to NeoLemmix. My point here is that the community won't stop wanting improvements to be made just because the final version has been released. And, if someone makes a fork and starts taking suggestions, it most likely will become the new standard, as naturally as you've suggested.

Quote from: Armani on March 07, 2024, 05:34:45 AMLet just leave Neolemmix as it is ... I also have my own modified version of Neolemmix although I'm don't have any plans of public release. I ... tuned some of the QOL features to my taste.

It's interesting that you've done this, and yet don't want to see further development of NeoLemmix itself. I get that not everyone wants the responsibility of maintaining a publicly-released version, but I do wonder why you wouldn't want the possibility of someone else making improvements, and perhaps even implementing the ones you've made.

If it's trust in namida as opposed to myself or someone unknown, remember that namida himself had to go through his years of experimentation and controversial features in order to get to where he is today. To know what works, you have to also be very familiar with what doesn't work! My experience with SuperLemmix has taught me a lot, and as an old adversary of NeoLemmix philosophy I probably understand it better than anyone! ;P

But seriously, if I was to take on development of an NL fork, you can be assured I'd be very careful not to do anything that would upset anyone. The whole point would be to continue to maintain a community-approved version, and I know well enough by now what the community wants, even if I don't always agree :lemcat:

Dullstar

Regarding forks, if namida was okay with it my suggestion would be to keep the NL name (perhaps with a prefix/suffix) until breaking changes are made. If it's just an enhanced version of NeoLemmix but the physics and file formats are the same, so content made for one will work perfectly in the other, then I think a new name would just introduce confusion; conversely, if it's merely compatible with NL content, but its content is not compatible with NL, then calling it NL would be confusing.