How would bombers, which are not in the first 5 seconds, function when watching the replay?
Depending on which mode was enabled, you'd either see a countdown (or not), and then the "oh no!" > explode phase as usual.
(i.e. if timed bombers are enabled, count back 5 seconds from the bomber assignment in the replay and start the countdown then...)?
The bomber assignment would always be written into the replay in exactly the same place, regardless of which type of bomber is active. So, the replay would start the timer 5 seconds before the assignment if timed bombers were enabled.
And how would bombers which are in the first 5 seconds function in the replay? The replay wouldn't know when the lemming begins to glow red and when the lemming actually explodes. For all the replay knows, the first click on the lemming which makes it glow red and the second click that actually makes it explode could be anywhere from a frame to a maximum of five seconds away.
The second click would be the actual bomber assignment. So, essentially, click 1 starts the timer, then click 2 assigns the bomber. This is actually how the timed bomber mode would function, essentially:
Click 1 = start timer
If Click 2, check for "hot bomber" state, if yes = assign bomber (if no = await 5 second timer, then = assign bomber)
If no Click 2, await 5 second timer, then = assign bomber
So, the bomber assignment would only ever happen at the beginning of the "oh no!" state, as with untimed bombers. The timed bomber mode would really be nothing more than an aesthetic which delays the bomber assignment by 5 seconds.
And, to reiterate how this interacts with replays, the replay would always read the bomber assignment as being the beginning of the "oh no!" state. If timed bombers are enabled, a 5 second countdown would arbitratily begin exactly 5 seconds (or however many frames) before this assignment.
One solution to problem number 2, and the new problem I discovered, would be to scrap the hot bombers and to simply have to hold down a hotkey to explode a bomber immediately in the first 5 seconds.
Hmm, I see where you're coming from with this idea, but ideally the player should only have to do 1 thing to activate a bomber, i.e. click the mouse. Hot bombers simply require an extra click of the mouse. A hotkey requires two actions (hold key, click mouse) as well as prior knowledge that the hotkey exists, as you quite rightly pointed out as the fatal flaw in this idea.
Another problem I thought up is when would the number of the bomber's skill panel reduce by 1? You'd expect it to reduce by 1 when the bomber is clicked on, not when the bomber explodes, but this would create a discrepancy between timed and non-timed bomber mode.
Yes, good shout. I guess that in this case, the panel would have to look for whether or not timed bombers were enabled. If enabled, the skill counts down at the point that the timer is started rather that when the bomber is actually assigned. Since both the timer countdown and the skill panel number decreasing are (necessary but) arbitrary player assists rather than actual game interactions, I can't see this being a problem as long as the code was there to account for it.
And, of course, in the case of replays, the scenario described above would equate "start timer" with "reduce skill panel number by 1"
I'd assume you wouldn't want timed bombers to work with cloners (if you assign a timed bomber to a lemming and then clone that lemming, the clone will explode and the countdown will begin at the same point at which you cloned them)
Yeah, this is something I didn't think of. Although, I can't see why the clone would behave differently to the original lemming. If the countdown is at, say, 3, then the clone would also start the countdown at 3. All that's actually happened here, if you think about it, is that a walker has been cloned. The bomber hasn't actually been assigned yet (since the bomber gets assigned at the beginning of the "oh no!" state,
not at the beginning of the arbitrary timer countdown).
The code would have to say something like:
If cloner assigned, is the lemming a "countdowner" (perhaps "countdowner" would have to be a new state that the code could check for, in order to know to assign the lemming a bomber at the end of the "countdowner" state)? If yes, assign both the original lemming
and the clone a bomber at the end of the countdown phase, but only reduce the skill count by a single bomber.
It's potentially complex code, but it solves the problem.
as that would open up a whole other can of worms.
I disagree. The game is Lemmings, not Worms.
But seriously though, code
is a can of worms. It's up to the developer to solve the necessary problems to get the program to where they want it to be, not give up at the first hurdle. I'm sure we can agree on that.
And as for skill shadows, in Namida's post he phrased it more as a reason for rejecting them to be added ("We may as well not add them, as skill shadows would make them pointless anyway") rather then as actual problem so you could just make the skill shadow be where the bomber will explode in 5 seconds. Or if your goal is to have NeoLemmix emulate the classic games, maybe these should be removed altogether?
In "Classic Mode", skill shadows would be disabled anyway. Otherwise, yes, I can absolutely see why skill shadows renders timed bombers pointless.
However, I
don't see it as a reason not to have them, more a reason why the player shouldn't use skill shadows if they have timed bombers enabled. Since NeoLemmix allows skill shadows to be disabled, the problem is already solved.
Another perhaps more convoluted way to solve it would be to always have skill shadows disabled for
just timed bombers but not any other skill (or untimed bombers), buuut I'm not entirely sure about that tbh.
An admittedly awkward solution I thought up to solve all problems would be to scrap enabling timed/untimed bomber mode in the settings and to just have the function where a bomber explodes immediately if a hotkey is held down enabled all the time, not just in the first 5 seconds
Again, your idea requires the player to make 2 separate inputs, which besides being more labour intensive than simply clicking the mouse would also not be in keeping with the whole point of adding timed bombers back to the game, which is to make it feel more like original lemmings.
I'm not totally against the idea per se, I'd rather have timed bombers which require awkward imputs than not have them at all, but I just think "hot bombers" is a more visually-guided and intuitive idea simply requiring an extra click of the mouse.
store bombers and non-timed bombers separately in the replay
A good idea, but once which potentially breaks replays again, since the replays would once again be mode-dependent. I guess the engine would have to know to ignore timed assignments if the mode is untimed, and vice versa. That could fix things, for sure.
However, new problems arise with this solution 1. A player might mistake a difficult situation for an impossible one and use an unnecessary untimed bomber
Yeah, this is just an unfortunate consequence of having access to both types of bomber. Still, it's not a reason not to have the option in my opinion. SuperLemminiToo currently offers both, and I do in fact switch between the two quite regularly. Often, if I'm playing someone else's level, I'll solve it first with untimed bombers to make the solution easier to find, then I'll go back and try to execute the same solution with timed bombers just for the satisfaction of playing the level in that mode. I'm guessing that others who value the classic Lemmings gameplay would approach it a similar way.