Author Topic: Better documentation of physic changes across versions  (Read 443 times)

0 Members and 1 Guest are viewing this topic.

Offline Forestidia86

  • Posts: 682
  • inactive
    • View Profile
Better documentation of physic changes across versions
« on: April 19, 2021, 06:47:28 PM »
Lix went through multiple physics changes. This affected levels and lead to adjustments. Although most levels is cared for it could be good to have an acessible documentation of physics changes across versions (from C++- to D-Lix and across major D-Lix versions).

For the change from C++- to D-Lix there are some aspects documented in a thread about singleplayer migration e.g.

Offline Simon

  • Administrator
  • Posts: 3168
    • View Profile
    • Lix
Re: Better documentation of physic changes across versions
« Reply #1 on: April 19, 2021, 09:15:00 PM »
Right, an overview of physics changes (versions and release dates) is occasionally useful for level archaeology.

A covering replay merely shows that the level is solvable, but it doesn't necessarily show intent. E.g., Six Gaps, Five Builders, it may have become easier after we removed builder backstep.

For now, you can cobble the physics changes from
the C++ Lix history,
the D Lix history.

In 2010 and 2011, I didn't document the history entirely. This was the year of the redrawing towards free sprites and I didn't release Lix for months until it was free.

-- Simon

Offline Forestidia86

  • Posts: 682
  • inactive
    • View Profile
Re: Better documentation of physic changes across versions
« Reply #2 on: April 20, 2021, 05:53:55 PM »
Time in C++-Lix:

Old C++ Lix had the time limit run for 4 seconds, then spawned the first lix.
Newer C++ Lix had the time limit run for 2 seconds, then spawned the first lix.
The first lix has always spawned at phyu 60.
One second has always been 15 phyus.

(change 2015-01-25)

Concerning digger in C++-Lix:

I think at some point they turned as the miner e.g..

Positioning of Tiles:

1-pixel gaps in Akseli's level 16x16 likely comes from inconsistent terrain rotation workaround of C++ Lix, I chose not to port this workaround to D Lix, thus simplifying the formats.

This difference between the terrain loadings in C++ Lix and D Lix can create 1-pixel gaps like in Forestidia's image whenever both of these are satisfied:
  • the tile's width or height or both are odd (not divisible by 2),
  • the tile occurs rotated (I don't think mirroring will cause it on its own).

C++ to D-Lix:

Differences of D physics compared to C++
  • Spawn interval is fixed during play.
  • Time is unlimited in singleplayer.
  • Trampolines don't exist. Please remove all trampolines from levels. To help migration, the standard trampoline is still in the image tree, but it acts as a triggered trap that kills. I'd like to remove that tile within the next months.
  • Basher mask is longer by 2 hi-res pixels.
  • The builder gets closer to walls by 2 hi-res pixels before she stops and turns. You can now always build up to a vertical wall, then mine into the wall, no matter where you have started the builder.
  • The imploder mask is wider by 2 hi-res pixels, therefore symmetric now.

D 0.6 to D 0.7:

Lix 0.7.x experimental build.
[...]
Physics
  • Nepster's miner mask
  • Fix #129: Floater doesn't land inside terrain and turns (Bug found by Ramond in summer 2016)
  • Floater doesn't go flatter than tumbler. If you assign floater to a fast tumbler, after opening the umbrella, the lix can't gain horizontal flight over the tumbler anymore. Change suggested by Proxima in summer 2016, might affect solution to Steve's Endeavor.
  • Fix #147: Digger checks inner 14 pixels for steel. Any steel there aborts. On either side of that checked area, there is one lo-res pixel where we ignore steel. (Before, the digger stopped when there was lots of steel on the left, or lots of steel on the right, or a tiny bit amount of steel on either side. That was too complicated.)
  • Builder creates brick further ahead, like in NL. No builder backstep. Can't seal off climber ledges behind yourself anymore by building immediately after ascending.
  • Builders and platformes double their most recent brick when they run into a blocker. Reason: This prevents holes in bridges and allows the crowd to follow.
  • Blocker field narrower by 1 lo-res pixel on both the left and right. Blocker field is exact same as in 0.6, this is simplest. Even though it's possible to prevent crowd from following a builder, with most blocker placements, the crowd follows.
  • Fix #199: Don't spawn lix outside of torus bounds. Immediately wrap coordinate before the first death check.
« Last Edit: April 22, 2021, 05:16:38 PM by Forestidia86 »