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 ... 212
Lix Main / Re: Undo in the editor
« on: October 19, 2020, 09:01:16 pm »
Lots of bugfixing this evening. Copypasting does the right thing now in all cases, I don't believe I have introduced other bugs yet. This resolves the bug in yesterday's to-do list.

I've begun with the class that applies/undoes tile rotation/mirroring/darkening. This will be exactly how ccexplore suggested I should implement tile moving. The exception is that the existing TileMove objects merge with one another if they're the same tiles that get dragged further during the same mouse dragging, or if they're simultaneously selected tiles that move the same distance. Rotating/mirroring/darkening will never merge with subsequent editing; it will only form a CompoundUndoable with the simultaneously selected tiles.

Thus, very successful evening. Now time for bed.

-- Simon

Lix Main / Re: Undo in the editor
« on: October 18, 2020, 08:46:02 am »
Spent all Saturday on Undo. Progress:
  • Hotkeys Z and Y are bound to undo/redo by default. You can change it in Lix's options menu.
  • All Undoables will now suggest what tiles shall be selected after apply/undo. In particular:
    When you undo a deletion, the undeleted tiles will be selected.
    When you duplicate tiles, the newly inserted tiles will be selected.
  • Lots of refactoring towards immutability of the involved classes. But the asserts in the area where I considered triple dispatch have begun to fire when I duplicate a large selection of both gadgets and terrain tiles.
New to-do list:
  • Fix above bug in the undoable copy-paste.
  • Rotations and mirroring must become undoable.
  • Z-ordering (move to foreground/background) must become undoable.
  • Resizing of the map must become undoable, or clear the undo stack if we want to rush the feature's release.
Cleanup work that isn't necessary to release undo, but that I would like to tackle:
  • Ditch the Hover class hierarchy in the editor. This is a parallel class hierarchy that wrap a selecte tile. Work more directly with the raw selection of tiles.
  • Open a pull request against Phobos, the D standard library, to allow RedBlackTrees with immutable classes as payload.
  • Open another pull request against Phobos to make SortedRange const-correct. I would have preferred SortedRange over RedBlackTree for the Lix code from the beginning, but RedBlackTree had fewer roadblock bugs. :lix-evil:
  • Attempt to fix a compiler bug: 21321: Class with unimplemented interface method compiles, links, then segfaults, if inherited through abstract base class. I ran into this yesterday. It would be the first time that I seriously look at the D compiler's source, it's a large and scary codebase.

^ Illustration of a pull request. You must be careful, watch for feedback, and don't mind the time spent. I had one pull already merged into Phobos a month ago.

In the end, running into 4 library/compiler issues within one big Lix feature shows what parts of D are rarely treaded: Heavy object-orientation, exhausting and combining the OO features of D, making stuff transitively immutable where possible, and using the more obscure areas of the standard library.

Crane would be delighted, if it weren't all so template-heavy. :lix-blush:

-- Simon

Closed / Re: [DISC][PLAYER] Level preview screen
« on: October 16, 2020, 07:24:19 pm »
Thanks for the list, this is a lot of functionality. The straightforward introduction of buttons for everything will risk bloat.

For level forward/backward, you can introduce labels <- and -> and squish them in the lower corners.

For the rarely needed functionality, I don't have good immediate ideas besides making a submenu or a nonmodal popup on hover-over-something. Neither feels good, I should sleep over this more. Of all screens/menus that we can clutter, the preview screen would be the worst to clutter. This screen is a title screen for the level, and clutter distracts from what we want to preview in peace.

I'm happy that the functionality of preview and level browser converge.

-- Simon

I am biased because I have played Part 1 more than Part 2. Thus, I had to solve Part 2 from scratch, and it took longer than resolving Part 1.

Both levels have their red herrings, e.g.,
Spoiler (click to show/hide)

-- Simon

Closed / Re: [DISC][PLAYER] Level preview screen
« on: October 16, 2020, 06:56:49 pm »
You allow to load replay from preview, but only via hotkey. Put visible button on preview that loads a replay. Thus, we will prevent such confusion.

I agree with more space between image and title, e.g., Icho's idea of 2/3 of Proxima's idea.

Rename Continue to Play. (Play is short word, it will be harder to hit by mouse with wurst fingers, but that's okay, we'll have to practise then.)

-- Simon

Closed / Re: [DISC][PLAYER] Level selection menu
« on: October 16, 2020, 04:48:00 pm »
Talisman has 3 lines of text. The indentation of the 2nd line looks strange, I would left-align all three lines.

I wouldn't bold the talisman title. Reason: It's not more important than the remainder. (This is different from level titles in a level list.) If you want to make it sound more important than the other two lines, you can print the level title in grey instead of black. Hard-coding colors sucks though, people use dark themes etc. that rely on replacing default colors. Can you print the default color with 50 % opacity? >_>

Three lines eat lots of vertical space and requires lots of scrolling. Consider removing the line break between talisman title and level title?

When the talisman is a special save requirement, print the number of lemmings available, too; i.e., print: Save 30/30.

Wording: Talismans don't get unlocked, they're all available from the beginning. Rather, they are won/beaten/accomplished/achieved.

-- Simon

Lix Levels / Re: lemforum: Known backroutes
« on: October 13, 2020, 08:44:27 pm »
Thanks! Merged all fixes in 0.9.34. Added remaining backroutes to opening post.

-- Simon

Lix Levels / Re: Fixed: Triangle Inequality, backroute & wrong approach
« on: October 13, 2020, 08:22:36 pm »
Fixed in 0.9.34.

-- Simon

I would zoom into the cursor. This is standard behavior in many applications.

Zooming into the center of the screen, I wouldn't keep this; if people complain in the new version, you can still re-add it as an option. >_>

-- Simon

Bugs & Suggestions / Re: [SUG][PLAYER/EDITOR] Version field for levels
« on: October 11, 2020, 09:53:30 pm »
As a version, you can write the datetime of the most recent modification into the level, and have the replay refer to that. Like the incremented integer, this would update even for cosmetic chances, but that might be even desirable: In Lemmings, you can't guarantee that a terrain change is purely cosmetic.

Version mismatch isn't important enough to warn the user every time. If the replay works, it's all good. If the replay fails, only then it's interesting to see if the replay expects the same level version as the level has.

The downside of the single incrementing integer (compared to datetime) is that one version can give birth to two subversions with different terrain (both by you, or by different people), but they would have identical versioning information.

-- Simon

Lix Main / Re: Lix 0.9.34 released
« on: October 11, 2020, 09:09:07 pm »
Lix 0.9.34 released.

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

How to update (click to show/hide)

No new features or bugfixes, only backroute fixes, and a non-crashing enet.dll in case you want to host networked games.

(The big upcoming feature, undo in the editor, is still cooking and not yet releasable.)
  • lemforum: Backroute fixes for 6 levels, mainly due to Wibble's backroutes:
    Bipolar Maniac, initial lix 10->11, floaters 5->6.
    Las Ranas Hermanas, raise frogs.
    Triangle Inequality, eliminiate trivializing backroute.
    One Lix Showdown, likely functional but slightly unelegant fix.
    Some Like to Run, faster spawn interval, needs checking.
    Skulls, Sludge and Steel - possible fix, needs checking.
    (No fixes yet for Duality and Dream the Impossible Dream.)
  • Fix #404: The 64-bit Windows enet.dll crashed on hosting a networking game. Now, I ship a new 64-bit enet.dll, version 1.3.12, that fixes the crash on Windows, even though it still crashes in Wine.
  • Support 32-bit Windows again: I publish 32-bit Windows binaries in the github releases and added linker flags for the 32-bit Windows DMD build in dub.json.
  • Updated D source libraries in dub.json: derelict-enet 4.1.0 -> 4.2.0, taggedalgebraic 0.11.12 -> 0.11.18. This should have no visible effects.
  • Credit minim in doc/thanks.txt for upscaling the GUI icons to 150%, 200%, 300% of the C++ Lix icons for 640x480 = 100%. minim worked on these icons in 2016.
  • Remove doc/oldwish.txt, it has become outdated. The text is preserved at: Let's file issues on github instead, or post new threads on this forum, Lix Main.
-- Simon

Lix Levels / Re: Flopsy plays Lix's lemforum pack
« on: October 08, 2020, 08:36:49 pm »

Platformers don't turn on hitting terrain, yes, I believe this is a misdesign. Over 10 years ago, I copied this behavior from L2 because I assumed L2 to be the gold standard.

On a fresh design, I would have the platformer turn. It's inconsistent w.r.t. the builder, and (platformer and builder) are much more closely related than (miner and digger, where the digger won't turn on steel but the miner does).

Even with the turn-on-hit builder, a builder bridge is easy to make traversable in both ways. A two-way-walkable platformer bridge is much harder with a turn-on-hit platformer, unless the two shoresides are exactly the same height. The non-turning platformer gives us more leeway. But I doubt this counterargument wins against the inconsistency argument.

At least we can fix some backroutes by giving platformers instead of giving builders.

-- Simon

In a pack, you can also append the level title to (the existing rank-name and position).

Makes for long filenames.

-- Simon

General Discussion / Re: Simon blogs
« on: October 05, 2020, 07:04:52 pm »
This game looks amazing, I'll definitely have to try this out sometime. [...] There's a set on eBay, I might get it to play at Christmas.

I warmly encourage you to buy it. The 2017 release of Zendo ("Zendo 2.0") is the current and recommended printing, and it often appears on UK/US Amazon or Ebay.

It comes with 9 pieces of each of the 9 kinds, enough to rarely run out. Also, it offers cards with lots of easier rules, to help novice masters not accidentally make a rule too obstuse and difficult. More experienced masters can still invent their own rules.

(The only other release is the green box from 2003, it's practically nowhere to be found nowadays. So no worries; as long as your box is the black-and-white square box, you have the 2017 printing.)

Quote from: WillLem
In theory, you could apply the principle to any game pieces, but the little colourful shapes make it particularly appealing.
Quote from: grams88
you could probably do a thing maybe with lemmings levels or other things. We use to play it on this forum as well in the past.

Right, I too prefer Zendo with (either the 1.0 pyramids or the 2.0 shapes) over Zendo with letters, numbers, or playing cards. A few different colorful pieces combine in many different ways, they look amazing on the table and patterns pop out.

My older post on this, with reasoning.

Quote from: grams88
Does caffeine do more damage than good, it probably does when we thing about it. Good on you Simon for giving that up for July time.

Are you still going cold turkey with it at the moment Simon?

Yes, I still haven't drunk any caffeine since.

Caffeine probably won't lead to permanent damage, maybe I'll come back to it in a couple of months. But its wakening power is strongest when one isn't habituated to it. Thus, I'd rather not have any caffeine until I really need it some evening.

-- Simon

General Discussion / Re: Simon blogs
« on: October 01, 2020, 07:56:33 am »
ditching decimal in favor of hexadecimal
Really? I for one definitely prefer the metric system over the customary USA system that we use. Conversions between metric units are so much easier, being based on powers of 10.

I don't advocate for what the US does.

My point is that 10 is a bad base for a positional system: 10 contains only one power of 2, and an awkward divisor of 5 in the base. I want to scrap base-10 everywhere for base-16, not only in measurement, but wherever numbers are expressed in a positional numeral system.

Exactly as we divide a meter into 10*10*10 millimeters, in hex, a day will then be divided into 16*16*16*16 subunits, which, written in base-16 that is universally adopted alongside, will be written as "1/10000 of a day" and conversions are again easy. One can also invent a prefix or a short name for this unit.

You will find people on the internet who advocate for base-12 over base-10. They have seen... at least part of the light. :lix-evil:

-- Simon

Pages: [1] 2 3 ... 212