[REJECTED][Suggestion] Ghost as a skill

Started by Strato Incendus, October 25, 2018, 06:00:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Unlock NL v10 level board: I assume namida locked it? I'll leave this decision to Nepster and namida.

I would keep it open: Either people have nothing about v10 to post, then the lock has no effect. Or people have already decided against the suggestion to work with v12 only, then the lock produces topics in less-related boards.

-- Simon

IchoTolot

I'm done. :8():

Do what you seem is right.

I'm sick of people getting all riled up in conversations, get emotional and try to blame persons, because someone is not on their side in a conversation or does not support their believes.

Try to convince Nepster, then you get your wish.

Icho out. 8-)

Strato Incendus

Thanks, Simon, that would be very helpful indeed! ;)
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

namida

The block on new topics can be removed if Nepster wishes so (as the main maintainer of NeoLemmix); but until then, I believe keeping it closed is the best option, to reinforce the message that the old versions are kept available (and their packs listed) to avoid destroying old content that cannot be upgraded (or the creator is no longer around to update it, or in a few cases, the creator refuses to update it despite no barries to doing so), not to encourage creation of new content for outdated versions.
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)

Strato Incendus

Leaving a forum open in itself doesn't encourage anything; the only thing that can make people voluntarily use an older version are shortcomings of the newer version :P . Otherwise, why would anyone go back in the first place, if the new version did everything better than the former one?

And people who want to do that can simply post their packs in "In Development" and have them remain there. Or, as Simon correctly recognised, they're going to post them randomly in other subforums. Maybe just in the main "NeoLemmix levels" forum, where only packs for v12 are supposed to go.

At that point, you only have two options:
1) Move the thread to the closed v10 subforum, i.e. circumventing the block and thereby proving it pointless
2) Delete the thread hosting the new pack for v10. I don't believe anyone would favour that route ;) ...
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels

Nepster

Sorry for being somewhat late to the party... :-[

closed v10 subforum
As far as I can see, the "levels for V10" subboard is not locked at all. Has someone opened it in the meantime? I am totally ok with it being open.

Ghost as a skill - Do we need less code or will it be better readable?
I really don't see the big difference between having them as a skill and as a feature like zombies from a code-perspective. As a skill requires marginally less code for reading level files, but all the other code would basically be the same. Especially the interaction code of ghosts with skills, objects, normal lemmings, ... would be exactly the same - and this part was the major cause of pain in NeoLemmix V10.

Ghost as a skill - Does it really act like a skill?
If ghost would be implemented as a (permanent) skill, then you would get lots of weird interactions, because currently no lemming can use two skills at the same time. Permanent skills are only used to change the skill state under certain conditions: So either we would have some state "ghost" for lemmings, which would mean that ghost could do nothing else (and would even transform to usual lemmings upon falling down). Or the permanent ghost skill would trigger some state change upon certain conditions, like finding some trigger area, but this has two problems: In all other states it would be a perfectly normal lemming (so we can't implement fear e.g. and there might be a lot of other more subtle issues) and secondly it is not obvious to what state it should transform to? Even if we add another ghost state just for that purpose, then it would simply stop doing any other skill when encountering such a trigger, which we certainly don't want. And even more problematic is transforming from the "falling" state to the "ghost" state... 
What I want to say with all of this: If we want ghosts as a skill, they will have to behave drastically different from the old ghosts. Otherwise the base assumptions about what a skill is will be violated.

Just copy-paste the code
Even in Python this wouldn't work nearly as well as you would think: There are a lot of other classes that tie in with the lemmings, which would have to behave differently when encountering a ghost. Even ignoring that lemmings currently aren't even honest objects and assuming you could just subclass them to create ghosts (which would be a LOT better than just copying the code and would fix most the copy-paste problems Simon mentioned very early on in this thread), you would have to:
- Of course overwrite all the object interaction code, as you already mentioned.
- Overwrite a lot of the recoloring code: First of all to create the usual ghosts sprites, then to get variations on special occasions like when hovering over them with the mouse cursor.
- Overwrite a lot of the lemming counting code, e.g. to determine when there are still enough lemmings around to complete the level, when to quit a level as there are no more living lemmings, ...
- Overwrite a lot of the lemming state change code, e.g. because ghosts will not drown when falling into water and will not splat when hitting from high above assuming they land in water.
- Add a lot of to the general skill-handling code: From displaying a skill image in the skill bar to checking for this skill in talismans, there are a lot of places, where new skills have some impact. Most of them will automatically adapt once you add the ghost skill to the correct enums, but there are a few cases, which need manual modifications.
- If you code the "fear" aspect (which was in my opinion the major point in favor of keeping ghosts in the first place, because it was something really unique), you would have to write a lot of completely new code to handle this, or you would have to copy all the zombie trigger area map and adapt to to the fear aspect. But this would mean copying a lot of code, which is distributed among a lot of different methods and is not at all in one place.
Even then you will have to make sure this code is bug-free. And given all the problems and glitches we had with getting static force fields working correctly, I really don't want to deal with moving ones...

Lemmings code is really stable now - Is it really?
Physics-wise it probably is, though you would still have to do a major change to the copied code once the shimmier comes out, because the shimmier requires changes to a lot of other skills to define the correct skill (state) interaction. If you then had modified any part in the ghost code, I wish you a lot of happy merging all the changes. ;P (or rather :devil::devil:)
However there are still quite a few bugs in the sourrounding code, which might require changes to the lemmings code: IchoTolot found a bug recently, that allows you to assign two skills on the same frame, if you edit the replay file. If you copy the ghost code, are you really sure that any fix for usual lemmings would automatically avoid assinging a skill to both a normal lemming and a ghost in the same frame?

TL;DR: I don't think "ghosts" will work as a skill in the gimmick fashion at all, due to the definition of a "skill" that NeoLemmix uses. Moreover the "fear" mechanic would be incredibly susceptible to glitches in corner-cases, so would need a lot of work.

PS: At the time when we were discussing culling the ghost gimmick, I initially argued for keeping ghosts as I felt it had even more potential than zombies. However due to the code mess and the possible glitch problems, namida and others convinced me that removing it was (and still is) the correct decision.

Simon

All right, changed v10 level board from (No New Topics) to (Default) and moved the Ghost level sharing topic to 10 levels.

-- Simon

Strato Incendus

Thanks for the reply and the detailed explanations, Nepster!

QuoteSorry for being somewhat late to the party... :-[

No problem, we all know you've been busy with a lot of other stuff lately ;) !

QuoteAs far as I can see, the "levels for V10" subboard is not locked at all. Has someone opened it in the meantime? I am totally ok with it being open.

It looks like that, since the description has just been changed, too, only containing the line that content creation for v10 and older is discouraged. ;) Great that this has been dealt with quickly, and to know that you're on board with it! ;)

Just to be clear, I was not even arguing out of self-interest here ;) ; my next pack is going to be for New Formats anyway, since I'm quite sure the shimmier will be available by that time. I just think if I had the chance to release Lemmings World Tour for Old Formats, so should other content creators, especially those who have been working on their packs for quite a while (because I'm not certain that ArtLems, Lemmings Evolution, GemLems etc. are all entirely New Formats already).

QuoteIf ghost would be implemented as a (permanent) skill, then you would get lots of weird interactions, because currently no lemming can use two skills at the same time.

Good point, I hadn't thought of that! :) I only considered that it's obviously possible for one lemming to have several skills at a time (like an X-Athlete, who can still additionally go on to build / platform / bash / mine / fence / dig etc.)., but not that it's impossible to perform two skills at a time.

So the question would be whether a ghost is always performing his skill, or if he only switches to ghost form whenever he encounters an object he has to slip by. If so, many of the tricks I mentioned, like mining at the bottom of a water pit or building out of fire, would not be possible, because the ghost would be busy... well, "ghosting" :D .

Of course, the main counter argument here would be that a walker is also a skill; yet, Lemmings are being walkers constantly, and walkers can also be assigned other skills. ;) The same is true for the cloner.

The main issue with the ghost is that it would have to be a permanent skill, and the trademark of all permanent skills to date is that you cannot assign anything to them while they are being performed - apart from bombers and stoners.

Quote- Overwrite a lot of the lemming counting code, e.g. to determine when there are still enough lemmings around to complete the level, when to quit a level as there are no more living lemmings, ...

Yes, in that regard, ghosts indeed would have to be treated like zombies again: Lemmings that are around, but do not count. Other lethal skills obviously don't have this problem, because bombers and stoners remove the lemming from the map entirely.

Quote- If you code the "fear" aspect (which was in my opinion the major point in favor of keeping ghosts in the first place, because it was something really unique), you would have to write a lot of completely new code to handle this, or you would have to copy all the zombie trigger area map and adapt to to the fear aspect. But this would mean copying a lot of code, which is distributed among a lot of different methods and is not at all in one place.
Even then you will have to make sure this code is bug-free. And given all the problems and glitches we had with getting static force fields working correctly, I really don't want to deal with moving ones...

The fear aspect really has me thinking now; I'm beginning to realise that I used it in more of my own ghost levels than I was consciously aware of. This is also the strongest argument for ghost being a type of lemming, like zombie, rather than a skill, because the "ignore objects" and "intimidate lemmings" parts are to completely different things.

I'd say the only other skill that really does two different things is the glider, considering it's regular behaviour vs. how that behaviour is altered considerably when they come into contact with updrafts (and then again, only if they open up their gliding sail at the correct height to still be inside the trigger area, and not even just with the sail, but with their feet, etc.). At the same time, gliders are what I repeatedly called the most versatile skill in NeoLemmix, for precisely the same reason, thereby also offering a lot of "design space" for level creators. This means you can create level ideas involving gliders going in totally different directions, and the same is likely true for ghosts. This is what I want to explore in the "Ghost level sharing thread" ;) .

Quotebecause ghosts will not drown when falling into water and will not splat when hitting from high above assuming they land in water.

I know this was just meant to be an example, so I don't want to be overly nit-picky, but the latter part is not correct: Since ghosts ignore water like any other objects, they will indeed splat at the bottom of a water pit if there's ground underneath, and fall out of the screen if there is none, i.e. if the water is the last piece before the edge of the level.

What you are describing there is the behaviour of swimmers ;) . Since ghosts can't ever interact with water at all, in theory one wouldn't even need swimmer sprites for ghosts. That said, ghosts still can be assigned the swimmer skill, if the player choses to, it's just pointless. Just like making a ghost a disarmer :D .

Ghosts also don't interact with updrafts, however, the glider isn't completely wasted on them, because they can still move in the regular glider-like fashion, i.e. to cross downward-trending gaps that haven't been sealed yet with builders or platformers.

QuoteAll right, changed v10 level board from (No New Topics) to (Default) and moved the Ghost level sharing topic to 10 levels.

Thanks, Simon! That topic is for "v10 and older", after all (because ghosts aren't available in v10 either).


TL;DR: GigaLem, me, and whoever else wants to join the spooky party :D are going to keep running ghosts through all their gears in the ghost level sharing topic, and just see what we can come up with for fun. No one of us is expecting this matter to be settled for New Formats anytime soon. There are other skills that the majority of the forum has voted on, and they obviously should be focused on first :) . In the meantime, ghosts are just one of many possible ways to add skills or "lemming types" in the future; adding new lemming types, after all, isn't a completely foreign idea in New Formats, harking back to the discussion of "neutral lemmings" (=non-assignable, but saveable, i.e. the opposite of ghosts).

So if one day it comes down to whether we should rather add neutral lemmings or bring back ghosts, I'd always go with ghosts first! :D
My packs so far:
Lemmings World Tour (New & Old Formats), my music-themed flagship pack, 320 levels - Let's Played by Colorful Arty
Lemmings Open Air, my newest release and follow-up to World Tour, 120 levels
Paralems (Old Formats), a more flavour-driven one, 150 levels
Pit Lems (Old Formats), a more puzzly one, 100 levels - Let's Played by nin10doadict
Lemmicks, a pack for (very old) NeoLemmix 1.43 full of gimmicks, 170 levels