Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - WillLem

Pages: 1 ... 6 7 [8] 9 10 ... 22
106
SuperLemmix / [FEAT] Changes to the Config Menu
« on: February 27, 2023, 02:25:53 AM »
As well as implementing Classic Mode, which globally deactivates a number of features (some of which can be individually deactivated when not in Classic Mode), a number of changes to the Config menu have taken place:

:lemming: Removed support for Online Features - Default sprites and styles are different in SuperLemmix, so it doesn't make sense to keep it connected to online features for NeoLemmix (not to mention that there's no reason that namida's NeoLemmix website should continue to support other forks such as SuperLemmix). Styles will therefore be manually updated periodically, and there will always be an up-to-date all-styles download available from the release topic.

:lemming: "Don't Replay After Backwards Frameskips" has been re-named "Replay After Backwards Frameskips", and the checkbox function has been inverted to match.

:lemming: Support for "Force Default Sprites", "Linear Resampling In-Game" and "Hide Advanced Options in Level Select" has been dropped. For the most part, this is to tidy up the menu a bit, but it's also because I'd personally rather not support these options in SuperLemmix.

Note that most of these have currently only been "soft-removed", and the code is still in place but has been commented out. I can always add these options back in if there's enough demand.

:lemming: Graphics Options now has its own tab, to keep the interface tidy.

:lemming: A "Reset Window" button has been added which auto-checks Reset Window Size and Reset Window Position at the same time.

:lemming: Added option to choose between "Yippee!" and "Boing!" for the Exit sound.

107
SuperLemmix / [EDITOR] Updates to the Editor
« on: February 26, 2023, 05:56:28 PM »
Editor updates:

The SuperLemmix Editor is based on the NeoLemmix Editor, and uses the same codebase. It's mostly the same, but here's a list of everything that's changed so far:

:lemming: Custom Piece Move: Pressing Alt+Arrows now allows pieces to be moved a custom amount, which users can set to their liking in the F10 Settings menu

:lemming: Horizontal and Vertical Drag: Pressing Ctrl+Shift then dragging pieces allows them to be dragged Vertically (along the Y-axis only). Pressing Ctrl+Alt then dragging pieces allows them to be dragged Horizontally (along the X-axis only)

:lemming: Freezer, Grenader, Spearer and Timebomber added to skillsets

:lemming: Kill All Zombies talisman added

:lemming: Wider theme/styles dropdowns for easier reading

:lemming: Some of the fields, buttons and labels have been re-named slightly (their functionality remains the same)

:lemming: "Clear Backgrounds" button has been moved to the piece selection area

:lemming: "Tools" and "Options" menus have been condensed into one (labelled "Options"), so Snap-To-Grid now appears here

:lemming: Play Level and Validate Level have been moved to the File menu, and Validate Level now has its own hotkey (Ctrl+F12)

:lemming: Stoner support removed

:lemming: Auto Screen Start is now unchecked by default - the plan is eventually to set this back to checked by default, and automatically uncheck it if the user edits the screen start values

Wish list for the future:

:lemming: Make "Lemminas" another type of lemming (like Zombies, Neutrals) which can be added to levels alongside regular Lemmings (this will also need player support as well, obviously)

108
SuperLemmix / [FEAT] New Exiting Mechanics (Direct Drop, etc)
« on: February 24, 2023, 03:51:41 AM »
Found the single line of code today which prevents Fallers, Splatters, Jumpers and Reachers from exiting upon contact with the exit trigger :lemcat:

:tal-gold: Direct Drop re-implemented in Commit 2fb7a1fc5 along with Jumpers & Reachers being able to exit.

109
- The Laserer will be given (effectively) infinite range; this will need to be fully tested as it will likely affect the duration of the laserer state

- If the extended Laserer range proves to be effective and useful, the Fencer skill could potentially be removed. I've decided against removing skills from the engine. Doing so is just as difficult as adding stuff; I'd rather cap the available skills at 16, as per the (potential) new panel layout, but ultimately keep all of them available Editor-side.

What I might do is modify the less-popular skills so that they become more interesting versions of what they already are:

- The Stoner will be replaced with the Freezer, detailed in this topic.

- The Disarmer could be a single-use skill rather than a permanent; so, a Disarmer can disarm the first trap they come into contact with, but then none thereafter. Thoughts?

- I'm looking at changing water objects so that orig_fire is lava (so, unswimmable), and orig_marble (as well as a few others) will become poison water. The idea is that a Swimmer entering poison water will be changed into either a zombie or a neutral. This makes interesting use of existing features whilst also bringing a bit of added value to the Swimmer skill, puzzle-wise. Non-Swimmer lems will simply drown, as usual, so the objects would be Swimmer-specific. This is just an idea at the moment, I have no clue how to implement this, but it's worth keeping in mind as a potential idea.

- The Fencer remains mostly obsolete as a result of the much better Laserer skill; however, Fencers can be cancelled to create a steeper and more carefully defined staircase, so they're still pretty good on a microscopic level.

Where I'm up to with this:

:tal-gold: Laserer range is now increased to 3200px, which is effectively infinite since .nxlv levels have a size cap of 2400 x 2400; SuperLemmix will not run levels that are bigger than this, I've tried! (I also think the level size cap is ultimately a good thing, so I won't be changing this no matter how much my inner kid wants me to!)

It doesn't affect the time that a laserer spends lasering as much as I thought it might, since the laserer will stop when it either reaches steel, or the edge of the level.

:tal-gold: The Freezer skill is ready! It looks like this:



See this topic for details.

110
SuperLemmix / [FEAT] Included Level Packs
« on: February 14, 2023, 10:19:01 PM »
SuperLemmix will ship with the following packs:

:lemming: DMA Compilation Pack - all OG levels fully restored and with relevant logos. This project is in progress and is nearly complete.

:lemming: SuperLemmix Welcome Pack - this will include levels showcasing any engine-specific features that don't appear in NeoLemmix.

111
SuperLemmix / [FEAT] Classic Mode
« on: February 14, 2023, 10:13:58 PM »
The following player-assist features will now all be de-activatable in the config menu:
- Skill Shadows (already implemented in NL)
- Clear Physics Mode (done!)
- Direction-select, Walker-select & Highlight Lemming (done!)
- Framestepping (done - this one was very wierd to see in action!)
- Splat ruler & other helper overlays (done!)
- Skill Queuing (done!)

The above will also be Globally hide-able via a single "Classic Mode" checkbox.

The "Classic Mode" checkbox will also affect the following (which, unlike the above, will not be individually customisable):

- Assign-whilst-paused deactivated (done!)
- Min/Max RR deactivated
- No Save/Load State, No Save/Load/Edit/Insert Replay - However, Replays will still auto-save on successful completion of a level (iff the user has Auto Save activated)

(I'm also considering allowing levels to force Classic Mode) Decided against this.

Where I'm up to with this:

:tal-gold: "Classic Mode" checkbox is implemented, and code has been written that will allow it to toggle multiple other checkboxes at the same time. It also saves to user config on exit.

Note that I'll probably change the checkbox labels of the following to something else

:tal-gold: Skill & Projection shadows are no longer toggleable in-game (this effectively means that projection shadows have been removed altogether, but skill shadows can still be turned on and off from the config menu).

:tal-gold: "Hide CPM" checkbox is implemented, working and saves to config. It works by checking for ClassicMode at the point of player input.

:tal-gold: "Hide Special Select (Direction, Walker & Highlight)" checkbox is implemented and working, in a similar way to Hide CPM. It also saves to user config.

:tal-gold: "Hide Frameskipping" checkbox is implemented and working; it requires code for both KeyDown and MouseDown due to the LMB advance 1 physics frame. It saves to user config.

:tal-gold: "Hide Helper Overlays" checkbox is implemented, working and saves to config. it requires code in a number of different places, so is worth keeping track of by FIF "GameParams.HideHelpers".

:tal-gold: Classic Mode also deactivates Assign-Whilst-Paused and all Replay functions except AutoSave on successful completion.

112
SuperLemmix / [FEAT] New Menu & Level-Preview Graphics
« on: February 14, 2023, 10:02:52 PM »
All menu graphics will be updated so that SuperLemmix is immediately visually different from NeoLemmix. These images will remain user-customisable, of course.

I'd also like to have each line of level preview text be different colours, like in the Amiga version (and also (Super)Lemmini(Too)).

Where I'm up to with this:

:tal-gold: All menu graphics have now been updated. They may require further revision in the future, but are good enough for an initial release

I'm looking at how to change the colour of the font per-line on the level preview screen. I can't find the code that determines what is written here (although I have found the code which determines the clickable text at the bottom, and have modified the colour of these).

113
SuperLemmix / [FEAT] Projectile Skills (Grenader & Spearer)
« on: February 14, 2023, 09:58:54 PM »
Where I'm up to with this:

:tal-gold: Grenader is back in! And, as a bonus, we have the Spearer as well. With Timebombers, that brings the total skills up to 24 (or, 3 sets of 8 skills, which seems appropriate :lemcat:)

:tal-gold: Grenader, Spearer and Timebomber are now supported in the Editor, which I've also enhanced here and there to make text fields and buttons bigger.

:tal-gold: The "grenade" is now a "cookie", just for fun :lemcat:

114
SuperLemmix / [FEAT] Re-inroducing Superlemming!
« on: February 14, 2023, 09:44:59 PM »
Re-inroduce Superlemming mode
- The mode will be available as a checkbox option in the Editor: "Activate Superlemming mode"
- Player-side, when active the framerate cap will increase to {?}, and all physics will move at {?}FPS | OR | the fast-forward button will be activated (least favourable option due to varying speeds)

Where I'm up to with this:

I'm unsure exactly where to begin with this one.

Thinking that it might be worth looking at how Superlemming mode worked in Lemmix, old formats NeoLemmix and SuperLemmini, and also have a look at how Lix handles the variable fast-forward speeds.

Here is a useful document about how the application handles when not processing code. This may come in useful when looking at implementing Superlemming mode.

115
SuperLemmix / [FEAT] Modified Water Objects
« on: February 10, 2023, 02:51:23 PM »
An idea I had this morning whilst thinking about the current level contest Rule 2: since we now have the swimmer skill and mixable styles, should there be types of water that a swimmer either can't swim in, or that they interact with differently?

Lava and poison spring to mind. In the simplest form of this idea, these could trigger the "burner" animation and simply be re-styled as fire objects without making any engine changes. The ones I'm thinking of are orig_fire, orig_marble and onno_rock for this particular change; swimmers would no longer be able to traverse these particular water objects (since they'd just become fire objects instead). Regular water such as that found in orig_dirt/pillar would be needed to allow swimmer traversal, whilst, e.g. lava would be fatal.

Or, as a more extensive tweak, perhaps poison water could turn a swimmer lemming into a zombie (or a neutral): orig_marble, ohno_rock and ohno_bubble seem suitable for this. A non-swimmer lem would drown, as normal.

Taking this sort of thing even further, the ohno_snow water object could be a new "ice" object which turn swimmer lems into a block of ice which could then be walked over by other lems. This is going into "brand new code" territory though, I'm just allowing myself to spin ideas at this point. The other stuff above could already be made to happen if people were up for the idea of giving the original styles a bit of a tweak.

Of course, for the purposes of the original levels, there would be no difference since the swimmer skill isn't available; any type of water object would simply be fatal to lems in these levels.



Where I'm up to with this:

:tal-gold: Renamed the water object in fire to "lava" the one in marble to "poison", and given both of these the "fire" effect so that they burn lemmings (and therefore cannot be traversed by a swimmer). These have also both been replaced with the regular water object from the default style (not essential, since styles can be mixed, but makes it a bit more convenient when creating levels in these styles).

Other than this, the idea is still in discussion and the possibilities are being explored.

116
Level Design / [DISC] Why is the intended solution so important?
« on: February 10, 2023, 02:07:56 PM »
I'm interested to get as many people's thoughts on this as possible.

Should levels only be solved by their intended solution? Should all other solutions be backroute-fixed, patched-out, or at most grudgingly accepted?

Or, can alternatives be happily accepted, but only if they're better than what's intended? Or even, should alternatives always be happily accepted because the player has found a different way to beat your level with the skills and situation that you've provided?

So then, should alternatives be outright encouraged, providing a skillset which enables multiple possible solutions, all of which are intended either by design or in spirit? This can be quite difficult to get right without making a level trivial.

On a wild note, should backroutes be encouraged? Or, is this just another way of saying "alternate solutions" in the event that the designer hasn't felt the need to prevent anything other than the intended solution?

I suppose what I'm really asking here is what's in the title: Why is the intended solution so important? It seems to me that there are so many other possible scenarios by which both designer and player can be satisfied, so what's the deal with packs which exclusively provide "do-this-only-as-intended" levels?



Maybe here's what's happening.

A scenario which comes up many times is that a designer will create a level, and a player will find a way to solve it with a solution which isn't intended. In that scenario, the player has "beat" the designer.

The designer must then take their level back to the drawing board and find a way to fix it so that only their intended solution is possible. We've all been there! :forehead:

It gets beaten again, by another overlooked backroute. The level must be revised again. And again. And AGAIN! Until finally, in version 27.4, the level cannot be beaten by any solution other than the intended one.

But now, the player cannot solve the level. They don't know the obscure trick or they can't quite piece together the extensively complex series of actions which must be done in just the right order. Finally, the designer has "beat" the player.

But, neither of these situations is really what anybody wants. The player doesn't want a level they can't solve and the designer doesn't want their level to remain unsolved (not forever, anyway).

So, ideally, the player manages to figure out the intended solution, and at that point they have "matched" the designer. Nobody has "beaten" anybody: the player can own the fact that they figured out the solution, and at the same time the designer can be proud that their challenge worked as intended.

Maybe it's this then: if a level is solved by the solution intended, there are no winners and no losers. Everbody comes out on an even playing field, where wisdom and knowledge prevail.

Thoughts?

117
SuperLemmix / [FEAT] Improvements to Skill Panel
« on: February 06, 2023, 05:55:56 PM »
It's just occurred to me that doubling the panel up vertically might not be so terrible, allowing all 21 skills to be displayed in full glory with full-sized numbers, and allowing more features to be implemented as panel buttons. Here's a mockup:



Note that the purpose of this mockup is, at this point, to preserve the current NeoLemmix layout whilst adding in all skills. It's very likely that the above layout would be revised and perfected. More buttons could be added, bringing the total of buttons as high as 38 (equal to the current width of the NeoLemmix panel) or 40 (increasing the current width by a single button).

Furthermore, if the ability was added for players to fully customise their panel buttons, they could decide for themselves whether they want to make use of all (30/38/40) buttons, or condense down to (15/19/20) for a single-line layout. In fairness though, there probably wouldn't be much point in doing this, since the minimap is already the height of 2 buttons (in the above mockup, that is).



Since Stoners rarely get much love, here's a simple level demonstrating a scenario which would only be possible if they were kept in the game!

118
SuperLemmix / [DISC] SuperLemmix Discussion Topic
« on: February 06, 2023, 05:54:14 PM »
SuperLemmix is a new fork of NeoLemmix. The following is a list of proposals which I am going to at least try to implement, with help :):

:lemming: Re-introduce timed bombers as a new skill: the Timebomber!

:lemming: Re-inroduce Superlemming mode!

:lemming: Re-introduce the Grenader skill

:lemming: Re-introduce Direct Drop (and other exiting mechanics!)

:lemming: New skill panel

:lemming: Modify the existing skills

:lemming: Modify some of the water objects

:lemming: New UI graphics (logo, menu, pre-screens etc)

:lemming: Introduce a "Classic Mode" which disables all modern player-assist features

:lemming: Include all of the fully restored original DMA level packs

:lemming: Create and maintain a SuperLemmix Welcome Pack

:lemming: Editor updates to account for the above

And, some absolute dreamland features:

:lemming: Online multiplayer mode (yes, I'm laughing at myself as I type this).

:lemming: "Typed" lemmings and matching exits which only allow lemmings of that type (I'd probably start by allowing mixing of Lemmings and Lemminas, and having exits specific to each. I'm a million miles away from being able to actually do this, though!) - this will likely need to happen in the event of a multiplayer mode anyway.

And, some other stuff I can't think of right now but that I've likely already created topics for somewhere on the Forums. I'll add them back to this list if I care enough about the ideas at this point.

119
Question's in the title.

Mine would be:

Movement-based

1 Walkers
2 Jumpers
3 Shimmiers
4 Climbers
5 Swimmers
6 Floaters
7 Gliders
8 Blockers

Constructive

9 Platformers
10 Builders
11 Stackers

Destructive

12 Bombers
13 Laserers
14 Bashers
15 Miners
16 Diggers



To display the above in the panel permanently, allowing levels with all 16 skills to be possible, the panel layout could be:

Button 1: Release rate control, split into two halves of a single button
Buttons 2-17: The 16 skills
Button 18: Pause / Fast-Forward
Button 19: Nuke / Restart

120
SuperLemmix / [FEAT] Timebombers
« on: February 04, 2023, 07:03:54 PM »
Merged from 3 topics:

[DISC][FORK] SuperLemmix
[DISC][FORK] Adding Timed Bombers Back To NeoLemmix (Optionally)
[SuperLemmix] Timed Bombers



Note: Wherever the "oh no!" phase is mentioned in this post, it can be assumed that I'm also taking into account bombers exploding immediately in midair if the lem is a faller.



So, NeoLemmix is approaching its final version.

It's been a wish of mine since I first played NeoLemmix that the engine have a full-on "Classic" mode, which automatically disables all player assists (direction select, skill shadows, framestepping, splat ruler, CPM, etc) and leaves behind only the basic essentials, which I'd list as:

:lemming: Pause (no assignments)
:lemming: Fast-forward
:lemming: Skill panel hotkeys (up, down and numbered)
:lemming: Release rate hotkeys (only for up & down, no min/max jump)

And that's it! And, of course, timed bombers would be enabled in this mode as well. At present, it's theoretically possible to achieve all of the above except the timed bombers, since they don't exist in the current version of NeoLemmix.

I therefore propose a new fork of NeoLemmix (which I'd likely call SuperLemmix ;P) which allows both, optionally of course!

Unfortunately, adding timed bombers back to NeoLemmix is not as straightforward as copying and pasting the old code back in, as untimed bombers bring about a number of complications which would have to be addressed if both are to exist in the same engine. The current implementation of optional timed bombers in SuperLemminiToo has made some of these complications very apparent. Namely:

1) The actual assignment of the bomber would have to occur at the beginning of the "oh no!" phase, regardless of which option is applied. This is to prevent broken replays (i.e. the same replay should work regardless of bomber option). So, it would go like this:

With timed bombers enabled, clicking the lemming starts the 5 second timer, at the end of which the "oh no!" phase begins and the bomber assignment is written into the replay. In the case of untimed bombers, clicking the lemming starts the "oh no!" phase and writes the bomber assignment immediately, as per current behaviour.

2) For the first 5 seconds of each level, it must be possible for explosions to happen regardless of which option is applied, otherwise any level requiring an untimed bomber assignment within the first 5 seconds would be rendered impossible by having timed bombers enabled. I can think of only one way around this:

With timed bombers enabled, bombers assigned during the first 5 seconds of the level become "hot bombers," a new state which would have to be created for the purposes of the fork. The timer begins its countdown, but the lemming glows red. If clicked again, it skips the remaining timer countdown and goes straight to the "oh no!" phase. After the first 5 seconds of the level have passed, the lemming ceases to be a hot bomber and reverts back to a normal lemming, even if mid-timer.

This, as far as I can tell, allows the lemming to be both a timed and an untimed bomber simultaneously for just the first 5 seconds of a level. It only matters for the first 5 seconds, because after that timed bombers begin the "oh no!" phase anyway, as per untimed bombers.

There is only one problem with this.

If a level requires an immediate explosion on the first frame, even "hot bombers" can't account for this, since they require 2 clicks in order to explode, which costs 2 frames of game time. A level could be designed such that a single pixel would matter, and if the faller has advanced by even a single additional frame, we have a bug.

A possible fix for this would be to have the first frame of every level be a frozen "-1" frame iff timed bombers are enabled. This would allow the player to assign the bomber on frame -1, causing the lem to enter the "hot bomber" state, and then explode the bomber on frame 0. For frame -1, it must be impossible to assign any other skills, and the timer must not yet have started. In real time, of course, this would happen so fast that it would be almost imperceptible. But, for any level requiring that amount of precision during its opening frame, the code would be there to account for it.

As far as I can tell, the above proposal fixes the "first 5 seconds" problem. There may be something else that I've overlooked though, of course.

It also goes without saying that in the case of untimed bombers, current behaviour applies, but I thought I'd say it anyway 8-)



So, that's my idea. If I ever get around to learning programming properly, I'll definitely want to do this. If any existing Delphi programmers see this post and like the idea, please get in touch with me and allow me to be involved in the process of creating the proposed new fork! I'll want to give the UI a bit of a tweak as well, to differentiate it visually from NeoLemmix as it currently is.

Of course, at this point, this is all pie in the sky and might never happen. But, discussion is what Forums are for, so... :lemcat:

Pages: 1 ... 6 7 [8] 9 10 ... 22