I need help with coding in Classic Mode. I've thought of various ways to do it, each of which has their own set of problems:
The easiest way I can think of is to simply set a "ClassicHotkeys.ini" file which contains pre-configured hotkeys for all features except the ones that Classic Mode proposes to leave out. This would mean coding in the ability for SuperLemmix to Save & Load hotkey config files, since the user's "MyHotkeys.ini" file would need to be preserved and re-loaded when Classic Mode is not in effect. An elegant solution even if I say so myself, but it would ultimately be possible for the user to simply go in and edit the "ClassicHotkeys.ini" with a text editor, thus defeating the entire purpose. (EDIT: I suppose I could make SuperLemmix check for edits to this file and throw an error, but this seems far too clunky a way around it).
Another way to do it would be to insert code which checks for "Classic Mode" before allowing a user-defined hotkey to access its function. So, the hotkeys would all be preserved, but would effectively do nothing. I can imagine this also being relatively simple, but I'm unsure exactly where to start with it or whereabouts in the project this would need to go - I would definitely need help getting started with this.
Lastly, the most difficult way would be to hard-code "Classic Mode" into each of the various functions themselves. This isn't something I feel comfortable messing with really; I'd need a lot of help to manage this, at least initially.
I know that some people don't see the point in a "Classic Mode" existing, but it's really the way I want to go with this. It's been suggested that I just make the entire engine "Classic Mode", which would admittedly be easier to actually do but very laborious and would cost loads of great features which I still want the engine to have.
However, I'm in a bit of a bind with this, so...
Either I need help getting the code written (preferred), or I'll have to seriously think about culling features (really don't want to do this).
Just for the purposes of discussion, if I was to go down the route of "this engine should be different from NL in its gameplay, so I need to choose which features are best in line with my own gameplay philosophy" (or something less vague!), this is what I'd probably do:
Keep direction select, walker select, assign-whilst-paused (ideally, making an assignment would then unpause the game), athlete info, show used skills and clear physics (hold only).
Allow skill shadows to be toggled on and off in the config menu, but not in-game. I'm reluctant to remove them altogether because they are so darn helpful, but I'd want to essentially frame them as a "Cheat Mode" (or "Easy Mode", if you'd rather), to encourage players to go ahead and try playing without them. Projection shadows, on the other hand, would be removed as they're a step too far down the "picture puzzle" route IMHO.
Remove all helper overlays, splat ruler* and other messy UI items, but maybe keep numbers over hatches, since this could be used unfairly whilst the others can all be either eyeballed or found out via athlete info (in the case of pre-assigned hatches).
*I've never fully learned what the various points on the splat ruler are, but I know they have something to do with different fall heights for different states. This is way too much for a player to have to bother about; if your level requires use of it, it's probably not a very good level.
As for Framestepping, the more I think about it, the more I realise that this would have to go. I'd be happy to try and implement a rudimentary "Fast-Backwards", which would essentially repeatedly perform -4 frame skips; I've already tested to see if this would be possible, and it can be done. This is so mistakes can be rewound, but the fine-tuning of assignments would be taken out of the game.
Replay-after-restart, replay insert mode and fine-editing of replays would also have to go. I'd keep the ability to save replays on successful completion of a level, but that's about it as far as replays are concerned. Saving an unsuccessful replay is basically a backwards framestep, when looking at it from this point of view, so it'd have to not be possible.
Again, I don't really want to do any of this, I'd much rather get help with making Classic Mode a reality.
With Classic Mode as an option, everyone can enjoy SuperLemmix regardless of their preferred "philosophy" (Timebombers notwithstanding: these are a wild card that will be the same for everyone ;P)