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 ... 189 190 [191] 192 193 ... 275
2851
Site Discussion / Formatting, misc. advanced tips
« on: February 06, 2016, 10:42:17 PM »
How to format your forum messages like a pro!

Links
  • You can dump the address in the text, without any tag around it, and hope the forum software recognizes it.
    http://www.example.comhttp://www.example.com

  • Alternatively, put [url] around the address, to guarantee linkification:
    [url]http://www.example.com[/url]http://www.example.com

  • For very noble formatting, you can rename the link via [url=address]:
    [url=http://www.example.com]Example Website[/url]Example Website
Named spoiler tags

[spoiler]Secret message[/spoiler] becomes:
Spoiler (click to show/hide)

[spoiler=Custom clickable text]Secret message[/spoiler] becomes:
Custom clickable text (click to show/hide)

Copying other people's formatting

You see other people's posts, and wonder how they got the formatting right.

Click "quote" on their post. Their message's source code will appear for you to edit. Study the source code to see how they formatted their text.



Icho has raged! With spoiler tags, the always-visible name goes into the tag, and the content goes between the tags. With URLs, the always-visible link name goes between the tags, and the URL content goes into the tag.

-- Simon

2852
Lix Main / Re: Terrain rotation inconsistent, strategy?
« on: February 06, 2016, 10:15:44 PM »
Quote
So I would say: Code rotations as cleanly as possible in D-Lix and don't worry about C++-Lix too much.

Okay, will do.

Nonetheless, it's great to know the causes of inconsistencies, then we can make educated judgements.

Quote
How would tile-grouping work? And how would one update levels that currently use no-overwrite?

Yet to be determined. :-) But I suppose porting no-overwrite automatically will be hard. >_>

When no steel is involved, no-overwrite can be replaced with regular drawing, and physics stay the same. Only the looks of the resulting terrain would be different.

Quote
Just one question: Assume only one of two neighboring high-res pixels is terrain. Whether both or none of the pixels are solid is still determined after rotation, or not? If not, then this will cause lots of buggy effects (details available on demand).

Yes! First generate the level-sized hi-res mask from all tile masks, then query the large mask for solidity of 2x1 blocks. (Solid iff at least one pixel is solid.)

-- Simon

2853
Lix Main / Terrain rotation inconsistent, strategy?
« on: February 06, 2016, 07:18:53 PM »


Hi,

Nepster has shown me a level that breaks in D Lix, because the terrain rendering is subtly different than in C++ Lix. We now have to decide -- which version has the bug. :-) And what our strategy should be.

The problem

Frame a) shows a terrain tile with odd dimensions, 57 x 57 pixels. There was an inconsistency in Allegro 4.x in how odd-dimensioned terrain was rotated. C++/A4 Lix built for Windows would rotate the terrain differently than C++/A4 Lix built for Linux.

To combat this inconsistency, I load the tile like frame b) in C++/A4 Lix: Odd dimensions are rounded up, padding at the right and bottom if necessary. The level format says where the top-left corner of each tile is, thus padding doesn't affect physics yet.

D/A5 Lix is written as if this bug/bugfix never existed, loads the tile like a), and rotates the tile like frame c).

C++/A4 Lix instead rotates the tile like d). Since the level format remembers the top-left corner of the rotated tile, the padding introduces a 1-pixel offset between the rotated tile c) and the rotated tile d).

Impact

This offset was enough to break 6 of Nepster's 107 replays.

Nepster has sent me a level where the above wooden tile, matt/earth/30, is aligned in a very precise way with the surroundings. The 1-pixel difference makes an intended walker's path impossible in D lix.

6 out of 107 is not that much. But it's enough for replay collectors to worry about this.

Solution strategies

Leave inconsistent: This doesn't require any work. We call it a bug in C++ Lix, don't fix it there, and continue to rotate like frame d). We hope that D/A5 Lix dosen't need a similar workaround, and continue to load the tiles as in frame c).

Port bug: I write code in D/A5 Lix to mimick the 1-pixel offset in C++/A4 Lix's handling of graphics and physics.

New level format: We could introduce a new level format that breaks C++/A4 Lix's forward compatibility with D/A5 levels.

geoo is considering tile-grouping instead of no-overwrite. I'm considering multiple skillsets per level, to enable handicapped games, asymmetric multiplayer maps, and different hatch numbers per player. All this would benefit highly from a better level format that allows grouping. I'd like to look into JSON or SDLang for this. <LetsAvoidMaking="Another">Bloated</XMLformat>

Unrelated improvement

No matter what we do, in D/A5, I want to infer the physics mask from the tile before rotating it, then rotate both graphics and mask. In C++/A4, I rotate the tile first with the graphics library, then check pixels of the rotated tile for solidness. This behavior as in C++/A4 has caused the inconsistency in the first place. I should have been carefully moving the graphics into place, keeping the physics simple and straightforward.

-- Simon

2854
NeoLemmix Styles / Re: Tilesets based on special levels
« on: February 06, 2016, 11:48:14 AM »
Love the biting, muscular snake. Everything is carefully sprited and fits together. Congratulations!

-- Simon

2855
Closed / Re: [SUGGESTION] [EDITOR] Infinite time by default?
« on: February 04, 2016, 08:56:44 PM »
Very sensible suggestion. (No time limit) is more common than all other values combined.

-- Simon

2856
Lix Main / Re: D/A5: Drop manual screen start
« on: February 04, 2016, 08:55:22 PM »
Some interesting points -- will reply more thoroughly in the upcoming days!

-- Simon

2857
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.11
« on: February 04, 2016, 08:48:56 PM »
Okay, thanks for checking back with miner & steel, and for the PM.

Yes, no-overwrite is a huge mess right now, if presentation and physics differ. I have to invest time and energy into drawing next.

-- Simon

2858
Lix Main / D/A5: Features to postpone or drop
« on: February 04, 2016, 11:28:09 AM »
Hi,

the following features aren't critical to the game. I'm considering to postpone their porting from C++ Lix for now, and focus on other stuff. If there is lots of discussion emerging, I will eventually split it this into separate threads.

Player can change spawn interval during play: Dedicated thread about the VSI. At least 3 people still want to reply, but never seem to get around to. :lix-winktongue:

Trampolines: They're featured in 7 out of roughly 500 singleplayer levels. By experience, they don't add value to multiplayer. They violate many assumptions of mental pathfinding with their special cases. They look like they should be fun, but they aren't fun.

Time limits: I mean singleplayer time limits, not overtime. This would need its own thread. I don't want to pour time limit oil into the VSI fire right now. But in 2016, several years after the first time limit thread, we should review the cullture that has emerged.

Time limits fuel more levels than the variable spawn interval (VSI) does. Time limits must be kept unless this is chewed through thoroughly. The VSI-problematic levels happen to have a large intersection with the time-limit-dependent levels. :lix-evil:

L1 and L2 graphic sets: This is orthogonal to the current culture. It's a nice-to-have, and might attract conservative Lemmings fans. But it needs quite some extra handling code. Everything else has higher return-per-investment.



Manual screen start: Dedicated topic about dropping manual screen start. Will keep manual screen start.

-- Simon

2859
Lix Main / Re: D/A5: Drop manual screen start
« on: February 04, 2016, 10:50:28 AM »
C++ Lix has automatic centering on the average of all hatches, with optional manual choice of start position. Result: People haven't used the manual starting position anymore. The automatic thing seems to have been good enough:

hatches
    .filter(only hatches of local player)
    .map(hatch => spawn point)
    .average
    .centerScreenOnThere


...with a reasonably smart averaging function, taking into account torus properties of the level.

Yes, the manual setting could specify a center point, not the top-left corner. Nonetheless, a manual setting remains complexity that can be removed both from level design, and from the program design. The existing culture suggests that this removal is a good idea.

Specifying a center is better than specifying the corner. Yet, due to arbitrary resolutions, there is no guarantee about what's visible.

-- Simon

2860
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.11
« on: February 04, 2016, 10:17:08 AM »
Okay, detailed reply for Nepster. :lix-smile:

108 replays: With hope, I have fixed the low-hanging fruit already, see post above. I have to dig into the terrain handling code next.

I'm not aiming for 100 % compatibility, but I want to give a solid reason for each incompatibility.

Solid off by 1: Test case (replay with included level) would be nice. I want to get this right at all costs. Let's make it work like in C++ Lix, or come up with a good reason for such a change.

Joystick bug: Collected info on github. I would like to repro this on Icho's Windows machine eventually. This is also rather important. It's very hard to debug: Even a debugging build didn't give a useful stack trace for Clam.

Miner & steel: I haven't been able to reproduce this. Test case please -- can you provide a replay?

Stay pixels: Part of (I have to dig into the terrain-handling next).

Key stuck: Got an idea already, will try it for the next release today/tomorrow.

FF & lag: I have only bad/complicated ideas so far.

Unimplemted: Screen starting position, automatic only, or manual still? As of 2016-02-10, I lean towards allowing both. So, let's treat it as yet-unimplemented.

Time limit isn't implemented at all yet. It would be handy to count updates since level start, for debugging replays.

Singleplayer should start at update 30, not 0, or maybe even later. Action should happen ASAP, while still looking somewhat good. People are impatient and FF through 2 seconds!

-- Simon

2861
This problem depends on where the NL ship is sailing on the strategical level -- what are your main data structures going to be.

(Lemming style per graphic) may eventually run into this problem: From the view of a single level, there exist no graphic sets, there exist no packs. Graphic sets are trees of graphics. Packs are trees of levels. Is this still a design goal?

-- Simon

2862
Lix Levels / Re: Lix Community Level Set - First complete Beta!
« on: February 03, 2016, 07:59:52 PM »
The one-way gadget, made from carefully aligned steel and terrain, is relatively complex. I would rather suggest a dedicated level for this, where you cannot bypass it.

Diamond Dash is open-ended, so it's interesting to put a small piece of steel right in the obvious path.

-- Simon

2863
The rubbish is present in the data file, right?

The L1 devs have moved terrain far out of the visible area instead of deleting it. Alternatively, their convention for what denotes an existing piece isn't the same as ours. Since there is no specification of the L1 level format by its authors, we can only guess.

-- Simon

2864
In Development / Re: Update database Lemmix levels to NeoLemmix?
« on: February 02, 2016, 10:52:02 PM »
Lemmix already supports different mechanics (Dos L1, Dos ONML, CustLemm and a few others), and it is a priori not clear which to take.

Yes, this has tripped me up in the past several times.

Carrying this information outside of the file format is a design relic. This problem has its roots in Custlemm, which was a hack of the Dos games without new high-level design.

Port the interesting content to newer engines, and preserving the vanilla Lemmix versions on Mindless's Lemmings Archive. (Quote Proxima about vanilla Lemmix: "The nightmare of dealing with glitch-allowed solutions still being considered backroutes -- never again!")

-- Simon

2865
In Development / Re: Update database Lemmix levels to NeoLemmix?
« on: February 02, 2016, 09:16:10 PM »
Full speed ahead for a clear separation of vanilla Lemmix and NL, including editor UI.

With direct drop, we (at least most of us) have agreed that mechanics should be fixed per engine. Within the same engine, any difference in behavior must be glaring. Nonstandard steel settings wouldn't be obvious at all. Such mechanics should be decided upon, then used engine-wide.

I'm more hesitant about level conversion. Vanilla Lemmix comes with a permanently fixed specification -- anything different from L1 is a bug. On the other hand, a conversion yields content that wouldn't see much play otherwise.

-- Simon

Pages: 1 ... 189 190 [191] 192 193 ... 275