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 ... 13
1
NeoLemmix Main / How to play .nxp files
« on: January 27, 2019, 08:33:45 pm »
If you have a .nxp level pack file, how to play it with NeoLemmix? This was asked in #neolemmix twice within few weeks.

Answer: Get version 10.13.18 from the NeoLemmix download archives. This version is outdated, the NL authors don't support it anymore, and level authors should not make packs for it. But many authors still have packs only for this version.

Somebody more knowledgeable than me should explain in detail how to run these outdated versions. namida explains in the next post how to play the .nxp pack with that version.

Should this thread be pinned? Should this be moved to the board with outdated packs? This question appears often enough that the NL authors should think about a solution. Maybe even let NL v12 detect .nxp files and tell the user what to do?

-- Simon

2
Site Discussion / Summary of 2018
« on: January 11, 2019, 05:34:56 am »
I (Simon) have been the head admin. I haven't done as much as I could have: At least, I've deleted spambot accounts and their posts within a few hours. 1-2 spambots per month successfully bypass registration.

namida has done the most on the technical side: He has moved the site from NearlyFreeSpeech to a VPS (virtual private server) with full shell access, we can install anything we want. After some trouble with IPv6 routing, everything was on track soon, and the site has run extremely well on his VPS ever since. namida still funds the site himself, plus any donations that go 100 % into hosting costs site costs, excluding transaction fees.

The code of Lemmings Forums (Simple Machines Forums and some custom changes) is on Nessy's github repository as a backup.

Gigalem requested very sensible changes, e.g., change the ICQ personal field to a Discord account field in forum user profiles. But we haven't implemented any of these changes, sadly. I think we haven't changed the code in 2017 or 2018 at all. We merely put the change requests on the github issues page and let them sit.

The database (accounts, topics, posts, private messages, attachments) has no automation: We still have to back it up manually. We aren't diligent with this, occasionally I push Nessy to back it up, maybe once every 3 months. This is not smart; if the server dies, we lose around 3 months of culture. Bad. We have to look into automation.

Around November 2018, we had a massive traffic spike: For about an hour per day, we had 600 currently active guests, nearly everything from a few IP addresses in China. This didn't look like an attack, and it's well over now.

Our level designers still create and test each other's levels, the culture continues. That's what counts the most.

-- Simon

3
Lix Main / Autosave replays: Run to end?
« on: January 09, 2019, 10:50:12 pm »
Split off Level solving contest #2:

I thought the F3 button was a "save replay" button. That icon that looks like a save button has deceived me. :-[

I apologize for the lousy UI and how it caused you to lose the solution. :lix-trouble:

Harvester runs replay to end: There's a nasty related question: What is a solution? In our culture on the forum, it's a replay that will save enough lixes. Autosave promises to save all solutions, but it will only save those solutions that have run to a solved state during gameplay. It's possible to beef up the "replay harvester" (the internal part of the game that sits between the exited attempt and the level browser, and decides whether the replay is autosaved or offered for manual saving) to always run the replay to completion, to never miss solutions even when they haven't been run to completion during play. It's expensive and feels weird, maybe it's worth it, I don't know.

-- Simon

4
NL 12.04

This seems hard to reproduce, and I speculate that it's a race condition in NL's keyboard/mouse input polling.
  • Have a machine that endures a framerate drop during continuously held framestep-back. I repro this on my laptop (can't test on desktop today): 2018 laptop, Intel integrated graphics chip, Arch Linux, NL runs in Wine 4.0-rc3.
  • Map hold-to-scroll to RMB (right mouse button) and framestep-back-by-1-frame to 2 (the number 2 = the key above W).
  • Play a large level, e.g., Minim level-solving contest 1.
  • Zoom into the level far enough such that the game allows you to scroll around the map, i.e., do not have all of the map visible at the same time.
  • Fast-forward to maybe 5 minutes in the level. No need to assign anything.
  • Press and hold 2 (the number key) to framestep-back continuously. Never let go of the key until you're done reproducing this bug.
  • Press RMB (right mose button) and hold it for about a second, move the mosue frantically while holding as if you were scrolling with hold-to-scroll. Repeat this step several times.
Expected: Every press-and-hold of RMB in the last step allowed you to scroll via the hold-to-scroll function.

Observed instead: Only some of the press-and-holds allowed you to scroll.

-- Simon

5
NL 12.04

On first start, player offers two key mappings, functional and traditional. In functional, RMB (right mouse button) selects walker.

RMB should be hold-to-scroll instead.

Ideally, RMB is also select-walker, but that is far less interesting. With the questionable design where function-to-key bindings must be injective, anything else can be select-walker, I don't care much, I've bound Left Control for select walker but never use it.

-- Simon

6
Challenges / tasvideos.org DOS L1 thread
« on: December 19, 2018, 02:54:13 pm »
TASVideos is a community for tool-assisted speedrunning. They have a thread about DOS Lemmings 1 with some action from 2014, but it slept for 4 years.

Now, in December 2018, there is new action:
http://tasvideos.org/forum/viewtopic.php?p=478352#478352

Nobody has concrete plans to TAS L1, but a few prolific TASers are discussing first ideas. I'll happily share information there about the L1 physics. I'm not the most knowledgeable of all Lemmings Forumers, but I hope it's still worth it.

-- Simon

7
Non-Lemmings Gaming / Zendo: Realizations
« on: December 16, 2018, 07:01:37 pm »
Realizations about Zendo
Part 1: Different piece sets

I will write several posts about the tabletop game Zendo.

Background knowledge: Rules of Zendo, a game of inductive logic.

In Zendo, you build structures of pieces. Any source of pieces is eligible, but ideally you have many copies of each piece and can compose pieces in many different ways. The structures should be easy to grasp by looking.

Example piece sets



The 2017 Zendo release ("Zendo 2.0") has 3 shapes in 3 colors each. Everything is the same size, there are no pips on any piece.



Icehouse pieces. Everything is a pyramid. The 2001 Zendo boxed set has 4 colors of pyramids in 3 sizes each. Large pyramids had 3 pips, medium pyramids had 2 pips, small pyramids had 1 pip.



Digis, and structures are then natural numbers.



Letters from the alphabet. We played Zendo on Lemmings Forums where structures were finite-length strings over A-Z.

Good piece sets

Above, I've already sorted the piece sets according to how good the resulting game feels. The Zendo 2.0 pieces are the best. Geometric shapes and colors seem to fit the game much better than letters or numbers. Visual pattern recognition is a deep part of Zendo.

I have an irrational soft spot for the Icehouse pieces over the 2.0 pieces. The Icehouse pyramids come in green, the table looks more colorful with red/yellow/green/blue pieces, and still the number of colors is small enough.

I've always thought our Lemmings Forums A-Z game produced insidious problems with harder rules. That will warrant an extra post these days. Until then!

-- Simon

8
Lix Main / Design history of Lix
« on: December 04, 2018, 12:49:04 am »
Hi,

Double resolution

Lemmings 1 and Lemmings 2 were written for 320x200 VGA mode. The playing characters are 8 or 9 pixels high, walk ahead by 1 per frame, and builder bricks are 1 pixel high.

Lix is double-resolution: Characters are about 17 pixels high, walk ahead by 2 hi-res pixels, and builder bricks are 2 pixels high. More precisely, physics work with 2x1-pixel-chunks. All lix' x-coordinate is always divisible by 2. Only the y-coordinate may be any integer. A 2x1-chunk of land counts as solid as long as at least one of its two pixels is solid.

Where does this concocted rule come from?

In early 2003, I scripted levels for the freeware game Gravity Strike, this ran with hardcoded 640x480 fullscreen. In the early 2000s, CRT monitors were widespread and could display any resolution sharply -- up to a point. But every monitor could display 640x480, thus Gravity Strike's author decided to hardcode this size.

I wrote GS Lemmings, a Lua script that ran in Gravity Strike, removed everything that the game normally provides (spaceship, terrain, enemies, status panel) and instead loaded my own graphics and ran my own logic. This is the birth of double resolution: It was easiest to work with what I had.

In Lua, apart from numbers, everything is a reference type, everything is garbage collected. I had no idea what was happening under the hood. Would arguments be passed by value or by reference? What is the difference between calling functions object.func() or object:func()? No idea. Programming was magic. If it failed, I would guess and re-try. I would never search the web for help because I found the technical explanations hard to understand. (Solution: object:func() is equivalent to object.func(object)).

In 2006, I finished my civil service -- back then, it was mandatory for every male German to either serve in the military or work civil service for 9 months. I had some time before university started in fall 2006. What to do?

I learned C++ and began the work on L++, a Lemmings variant with hardcoded 640x480 fullscreen resolution. Why would I do that? It worked in Gravity Strike, and I still had a CRT monitor that could display any resolution well. I kept my rule that the tiles could be anything and need not stick to 2x2-blocks. I would not upscale. I would load the tiles as they came from disk. That was easiest.

The 2x1 physics instead of 1x1 come from the desired walker speed. It was simpler to move always by 2 horizontal pixels than to write a basic walk action for 1 pixel, then call that twice per frame. The walk cycle would look at two pixels and deduce from them together whether the 2x1 chunk was air or solid. I didn't expect any odd cases from the rule.
Of course, there are odd cases (I should link the example gifs).

L++ became Lix in 2010 and got ported to D in 2015. Like Theseus's ship, all code, graphics, etc., got replaced over the years, but really, 2006 L++ was the first version of Lix.

With my own game project at 640x480 fullscreen hardcoded, I spent considerable time on choosing my first laptop in 2007. I wanted 4:3 aspect ratio for my laptop screen, but that was getting unpopular. Laptop computers were booming, and widescreen displays had gotton common. I loved 4:3, why would anybody want 16:10? Documents, websites, code, etc., everything is vertical, but most importantly, 16:10 TFT displays would blur at 640x480 hardware fullscreen.

Lix/L++ is now 12.5 years old and programming been my longest-standing hobby. Now, Lix supports any screen resolution, windowed or fullscreen. The user interface scales smoothly, a major design goal during the 2015 rewrite.

Even with the user interface resolution decoupled from the physics resolution, Lix still has 2x1-hi-res-physics. I don't like how confusing the 2x1-block rule can be. But it has been so deeply ingrained since the beginning. It allows for more graphical details on tiles. On the other hand, it forces tiles to have more details to look good.

tl;dr: It was easiest because of the hardcoded 640x480 resolution in the early versions. And now too much depends on it to get rid of double resolution.



Passage of time

More rambling, because I'm in the mood.

I feel like time is passing much quicker now. In 2003, GS Lemmings was released with 20 levels after maybe 2 months of work, with some bugs of course, some crashes, some reliance on 60 FPS -- Yes, the game would skip some physics logic, but not all physics logic, when the machine was slow! Horrendous bug! -- but it worked well enough to play. The 2-3 regulars on the Gravity Strike forums loved it.

Where GS Lemmings took 2 months, L++ required 3 years before I felt ready to post it on Lemmings Forums including networking mode. A more complicated feature, sure, and I wrote the game engine from scratch instead of relying on a host game.

It's been nearly 4 years since I started the rewrite to D in early Feburary 2015. I'm very very happy with the rewrite, I've pushed the game further, and I'm supporting different operating systems better than ever before. But are there killer features in D Lix that weren't already there in C++ Lix? Did the fundamental game take 2-3 years to implement in 2006 to 2008, and the 10 years after it has been only polishing?

Sometimes, I miss the days where I would implement buggy crap with trial-and-error, but have something cool to show after minimal development time. The 15-year-old kid inside me wants to feature-bloat on some side project. And the 5-year-old inside me wants to play that and get even more wild ideas.

When time passes linearly, memories increase only logarithmically. You remember so much from when you start a new activity. But then you get proficient, and you don't remember as much when you're performing by routine.

Consider the time after my civil service. I learned a good chunk of C++ and wrote a prototype-ish game, L++ with some singleplayer, in half a year. Then, I had nearly no other hobbies, obligations, or girlfriends, and could focus fulltime on L++. Now, 12 years after, I had comparable time after finishing the PhD, but I haven't started a new hobby in that time. But I already have so many hobbies -- games, Lemmings Forums, speedruns, tech projects -- that I've enjoyed in that time. They merely generated less impactful memories than starting a new hobby typically generates. That's why time seems to fly quicker.

At least I've finished xmas2018 on time. :lix-grin:

-- Simon

9
Lix Levels / xmas2018: Holiday-themed pack with 24 levels
« on: November 30, 2018, 12:32:21 am »
Hello,

just in time for the festive season, Forestidia and I present xmas2018! This is a holiday-themed singleplayer pack for Lix with 24 levels, including one by Raymanni.

Get it: Download newest version of Lix, xmas2018 has been included since Lix version 0.9.22. Look in the folder levels/single/misc/.

Ideas behind the pack: This season is about love and caring. You don't have to implode, cube, or kill lix: In these levels, all lix must be saved. The 24 levels stand for the 24 days until Christmas. You can play one level per day, or try to solve them all in a single sitting. It's your choice.

Have some hot chocoloate and enjoy the pack!

-- Simon



Advent Calendar
The first level of the pack. 24 little doors with 24 little surprises.



Decorate the Tree
Join us in the homely living room. The holiday porcupine can't wait to see your newest tree stylings.



Home Time for Santa
Santa has delivered all the presents. The cookies were tasty. Let's help him leave the house through the chimney.



Docked at the North Pole
Join the expedition to Santa's home in the icy north.



Three Wise Visitors
Earlier, you've guided the Three Wise (Wo)Men through the desert. Now they must agree where to meet in the shed.

10
Lix Multiplayer Dates / Lix Multiplayer Saturday 2018-12-01
« on: November 21, 2018, 09:56:39 pm »
Hi,

Let's play Lix Multiplayer on Sunday, December 2 Saturday, December 1 at 19:00 UTC. Who's in?

New and exciting! At latest 3 hours before the session on December 1, I will release Lix 0.9.22 with:
  • Bugfix against the crashes on huge maps: I'll provide a 64-bit executable that shouldn't crash anymore, and will encourage you to play the multiplayer session with that. Let's test some huge maps that night!
  • Xmas2018: a Holiday-themed Lix singleplayer pack with 24 levels by Forestidia and me. Dedicated topic and preview images will appear next week!
-- Simon

11
Hi,

airwalk happens in Lemmings 1 and in Lix. I consider it a physics bug. Here are pictures taken in successive frames:





Explanation:
  • Many clustered walkers are immediately in front of the wall.
  • Assign imploder to one of the walkers. (It doesn't matter if you implode the first, last, or one in the middle.)
  • Physics update begins.
  • The imploder removes therrain. (Physics update terrain removers first, then skills that don't affect the terrain. This is why choice of walker to implode didn't matter.)
  • All walkers see the hole before they update.
  • (No check whether they have ground.)
  • All walkers notice open space ahead, thus walk one step ahead in the air.
  • All walkers notice the lack of ground, thus begin falling.
  • Physics update is finished, and the result is drawn to screen.
  • The fallers will eventually land on the ledge created by the imploder.
Problem: These walkers land on a ledge, but shouldn't be in the space over the ledge in the first place. It's weird that walkers react to the lack of wall immediately (thus can walk forward), but fall due to lack of ground only after airwaking once. It's also inconsistent with the general philosophy that terrain removers should immediately affect everybody in the same frame, in every way.

Proposal: Walkers should check for ground both before and after possibly walking forward. If they hover before the move, they immediately fall and don't move forward anymore.

Downsides of change: Walking is the most ubiquitous activity. If you have walkers in a digger hole, this change affects them as the digger breaks through. I haven't implemented any fix yet, thus haven't run the replay checker on this. Also, other activities might have similar bugs -- fixing only the walker in isolation might be inconsistent.

-- Simon

12
Lix Levels / Slipping Again: alternative solution?
« on: October 01, 2018, 05:52:20 pm »
Flopsy found: https://www.youtube.com/watch?v=JpekjPkzN24&t=380

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

-- Simon

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

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

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

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

15
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

Pages: [1] 2 3 ... 13