I made a game and engine in D that's a cross between Superliminal and Viewfinder, and you can play the demo now

Lewis musicaljelly at gmail.com
Wed Apr 2 09:37:44 UTC 2025


On Friday, 28 March 2025 at 22:44:56 UTC, Hipreme wrote:
> On Thursday, 27 March 2025 at 06:27:19 UTC, Lewis wrote:
>> On Thursday, 6 March 2025 at 15:35:19 UTC, Element Green wrote:
>>> On Saturday, 1 March 2025 at 09:04:47 UTC, Lewis wrote:
>>>> The game should run fairly well in Proton. That said, at the 
>>>> time of writing, some Proton players are seeing a bug where 
>>>> the wall paint flickers quite obnoxiously. I'm actively 
>>>> working on a fix, but if you start playing and encounter 
>>>> this bug too I'd probably advise holding off just until I 
>>>> can get a bugfix out for that issue. It looks pretty 
>>>> annoying to try and play with.
>>>
>>> Thanks for the info. I'll take your advice and wait until 
>>> then. Looking forward to it!
>>
>> For anyone coming to this later, the Proton flickering bug 
>> should be fixed now :)
>
> That's interesting! How did you fix it?

It turned out to be debug code in a shader that was accidentally 
getting compiled in. The debug code checked a constant buffer 
value indicating whether the level editor was active, and if so 
it disabled the paint-in effect (and just made everything fully 
painted in).

In release, we don't bother ever setting this isLevelEditorActive 
parameter, since the editor is compiled out of the release build 
and thus unusable. But this bad debug code was still using the 
parameter. And since nobody was setting the value, the value was 
unspecified. On most GPUs/drivers, it seemed to be defaulting to 
0, aka no editor, so it worked out by accident. But when using 
Proton, for whatever reason, it didn't default to 0 and instead 
had random unspecified values, so it flickered between on and off.

A classic case of a bug that was occurring on all machines, but 
only actually showing observable symptoms on a select few. The 
good news is that I installed a Ubuntu dual boot in order to 
track this down, so I can now just test on Proton as a matter of 
course when pushing out updates.


More information about the Digitalmars-d-announce mailing list