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 - Simon

Pages: 1 [2] 3 4 ... 13
Lix Levels / Slipping Again: alternative solution?
« on: October 01, 2018, 05:52:20 pm »
Flopsy found:

Has some similarities to the intended route. Looks hard to prevent, merely finnicky.

-- Simon

Lix Multiplayer Dates / Lix multiplayer 2018-09-15
« on: September 06, 2018, 12:27:25 pm »

let's play multiplayer Lix again, and schedule a time nicely in advance. I propose Sunday, September 16th We changed it to Saturday, 15th at 18:00 UTC .

Any game version 0.9.x can join, which is everything released since summer 2017. Current is 0.9.19. Select Multiplayer from the main menu and connect to the central server.

-- Simon

Lix Main / Ceiling, how to check terrain beyond?
« on: August 28, 2018, 07:40:36 pm »

Lix die when they leave the map. I'd certainly like to keep this. But how should the terrain check beyond the ceiling behave?

0.9 ceiling rule: When a lix checks terrain beyond the ceiling, the game answers with the highest pixel still inside the playing area.

Problem (see gif above): Walkers see the final builder brick as an infinitely tall wall and turn at this brick.

One may consider this a logical corollary from a reasonable rule. But many consider this unintuitive. In particular, the builder herself dies because she doesn't check again for terrain after building the infinitely-tall brick.

Here's an alternative to the 0.9 ceiling rule:

Open ceiling rule: When a lix checks terrain beyond the ceiling, the game answers with air.

Problem (see gif above): This thin bar is only 8 hi-res pixels thick. The lix have to climb 12 hi-res pixels to get out of bounds, and they happily do that because they can ascend up to 12 pixels into air.

One may consider this a problem of the level and thicken the steel bar here.

Compared with the 0.9 rule (left gif), the open ceiling rule (right gif) has another downside: Before climbers die, they see a ledge on top of the climbable wall. Instead of peacefully climbing into their death as in 0.9, the open-ceiling-rule climber will now ascend/hoist into death.

One may consider this a cosmetic problem and not care.

Or one could special-case the beyond-ceiling terrain check per skill: Climbers check with the 0.9 ceiling rule, and walkers check with the open-ceiling rule.

What are your opinions?

-- Simon

Closed / Autoreplay: Solve-then-replay shouldn't save identical replays
« on: August 12, 2018, 06:12:14 pm »
NL 12.3.0

1. Activate the option to save auto replays of solutions (on by default).
2. Play and solve a level.
3. In the postview screen, click left for the next map.
4. In the preview screen, press arrow-left to return to the map from step 2.
5. Click to enter the map.
6. This replays the solution from 2.
7. In the postview screen, click left for the next map.
8. In the preview screen, hit ESC several times to exit NL.

Look in the replay-autosave dir. The newest 2 replays are identical text files.

Expected: Game doesn't save a replay if this has already been saved.

Bonus report of what works: This bug does not hit when (step 2: playing the map manually) is replaced with (step 2': load an already-saved solving replay and let it run to the end). The game doesn't save any files at all during 1-2'-3-4-5-6-7-8. This is good.

-- Simon

Closed / [Fixed][Player] Smooth resampling, default should be off
« on: August 12, 2018, 04:38:57 pm »
NL 12.3.0

Install freshly. Start game, start a level with small width and small height. Have a huge screen. The map is blurred. To fix, disable smooth resampling, both for menu and for game.

Expected instead: Smooth resampling for game is alrelady off by default.

-- Simon

Lix Levels / Behind Bars (lemforum Hopeless)
« on: August 04, 2018, 06:41:42 pm »
Forestidia and I solved Behind Bars (8/12).

-- Simon

General Discussion / Double date in Berlin, July 2018
« on: July 11, 2018, 09:49:42 pm »

Over the weekend, I visited Forestidia. We have a relationship; some forumers have already guessed that.

Flopsy and Lucia, his girlfriend, spent a week in Berlin for vacation. We decided to meet them!

At their hotel, Forestidia showed the Prince of Persia 1 and Commander Keen 6 speedruns. I gave the couch commentary. Afterwards, we went into town for lunch and smalltalk.

Here is a picture of Flopsy (left) and Simon (me, right).

This picture is confusing in light of the topic title "Double Date"; Flopsy and I are not in a relationship with each other. But the girls preferred not to have their pictures posted on Lemmings Forums.

Forestidia and I went to Tierpark, a large zoo in Berlin.

The Tierpark has porcupines -- both new-world porcupines (these sit in North American trees) and old-world porcupines. The particular old-world porcupine species in Tierpark is the Indian Crested Porcupine, a relative of the African Crested Porcupine that you see in my avatar.

Here's a happy Simon next to 3 porcupines cuddling in the corner. Those 3 porcupines are lying next to each other, touching. The middle porcupine faces leftwards, the othes face rightwards. Such social animals, they don't sting each other with their quills.

Here's a close-up. This porcupine sleeps in the shade, avoiding the afternoon sun. The hair fits along the body, the quills are down in peace. Who wouldn't want to cuddle?

I'm sure Flopsy remembers how much I raved about seeing these porcupines.

-- Simon

Lix Levels / Re: Skulls, Sludge, and Steel (spoiler)
« on: June 12, 2018, 08:16:46 pm »
Top-backroute: Skulls has a backroute by stretching 2 builders over the top, without help from any other skills. This backroute has become possible since 0.7 physics.

But even in 0.6 physics, similar things (that don't solve the map) were possible here:

0.6 Skulls backroute (click to show/hide)

Skulls should be designed much clearer such that these things clearly fail (instead of barely fail or even barely work).

-- Simon

Lix Main / Key of a level: How to map replays/trophies to levels
« on: May 29, 2018, 03:24:59 am »
Lix 0.9.17 has:
  • A level is identified by its full filename (path within levels/ plus the file's basename).
  • Identical level files in different directories are considered different levels for replay-to-level matching and for trophies (checkmarks).
  • Within larger sets of levels, it's popular to have ranks, i.e., one directory per 30-ish levels of that larger set.
Problems of 0.9.17:
  • When a level moves between ranks (e.g., we reorder levels in lemforum), that level's replays will point to nonexistant file and that level's trophies are lost.
  • The level is the unit of culture. The rank or the pack are arbitrary distribution methods and should not count towards level identity.
  • Consider two levels the same when they have the same basename (= the tail of the full filename that is independent of directories) and the levels have identical level titles and authors.
  • This treats the level directory as an associative array (a.k.a. dictionary) where a key is level title plus author plus basename (filename independent of directory). A value is then a level (the data in the file, not the file itself).
  • Store trophies (checkmarks) by key (basename, level title, author) and let replays point to keys instead of to full filenames.
  • Given a level file, it is trivial to determine its key. For each level, it remains fast to retrieve trophies.
  • To match replays back to levels, accept a dent in performance: When you have a key (filename without directory, level title, author), e.g., because a replay points to that key, you must first list the entire tree and then open all listed files with matching basename (usually 1 match but might be a couple more) to compare title and author.
  • To get the performance back, cache the key-to-full-filename resolution. While Lix is running, slowly index all files in the tree in the background. This would also make the search feature faster on Windows (slow harddisks, Windows itself, and Windows's virus scans nuke the search's performance).
  • When do you consider two levels the same for trophies (checkmarks) and replay-to-level-mapping? When only decoration changes, the level should probably still count the same. How about renaming the level file? How about moving the file or changing the level title? How about changing the skillset or number of lix?
  • Should the basename be part of the key? Or should the key consist only of level title and author? Should it consist of other things?
  • Or continue to map replays/trophies to levels by full filename alone, accepting above problems of 0.9.17?
  • For a selected level, I'd like to list all replays that point to this level. How should I implement that? Either I'll have to index the entire replay directory on demand (awfully slow), index the replay tree slowly in the background (feels weird for replays, but maybe okay), or require that replays for a level be put in a certain directory structure (but Nepster complained about Lix's replay directory structure, he wanted to sort replays by level position first, only then by solved/manual/proofs/...).
  • Can we require that a replay's basename should start with the basename of the level? That makes it much nicer to find replays for a given level file.
Older topic: Musings on level culture, 2017-07.

-- Simon


Proxima was visiting his sister in Münster, Germany, for a week. That's a 3-hour drive from Göttingen, but who cares, nice road trip with Icho!

From left to right: Proxima, IchoTolot, Simon.

I gave Proxima the American Family Feud card game. What would annoy Santa when he visits your house? Top answer: No cookies! Icho guessed naughty children, but children weren't on the card at all; mean dog would have given points.

Proxima showed us how to backroute some DROD maps. These backroutes are similarly smart and annoying to the level designer as Lemmings backroutes would be, but you can't fix DROD backroutes once the pack is declared final and got an online highscore board.

Proxima built this Lix multiplayer level. This is the 2-player version, but there are versions for 2 through 8 players. Do you go downwards or upwards to your exit? Standard strategic principles suggest to go downward, but there are splat falls, fire, and limited digging skills.

-- Simon

Lix Main / 64-bit Windows build: It's hard
« on: April 01, 2018, 09:07:15 am »
The homepage's Lix download for Windows is a 32-bit executable. Building 64-bit Windows executables from D source is possible, but hard. I'll continue to ship 32-bit builds.

Problems of 32-bit: Windows D Lix 32-bit may crash on huge maps (width x height >= 2.8 million pixels). Our theory is that it allocates so much VRAM that it begins swapping the VRAM to RAM, and 32-bit Lix cannot address more than 2 GB of RAM. My workaround is to print a warning over the level preview on huge maps, but still allow to play these maps. Post on the D forums about trouble with the 32-bit GC.

64-bit Lix would still be a chubby glutton who belongs into a diet camp, but at least 64-bit Lix won't crash on large maps, and overall RAM consumption is less. No idea why. And any Windows computer younger than 12 years can run 64-bit apps.

Reqires fat MSVS: While 32-bit builds with dmd and its included optlink, 64-bit need a different linker. It looks like the only working 64-bit linker comes with Microsoft Visual Studio (MSVS), a proprietary IDE + SDK + toolchain that requires 5 GB to even install. Maybe you don't need the IDE itself, only the toolchain and the SDK, but it's still a sizable chunk. The Community edition may be gratis, but you're subjected to licensing terms that seem crazy when you're accustomed to free-and-open-source.

MinGW + D = crash: A possible alternative for MSVS is the MinGW toolchain. I've used that in the past to compile C++ Lix and am moderately familiar with it. It offers gcc, g++, make, and ld for Windows, and probably some other useful tools. This wiki entry explains installing dmd, but it doesn't explain the MinGW toolchain, or how it interacts with dmd.

One direct test with MinGW and the MS build tools made Windows 64-bit Lix crash at runtime. No stacktracke, but we didn't enter it with a debugger. The offered MinGW variant still uses VC++ 2010 redistributable, maybe that's the problem for running the app.

NuGet DLLs/LIBs are good: To run Lix, you need Allegro 5 DLLs (I ship them with the binary Windows download), and to build Lix, you must create LIBs from the DLLs. Recently, I've tried to update the DLLs. Suddenly, the Allgero DLLs required extra DLLs (not from Allgero) that weren't needed before, therefore I've postponed updating Allgero. But Allegro offers NuGet packages both for 32-bit and 64-bit, you can extract DLLs with readily-made LIBs from those, and they don't require any extra DLLs. I should use these in the binary download.

All of this research is not by me, but by Forestidia. Thanks for your research! Please nudge me to fix any mistakes above.

-- Simon

Tech & Research / Lemmings 3D block structure
« on: March 19, 2018, 02:40:48 am »
This was split off from Simon blocks blogs.

Block-based Lemmings

mobius likes L3's block-based physics. Lemmings can only do things at multiples of 8 pixels, far coarser than the single-pixel granularity of L1 and L2. When you play L3, you must assign at seemingly unnatural times and often fail good-looking assignments, but I'm not sure if this is typical for block-based Lemmings or a failure of L3's user interface.

Raymanni toys with the idea to write a game like L3D, presumably block-based, but we haven't talked about details much. L3D works with extremely coarse blocks, it took 1-2 seconds for a lemming to traverse a single block at normal speed.

Compared L1 and L2, all of Lix, (Super)Lemmini, and Clones refine the pixel granularity to at least twice the pixel density. This doesn't necessarily produce better gameplay either. Clones enraged the most: Your clones couldn't slip through single-pixel gaps and would instead bonk their head at single leftover pixels in the terrain.

Maybe Lemmings 1 hits a sweet spot, a windfall because 320x200 EGA or VGA were widespread in the early 1990s.

Or maybe there's more to the even coarser games, and we don't know it yet. In that case, best of luck to Raymanni with hist first prototype, whenever he'll start cracking on that. :lix-grin:

-- Simon

Lix Main / 2018 roadmap
« on: March 08, 2018, 04:36:49 pm »

Lix has progressed nicely throughout 2017, I've hit all my high-level goals:
  • Guarantee 100 % solvability for lemforum, Rubix's singleplayer, NepsterLix, ClamLix.
  • Improve the worst tilesets, throw out my 2006 programmer art.
  • Add music, ship with some free tracks, allow to add your own tracks.
  • Implement the networking mode. Play games with forumers who weren't around in 2010-2014 to play L++ or C++-Lix multiplayer.
  • Enable Linux packagers to create system-wide installable packages.
Of course, some tilesets can still be improved, the networking UI should offer spectators to view other teams' skillsets, ..., but I've still managed everything I expected.

This leaves no clear high-level goal for 2018. What should be the focus of development?

Even without one big core idea, you can help enourmously: Look through the Lix bugtracker. Its first page shows only 25 issues, please look through other pages than the first, too. What are the worst issues that I should prioritize?

-- Simon

Lix Levels / Triangle Inequality, backroute & wrong approach
« on: February 10, 2018, 05:54:36 am »
Hi geoo,

Forestidia found the attached backroute to Triangle Inequality.

Proxima found this almost-solution that looks like some wiggling will make it work, but it needs a conceptual difference. Merely re-timing some assignments will not fit this one in. Do we accept this dead end as part of the map, or should this be forcefully removed? It's OK if Triangle Inequality is hard. I'm merely worried that this dead-end looks too promising, will induce a lot of trial-and-error, and ultimately result in frustration.

-- Simon

Because they gave good suggestions for moving topics and have a feel for housekeeping.

-- Simon

Pages: 1 [2] 3 4 ... 13