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.

Messages - geoo

Pages: [1] 2 3 ... 100
Lix Main / Re: Handicap in Multiplayer
« on: May 17, 2022, 07:36:46 AM »
I've given this a bit of thought after the games with Rampoina. For the record, we played 3 maps:
  • Uphill battle. Rampoina was too strong for this map, and I didn't stand a chance. So we moved to
  • Ivory Tower: We played quite a few rounds, Rampoina won one and came very close to winning 3-4 times.
  • Stepping Stones: I handicapped myself by trapping my crowd and waiting for 1 minute before acting. Within 1 minute, building from the bottom middle block can almost reach to the opponent's starting platform, so this made it quite intense when my crowd was trapped there. If the spawn was simply delayed, the stakes would be lower, and even a delay of more than 1 minute could be considered. Rampoina almost won one round via the top route, but the crowd splatted right in front of the exit x_x
I believe handicap is extremely map specific. Quite often a delay and the reduction of the number of lix can serve the purpose. But many other maps will have specific skills which are rare, and adjusting their number might be a better means of handicap (e.g. floaters in Rescue Rangers, or diggers in Pancake Compression). The problem is, finding a good handicap needs knowledge of the map, and presumably the person who knows the map best is the level author.

I don't think putting the burden on the players via some complicated UI allowing to adjust delays, skills, number of lix etc is necessarily the best idea (it might be useful for experimenting though).

I would argue the best way would be to introduce handicap levels (both positive and negative), and the level author can specify various handicap levels in terms of delay, number of lix, spawn interval, skill numbers, etc.
Intermediate levels of handicap that are not specified would be done via linear interpolation (or maybe logarithmic for skills and/or lix amount, not sure). Of course, getting these levels consistent across different maps is difficult (and also subjective), but easy to tweak by changing the specific handicap level that is associated to a specific skill/lix parameter tweak.

I'm advocating for both positive and negative handicap because for some maps, it might be easier to provide positive handicap (e.g. add blockers, or add floaters to Rescue Rangers, while you wouldn't want to make these adjustments to the level itself). The aim would be that the handicap difference indicates the advantage, so +10 and 0 would be similar to 0 and -10.

Another advantage is that you can assign handicap values to spawns in asymmetric maps (and then possibly adjust them further via lix/skill parameter tweaks, to allow for a range of handicaps), incorporating these maps straightforwardly into the system.

From a player perspective, one would then simply adjust one's handicap level in the multiplayer UI, without needing knowledge of the specific map. Not every map would offer handicap levels, or some might only offer a limited range; the levels might not be 100% consistent across maps but one could make reasonable efforts towards that. I'd argue that all of this is fine, for example, the level browser could filter to only show maps where the min/max handicap is larger than a user provided value.

Lix Multiplayer Dates / Re: Semi regular 1v1?
« on: May 03, 2022, 08:32:23 AM »
1v1 (and 2v2) are my favourite modes of playing actually, so I'd be up for it. I have a few asymmetric maps, and we can also think of different modes of handicap. Strongly prefer voice chat if possible.

I'm happy to play somewhat frequently, but I'd prefer to arrange on short notice (at most a day in advance).

General Discussion / Re: Logic Puzzles
« on: April 04, 2022, 10:20:13 AM »
Here's a Lix-related logic puzzle (which I haven't solved yet):

You're building a N-player level where each player has M hatches.

The hatches are arranged into a grid of M rows and N columns. But the player order is wrong!
You need that in each column, all hatches belong to the same player, and in each row, the hatches spawn lixes at the same time.
You don't want to move the hatches around (error-prone), but you can fix this by changing the priority of a few of them.
How many hatches do you have to click to be guaranteed to be able to sort this out, regardless of the initial arrangement?

About priorities: If my hatches are ordered 1, 2, 3, 4, 5, and I decrease the priority of #4 down to 2, the priority of #2 and #3 gets increased by 1 each, giving 1, 3, 4, 2, 5.
If the players are A, B, C and the hatches per player are A1, A2, A3, then the hatches are ordered
A1, B1, C1, A2, B2, C2, A3, B3, C3
1   2   3   4   5   6   7   8   9

Example: N=2, M=2.
A2 B1    3 2
B2 A1 or 4 1

If I increase the priority of A1 to A2, I get
B1 A1    2 1
B2 A2 or 4 3

So clicking one hatch is sufficient. Is one hatch sufficient for every starting configuration for N=2, M=2?

Remark: This is from a real example where I was trying to build a level, and clicking hatches was expensive as they were buried under eraser terrain, which had to be removed first to access the hatch.

I'll try to make this session :)
The date is as good as it can get for me, I'll probably be unable to play for the rest of Feb and March.

L2Player / Re: Lemmings 2 Data Formats
« on: December 15, 2021, 05:26:14 PM »
This looks pretty nifty already! Needed to mess with the OpenGL version a bit ("export MESA_GL_VERSION_OVERRIDE=4.1COMPAT" did the trick), and it's running very smoothly for me :D

The most obvious thing I already noticed during the video is that the builder bricks are only 4 px wide rather than 6 px; maybe fixing this would also fix the issue with the gap? Related to the builder, L2 has a funny behavior where the brick of left-facing builders is placed differently from right-facing builders: For example, at a cliff edge, in one direction you can place the first brick so it protrudes 5 px, but in the other direction only 4. The collision detection of builders with terrain feels a bit too strict as well, but I can't say for sure.

A couple of other things you might already be aware of:
- You can't assign skills to lemmings that are currently performing a task.
- A few visual things: the animation of the floater is a bit funky. Also, permanent skills (floater, climber) invert the color of the lemming (green <-> blue) in the original game.

The Return key currently not mapped to fast-forward is very noticeable to me because I use it excessively in the original game, haha.

It's great how everything is extracted from the original game, no assets you need to include with the code, and any kind of modification to the game assets itself (I guess currently that's limited to levels) are automatically supported :)

Site Discussion / Re: [SUG] Allow video embedding
« on: December 14, 2021, 11:45:28 PM »
I'm wary of supporting video embeds. One thing I really appreciate about LF is how slick and fast the site loads, which is a rarity these days. Most sites these days are bloated, laggy and resource-hungry, and to me it makes the browsing experience sluggish and frustrating. Wherever you click (e.g. to scroll) suddenly something new opens, because everything has to be interactive.
Let's keep it simple. It is really such a bad trade-off to occasionally click a link rather than playing an embedded video in exchange of having a site that renders and loads smoothly (especially if you changed your settings to displaying 50 posts per page)?

The session is starting in 4 hours! I will probably join the server ~30 minutes earlier already, if anyone wants to get started already.

Generally, the game is a lot more fun with voice chat! We'll be using Mumble for that, you can install it here:
I'll send the details of how to connect to our server to everyone who has responded in this thread. If you haven't responded and want to know the details for voice chat, PM me. :)

L2Player / Re: Lemmings 2 Data Formats
« on: December 07, 2021, 02:10:36 PM »
Attached is a save game of mine; the first one (Test) has all levels unlocked with 60 lemmings.
Also attaching the savegame format description, in case it's useful.

btw, one other advantage of putting the source on e.g. github at some point is that you could get a PR for an L2 skill or two while you're still working on those :)

Ok, let's fix it for Saturday, Dec 11th, 22 UTC, which seems to work for everyone! :8:()[:

I was thinking of starting at 18:00 UTC. But we could start maybe around 22 UTC to accommodate for Simon's sleep schedule, if he's willing to wake up a bit earlier (0 UTC is too late for me).

L2Player / Re: Lemmings 2 Data Formats
« on: December 03, 2021, 09:25:42 PM »
Wow, you're making fast progress!

If you have questions about any specific glitches or behavior, feel free to ask!

As for Linux support, it would work as its .Net Core 3.1 which works on most distros. I think the only snagging point would be the audio library. (I'd be happy to find a suitable cross-platform alternative, just need to dust off my Ubuntu VM)
Nice, happy to hear that! ;)

Apologies, but the link you referenced is discussing L2 style limitations. Is this the right link?
Yes, in the topic kaimitai mentioned they were working on an editor/modding tool. I don't know if this still progressing or on ice, but I just thought it might make sense to make sure not to duplicate efforts or write incompatible tools.

Lix Main / Re: Slow additions or experimental fork
« on: December 03, 2021, 09:20:44 PM »
Only extend the level format, don't replace it entirely.
I'm not sure I understand the point of this. If you add new level features, newer levels will not work as intended in older versions of the game, regardless of whether you replace the format or not. Similarly, if you keep the code for reading the old format, you will still have backward compatibility. Presumably this doesn't add much maintenance overhead as you will likely be making mostly additions, not changes, to the internal Level interface in the future. (Or does the server partially parse the level format as well?) It seems to me that many proposed additions, e.g. hatch-specific metadata, would be pretty awkward with the existing format.

Introduce physics changes only when well-tested in singleplayer, and move all culture to the new stable.
This might not be feasible if you have features affecting multiplayer, e.g. explicit assignments of hatches to players, or neutrals. If you want to incrementally build and test new features together with the community on the central server and expect to iterate over/tweak the details, you'd either have to bump up the minor version all the time (and have a server that allows different versions to connect), or have the experimental fork with its own server (and merge an experimental feature into main whenever you're satisfied with it). Even with an experimental server, it seems more sensible to work on one feature at a time, and with the expectation that after playtesting said feature will be merged into main as soon as you're satisfied with it, or scrapped. (And thus allowing multiple versions to connect to the same server seems like a sensible addition regardless of the Debian situation, which in practice probably affects ~0 users.)

An experimental fork that has a whole bunch of features some of which we want to keep and some of which to scrap sounds like a mess, and stable and experimental being out of sync for ages sounds like a bad idea.

L2Player / Re: Lemmings 2 Data Formats
« on: December 03, 2021, 08:29:24 PM »
Exciting to hear about this! I'm afraid I don't have any more information about the .ANM file format.
Is this needed for anything beyond the intros? If I recall, Lemmix started out as an editor with a playtest function, which I think is really what the community needed back then considering the focus has always been custom content creation, and the LemmixPlayers only came after (I might be wrong about this though).

It's a fair point. My intention from the start is to recreate the physics exactly (As far as possible). As to if I achieve that, is another matter entirely, given the number of skills to replicate. Currently using frame-by-frame analysis to determine physics.
I believe Lemmix was able to replicate the L1 physics exactly by using a disassembly and translating parts of it into Pascal, basically. I guess EricLang and ccexplore would be the people to know more about this. I don't know if anyone looked into disassembling L2, if anyone, I guess ccexplore would be the person to ask, though he hasn't been active in a while.

The main value of this is that people could use your L2 replica to do valid L2 challenges (e.g. save max amount of Lemmings, or use the minimum amount of skills to solve a level) with the benefit of the QoL features, as has happened with Lemmix in the past. At the same time, L2 has a whole bunch of weirdness that you might not want to replicate (and without a disasm probably wouldn't be able to replicate): For example, pausing can get lemmings stuck in cannons; you can pause in 1-frame intervals to bypass trigger areas of traps (e.g. to save 100% in Sports 1); the rules determining which lemming under the cursor is assigned a skill are dumb, etc...

So unless you want to replicate all of this, it might make sense to make some deliberate choices to get rid of some glitches along the way (e.g. use divers or hoppers to glitch into a wall).

As for QoL features: Replays are definitely a big thing for any community creating custom content. Multiple fast forwards sound useful too. Some more challenging features (that were definitely well appreciated when added to other engines) are savestates and going back 1 frame/second/some other interval. (Taking them into account already early during the design process might make them easier to implement in the future.)
Loading up individual levels via commandline parameters (and batch verifying validity of replays, if replays are implemented) should also prove useful for level designers. Might also be worthwhile checking in with kaimitai who was working on a new level editor/modding tool:

The player and tools will be windows initially and run on .NET Core. Aside from a thin wrapper around OpenGL to push the frame buffer, it's all managed. All rendering is done in a custom and fast blitter.
Any chance this might reasonably run on Linux, e.g. using mono? Even within this forum, it feels like L2 is somewhat niche, and at least two people who appreciate L2 are using Linux :)

Either way, excited to hear about how this is progressing! Not sure I can be of much help, as I think you've already found all the documentation that is out there, but maybe I have some other stuff lying around or some obscure knowledge that occasionally could be useful...

It's been forever since the last session, and December is the one month I have nothing going on this year...
Would be nice to another one, even if it's small.

Assuming we go for evening European time (~6 pm UTC), which day(s) do people prefer?

I went through Medieval, Classic and Egypt.

Videos are here:

I was positively surprised by Classic (I generally don't care for L2 classic), and Egypt is my favourite tribe so far.

Pages: [1] 2 3 ... 100