Singleplayer migration

Started by Simon, June 18, 2016, 11:33:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Hi level designers,

Edit 2016-08: The lemforum pack is in good shape for D Lix. I don't ship Clam's and Rubix's levels until they too have good replay coverage. Clam and Rubix, ask me if you need help. I'll walk you through replay verification!

let's migrate singleplayer levels to D Lix.

Ideally, we should work to make all levels solvable in D Lix, possibly with slight changes from the C++ levels. Then, to guarantee solvability, we should prepare solving replays of all levels in D Lix.

Maybe a few odd levels can't be made solvable. Let's work out any problems together.

Get D Lix

:lix-cool: Download for Windows <-- download
:lix: Download for Linux 64-bit (needs Allegro 5 runtime)
:lix-evil: Source code
:8(): Changelog
:8:()[: Bug tracker.

Keep D Lix separate from C++ Lix.

What to do

Lemforum pack: D Lix comes with the levels as they are in geoo's github repository by 2016-04-14. Only difference to geoo's repository: Proxima is called Michael S. Repton, not Michael. geoo knows best how to proceeed from here. Wait for geoo's instructions.

Clam's and Rubix's levels: D Lix comes with the version of your levels that C++ Lix has. You can check manually which levels are still solvable. Or run D Lix's automatic replay checker over your C++ replays: If you've kept solving replays in C++ Lix, copy your C++ replay collection into D Lix's replay directory. Then run lix.exe --verify=replays/path/to/your/dir > output.txt. Ask me in IRC for help!

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.
Coming later

Screen start is automatic for now. Nonetheless, the D Lix editor reads and saves back to file existing manual screen starts. The value is merely ignored during play. I should probably implement custom screen starts, where you can choose a midpoint.

Hints and tutorial texts are preserved, but never shown. I have yet to implement hints. I'd like to improve their user interface from C++ Lix.

Report bugs! :-)

Roadmap
  • Automatic replay checking. Done.
  • Editor. Done.
  • Declare the D port to be the standard version for singleplayer. Expect level designers to build against this engine, and expect all singleplayer replays to use a recent D port version. This also means that physics should not change erratically from here, at least in the master branch. Done: Since 2016-08-03, we have 100 % coverage for the lemforum pack.
  • Work on stuff that level designers suddenly need/miss, to easen the switch. Tell me what bugs you most!
  • Netplay, including the server code.
  • Declare the D port to be standard Lix in every regard. Retire C++ codebase.
  • Continue fixing bugs. I don't strive to make the D port as well-debugged as the C++ port before making it standard overall. Migrate early, expose bugs together, and fix them quickly.
-- Simon

Proxima

#1
Awesome :) I'll start working through the pack and note any issues I come across.

Quote from: Simon on June 18, 2016, 11:33:59 AMOnly difference to geoo's repository: Proxima is called Michael S. Repton, not Michael. geoo knows best how to proceeed from here. Wait for geoo's instructions.

Given how much space there is in the D browser, my preference would be for the full name when I am the only author, but just "Michael" when it gets slashed with another author. Sorry to be a nuisance  :lix-tongue:

Minimalism (Part 1) is impossible with fixed SI.

After solving "Alternative Methods Recommended", there isn't enough space for the level name and the completion tick. Perhaps we should just retitle this level?

RubiX

Congrats on the work done so far, Simon.
I'll be manually re-playing all my levels in D Lix , a bit at a time.

Thanks
Rub

Simon

geoo, our maintainer for the lemforum flagship pack, is busy IRL for more than 2 weeks. He cannot make time for Lix.

If you have designed or played levels for the lemforum pack, you can help out. :lix-smile: Play some levels in D Lix, send me your solutions, or post them on the forum. Some levels aren't solvable. Feel free to edit them, even if they're not your own. You can still get in touch with the original designer later.

Ask questions here, or come to IRC (irc.quakenet.org #lix), I'll try to sit there often.

-- Simon

Proxima

Replays for all Simple levels, except Minimalism (Part 1).

The included replays for Every Lix for Herself and The Lion, Lix and the Wardrobe are non-100%. These levels need to be tested for whether 100% is still possible.

Nepster

Here are updates of my three lemforum levels to D-Lix. Attached are the level files and replays using V0.6.3.

Simon

Thanks to Proxima and Nepster for their updates. For now, I'll collect replays in a separate repository, lemforum-replays.

lemforum-replays isn't synched to the D Lix repo, or geoo's lemforum repo, in any way. This is purely to get started. In particular, Nepster's replays for his changed levels are already in lemforum-replays, but the necessary levels aren't on github yet. They'll only come with the next D release in a few days.

-- Simon

Proxima

Quirky 17 "Decompression Method 1". This modification avoids the trampoline object. It is solvable in 0.6.3.

Proxima

Quirky 30 "Snowball Battle". The level was unsolvable with fixed SI as the digger went below the maximum fall distance while lix were still spawning. This version is solvable.

Proxima

Replays for all Quirky levels, except Q1 "The Adventure Playground" (unplayable due to a bug) and Q19 "That Pesky Gap" (level concept requires VSI).

Replays for Q17 "Decompression Method 1" and Q30 "Snowball Battle" use my fixed versions of the levels.

Q21 "Tribute to Flagpole Sitting" is non-100%. It would be interesting to check whether 100% is still possible.

Simon

Thanks. All 38 of the Quirky replays solve.

The automatic replay checker believes that Hard to Port fails, even though it solves. That's because the autochecker aborts 5 minutes after the last assignment. He's unsure whether the lix are stuck in infinite loops. :lix-mystery: The standard FSI adaption, giving fewer initial lix, will fix this problem.

-- Simon

Proxima

And here are my Cunning replays.

Omitted: 2 "Merge Sort", 10 "Elixir", 40 "The Ob3lisk" (not yet solved); 29 "Go West!", 31 "It Takes Time to Build" (require digger-cancelling-digger, which doesn't work in the current D Lix).

I've included both solutions to "Come on down to my place".

"Labyrinth of Persia" is non-100%, could check whether 100% is still possible.

My copy of the levelset still includes "Three Days of the Condor", which I believe has been removed in the main levelset.

Nepster

Quote31 "It Takes Time to Build" (require digger-cancelling-digger, which doesn't work in the current D Lix).
Not quite correct. See replay.

Proxima

Cunning 3 "Wreck of the Hesperus": moved the large crate to avoid two problems. (1) The gap to its left could be spanned with one platformer, but only on the last pixel. (2) The gap to its right could not be spanned with one builder, but it only just failed, so the player might keep trying.

Cunning 29 "Go West!" adds miners, avoiding the issues with digger-cancelling-digger. (This is how I would have made the level in the first place, except that I had to avoid miners when I first built it, because of the bug in old Lix where assigning miner to a digger mid-stroke could make it stop without even needing another lix to interfere.)

Simon

#14
I have included everything above this post in 0.6.5. If you make further edits to levels, please attach them to fresh posts.




No More Heroes (middle Hopeless) relies on its sharp 1-minute time limit. Attached to my next post, there's an adaption without the time limits. Insane Steve: Does it look too hackish? Is the spirit of this level still there? Everybody else is invited to backroute-test this.

Serious backroute from physics differences (spoiler)
When you explode a working miner, other lix can step from the exploder hole into the miner tunnel. This doesn't work in C++. This makes No More Heroes far easier in D Lix.

How my adaption works (spoiler)
The crowd shall only turn a total of 2 times. Crowders should turn at the far bottom right, and at the top central wall. If the crowd turns more often, this wouldn't work in the original level with the 1-minute time limit.

When you test for backroutes, try to win the level despite turning the crowd 3 times or more.

This adaption doesn't fix the serious physics difference.

-- Simon