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] 2 3 ... 16
Steps to reproduce:

1) Go to Config menu and hit "Activate Classic Mode" (relevant checkboxes will be disabled)
2) Click Apply, OK
3) Exit the Config menu
4) Re-enter the Config menu

The checkboxes are enabled again.

SuperLemmix / [SLX] Rewind button / hotkey
« on: March 19, 2023, 09:38:16 PM »
I'm currently in the process of adding a Rewind button to the panel. Progress has been slow but significant, and it will likely need extensive bug-testing as it's not only a brand new feature but one which calls upon and interacts with existing features (that weren't purpose-built) for its functionality. So, I feel it warrants its own topic.

Hotkey support will also be provided, of course.

Unsure yet whether to allow this in Classic Mode. Currently leaning towards yes, since the aim is for it to feel much more like a real-time control than a "player-assist" kind of feature, and I think that more people will use Classic Mode if they know that there is a way to undo mistakes, albeit a relatively elementary one. Maybe this decision can be made after we've had a chance to test it out a bit.

Here's what we have so far:

:tal-silver: Partly-functional Rewind button which performs a repeated -3 Framestep. Currently, it's a little bit glitchy, but it works.

:tal-gold: Rewind uses backwards Frameskips to function, so Replay-After-Skip mode is cancelled when Classic Mode is active.

:tal-gold: Hotkey support is added.

:tal-gold: Find out how to fine-adjust the frequency of the skips (and therefore, effectively, the Rewind speed). I think that calling the PrevCallTime value within TimeForRewind fixes this, but more testing is required to make sure this is the case. As it is, the IdealFrameTimeMSRewind value can be set to any value, and it will change the frequency of the skips. 22ms seems to be something of a sweet spot, but if people think it's too fast/slow, it can be fine-tweaked.

Still need to do:

:tal-bronze: Sometimes, you have to press the button twice to stop Rewind mode once it's active. Not sure why this is, but it needs sorting out.

:tal-bronze: Stop panel display from glitching out (the lem counts and timer currently flicker occasionally whilst the Rewind mode is active).

Non-Lemmings Projects / Retro Game Clones
« on: March 16, 2023, 06:06:04 AM »
So, I've been advised to start with a smaller project to build up some more beginner-level experience.

At first I was reluctant to follow this advice, because a) I'm impatient, and b) I have a slightly naive/narcissistic/idealistic (you decide) belief that I can do anything I want to as long as I put my mind to it.

Whilst I certainly am tenacious enough to learn most things, I have to admit that I have my limits, and sometimes it is good to take things back to basics, build up a bit of experience and confidence, and then move forward from there.

Anyway, with all of that said, I've decided I'm going to make clones of 3 of my favourite retro games! Namely:

Space Invaders

As I finish them, I'll upload them here in this topic. I'll also regularly post progress updates to track where I'm up to.

Copy-pasted from Discord

Quote from: WillLem
Noticed a bug in NeoLemmix ages ago but never mentioned it because it seemed so minor and likely only affected me because of the custom panel graphics I use
But now that I know a bit more about how NL works, I wonder if I might be able to help fix it
Basically, if you swap the current “selected button” icon graphic with a paint-bucked-filled semitransparent one, and then hit backwards frame step a bunch of times, the graphic will load again and again, making the pause button appear darker and darker
I’m guessing this might have something to do with Delphi’s need to “free” the graphic…
Because a backwards framestep, as I understand it, loads the replay and plays it up until 1 frame before the current one, then pauses the game
If this is done repeatedly, then the “select button” graphic is getting repeatedly loaded over the pause button
If I have that right, I’ll try to fix it myself and the code can be backported to NeoLemmix

Quote from: namida
It won't be to do with freeing. It'll be that the selected graphic is redrawn without redrawing the unselected button first (which doesn't cause any issues unless semitransparency is involved, hence why it would have gone unnoticed)
It very likely isn't loading it again either; just drawing it again

Quote from: WillLem
AFAIK the pause button is the only one for which this happens, and then only when backwards framestepping. So, it should be easy enough to isolate the code and find a fix.

Quote from: namida
It may be that the full "redraw original button" is only triggered when unpausing specifically
But for some reason, redrawing the frame is called after a backwards skip

Quote from: Dullstar
@WillLem adding to what Namida said: in pretty much every 2D graphics libraries I've used, whenever you draw something, it just plops it right on top of what's already there. Thus, the "safe" thing to do is clear the screen and redraw it each frame. But: you can be a bit more efficient if you only update the parts you actually need to change.
Typical NeoLemmix graphics really only use 0 and 255 alpha: pixels are either transparent or they're not, no semitransparency involved. In that case, you plop it on top of whatever was there before, and it looks the same as it would have if you'd actually cleaned up and cleared the screen first (well, at least for everything in that area)
Under these conditions, if you draw the same thing on top of itself, nothing really happens so it goes unnoticed. A little wasteful, but whatever, and hey, it's better than clearing everything and redrawing unnecessarily.
But once you add more options for the alpha channel, now the end color for each pixel depends on its starting color, so it changes every time you do a redundant draw call.
Thus, when redrawing a semitransparent object (sometimes it's necessary, maybe something moved) you need to redraw whatever was behind it too (and even a solid background would count as something behind it)
In this case, though, it's probably as Namida said and it's just being drawn unnecessarily many times, in which case dealing with that's the best fix. If for some reason you can't fix that the hacky fix would be to redraw the button before drawing the semitransparent graphic on top of it.

Quote from: namida
This is probably something I should fix in NL too tbh. Semitransparency is meant to be supported in most places where it would be sane to use it.

SuperLemmix / [SLX] Kill All Zombies talisman added to SuperLemmix
« on: March 06, 2023, 01:43:08 AM »
The previously redacted Kill All Zombies talisman has been reinstated, so SuperLemmix now has this feature! It will require some testing and possibly further development due to the issues namida raised in the linked topic, but from what I can see so far it work a treat and is potentially a lot of fun!

I've also added support for this Talisman to the Editor, so when the next version of SuperLemmix is released we can get creating zombie-killing levels straightaway :lemcat:

In the meantime, please do read the linked topic and then let me know here in this topic if you have any suggestions or comments relating to this feature.

SuperLemmix / [SuperLemmix] Level Sharing Topic
« on: March 02, 2023, 02:21:31 AM »
A topic for sharing your levels made for SuperLemmix

Please note:

:lemming: SuperLemmix only ships with the styles, music tracks, sounds etc to run its included levels. If you wish to use different assets please include them with your level.

:lemming: Please note that some styles from NeoLemmix which include custom sprites will be incompatible due to missing the "thrower", "freezer" and "timebomber" sprites. If you wish to update these styles to include the sprites so that you can use them in your levels, be sure to get permission from the style creator first.

:lemming: Be aware that whilst SuperLemmix will be able to run most NeoLemmix levels, some may not be cross-compatible. If you wish to share your NeoLemmix levels, please check compatibility with the latest version of SuperLemmix before posting.

Thanks, and enjoy sharing your levels!

Here's a very quick and fun level just to get the ball rolling 8-) ;P

SuperLemmix / SuperLemmix 1.1.2, Editor 1.1 Release Topic [UPDATE]
« on: March 02, 2023, 01:38:33 AM »

Well, what can I say, except...

Here it is!!! :lemcat: :lemcat: :lemcat:

When I made that discussion topic at the beginning of February, I had no idea I'd be at this stage so soon afterwards, and that SuperLemmix would be a reality. But, it just shows what a pinch of determination, a smidge of Googling and a generous portion of help from namida can do!

Anyway, pre-waffle aside, here's what we've been waiting for - the following is a list of all the features that have been implemented for SuperLemmix which make it distinct from NeoLemmix:

New & Modified Skills (click to show/hide)

Classic Mode (click to show/hide)

Updated Config Menu (click to show/hide)

Modified Game Mechanics (click to show/hide)

New Talismans (click to show/hide)

DMA Levelpacks (click to show/hide)

Editor Updates (click to show/hide)

Revised & Culled Features (click to show/hide)

For next time.....

Plans for the future (click to show/hide)

SuperLemmix / [SLX] 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", "Use Spawn Interval" 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 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.

SuperLemmix / [SLX][Editor] Updates to the Editor
« on: February 26, 2023, 05:56:28 PM »
Editor updates which will be required:

:lemming: Grenader support (done)

:lemming: Timebomber support (done)

:lemming: Activate Superlemming / Frenzy / Karoshi

Plus, if I have time:

:lemming: Set Auto-Start to automatically uncheck if the user edits the screen start values.

:lemming: Make "Lemminas" another type of lemming (like Zombies, Neutrals) which can be added to levels alongside regular Lemmings.

SuperLemmix / [SLX] SuperLemmix Introduction Pack
« on: February 26, 2023, 05:55:27 PM »
SuperLemmix has built steam much quicker than I anticipated, and it's already at the stage where it will require its own version of the NeoLemmix Introduction Pack.

My honest thoughts with this are that I'd like to start from scratch and make a unique one for this engine. It's probably best to keep the idea of dividing the levels into ranks, each of which deals with a particular group of features, followed by a set of general "training" levels to consolidate the learning process.

Skills (there are currently 23, and there will eventually be at least 24)
Objects (fire, water (including lava & poison), traps, teleporters, etc)

This will be a very large undertaking, and so anyone who wants to contribute levels/ideas will be very welcome to do so.

As a general rule for the creation of the pack, I'd prefer a backdrop of "let the player explore, experiment and discover things for themselves" rather than "force the player to figure out the exact route/solution for the level". The levels should always feel more like the later levels of "Fun" rather than the eariier levels of "Crazy".

That's all I have in mind for now, I'll come back to this when I get more ideas.

SuperLemmix / [SLX] 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 along with Jumpers & Reachers being able to exit.

SuperLemmix / [SLX] Modify Existing Skills
« on: February 14, 2023, 10:27:31 PM »
Modify the existing skills (click to show/hide)

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:

It isn't Climbable, and can't be customised per-style, so I might have to change the colours a bit so that it's more generic. This one looks great for the default style though ;P

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

:lemming: DMA Lemmings | Oh No! More Lemmings | Holiday Lemmings | Extras - all fully restored and with relevant logos. This project is in progress and is nearly complete.

:lemming: SuperLemmix Introduction Pack - based on the existing NeoLemmix Introduction Pack, this will include levels relevant to any engine-specific features that don't appear in NeoLemmix. I'll also aim to revise, simplify and condense the existing pack as much as possible.

SuperLemmix / [SLX] Introduce 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) (done, except Replay mode still activates when a level is Restarted)

(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. Replay mode still activates on Restart - this happens even if a level is Nuked, needs fixing.

SuperLemmix / [SLX] 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).

Pages: [1] 2 3 ... 16