D Lix 0.6.19, the big picture

Started by Simon, May 01, 2016, 01:17:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Hi folks,

Lix 0.6 is obsolete -- instead, get the most recent Lix version. It has singleplayer and multiplayer!




You're encouraged to play around with the D Lix browsers and the editor. Keep D Lix separate from C++ Lix, the stable release. C++ Lix has working multiplayer, D Lix doesn't have multiplayer yet. Download C++ Lix.

Where are we?
  • Singleplayer is physics-complete. I lack eye candy: flying pickaxes and explosion debris.
  • Menu structure is more fun already than in C++: Scroll the level list by mouse wheel. :lix-cool:
  • The editor works as good as the C++ level editor. You can group tiles!
  • No multiplayer.
Where is the ship sailing?

I would like to finish the editor and fix bugs.
In 2 months,
Now, in late June 2016, I'd like to migrate all singleplayer activity from C++ Lix to D Lix.
Now, in November 2016, singleplayer levels are fit for D Lix.

Multiplayer is set aside for later. After the singleplayer migration, until D Lix multiplayer becomes usable, we will fall back to C++ Lix for multiplayer. Since late September 2016, I've been working on the networking.

I will keep optional manual screen starting position, even though I recommend to rely on automatic screen start positioning.

I would like to cull variable spawn interval, time limits, and trampolines. I am hesitant to decide for good here, but I want to be honest with level designers about the probable decision. I could imagine a big, fat warning for time limits. But I love the simplicity of no time limits whatsoever.

I want to replace no-overwrite with tile-grouping. Grouped tiles become a new tile. I expect higher performance and versatility from tile-grouping than from no-overwrite. I'd love to convert no-overwrite-using levels on the fly. geoo is pondering smart algorithms for that conversion.

Triggered traps shall have two rows of animation: One that loops while idle, and one cycle of killing animation, during which the trap is harmless. I have to decide on the image format. I'd like to have the idling animation in the first row, because frame (0, 0) is the best preview frame for all other gadget types. This idling animation format needs a separate thread.

-- Simon

RubiX


Simon



0.3.4 uploaded. You can bind pause to the middle mouse button, for easier reach. Zoom in and out with the mouse wheel. Or map other important stuff on the wheel directions.

Do you have strong feelings for missing comfort features? Keep suggestions coming. Otherwise, I'll continue with the missing editor dialogs.

-- Simon

Nepster

The icons for mouse wheels are not perfect. I took them to be little glowing lightbulbs and thought they encode the function keys to adapt the brightness of the computer screen.

Simon

#4
Hmm, the wheel looks like the brightness symbol, good awareness. The wheel above is GEAR (U+2699) ⚙ in Misc. Symbols.

Alternatives are FISHEYE (U+25C9) ◉ or BULLSEYE (U+25CE) ◎, or simple solid or hollow circles. List of symbols that my font implements.

We can go back to meaningful words: I like namida's proposal "RClick", "MClick" for the mouse buttons. That inspires "Wheel↑" or "↑Wheel" or "UWheel", "DWheel".

Edit: geoo has designed new glyphs for mouse input:



-- Simon

Simon

#5
Small-scale roadmap before we'll have the next broad test, and might migrate from C++ Lix for singleplayer:

  • Allow manual screen start: Use it in the game, and set it in the editor. I don't want D Lix to stomp over carefully-set manual screen starts from previous versions.
  • Implement save and save-as in the editor. Make a browser with filename entry. Done in 0.3.7.
  • Support grouping of tiles instead of no-overwrite, to create cut-off tiles the level editor. Done in 0.4.2.
  • Design and implement the no-overwrite conversion algorithm. Done in 0.4.3.
There are some bugs, but none of them are progress-blockers. In this light, I'd like to push the above features, and care about the bugs later. Bugfixes are only meaningful in released software. :-)

This small-scale roadmap comprises step 2 from the large-scale roadmap.

-- Simon

ccexplore

The mouse icon/character thingie may look cute and sound good in theory (and admittedly works better than some of the previously proposed symbols), but I'm not convinced that they will be widely recognizable.  I know they say a picture is worth a thousand words, but in this case it's more like half a picture at best, and one that doesn't actually show up that often in general to most users (when's the last time you saw a character for a mouse, let alone a mouse button?).  I'm sure they are easy to learn once the user somehow work out their meaning (perhaps by going from the default mappings and working it out that way), but ideally you want the labels/symbols to be immediately understood by a new user on their first glance of them, and I'm not sure the mouse symbols fit the bill.

At least do a small usability testing demonstrating that the half-symbols vs a more verbose label achieve about the same level of comprehension.  Try out a number of variations including: a symbol that actually looks like the whole mouse rather than half of it; a mouse symbol accompanied by text like left LClick or LeftClk; etc. in addition to the half-symbols and text-only.

Simon

#7
Yeah, this uncovers latent concerns. Good awareness, thanks for bringing it to the table.

I'll leave the mouse symbols for now, file an issue, and do testing with new players.

-- Simon

Simon

#8


The editor allows to group tiles. Saved levels remember the groups. The game loads the groups from the level file.

Haven't tried weird interactions with steel. Haven't begun with the no-overwrite conversion algorithm. Have to make nice toolbar icons for the editor in many resolutions. I'd like to use the left-hand icon in the second image.

Haven't released the game with grouping yet. Version 0.4.2 uploaded with the changes described in this post. Get 0.4.2 from the first post.

-- Simon

Simon

I've uploaded 0.3.4 with autoconversion from no-overwrite to grouping. Download this version from the initial post.

Screenshot


This is A Day in Lixtown, a contest level from 2014. I don't remember who made it, the file doesn't tell. If you would like to benchmark the no-overwrite conversion with this massive piece of art, download Day in Lixtown.

geoo, Nepster: It's probably too drudging to plow through the code at github. Come online in #lix these days to discuss.

Test this on-the-fly conversion on different levels. Is it fast enough to keep it on-the-fly for all levels? Or should we overwrite some levels with their autoconversions?

All level designers: If you like, compare this version's level rendering with C++ Lix's level rendering. Are there differences in no-overwrite rendering?

C++ and D don't display levels pixel-perfectly the same, but most differences are esoteric. This leafy treetop by Amanda is different in C++ and D Lix. Some rotated pieces may be offset differently by 1 pixel.

When to switch: Not yet, but we're closing in. With no-overwrite conversion in place, I can focus on other issues that don't take weeks. Yeah!

Find issues with D Lix! What's annoying? What features are missing or buggy, but important for your singleplayer migration?

-- Simon

Simon

#10
0.4.4 uploaded.

Bugfixes for these github issues:
#67: Z-ordering several tiles
#85: Hover sorting guarantees group's z-order
#81: Crash on nonexistant base directory of a browser
Button hotkeys are drawn on top of buttons, not behind main text.

On Windows, during application start, I try to draw black on the white DirectX window ASAP. Need to test with Icho whether you can still see a white flash when starting fullscreen.

-- Simon

Simon

#11
0.5.0 uploaded.

  • Physics: Groups with steel have correct distribution of steel, earth, air.
  • I highlight on the map the lix under the mouse cursor who would get assigned.
  • The game shows the constant spawn interval in the panel. I don't know whether I want to keep this and make an icon for it, or whether people don't need it later.
  • The Editor allows to ungroup tiles.
  • Editor shows hatch spawn direction, describes hovered tiles, and has a peaceful color flow for hovers and selections. Save-as forbids chars like : that should not appear in filenames.
I will continue to fix bugs. Nepster has found many little issues, that's great. There's a lot to do. But I'm happy with singleplayer in D Lix already: None of the bugs are showstoppers.

Let's port singleplayer packs from C++ Lix to D Lix. I'll make a proper announcement to all level authors in a week.

-- Simon

Simon

#12
Proposed exploder changes for 0.6.0, large images
The two holes on the left-hand side come from a left-facing imploder.
The two holes on the right-hand side come from a right-facing imploder.



The holes above are not symmetric: It bombs away more land towards the left than towards the right. I would like to make the mask fatter, thereby symmetric. The new hole for version 0.6.0 looks like this:


Suggestions? Maybe even single pixels that you'd include or exclude in the mask?

Proxima said "looks good" in IRC.

-- Simon

Simon

#13
0.6.0 uploaded.

  • Physics: Imploder makes a symmetric crater. The new crater is slightly fatter, see images in previous post.
  • #63: Scrollbars react to mouse clicks on their track. You can drag the thumb with the mouse.
-- Simon

Simon

#14
0.6.2 uploaded.

  • Multiple keys bind to the same function. This replaces my hack that bound two keys to pause.
  • Default multiple keybindings: Directional select is on left-hand keys, and on the arrow keys, too. The editor moves tiles around by ESDF, and by the arrow keys, too. Several people, including namida, were confused before how arrow keys wouldn't work. What a nagging long-term issue.
  • As a side effect, this fixed the bug where the pause button would only show one of the two keybindings.
  • Option to disable FPS. By default, I display FPS, because D Lix is still beta.
Look in the options menu. Do you understand how the keybinding UI works?

This was a large, healthy refactoring of options code. I had this cooking for several weeks. I'm looking forward to easier bugfixes now. :lix-grin:

-- Simon