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

Pages: [1] 2 3 ... 185
Non-Lemmings Gaming / Zendo: Realizations
« on: Today at 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

Thanks for making this session! It means a lot to me that we still play multiplayer Lix when many are busy around their family for the holidays. :lix-grin:

-- Simon

Contests / Re: Proposal: Level Solving Competition
« on: December 13, 2018, 09:11:02 am »
I'm fine with one stat (either physics updates used, or lemmings saved) as the main stat, and possibly one or two other stats as tiebreakers.

I discourage elaborate scoring methods that compound many stats. Those make the endeavor more complex than necessary. Or do you feel there's a problem with a simple stat to optimize?

-- Simon

Contests / Re: Proposal: Level Solving Competition
« on: December 11, 2018, 09:04:33 am »
I've never seen an L2 live race. It is interesting! :) I'll see if I can find a video and see what I think of it.

Last year, I streamed on twitch some races against geoo. I didn't highlight any of those, and thus twitch has deleted them all.

I've saved one clip though: Mud Slinger backroute in Quest From Kieran 2; after the stream, Kieran fixed this backroute.

I don't understand the team prospect. So do you mean something like two teams should enter this competition and the winning team takes the shared prize?

Not restricted to two teams. Like Family Feud, the basic idea is that each player should work alone, then submit the best replay that they could make. Many players can enter like this. This rule will stay.

In addition, can two people cooperate in private, then submit a single replay? This team of two will behave like a single player from the contest's point-of-view.

-- Simon

Contests / Re: Proposal: Level Solving Competition
« on: December 11, 2018, 12:31:17 am »
More ideas, some from Forestidia in voicechat.

People optimize a replay, then send this replay privately to the host as in Family Feud forum game. How would one even be able to cheat then? You can't copy other people's solutions before scoring.

The host can design a level in private, then release it when the round begins. This gives everybody an even start except for the host; the host knows their own map already. Still, the host should be allowed to enter their own contest for fun. Maybe preclude the host from winning.

If one prefers discussing ideas over working alone: Can several people enter as a team?

I'm willing to extend Lix to display more stats, ingame or postgame. Replay-editing features would be even better but I'm busy these weeks, can't guarantee the time to develop a large feature. Still, I'm happy to discuss anything.

-- Simon

Contests / Re: Proposal: Level Solving Competition
« on: December 10, 2018, 08:21:56 pm »
You can count skills in NL manually.

Fewest skills will produce many equally-ranked entries, you'll want to pick massive maps with 15 or more assignments.

Lix can display physics updates during play: Options -> Graphics -> Count physics and FPS. I didn't expect broad interested in optimizing solutions for physics updates, therefore the post-play stats never display physics updates used. I'm open to discuss stats displayed. Don't let either game's shortcomings dictate the contest's design; if stuff is important, we can work around. :lix-grin:

TASing (minimizing the number of phusics updates) has niche appeal. I would be up for it. I also assume that some more will be interested, especially for a one-off event. But it will be fiddly.

I'm also interested in improving Lix's replay editing, e.g., move an assignment by one physics update sooner or later, while instantly seeing the result 200 physics updates later. I still lack insert assignment without cutting replay afterwards.

-- Simon

Lix Main / Re: Lix 0.9.23 released
« on: December 09, 2018, 09:36:08 pm »
Lix 0.9.23 released.

:lix-cool: Download for Windows 64-bit -- recommended
:lix: Download for Windows 32-bit -- only a fallback for ancient machines
:lix: Download for Linux 64-bit
:lix-evil: Source code
:8(): Changelog
:8:()[: Issue tracker

How to update (click to show/hide)
  • xmas2018: Fixed backroutes in Home Time for Santa, Snow Cat Love, Decorate the Tree, Past the Xmas Tree.
  • ClamLix: Time is Running Out, decorated the steel with a steel hourglass.
  • Fix #371: Miners throw a pickaxe again when they cancel on steel. Diggers won't throw pickaxes anymore by mistake when they cancel on steel.
  • Windows downloads call the directory again lix, not lix-versionNumber, for easier quick-and-dirty updating (see "How to update" above).
  • Linux: Added a manpage for Linux package maintainers, doc/lix.6, thanks to tarzeau.
-- Simon

Lix Multiplayer Dates / Re: Lix Multiplayer Saturday 2018-12-15
« on: December 07, 2018, 09:12:03 am »
I'll join for some quality games! :lix-grin:

This time, I won't be around for the entire session if it grows into the usual 3-4 hours. Forestidia will be with me that Saturday, she plays only singleplayer, and I'd rather not make her watch me play multiplayer for the entire evening. For the same reason, I won't stream this session (Saturday 2018-12-15), but we'll likely have one of our youtubers recording.

-- Simon

Lix Main / Design history: Hi-res physics
« on: December 04, 2018, 12:49:04 am »

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

Lix Levels / Re: xmas2018: Holiday-themed pack with 24 levels
« on: December 02, 2018, 05:07:12 am »
Thanks for all the nice feedback! :lix-grin:

I'm happy about the looks, too. Raymanni designed the Holiday set in 2017 and I've always wanted to show its quality. It mixes well even with the other drawing styles. Indeed, painting in Lix's finer physics resolution seems harder than in NeoLemmix, but I'm glad it's still possible.

Right, the 1993/1994 Holiday Lemmings levels didn't allow hazards by tileset design. Those levels had a feeling of homeliness, we've tried to recapture that.

When Forestidia showed me Advent Calendar, I immediately knew that this had to be among the preview images. :lix-grin: But for long, it was sorted second among the 24 levels. Only very late in development, we sorted it first, where it really belongs -- the entire pack is an advent calendar after all.

I've spent far more time than expected on xmas2018 and realized how much care is behind the maintenance of packs with ≥ 100 levels.

-- Simon

Lix Multiplayer Dates / Re: Lix Multiplayer Saturday 2018-12-01
« on: December 01, 2018, 07:05:59 pm »
Session is over!

-- Simon

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

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.

Lix Main / Re: Lix 0.9.22 released
« on: November 30, 2018, 12:22:53 am »
Lix 0.9.22 released.
  • Include xmas2018: a new singleplayer pack with 24 holiday-themed levels.
  • Fix #350: In singleplayer, the splat ruler button tooltip claimed falsely that this button also pings hatches and exits, but it does that only in multiplayer. Fixed this tooltip. (Issue #301 remains: In multiplayer, this button should be functionally split into two buttons.)
  • Support 64-bit Windows builds with LDC >= 1.13.0-beta2. I encourage all Windows users to choose the 64-bit build over the 32-bit build, hoping to avoid the out-of-RAM crashes on large maps.
  • Binary downloads are now hosted on github, not on Lix's homepage.
  • Binary download archives carry a version number in their filename and unpacked Lix directory. With self-contained Lix (i.e., not installed system-wide via a Linux package manager), you should still update existing self-contained Lix as usual by copying your user files, custom levels, and replays from the old directory into the new.
  • Fix #369: When you build from source and choose a debugging version instead of a release version, Lix will start windowed by default, not with software fullscreen. User options can override this as usual.
  • Updated the DAllegro5 bindings to 4.0.4+5.2.0 and removed Lix's allegro-color dependency on all platforms.
  • Many refactorings in the source code for physics updates. No physics changes. This will be useful in case I manage efficient skill blueprints a.k.a. skill shadows.
-- Simon

General Discussion / Re: Simon blogs
« on: November 29, 2018, 05:26:38 pm »
You gave up your nap? Clearly you don't have enough pets.

Yeah, I should not sacrifice naps. Watching the chess championship was a rare exception. In general, I shun television and try to avoid whatever imposes similar artifical schedules on my life.

Pets cost a lot of time. >_>;; I have too many hobbies already and pets are like an extra hobby.

I admit that I have gedankenexperimented with an African porcupine as a pet. Must build lots of mutual trust before you can safely cuddle.

Quote from: Dullstar
frustrations I had was that the packages in the repositories were frequently out of date.

Yes, I had the same frustration in Debian. It's slightly better in Ubuntu. But for two years now, I've been very happy with Arch's rolling releases to stay cutting-edge.

Quote from: Dullstar
constant frustrations with NeoLemmix and Lix is updates.

Right, this is the main problem.

Probably, many Windows people shun updates because they're so hard unless automated.

I shun installing new software that I don't clearly need, but I want to update the software that I decide to install.

"odor cart":  sounds like a bad translation perhaps?
attempt to only translate individual Kanji characters in isolation
results that have almost nothing to do with the actual words
It's just Simon poking fun at the weird way the Japanese language works. 香車 means "incense chariot", but 香 by itself can mean "smell".

Right. "Odor cart" came from a friend, he translated the kanjis separately. Even with the correct translation "incense chariot", it's still a flowery name for my taste -- incense has little to do with war, the theme of chess-likes.

Well, same criticism applies to bishop from chess.

Both stabs were intended: The floweriness of the name, and how Japanese connects unrelated kanji to give every single one a different meaning.

Pieces should be colored by type.
Wouldn't having actually different shapes like Western chess pieces do, be even clearer for telling apart piece types?

Two Shogi rules:
  • When you capture a piece, the captured piece goes to your personal reserve. You may drop these pieces under your control back onto the board.
  • When your piece moves far enough ahead, you may promote the piece, i.e., replace it with a more powerful piece after its move. Already-promoted pieces cannot promote again. Promotion is permanent until the piece is captured; then, its unpromoted type goes to the opponent's reserve.
This restricts the physical design. Standard design here is two-faced pieces with a pointy side. To show control, orient the piece to point away from its controller. To show promotion, flip the piece bottom-side-up, revealing the kanjis for the promoted type on the original piece's bottom side.

Color-coding by player is not feasible with two-faced pieces because color cannot change during capture.

Shape-coding by type is hard because the piece must rest physically stable on the game board when flipped. Maybe design 3-D shapes that are merely ((2-D shape per type) x unit interval).

Or design a four-faced piece (e.g., some variant of a cube) to have symbols for all four states: player A or B, unpromoted or promoted. But hm, that object will probably show too many faces on its left/right outer sides by accident when it's not meticulously aligned straight...

Quote from: ccexplore
Is the color by type idea mainly to compensate for having to recognize Kanjis?  The pictorial approach seems mostly sufficient to me without also having different colors, though maybe the pictures used could be slightly better in some cases.

I'm concerned about understanding the board at a glance. Chess, Shogi, Go, ..., they're all about pattern recognition. Anything that makes glancing hard strikes me as contrary to the game design.

Letters, and thus kanji, are harder to recognize than symbols or shapes.

Colors alone can already be problematic (color blindness, weak conventions for the meanings). Colors are best to further differentiate shapes. It's best when there is only a handful of different types to distinguish:

-- Simon

Very nice. Also bugs in programs behave like backroutes.

The word "Backroute" is so useful that I already consider the word too long. Chess problem composers call their backroutes "cooks".

The designer has a hard time finding their own backroutes. In the extreme form, Kory Heath (creator of Zendo) considers design itself purely an escape from inadvertent mental lock-ins. Full article: Monkey traps

-- Simon

Pages: [1] 2 3 ... 185