Talismans - Tie to the level files, or to the pack?

Started by namida, June 09, 2017, 11:45:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

So, I'm currently trying to decide for the new-formats version (which currently has no talisman support whatsoever), whether to have talismans tied to level packs (as they currently are), or to individual levels.

Some advantages of tying to levels: Levels don't have to be in a pack to have talismans; easiest way to keep the talisman if the level's position is changed.
Some disadvantages of tying to levels: If a level is included in multiple packs the talisman would be recorded seperately for each instance (counter-argument: this would already happen for level progress in general); would possibly lead to lag when loading the list of talismans for a pack; may complicate saving and loading for both level files and progress data.

While I'm leaning a bit more towards keeping it tied to the pack, does anyone else want to give input 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)

Ryemanni

I'd say keep the talismans tied to a pack.

If I can make a quick suggestion: It would be nice if one could see that a level has talismans from the levelselect screen. Maybe add a tiny talisman symbol next to the name or something?
Just so that players who don't check the talismans menu all of the time would still know that a specific level has a talisman.

Simon

Let's not confuse (how the engine stores data) from (how the GUI presents data). Surely the GUI should print a nice list of talismans per pack. :thumbsup: With that out of the way...

Hunch for storage: Tie to levels, for best object-orientation. Loose levels that are not in a pack, but that have talismans, are meaningful.

Tying to packs sounds error-prone, especially with the level position as key.

Lag: I assume you want to display a list of all talismans per pack, but fear that reading talisman data out of 200 level files takes too long. Have you measured? Is this even a problem? Efficiency is a good reason to break the logical design, and object-orientation has its cost over a central database -- but maybe it's a negligible cost here. <_<

Complicates saving: More details please. You have solved-status data per level, and talisman data per level. What is the exact architecture for this saving?

-- Simon

namida

Yes, the intention would be for the GUI to present the data either way. This could still influence the storage design, but I think in this case it could be worked around either way.

No, I haven't measured yet. My hunch would be it isn't too bad when generating talisman lists for a pack, but will be for saving progress with a naive implementation. A better implementation could probably circumvent this.

Issues from saving likewise could be improved on with a better implementation. If the level data is only checked in the case where the save data in memory indicates a talisman for the level in question has been obtained, the performance shouldn't be too bad.
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 decided to go with tying them to the level file.

I'm also going to remove the seldom used "Assign skills to one lemming", "Assign one skill per lemming" and release rate min / max talismans. This will help simplify the code. The save requirement, time limit, total skill limit and per-skill limit options will remain available. Additionally, I'm going to get rid of the user-written descriptions, in favor of autogenerating them - but I will add the ability for talismans to have a title. Come up with all your best cheesy achievement names! :D

The next exp build, all going well, will have support for them.
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)

Proxima

I'm against removing those, even if they are rarely used, as sometimes a level comes up where they are really interesting challenges, like "It's hero time". That said, if you go ahead with removing them, will you also remove the hotkey for "assign to previously unused lemming", which really only exists because of this talisman type?

Autogenerating the descriptions is a good idea, and should get rid of the perennial "description has wrong level number" problem.

namida

QuoteThat said, if you go ahead with removing them, will you also remove the hotkey for "assign to previously unused lemming", which really only exists because of this talisman type?

Yeah, makes sense 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)

namida

Talismans are now working in the new-formats version! :D There's no talisman display yet; the only indication of their existance (other than by viewing the contents of level / save files) is the "You unlocked a talisman" message on the postview screen, but still, they're working again! :D
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

Quote from: Proxima on June 12, 2017, 11:31:01 AM
I'm against removing those, even if they are rarely used, as sometimes a level comes up where they are really interesting challenges, like "It's hero time". That said, if you go ahead with removing them, will you also remove the hotkey for "assign to previously unused lemming", which really only exists because of this talisman type?

Autogenerating the descriptions is a good idea, and should get rid of the perennial "description has wrong level number" problem.

I'm kind of sad about that too. While I admit I myself haven't made use of it I like that kind of challenge. Of course I'd also like to see it implemented more directly into the game. Like; lemmings which cannot be assigned any skills to (always; regardless of achievement).
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