Hi folks,
Lix
0.6 is obsolete -- instead, get the most recent Lix version (http://www.lixgame.com). 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 (http://www.lixgame.com).
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. (http://www.lemmingsforums.net/index.php?topic=2885.0)
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
Its so impressive already :thumbsup:
(http://asdfasdf.ethz.ch/~simon/etc/lix-with-d-2016-05-08.png)
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
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.
Hmm, the wheel looks like the brightness symbol, good awareness. The wheel above is GEAR (U+2699) ⚙ in Misc. Symbols (http://www.fileformat.info/info/unicode/block/miscellaneous_symbols/list.htm).
Alternatives are FISHEYE (U+25C9) ◉ or BULLSEYE (U+25CE) ◎, or simple solid or hollow circles. List of symbols that my font implements (https://en.wikipedia.org/wiki/DejaVu_fonts#Plane_0:_Basic_Multilingual_Plane_.28BMP.29_Range:_0000-FFFF_.280.E2.80.9365.2C535.29).
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:
(http://asdfasdf.ethz.ch/~simon/etc/lots-of-mouse-hotkeys.png)
-- Simon
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 (http://www.lemmingsforums.net/index.php?topic=2695). Done in 0.4.3.
There are some bugs (https://github.com/SimonN/LixD/issues), 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 (http://www.lemmingsforums.net/index.php?topic=2413.msg55110#msg55110).
-- Simon
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.
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
(http://asdfasdf.ethz.ch/~simon/etc/lix-with-d-2016-05-31.png) (http://asdfasdf.ethz.ch/~simon/etc/icon-terrain-grouping-2.png)
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
I've uploaded 0.3.4 with autoconversion from no-overwrite to grouping. Download this version from the initial post.
Screenshot
(http://asdfasdf.ethz.ch/~simon/etc/lix-with-d-2016-06-02.png)
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. (http://asdfasdf.ethz.ch/~simon/etc/Lixtown1a.txt)
geoo, Nepster: It's probably too drudging to plow through the code at github. (https://github.com/SimonN/LixD/blob/master/src/level/noowalgo.d) 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 (https://github.com/SimonN/LixD/commit/3737eab8c38bce92411bbe923cfe4baf93169d3d) is different in C++ and D Lix. Some rotated pieces may be offset differently by 1 pixel. (http://www.lemmingsforums.net/index.php?topic=2463.0)
When to switch: Not yet, but we're closing in. With no-overwrite conversion in place, I can focus on other issues (https://github.com/SimonN/LixD/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
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
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
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.
(http://asdfasdf.ethz.ch/~simon/etc/imploder-hole-2015.png)
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:
(http://asdfasdf.ethz.ch/~simon/etc/imploder-hole-2016-06-15.png)
Suggestions? Maybe even single pixels that you'd include or exclude in the mask?
Proxima said "looks good" in IRC.
-- Simon
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
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
0.6.3 uploaded.
- Fix #97: The game advances physics on assignment and unpauses on nuking.
- Fix #96: The file picker shows 20 files instead of 19.
- Breadcrumbs are wider and less tall. This is an intermediate solution: I'd like to choose their width according to their text.
- Title bar exists still. I don't display the current directory in the browser's title bar anymore, because the breadcrumbs give exactly the same info.
- The preview draws a dark border around the level instead of the menu color. Level name appears below preview.
-- Simon
0.6.4 uploaded.
- New user option to unpause on skill assignments.
- Fix #106: With mixed dirs and files, picker couldn't scroll to the last file.
- Fix #107: Prefer queuing builders to spamming, then you couldn't queue at all.
- Editor increases the level's $BUILT when saving a changed level. When you earn a checkmark on a level, then edit that level, the checkmark turns into "?!" until you win the level again.
- Tutorial levels are solvable again, and you can't die in them as easily.
-- Simon
0.6.5 uploaded.
- Fix #108: Adventure Playground displays again in the preview and is playable.
- Fix #103: When you re-enter the window, the ingame mouse starts moving from where the hardware mouse entered the window.
- The replay browser has two start buttons: One replays against the included level, one against the pointed-to level.
- Updated the lemforum community pack to geoo89/lixlfpack commit 2a91852. This reorders some levels. Entire replacements:
Out: Three Days of the Condor, Absolute Zero
In: Lixes in Motion, Eye of the Needle - The lemforum pack got fewer initial lix in the lower three ratings Simple, Quirky, Cunning. Proxima has played all these levels, tested for solvability under a fixed spawn interval, and recommended lower initial lix counts that keep the level idea fully intact. Thanks!
Statistics about the last bullet point: We have removed about 2,000 lix from 120 levels. Most levels had reductions à la 39/40 -> 29/30 to shorten the wait at the end. Proxima's Box Set enjoyed 360/400 -> 60/80, this accounts for a sixth of the removed lix. When in doubt, we didn't touch the number of initial lix: Ramen Masterchef and The Pit.
-- Simon
0.6.6 uploaded.
The lemforum community pack has Proxima's suggestions up to 2016-07-17. Several levels have moved between ranks. Some have been replaced entirely:
- Out: Minimalism (Part 1), Fear of Heights, That Pesky Gap, Don't Look Back, Too Far to Walk
- In: A Necklace of Raindrops, The Road Not Taken, All Around the World, Diggin' the Air, A Soulful Bounding Leap
Use the
--coverage switch along with
--verify to compute level directory coverage. From all levels that reside in level directories from where you have tested at least one pointed-to level of a replay with
--verify,
--coverage lists those levels that didn't enjoy even a single solution. Please read
levmaint.txt for detailed instructions. Example command line:
lix --verify=replays/path/to/dir --coverageI have used
--coverage to guarantee that the ranks Simple, Quirky, Cunning of the lemforum community pack are solvable.
Fix #113: Shorter key names with unicode symbols. In particular, keys on the numeric pad have a nice symbol that looks like the keypad.
Fix #120: Topology updates correct equation, not only the horizontal equation.
-- Simon
0.6.8 uploaded.
- Any Way You Want, The Road Goes Ever On, Just Stop the Bleeding: decoration updated, the tree at the left-hand side.
- Fix #125: Save sound not as loud: disksave.ogg 0 dBFS -> -4.5 dBFS.
0.6.7 was only 1 hour earlier than 0.6.8. Version 0.6.7 brought more important changes:
The lemforum pack's first 5 ranks are guaranteed to be solvable. geoo has handed maintenance of the lemforum pack over to Proxima. Proxima has spent days on careful level adaption to D Lix and difficulty reordering.
- Out: Get Down From There, Minimalism Part 3.
- In: Don't Look Back (jagged floor instead of a time-limit gadget), Canadian Glade (inspired by Get Down From There, uses the forest tileset).
When you update from an earlier version of D Lix, delete your old directory
levels/lemforum/ before extracting this over your old game.
Bug fixes:
- Fix #123: Play warning sound when too few lixes alive. Rubix might design a better sound later. :lix-wink:
- Fix #111: Initial zoom on torus maps was too zoomed in.
- Fix #112: Hotkey labels ran over nearby buttons.
- Fix #118: When Lix wasn't the foreground window, it trapped the mouse nonetheless when the cursor passed over the inactive window. Now, you must click into the window to trap the mouse. This fix made visible another bug: In the inactive Lix, the ingame cursor moves offset from the hardware cursor.
- Worked on #124: I don't add 0x0 as a fullscreen mode anymore.
-- Simon
0.6.9 uploaded.
- lemforum pack updated by Proxima, first 5 ranks solvable.
- Option: Do fast mouse movements untrap the mouse from windowed Lix?
Flopsy shall uncheck this option when he records.
-- Simon
0.6.10 uploaded.
- All 240 levels in the lemforum pack are solvable!
- Fix #116: Editor shows the top-left point of a multiple selection, the minimal coordinate each in both the x- and y-direction.
- Fix #130: After state-loading a different timeline, framestepping moved back to the undesired timeline.
- Fix #91: Editor buttons are disabled when dragging.
-- Simon
0.6.11 uploaded.
- lemforum pack: Updates by Proxima, geoo, Nepster. Fewer lix in Hopeless. geoo has rebuilt Spin Geometry with completely new terrain, and renamed it to All Aboard the Pain Train. Off the Rails is now Railroad Plot, and Derailed Level got a derailing locomotive as decoration.
- Fix #117: Name-asking menu for new players exits with plain Esc. I don't display anything for this.
- Fix #131 and #111: Simpler starting zoom. Depending on your game resolution, either all levels start as 1x or all levels start as 2x. Test and see if you like the zoom for your resolution.
- Fix #122: When you continue from a saved replay, then win, or save manually, the new replay goes into the correct directory and points to the correct level file.
- Fix #133: The singleplayer menu shows the player's best score: Lix saved and skills used.
- Fix #138: Editor hotkeys work even while you're dragging. The buttons on screen are disabled for the mouse during drag.
- Fix #127: I hide dot-files, like .git, in level directories.
-- Simon
0.6.12 uploaded.
IchoTolot was here, we had a hack night. Icho worked on levels and the Dune tileset, I fixed Lix bugs. Bug #134, editor's rotate moves tiles unwanted, was a whopper. This bug took 3 hours with Icho, then another 3 after midnight.
- Fix #134: Select multiple tiles in the editor and press rotate. The tiles rotate correctly with respect to each other. Rotating 4 times puts them back exactly where they started, they don't wander. This works even if oddly-sized tiles or unrotatable gadgets are in the selection.
- Fix #139: The browsers for hatches, goals, decoration, and hazards display all tiles in the images/ tree in one listing.
- Fix #140: The terrain browser starts browsing from the directory of the tile you have selected at the moment. If you haven't selected anything, they start from the directory from which you've most recently added a tile.
- Fix #143: The file selector scrolls to the final row, even if it's less than half-filled. Before, the scrollbar looked like there were more files, but didn't make the tiler display these extra files.
- Swapped author and level title in the editor's constant-setting window.
-- Simon
0.6.13 uploaded.
- Lemforum levels got updates from August 2016. I deleted the tutorial levels: The lemforum pack is our flagship pack and starts with very easy levels. Other packs need not provide tutorial levels.
- Fix #148: When you fail a singleplayer level, the game halts and allows you to go back in time. It doesn't spawn a dialog box anymore. Problem: Now you need a hotkey to exit the level. :-/ Nuke on a losing attempt doesn't spawn a dialog either. I should revert this, or redesign.
- Fix #144: In the editor, when you mirrored a piece with transparent pixels at its sides, the piece moved. Entire selections diverged on repeated mirroring.
- Fix #84 and #90: The options menu explains its options, except on the editor tab. The box near the menu's bottom provides two lines of explanation.
- Fix #142: There is a virtual file system. It recognizes ./ and ../ now. Other directories, in particular installations in Linux File System Hierarchy trees, aren't supported yet, but the necessary changes have become easy.
-- Simon
0.6.15 uploaded.
- Started networking backend, lobby, and console. You can log onto the central server and chat. Nothing else to see yet.
- Fix #151: When there is no savestate, the state-load button is hidden.
- Fix #149: Singleplayer always displays a dialog at end of play again, so you can control the entire application with the mouse alone. You can framestep back from this dialog.
- Fast movement frees mouse: This option is off by default.
I plan to remove all no-effect decoration. I want to make terrain or traps from them, or, for exit decoration, merge them into the exits. I'm thinking about how to handle existing levels, and whether to write a hack for autoreplacement.
-- Simon
(http://www.lixgame.com/etc/goldmine-exit.gif)
Better than the dynamite on top of the exit? Worse? I want to get rid of the exit top, and with an acceptable alternative, I don't have to shift the tile in the levels.
-- Simon
0.6.16 uploaded.
- Fix #152: The singleplayer browser has a button to create a new level. This button is always visible, whether a level is selected or not.
- Fixed smearing FPS text in the editor.
-- Simon
Quote from: Simon on September 13, 2016, 09:25:28 AM
(http://www.lixgame.com/etc/goldmine-exit.gif)
Better than the dynamite on top of the exit? Worse? I want to get rid of the exit top, and with an acceptable alternative, I don't have to shift the tile in the levels.
-- Simon
Ehh! This looks really good. I feel like maybe there should be transparency inside the cage, so that the glowy part doesn't look like it fills the cage? Or is that what you're going for?
Thanks! I'd like this to be a caged lamp, not a wisp. I made the bulb large, without transparency, only subtle flickering, because such a bulb wouldn't flicker in real life. And it was easier to animate. I'm not sure whether I should exaggerate the bulb.
-- Simon
So I've had a go at making a sound for killing too many Lix. This isn't so easy to make, but it might work. Thoughts?
Login to see attachment.
thx
Rub
This is haunting, like the Lix is saying "too many..!"
It fits well with the existing sound effects.
I think it's cute, will use!
-- Simon
0.6.17 uploaded.
- Fix #153: I have culled the no-effect decoration. The still decoration is now solid terrain. Animated decoration is gone, except for the beach bonfire, which became a fire trap. I have changed levels that I distribute with the game to use the new tiles. Backwards compatibility for levels that I don't maintain: The level loading function silently replaces decoration with the new tiles.
- I removed the auto-replacements for Matt's terrain that I made in 2010 and 2011. Almost no levels relied on them anymore, and I've changed the remaining two levels that did. These levels remain functionally identical.
- Fix #156: Switching to a parent directory in the singleplayer browser clears the preview again.
- Rubix has created a cute sound for (singleplayer, you have lost too many lix). It's included, and plays once when triggered, not five times like the old tick.
- The warning sound for empty skill doesn't play on mouse click, only on hotkey.
- lemforum pack: Downpour shorter in x-direction, jumpers inf->3, exploders inf->3, leftmost hatch's output 20->3. LionLix initial 24->30. RoadNotTaken exploders 10->5 because the level is lose-5.
@Rubix: Tips to finish your pack's migration to D Lix. (http://www.lemmingsforums.net/index.php?topic=2958.msg60862#msg60862)
-- Simon
0.6.19 uploaded.
:lix-cool: Download for Windows (http://www.lixgame.com/dow/lix-d-port.zip)
:lix-evil: Source on github (https://github.com/SimonN/LixD)
:8:()[: Bug tracker (https://github.com/SimonN/LixD/issues)
- Rubix's 158 singleplayer levels are included. They're all solvable in D Lix!
- Fix #159: Better encapsulation for physics caching. Don't switch timelines merely by framestepping back. Flopsy had this bug on video. (https://www.youtube.com/watch?v=QE5Nvq1nOBU&t=1715) Maybe this fixes Rubix's sporadic crashes, #154.
- Fix #24: GUI text vertically centered on buttons. I'd like to see this on Windows machines.
- Fixed in 0.6.18: When you picked a tile from the editor's tile browsers, the tile wouldn't appear in the level. Now it does again.
- More work on the networking lobby. You can chat, browse rooms, send and receive levels. But you can't start a game yet.
Please give feedback: This is my first release with a networking lobby. I've included
enet.dll, but can't test the Windows release. Please give quick feedback:
- Start Lix, click "Networking mode". Then click the button to connect to the server.
- Does Lix crash here? If yes, when does it crash, and what error do you get?
- While you connect, the game shows "enet x.y.z. Connecting...". What enet version is it?
-- Simon
I get enet v1.3.12!
Thanks! Then Lix has all DLLs it needs, perfect.
I didn't build this DLL myself, I got it from a tutorial repository for the D enet bindings. enet 1.3.12 should be new enough -- enet 1.3.13 is the latest version, but 1.3.13 got only minor bugfixes over 1.3.12, nothing we'll run into.
-- Simon
Connects fine, lobby controls look good.
Keep it up :)