SamuKata
mankrip

mankrip

patreon


mankrip posts

Underwater Blurriness and Better Horizon Dithering

Underwater Blurriness and Better Horizon Dithering

I'm implementing a higher-res dithering matrix (8x8=64 units) for the sky horizon color fading effect. As can be seen in the first image, the higher-res dithering matrix significantly smooths out the color banding. However, this requires a slightly bigger color fading table, so when this improvement is finished, all sky horizon fading maps will ...

View Post

Retroquad 0.21.11 Released

While working on the palette changes, I realized that those changes will have to be very extensive, so I disabled their work-in-progress code to not delay this release any further.

This version has autosaves for when shutting down the game during gameplay, and those autosaves will be loaded automatically when starting up the engine again. ...

View Post

Texture Colorization and Palette Cycling Plans

Before working on generating intermediary colors as mentioned in the previous post, I'm going to work on implementing texture colorization and palette cycling.

Texture colorization is what vanilla Quake does to the player's skin when customizing the shirt and pants colors, and there are several ways to achieve that. Vanilla Quake's softwar...

View Post

TGA Palette Support, and Palette Format Considerations

TGA palette support was already implemented, now I just need to test it.

The only feature still missing in the TGA palette support is intermediary color generation, for palettes generated from TGAs without enough colors to fill the palette. For example, if a 24-bit color TGA image's pixels has only 16 colors, the other 238 colors in the pa...

View Post

Autosave & Palette Updates

I'm going to create optional autosaves for when shutting down the game, and autoloading them when starting the engine. This will be created in a way that won't conflict with engine crash cases.

Also, I've done some changes to the palette system:

  • Don't use the monitor gamma value for compiling textures, us...

    View Post

Autosaving Completeness

The autosaving system in Retroquad is really good, but now I'm adding a few extra features to make it even more perfect:

  • First, backtracking. If the player dies a couple seconds after an autosave was created, it's logical to conclude that the conditions that triggered the latest autosave weren't safe enough for the player. In this ...

    View Post

Higher-res Lightmap Considerations

Higher-res Lightmap Considerations

I've done a more polished version of this test area for raytraced dynamic lights, with the ceiling and floor textures scaled at 50% to increase the lightmap resolution by 400% (2 x 2 times), and thanks to the pseudo-deviance, the result was very smooth.

The current version of the EricW's BSP and Light compilers already supports generating ...

View Post

Retroquad 0.21.10 Released

This version includes the fully optimized pseudo-deviance filter in the raytraced sampling of the dynamic lights.

And I figured out a way to significantly improve the performance in complex maps with large open areas. Maps that were running with a low dynamic resolution have a better dynamic resolution now, and many maps are running with s...

View Post

Pseudo-Deviance Optimization Progress

The raytracing cache for the pseudo-deviance filtering of raytraced dynamic lights has been implemented, which helped to speed up the raytracing a lot.

Since the pseudo-deviance essentially expands the lighting a bit, I also need to implement some padding on the boundaries of the surfaces' raytracing data, to ensure that the pseudo-devianc...

View Post

Crossfading Texturemapping Plans

People who examined Retroquad's source code may have noticed that I wanted to implement a texturemapping mode called "crossfading." It's a texturemapping mode that should smooth out texture transitions in a manner similar to 2024-06-15 23:41:20 +0000 UTC View Post

Real Life Situation

Now, let me apologize for the lack of updates lately. I still haven't finished my answer to the allegations against me in my lawsuit, but I found out that the 15-day deadline won't be set until the judge gives me an order to reply, so there's still some time.

There's so much going on... I don't know how to put everything in a concise manne...

View Post

Dynamic Lighting Progress

Dynamic Lighting Progress

A lot of work was done under the hood. The most noticeable changes are that soft-depth and semitransparent objects will receive raytraced dynamic lighting on their backfaces now, because they shouldn't block lighting traces (see the first two screenshots), and that dynamic light sampling on external BSP models (e.g. ammo boxes) was actually givi...

View Post

Offscreen Raytraced Light Sampling Bug Fixed.

Offscreen Raytraced Light Sampling Bug Fixed.

I've fixed a bug where offscreen BSP entities weren't occluding traces.

In this video, you can see the bug. When the button on the wall goes offscreen, it stops blocking the light, and its shadow disappears.

This bug happened because Retroquad was only tracing against entities that passes the R_BmodelCheckBBox check, and this functio...

View Post

Pseudo-Deviance Improvements

Pseudo-Deviance Improvements

I've implemented curved dynamic intensity into the pseudo-deviance algorithm of the raytraced dynamic light sampling. It's almost as smooth as full deviance, while preserving isolated single-point shadows. When comparing all algorithms, the curved dynamic deviance is clearly the best one, so there's no need for the others.

Also, I've fixed...

View Post

Retroquad 0.21.9 Released

Retroquad 0.21.9 Released

This is a WIP version, for the reasons explained in the previous post.

Here's a list of the changes, from the top of my head:

  • • I've tried implementing PNG support again, but the PNG libraries keeps crashing ntdll.dll for some unknown reason.

  • • Several changes were made to start fixing the per-span Z-fighti...

    View Post

Lawsuit Progress

Here's a real life update.

There's a lawsuit I've opened over a year ago to be able to sell the house inherited by me and my sister from my mom, and this lawsuit is finally progressing.

The other side on this lawsuit (my sister, who wants to keep the whole house for herself) presented a ton of arguments against me, and in a couple we...

View Post

Bug Report

Bug Report

There were some good improvements on the code, including a few optimizations in the BSP renderer. However, a number of bugs still need to be ironed out:

  • • Due to the recent changes in the rendering of BSP entities, raytraced lighting is not working in some of them. I'm not sure why.

  • • The textures in some surface...

    View Post

Fixing Per-Span Z-Fighting

Fixing Per-Span Z-Fighting

Vanilla Quake's software renderer does have a pretty bad case of Z-fighting, which only happens between different BSP entities (be it external BSP entities, such as item boxes, or entities built internally into the map, such as doors and moving platforms).

Vanilla Quake only performs worldspace geometry clipping between individual BSP enti...

View Post

BSP Entity Bugfixing

I found out that the clipping of BSP entities to the world geometry can crash the engine. While this clipping is responsible for the lack of Z-fighting between BSP entities and the world, it's useless for fixing Z-fighting between different BSP entities.

All things considered, I'm removing this clipping from BSP entities, and adding per-pi...

View Post

Retroquad 0.21.8 Released

This version fixes a couple bugs:

  • The weapon switching animation in first person view still wasn't being properly reset when toggling the third person camera, because the fix introduced in version 0.21.2 was incomplete. Now it's fully fixed and tested.

  • Entities were being seen thru opaque liquids, because the wrong d...

    View Post

Retroquad 0.21.7 Released

This version fixes a bug with the screen color effects (underwater view, etc.) being not cleared when restarting or changing levels.

I've also tried to fix some other stuff, but I'm completely out of time this month.

View Post

Retroquad 0.21.6 Released

This version features a more robust version of the fix introduced in the last version.

View Post

Retroquad 0.21.5 Released

This version fixes a vanilla Quake bug that corrupted strings in savegames in a way that broke autoloading.

Some savegames created with previous versions of Retroquad will not work with autoloading, but can still be loaded manually. Re-saving them won't fix the issue; their string corruption will only go away when re-saving after changing ...

View Post

Retroquad 0.21.4 Released for Patrons

This release adds support for autoloading, which automatically reloads the latest savegame that was used in the current level instead of restarting the level from the beginning. This feature completes the purpose of autosaves, which is to automatically preserve player's progress within the map.

When you die and press the button to restart ...

View Post

Lighting Smoothing Plans

I'm looking into ways to smooth out the diagonal shadows in the surface lighting caches when they're expanded from the lightmap data.

First, the good news: Since Retroquad splits the colored lighting into two separate 8-bit surface caches (one for brightness, and other for hue & saturation), I can implement the smoothing into the brigh...

View Post

Retroquad 0.21.3 Released

Retroquad 0.21.3 Released

The raytracing on concave edges is properly fixed, and I've also implemented an optimization to precompute all surface coordinates in model space during load time. A NAN issue with the centroid generation was also fixed.

Now I can focus more on some gamecode features.

View Post

Raytraced Light Sampling on Concave Edges Fixed

Raytraced Light Sampling on Concave Edges Fixed

I've managed to fix this issue with lightmap points in the edges being obscured by neighboring brushes that forms concave edges with the brush of the current surface. The previous attempted solutions made the edges of the lightmaps too hard, but this new solution keeps the edges smooth.

Now that a good solution for this was implemented, I'...

View Post

Retroquad 0.21.2 Released

This version fixes 3 bugs:

  • Walls were not receiving raytraced lights when the shooter touched them head on; dynamic lights from muzzleflashes were being spawned beyond the player's collision box, which made them get inside walls and be skipped by the raytracing algorithm.
  • Rotating doors were not receiving light properly; whi...

    View Post

Retroquad 0.21.1 Released

Retroquad 0.21.1 Released

This version has the improved raytracing that's able to cast shadows from BSP entities to the world.

Moving BSP entities can cast shadows upon one another, but only if they don't rotate.

I've optimized the raytracing code for collision against BSP entities, but there are still numerous calls for AngleVectors that could be optimized i...

View Post

Buggy Raytracing on Rotated Entities Test

Buggy Raytracing on Rotated Entities Test

This is my current test setup. An entity casting a big dynamic blue light over two rotating fans with a single world brush in between.

The fan above must block the rays onto the world brush in the middle, and both the upper fan and the world brush in the middle must block the rays onto the lower fan. Finally, both fans and the world brush ...

View Post