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 ... 11
Lix / Speedrunning Lix singleplayer
« on: November 10, 2017, 11:36:43 am »
From yesterday's IRC log ( #lix):

<Proxima> I'm thinking of doing a speedrun of DROD: GatEB. No page [on] yet :)
<Proxima> Also, I might try doing the Repton games at some point. And maybe NeoLemmix or Lix.
<SimonN> Lix is meh because I won't support ancient versions that will eventually become fastest

And it's dependent on level fluctuation between given sets of levels. Faster machines will have an advantage with faster framestepping.

Nonetheless, it's a meaningful run, with plenty of dexterity and judgement. I gave it a go: lemforum/Lovely in 18:52. Partially blind, some maps without routing. Especially on larger maps, on-the-fly routing is expensive. Who can beat this?

-- Simon

Site Discussion / Nessy is administrator
« on: November 08, 2017, 03:51:29 pm »

Nessy is administrator on Lemmings Forums, alongside namida, geoo, ccexplore, and myself.

Nessy is web developer by profession and has already polished with a clean, modern design, no unnecessary bells or whistles. Thanks for stepping up to look after the forum, should there ever be a need! After Dullstar's issue (attachment too large), I sought for competence because my web solutions would be hackish at best.

This announcement is long overdue -- namida has granted Nessy ssh/database access already in mid-October 2017.


Bugs & Suggestions / "Path not found" on saving autoreplay
« on: October 29, 2017, 03:00:46 pm »
Latest Stable NeoLemmix Player V10.13.18
Level pack is Icho's contest collection from 2017-10-29,

Run NL with:
wine NeoLemmix.exe packs/Contest13LevelCollection.nxp

Play and win level by Raymanni. Get attached error. Click OK, ingame screen remains frozen. We didn't reach the end-of-level screen. I kill NL by hand.

The directory ./Replay/ exists, but there is no ./Replay/packs/.

-- Simon

Lix / Sporadic development on Lix until end of 2017
« on: October 10, 2017, 03:11:16 am »

I have to get my real life back into shape, and finish the PhD for good. That means I want to push myself to work on that every day for several hours. That means that I won't hack Lix as intensively as I have been recently.

I had great rhythm in August and September 2017, releasing every week with 5+ issues fixed. This has brought Lix into a reasonable shape, I'm really happy with it. D Lix has every important feature from C++ Lix, multiplayer works, the 0.9 physics and tilesets don't need any urgent patching.

If I want to let it drift, now is the ideal time. I expect the drift to last until end of year, but who knows. Even if I develop more sporadically for a while, I'll keep my old rhythm for some things:
  • I will backroute-fix the contest level.
  • I will hotfix bugs in Lix that destroy work, if any turn up.
  • I will visit the forum each day and merge posted Lix levels.
  • I will watch github and merge pull requests.
-- Simon

Level Design / Communities & level editing, probable history
« on: October 08, 2017, 03:22:55 pm »

You have a computer game, and suddenly level editors become available. Kieran observed a common pattern for how communities grow around level editing. There are three ages.

Editor becomes available: Early adopters jump on the new tech. It's very exciting to see what you can do in the editor, and it's satisfying to build anything at all. Every level has a brand new idea and is published immediately. Quality varies widely: Most of the levels turn out garbage later. Some levels are already excellent. Some levels highlight quirks in the engine.

Extreme levels, bug examples: After the editor has been available for a while, everybody has a rough grasp on the design space. The editor enables researching the finer details, you can build levels to see what the game engine can do. The community builds trimmed levels that showcase bugs in the engine. Some members release insanely hard levels to push both the engine and the design space to its limits. This is still bad level design by later standards, but there are no standards yet.

Quality: The novelty wears off, level releases become less frequent. New publications consolidate the findings of the earlier stages. Designers ignore a part of the design space to focus on select interesting ideas. Fun levels need not be hard, but it has taken until now to find the alternatives. Even new members observe what the established community likes, and builds higher-quality levels from the get-go.

-- Simon

Lix / Wafflem streamed Rubix's singleplayer
« on: October 04, 2017, 10:38:40 am »

Wafflem streamed Rubix's singleplayer levels on twitch yesterday: All of Pleasant and the first half Sinister. Vod for 14 days

One-pixel gap: See attachment. Lixes walk across this gap. This is intended: Physics resolve the land in 2x1 chunks (2 pixels wide, 1 high), and consider a 2x1 chunk solid when at least one of the two pixels is solid. I'm nonetheless unhappy about these gaps.

These gaps happen occasionally when terrain tiles sit at odd x-coordinates; here, the pagoda sits at (1395, 191). Maybe I should nudge the pagoda by one pixel. But in general, I'd like to keep all integer positions for tile placements, and exploder craters generate odd shapes anyway. I don't have a good final answer on the one-pixel gaps.

Unclear spawn interval: Nepster and Wafflem both wanted to view spawn interval during play, but neither found this in the user interface. Chatters eventually explained how you can mouse over a hatch to examine the SI. Issue #207.

Skill blueprints, splat ruler: Skill blueprints (shadows) show resulting terrain on the map before an assignment, while mouse over lix. Splat ruler measures splat height from arbitrary ledges.

This is getting important. Earlier this year, I've focussed on minimum viable multiplayer, but the multiplayer is in good shape since 0.9. I have to focus on the general user experience again. The blueprints seem like the most urgent lacking feature here.

Mark lemming: First, I'd like to improve the highlight under the cursor. That lix doesn't stick out clearly. Game draws her lighter, but I'd like to draw her really bright and with a dark outline, setting her apart from the bunch. Issue #247.

And I'd like to perma-mark able lixes (at least 1 permenent skill) on the map. The cursor already prefers them in the crowd, but that's not clear because the highlight under the cursor is too dark.

I believe that with these UI improvements, marked lemmings become unnecessary. Marking introduces a mode, and I'd like to avoid modes at all costs. The marking was necessary in NL because the cursor didn't snap to athletes.

Platformer doesn't turn: This is awkward, indeed, because the builder turns and the platformer looks so similar. I designed the platformer 9-10 years ago and decided that copying L2's behavior was a good idea. I can't judge neutrally what's better. The non-turning platformer is easier to anticipate, but the turning platformer is consistent with the builder.

Steel sensitivity: Lix terrain removers cancel when the mask overlaps steel, with small grace areas near the boundaries. When things align to the 16x16 grid, it's easy to anticipate chokes on steel.

The basher removes terrain in her own column and forward, and will therefore choke on steel within her head. We gave the miner a grace column here in 0.7, but didn't change the basher. No idea whether either grace column is good or not.

The NL terrain removers are extremely lenient and won't choke even if 80 % of a pickaxe's swing tries to remove steel. I understand that when you're used to the NL lenience, the Lix chokes on steel feel strict.

Thanks for the stream, and for the excellent feedback!

-- Simon

Lix / Miniatures (10 small levels)
« on: September 30, 2017, 01:47:59 am »

Find attached 10 miniatures built by geoo and me.

I call a level a miniature iff it satisfies all of these constraints:
  • Width is at most 320, which is half the default level width.
  • Height is at most 200, which is half the default level height.
  • Number of lix is at most 9.
  • Total number of skills is at most 9.
The width/height restrictions are inspired by Gronkling's small maps. Gronkling explained how the small levels would happen naturally for him. I was envious and decided to build a couple small maps, too!

geoo and I made these several months ago. Originally, I've wanted to hoard them until I had a proper pack. But I haven't worked on small levels recently, therefore I'll release them without pack polish.

All levels are proven solvable.

-- Simon

Lix / Lix 0.9.3 released
« on: September 28, 2017, 03:21:57 pm »
Lix 0.9.0 released.

:lix-cool: Download for Windows
:lix: Download for Linux 64-bit
:lix-evil: Source code
:8(): Changelog
:8:()[: Issue tracker

This bumps the middle version number, which means physics change. If you'd like to play tonight, you need this one, or the server won't let you in. :lix-grin: But I've fixed a couple annoyances in multiplayer, I hope it's worth it. All singleplayer levels are still solvable.

  • Raymanni's Toy, Lab, and Gore tilesets to v3: Raymanni has drawn Lab monitors, Gore tentacles, eyes, and a bonesaw, a Toy chalkbox, and several more. All tiles have shading from the top-left as normal for Lix tiles. Thanks!
  • Added Proxima's and mobius's multiplayer levels, merged geoo's level changes for the tileset update.
  • Level search. In the singleplayer or multiplayer level browser, you can search the entire level tree for titles or filenames.
  • Fix #230: Frogs ate cubers, and flung cubers reanimated. Now, cubers stay dead.
  • Fix #231: Tumblers oscillated in thin walls. Now, tumblers will either move or land. (The tumbler code is not perfect yet, I'm planning to rewrite it, but the rewrite's subtle physics changes would invalidate too many replays still.)
  • Fix #214: Players permute correctly in networking games.
  • Fix #239: The server sends a permutation of correct size. This fixes wrong hatch/goal distributions in games with many observers and larger teams.
  • Fix #217: Skip remaining overtime when everybody has nuked or finished playing.
  • Race maps (= maps that have zero overtime) nuke automatically on the first scoring.
  • Fix #240: Observers don't have to cancel the end-of-game dialog anymore. I print the game result to the console. This is not beautiful, but it's an acceptable medium-term solution.
-- Simon

Closed / Timer blink option: What is it for? Should this be kept?
« on: September 12, 2017, 07:14:33 am »
If you wish to ax options, redesign the blinking time limit.

Reasoning: Warning at 30 seconds is far too late. What good does it do? If there is any goodness, why wait until 30 seconds left instead of doing the goodness in the beginning? Why hit at 30 seconds instead of at 5 seconds, or even at the very end, because only then physics are affected?

Blinking text is problematic: We want to emphasize information. The worst we can do is hide that information temporarily, but blink is exactly that. At least blink in different color than transparent.

Some platforming games make your character blink transparently during invincibility frames. Massive problem. Much better to flash in a different color.

List of NL options
Option survey results

General rambling about options. The ideal reason to ax an option is a redesign that combines the goodness of old-yes and old-no. Let's assume the option exists for a reason, it covers a need. Unless we can explain why the need is covered otherwise, we shouldn't axe options.

People like what is familiar, and sometimes perceive that as simpler.

The Lemmings community shares familiarity of L1. As irrational as this may sound, it might be correct to design purely for this familiarity devoid of any other reason. E.g., make overproportionally many options for this. The SI/SR option is of this very nature already.

Compared to physics, options just for fun incur less permanent damage; if you grow really sick of something, could axe it later.

-- Simon

Lix / Multiplayer: Sun Sep 10th, and Tue Sep 19th
« on: September 07, 2017, 11:08:24 pm »

geoo and I plan a Lix multiplayer Session on Sunday, September 10th at 18:00 UTC (= 11:00 a.m. Pacific daylight savings, 12:00 noon in Utah, 19:00 in the UK, 20:00 in Germany or Austria, and 21:00 in Finland). Lix 0.8.5 is released; if you had the game crash on you, you might get more informative errors with 0.8.5. But any 0.8.x can join.

Since that's on short notice, and Flopsy works weekend shifts, I propose another multiplayer session for Tuesday, September 19th at 18:00 UTC. Flopsy, would that suit you? I didn't choose Monday 18th because it's Icho's night before exam.

Depending on your replies, I'll be fine with re-scheduling the Tuesday, September 19th session. Don't be shy to propose something else!

Voicechat (click to show/hide)

-- Simon

Bugs & Suggestions / NLEditor on Linux/Mono, widgets misshapen
« on: September 07, 2017, 08:46:26 pm »
Mono on Linux is popular to run C# apps. I've managed to build NLEditor. See attachments for screenshots. Observations:
  • The light dropdown menus have light text. I have a desktop theme with dark widgets and light text. That's probably a bug in the Mono widgets: They specify light bg, but keep user's text color.
  • Some widgets are wider than they should be, they reach underneath the level map. (Or the level map is too fat and goes over the widgets on the left.)
  • Tile pickers (empty boxes under the map): The form-designed tile boxes on the left are too big. The programatically-generated boxes on the right have the correct shape.
  • Number pickers: Numbers center within the entire widget. Nepster expected them to center merely within the arrow-free portion of the widget.
I reported this in #neolemmix earlier today. This post is for reference. None of this is urgent.

NLEditor doesn't have a readme or build instructions yet. Here's how I built it on Archlinux:
  • Install mono.
  • git clone
  • cd nleditor
  • xbuild, run without arguments, it will find the build info by itself. It warns that it's deprecated, but the mono distribution doesn't seem to ship with any other build tool. And xbuild seems to build the project without problems.
  • mono NLEditor.exe
-- Simon

Lemmings Help / Programming language to learn first (re: Flopsy's chat)
« on: August 31, 2017, 06:15:57 am »
<Flopsy> SimonN: honest question for you, for someone who would like to learn coding where would be a good place to start. Python, C/C++ or something else....?

This gives reasonable recommendations:

Python is popular as a first language, very straightforward to get programs to do what you want. For large programs, I prefer static typechecking which Python doesn't have by default, but that's not a strong case against Python as a first language.

At least one university teaches D as a first language, with this book:

I think D and C# are similarly nice to learn first. Main downsides: D isn't widespread even though I love it, and C# is tied to Microsoft's .NET virtual machine, even though there are ways to run it on Linux.

Java 9 or 8 or Scala are viable first languages, but these depend on the Java virtual machine. Some would like to avoid the JVM.

C, C++ maybe not as first languages, but it's certainly healthy in the long run to look at least at C.

<Flopsy> what type of coding would help me understand NeoLemmix better

To understand the NL source, learn any language of the above, along with the basics of object-oriented programming. Even though NL's Delphi source will not be in your language, you can guess what happens because you recognize the principles.

To modify the NL source, catch Nepster in chat for what Delphi to install, then build NL from source and experiment with it. Nepster's editor will be in C#.

-- Simon

Level Design / Clear & precise level titles
« on: August 30, 2017, 07:26:32 pm »
Hi folks,

I've planned to write an essay about level repeats. One of my arguments hinges on good level titles. Titles easily fill a topic of their own -- here it is!

We care about levels. Levels are the unit of our culture. We create levels, we play levels, and we discuss levels. Good level titles help us with that: Titles are our mental handles when we share levels and ideas.
  • A title should be clear: When I see a level, its solution, and its name, I should recognize a connection. This is good because I can then remember the name without effort. When I'll discuss your level later, I'll have its landscape or solution in mind, and the title will come to me easily.
  • A title should be precise: It should be hard to associate the title with other levels. When I read a precise title in a discussion, the chance will be high that I think of the correct level. That is good because it encourages joining an interesting discussion.
If we accept these benefits, we'll arrive at good recommendations.

Say the title, not (only) rank & position! When you discuss levels, always give the title. Rank & position cannot be precise, any level could be at that position. If you'd like to abbreviate long titles using rank & position, fine -- but please state the title at least once. Sometimes, levels change position, rendering rank & position even worse a substitute for expressive titles.

Puns or pop culture, if any, need a connection to the level's landscape or solution. Song titles or movie titles can be good level titles, but it's very hard because they are so flowery. Titles don't become any clearer merely because you like a song; others don't necessarily know your taste in music. Once you've designed several levels, taste in music or movies cannot give precise names anymore on its own: Any Tame level could be called Gone With the Lemming.

Sometimes, repeats copy the terrain of a good puzzle and give 20-20-20-20-... skills. You've stripped the puzzle but haven't inserted any fresh idea. How will you name the easy level? Most titles cannot be precise because all ideas would also apply to the hard version. Lemming Drops and Bitter Lemming are titles of such easy versions, they're void of any connection whatsoever. Maybe find a pair of titles where either title suggests that there is a complementary level?

If you're really fond of a title even though it's not clear or precise at all, decorate the level accordingly. That won't create the strongest connection because the puzzle's solution will be unrelated, but it's far better than nothing.

A title shouldn't merely fit the tileset, it should fit the level. Which levels exactly were Ice Spy, Snow Joke, and On the Antarctic Coast? Fitting to the tileset, however, is a good start. Can you think of a unique detail in the level's terrain or solution, and tailor your title towards that? That can turn a passable title into a great title.

Keep titles reasonably short. Avoid titles that are annoying to type, like AAAAAARRRRRRGGGGGGHHHHHH!!!!!!. Our culture is about sharing ideas in written form, we will type level titles many times.

-- Simon

Lix / Multiplayer 2017-09-03
« on: August 25, 2017, 02:48:51 pm »
Hi all,

Rubix and I are planning Lix multiplayer for Sunday, September 3rd, at 18:00 UTC (= 11:00 Pacific daylight savings, 20:00 in Germany or Austria).

Who's up? :lix-grin: It's perfectly fine to play for the first time.

You need Lix 0.8. At the given time, click Network Game and connect to (large button in the networking menu).

Voicechat: I recommend Mumble. Connect to this server:

Servername: Lix
Address: (this is now the same as
Port: 64738 (this is the default)
Username: (type whatever you like)

-- Simon

Lix / Lix 0.8.8 released
« on: August 21, 2017, 11:53:34 pm »
Download the newest Lix 0.8.x:

:lix-cool: Download for Windows
:lix: Download for Linux 64-bit
:lix-evil: Source code
:8(): Changelog
:8:()[: Issue tracker

Replace 0.6 entirely: Lix 0.8 changes many tilesets and levels. Don't copy into your 0.6 installation. Instead, extract 0.8 into a new directory. If you'd like to preserve settings and level progress, copy data/user/ from your 0.6 or 0.7 installation into 0.8. You can delete 0.6 and 0.7.

Lix 0.8.0 released.

  • Stable 0.7.22 physics. I would like to keep these physics at least for several months: 5/9 digger with antiRazor, tumbler splats based on pixels fallen and initializes pixels fallen according to fling speed, and all other physics changes from the 0.7.0 first post.
  • New tilesets over 0.6: Raymanni's Gore, Lab, Toys, and my renovation of Matt's Oriental set. I removed my 11-year-old programmer art tilesets.
  • A ton of bugs closed from 0.6, see the changelog for all the fixes during the 0.7.x experimental releases.
  • Tooltips during game explain directional select, priority invert, and double-click on nuke. Can disable tooltips in the options menu.
  • Removed the unused editor button to add decoration. To fill the void, the button to add terrain is twice as large. Not perfect, but good for now.
Thanks to geoo, Nepster, Proxima for revising levels, proving solvability, and dissecting physics. Thanks to Raymanni for the awesome tilesets -- I should have included them last year already. Thanks to möbius for some neat levels in these sets:

It Takes Time to Build by möbius in Raymanni's Gore tileset

Theresa Falls up the Stairs by möbius and Nepster in Raymanni's Toys tileset

-- Simon

Pages: [1] 2 3 ... 11