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 ... 187 188 [189] 190 191 ... 275
2821
NeoLemmix Main / Re: Can't create a locked exit level.
« on: February 12, 2016, 12:02:06 PM »
Log from IRC:

<SimonN> "The reason for this is to allow a single level to have both types of exits, if anyone were to come up with a design that requires this."
<SimonN> NO NO NO this is not how you design
[game mechanics]
<SimonN> YES YES YES would be: the exit is forced to be closed, and people have to clamor for special rules. Most likely, nobody needs the special rule. Then you benefit massively from easier UI, and prevent errors like that
<namida42> the locked exit is a completely different object type (just with similar behaviour) internally. thus, forcing that would be an artificial restriction
<namida42> and i am sure there would be potential use for it, in a level where different lemmings go to different exits (think something along the lines of Utopia)
<SimonN> you should have designed the code such that it would have been a natural corollary
<SimonN> so you decided that the elusive use case warrants making several gadgets, allowing users to pick the wrong one
<namida42> the locked exit and regular exit look entirely different, but some levels use the locked one (without any buttons) just to have a different exit graphic
<namida42> no; at the time locked exits were implemented i barely knew what the hell i was doing, and somehow managed to make them work
<namida42> and because they work perfectly fine - and on top of that has these two (admittedly, minor, but as mentioned, one of them has actually been made use of) advantages - i've seen no reason to change it
<SimonN> Minim running into problems is perfectly fine, I get it


Usability remains important despite cultural moss.

-- Simon

2822
NeoLemmix Styles / Re: Gronkling's Tilesets
« on: February 12, 2016, 03:47:16 AM »
Good luck pushing this neat set!

Even though I'm no match as an artist, I have a secret hint for spriting: Don't be afraid to use light and dark colors within the same tile, or several different hues within the same tile. Things will look more engaging. Compare my boring 2006 bricks (left) with geoo's nice construction bricks (right).



-- Simon

2823
Lemmings Main / Re: Lemmings appearances in strange old software
« on: February 11, 2016, 02:21:43 AM »
Harry Potter and the Diagonal Hollow Man :O

-- Simon

2824
Lix Main / Re: Spawn interval fixed per level
« on: February 11, 2016, 02:10:41 AM »
Thanks for taking the time to reply in detail.

We have similar opinions and judgements on VSI. Nonetheless, it's valuable to distill a longer argument/opinion from IRC into a summarizing post.

I've claimed that the bad existing user interface for VSI is a reason to for everywhere-fixed SI. That wasn't a valid argument, because the user interface can be made better. You've focused purely on game design, that holds more water.

-- Simon

2825
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.19
« on: February 11, 2016, 01:47:41 AM »
Version 0.2.19 uploaded.

Only Ramond needs to update to this one. :lix-mystery:

The switch --hardfull=1600x900 forces hardware fullscreen at the given resolution. Hardware fullscreen can't be accessed by setting user options right now, it must be wanted via command-line switch. This enables the game to run on Ramond's computer. I advise Ramond to run the game via a Windows shortcut that calls lix.exe --hardfull=1600x900, until I make a proper user option for hardware fullscreen.

I don't believe that hardware fullscreen affects performance in any way. On my Linux machine, hardware fullscreen prevents alt-tabbing. >_>

Also, little bugfix, singleplayer browser crashed for new users.

-- Simon

2826
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.18
« on: February 10, 2016, 06:19:58 PM »
Thanks! Happy happy about the improved rendering. :lix-laugh:

It's interesting how the number of lix makes such an impact on speed. Will think about it more. They're not optimized in memory for fast copying. I haven't put detailed profiling for savestating/physics updating in.

-- Simon

2827
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.18
« on: February 10, 2016, 03:29:31 PM »
Version 0.2.18 uploaded, with more performant turbo-fast-forward.
  • Preview renders much faster than in 0.2.16 or before.
  • How fast is the transition from menu to game? In addition to rendering the VRAM bitmap, as I do for the preview, I also generate the RAM physics map. That's still implemented a bit naively. I don't know whether I should work on faster physics map creation, so feedback would be cool.
  • Clam: Is that bug fixed? Misalignment of physics/graphics in Leaky Building Syndrome
  • Nepster: What's the performance of turbo-fast-forward now? A rough estimate is OK.
  • Nepster: I've tried something at random against stuck keys. Complain in case they get stuck again. :]
-- Simon

2828
Closed / [editor] [suggestion] [ADDED] Bundle NL player with new-user-zip
« on: February 10, 2016, 01:55:55 PM »
Status: Added a copy of the player to the ZIP.



Quote
The editor has not been updated. The latest version remains V1.40n, which can be downloaded here:
http://www.neolemmix.com/old/neolemmixeditor.zip (For new users)
http://www.neolemmix.com/old/NeoLemmixEditor.exe (For existing users with older versions)

Contents of the new-user-package:
NeoLemmixEditor.exe  styles
NeoLemmixEditor.ini  ReadMe.txt


I recommend to add the NL player to this new-user bundle.

Reasoning: People get stuck on how to test levels. Improving the error message is good. Designing the error out of existence is better.

-- Simon

2829
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.17
« on: February 10, 2016, 01:02:45 AM »
Before 0.2.17, I looped manually over the image, and for each opaque pixel, I drew a transparent pixel to the target. That was a naïve implementation, mostly copied from A4 Lix. While I used calls to the video hardware, they were many, many calls per tile.

In 0.2.17, I have a fully white, fully opaque copy of the tile in VRAM. For drawing dark, I blit the white piece with a blender that deducts from the target pixels (colors and alpha) the source pixels (colors and alpha).

Now, dark drawing has about the same VRAM performance as a normal blit.

-- Simon

2830
Tech & Research / Re: Object-oriented design with Simon
« on: February 10, 2016, 12:37:53 AM »
Quote
"Transforming" a lemming into a new class seems "unnatural" to me.

Yes, I agree that the lemmings should not be replaced. Many of their fields are persistent between jobs. Objects should model the real world: if we don't think of lemmings to be replaced, we shouldn't replace them. My proposed solution is to replace the behavior object instead.

This solution is compelling in hindsight. I have described its advantages in parts 2, 3, 4. But a class hierarchy is costly, even though it's idiomatic in OO design. To justify that cost, I will compare alternatives. It's a difficult design problem, and personal preference plays a role, too.

OO with Simon, part 6
Comparison of all-in-base-class, tagged union, and state pattern


Bloated single class: You put special fields for builder, special fields for faller, ..., all into the Lemming class. They're right next to job-independent fields like position or exploder timer. All fields are mutable, and all jobs can access everything.

Widespread access to mutable fields is a concern. Whenever you have a bug, you must inspect lots of code for how it affects the memory. The compiler cannot help.

Dispatching from the monolithic class via manual function pointers (end of part 5) doesn't solve the problem of widely-visible mutable fields.

Tagged union: I assume this is meant by the Delphi cased record trick. You reserve enough memory to hold the job-specific fields for any single job, and put this as a value field (struct, record) into the Lemming class.

Even though the builder variables now sit in the same memory location as the faller variables, you get to name them per job as bricksLeft and pixelsFallen.

This even more type-unsafe than the bloated base class. You can access the builder's fields even when you're a faller. But because they're in a union, not in separate locations, you overwrite the builder's fields when you write to the faller's fields.

A feeble benefit might be speed while making a savestate. You can memcpy the Lemming to save it entirely, and copy fewer bytes in total than with the bloated base.

State pattern: This is my solution explained in part 2. We make an abstract class for the behavior, subclass it many times, then have the lemming carry a dynamically allocated object for the behavior.

A lemming can have only one state at a time. It's not possible to access wrong fields, and the compiler checks that for you.

Old state objects don't cause long-term psychologic damage to the lemming when he gets a new state object of the same type.

Sometimes, you must access fields of different state classes nonetheless, especially during transistion between states. You can use an explicit dynamic cast -- which angers the object-oriented deities --, or write lots of specialized methods. And herein lie the problems of the state pattern.

About that, I would love to ask someone stronger than me at design for ideas.

NL might not get additional skills. In that case, don't trade a debugged design for undebugged theoretical soundness. The point of a design to minimize the cost of changing and maintaining it. If you don't want to change much, keep the existing thing.

-- Simon

2831
Lix Main / Re: Spawn interval fixed per level
« on: February 09, 2016, 09:39:10 PM »
Thanks for the detailed reply.

You're making a solid point for choosing one of two extremes: Either cull the VSI, or make it well-accessible and discoverable with improved buttons. As a player, changing the SI is free of charge. To embrace the VSI, then, authors should fix the SI only to prevent backroutes, similar to imposing time limits.

When Icho was with me 3 days ago, I played a new level by him. Had the SI been fixed, I would have solved it faster. I thought the level needed VSI when it did not. If we embrace VSI, we encourage authors to keep this red herring wherever possible. This is unlike other standard settings: Choosing no time limit, no skill of a certain type, no surprisingly low save requirement, etc., all these streamline the player's pathfinding.

Having default red herrings is not bad per se, because it's a puzzle game. It makes the game more complex, but it's not unfair.

I would like to distinguish VSI sharply from framestepping, because framestepping doesn't affect physics. Since we have always allowed text-editing replays, we don't gain more control by framestepping. It improves the user experience without touching the game design.

Framestepping is not an interaction with lemmings, VSI is. They're different fundamentally, and neither justifies existence of the other.

VSI remains odd: Either it's part of the core idea, otherwise there is nothing in the fixed-SI game that suggests adding VSI. While VSI influences the fundamental, important spacing between lemmings, so would teleportation.

Yeah, in the end, it boils down to staking out the underlying design, then supporting that in a powerful way.

-- Simon

2832
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.17
« on: February 09, 2016, 08:23:21 PM »
Version 0.2.17 uploaded, with faster dark drawing.

To improve the performance of turbo-fast-forward, I'd like to try savestating less frequently during turbo. Right now, performance is mediocre, and Nepster is right that it should be faster.

-- Simon

2833
Closed / Re: [SUGGESTION] [EDITOR] Remove Oddtabling option
« on: February 09, 2016, 07:57:30 PM »
Does the L1 NL pack depend on the oddtable still? Does it see any use in other packs?

-- Simon

2834
Lix Main / Re: Try singleplayer in the D/A5 port! v0.2.11
« on: February 09, 2016, 05:03:50 PM »
Here are hands-on profiling results from my 9-year-old laptop. This is from a build with profiling, but without other debugging instrumentation. Dark drawing (eraser piece drawing) sucks. The testing map was geoo's playground, a huge map with about 10 % dark pieces.

Lix version 0.2.16 profiling results from 2016-02-09 17:49:01.
Unit of time: 1 us == 1 microsecond == 1/1000 of a millisecond.
At 60 frames per second, 1 frame takes 16666 us.
                                       avg/us   min/us   max/us   amount
Level.drawPos to RAM DARK                 269       25     3407      123
Level.drawPos to RAM NOOW                 610      418      803        2
Level.drawPos to RAM NORMAL               428       10    10693     2789
Level.drawPos to VRAM DARK              47191    39122   131871      246
Level.drawPos to VRAM NOOW               2615     2431     2742        4
Level.drawPos to VRAM NORMAL              156      142     1190     5578


The averages are average times per piece, not average times of rendering the level.

Drawing no-overwrite pieces is also slower. But the sampling rate is too little, geoo's playground uses only 2 no-overwrite pieces.

Good suggestion by namida from IRC:
<namida42> wouldn't it make more sense to test with *several* real life maps, since that's going to give a more reasonable picture of how ti performs in actual usage, rather than unlikely test scenarios?
<SimonN> yeah, I should set up some kind of automated test >_>


-- Simon

2835
General Discussion / Re: Best quotes from IRC and Mumble
« on: February 09, 2016, 12:15:38 PM »
<IchoTolot> Lemmini [...] was very unstable to tileset changes so i made a backup copy in the folder
<SimonN> pff, it eats your tiles during play :>
<IchoTolot> yes
<SimonN> that would be such a horrible bug to never let it touch anything
<IchoTolot> that's why the backup is there^^
<SimonN> it can't be that every tool is horribly broken x_X
<IchoTolot> also I have a lot of shit
<geoo> use git! :D
<geoo> even if your files are eaten, git can vomit them back out


From Mumble:

geoo: I thought you wanted to cull every skill that doesn't affect terrain.
Simon: I considered that loosely, but climbers are awesome.
geoo: Yes! Climbers and miners! Everything else can go!


-- Simon

Pages: 1 ... 187 188 [189] 190 191 ... 275