TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 8 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]


Devlog #1: Final Art Style, How and Why!

Welcome to Devlog #1, well the second devlog to be exact.. this devlog will be more focused on how we achieved this pixelated dual-tone art style for our game. Note: this shader was not entirely ours as we vastly expanded upon a similar in nature shader with CC0 License.

Here's a breakdown for the shader..


Understanding the Foundations


At its core, achieving that retro look comes down to three key elements:
  • Pixelation: We deliberately reduce the resolution to make the image blocky. Think of the iconic chunky pixels of early game characters!
  • Color Banding: The smooth gradients that we take for granted today simply weren't possible. Colors transition in distinct bands, creating a bold, almost posterized effect.
  • Dithering: To soften the harshness of the color banding, old games use dithering. This involves strategically placing pixels of different colors from the palette near each other, tricking the eye into seeing a wider range of shades.

Breaking Down the Code


This shader tackles each of these elements step by step. Let's peek under the hood:
  • The Luminosity Factor: Calculating the pixel's brightness (luminosity) accurately is essential for proper color banding. Many simple formulas just average the red, green, and blue, but We're using a more accurate one that accounts for how our eyes perceive these colors differently.
  • Controlling Contrast: Adjusting contrast in this case isn't just about shifting brightness; it's about exaggerating it. Our shader multiplies the luminosity, pushing light areas even lighter and dark ones darker, creating a more stylized look.
  • Snap! Creating Those Bands: This is where we force colors into distinct bands based on the pixel's brightness. By reducing the "bit depth" using clever math, we simulate the old hardware limitations.
  • Mapping the Palette: The shader dynamically figures out which two colors from our palette texture the pixel falls between. It's like carefully placing the pixel on a color ruler!
  • The Magic of Dithering: Time to break up the harsh bands! We use a dithering texture (basically a noise pattern), and compare each pixel's luminosity to a corresponding value on the texture. This determines whether to pick the higher or lower color from the palette.

In-Depth Explanation:


1. Luminosity Calculation and Contrast Adjustment


  • Accurate Luminosity: The shader uses a more accurate luminosity formula than simple averaging. Different color channels contribute differently to how we perceive brightness. This formula is essential for realistic color banding and dithering later in the process.
  • Contrast as a Multiplier: Notice how contrast is not added or subtracted, but rather multiplies the normalized luminosity. This has a non-linear effect, pushing darks darker and brights brighter without simply shifting the overall range. This can create a more visually punchy retro aesthetic.

2. Color Reduction for Banding


  • Intentional Floor Function: The floor function is used to snap the continuous lum value into discrete steps. This creates the characteristic bands of color, simulating the limited bit depth of old displays.
  • Adaptable Bit Depth: The u_bit_depth(uniform var. in shader) uniform lets you control the number of distinct bands. A lower bit depth gives you a stronger, more obvious retro effect.

4. Dithering Logic


  • Dithering's Purpose: Our eyes have incredible color accuracy, so the color banding alone would look harsh. Dithering breaks up these bands with a noise pattern, creating the illusion of additional shades between the palette entries.
  • Thresholding the Noise: The dither texture isn't directly added to the color decision. Instead, a pixel from the dither pattern is treated as a threshold. Based on its value, either the upper or lower palette color is selected.
  • Customizable Dither Patterns: The u_dither_tex(uniform var. in shader) lets you swap out the noise pattern. Classic patterns include Bayer matrices or blue noise textures. These patterns influence the visual character of the dithering.

The Power of Customization


The beauty of a shader is how tweakable it is. I can crank up the pixelation for a super chunky retro vibe or dial down the color banding for a subtler effect. Plus, experimenting with different dithering textures lets me completely change the aesthetic!


[ 2024-05-01 17:00:02 CET ] [ Original post ]



The Void Project
Silver Demon Studios
  • Developer

  • Silver Demon Studios
  • Publisher

  • Coming soon
  • Release

  • Action Indie Strategy Casual RPG Adventure Simulation F2P Sports MMO Racing Singleplayer Multiplayer Coop EA
  • Tags

  • Game News Posts 12  
    🎹🖱️Keyboard + Mouse
    🕹️ Partial Controller Support
    🎮 Full Controller Support
  • Controls

  • 6 user reviews

    (6 reviews)


  • Review Score

  • https://www.thesilverdemons.com
  • Website

  • https://store.steampowered.com/app/2681270 
  • Steam Store



  • [0 B]

  • Public Linux depots


  • Influenced by 90s FPS and arcade classics, The Void Project offers a thrilling, high-speed shooting experience. Step into a surreal arena, where you'll confront never-ending waves of demon hordes. With a formidable armament and seamless mobility, engage in a battle for survival, striving to outlast the relentless assault. Test your prowess and determination as you vie for seconds on Steam Friends and global leaderboards. Your tenacity and gaming skills will be pushed to their limits.


    • Take on 5 bone-chilling demons and their unique variants. (More to be added with future updates)
    • Mixture of Quake, UltraKill and Devil Daggers.
    • Smooth Gameplay with fast movement.
    • Change from up-to 50 Color Palette Art Styles, Make this truly your own.
    • Master different demons' patterns, Beat as many as you can and top the Leaderboard.
    • Slide, Slide-Jump, Dash and Slam your way through the Map.
    • Free Updates and Patches to improve your experience further, No Micro Transactions or DLCs.


    • Multiplayer system, Possibly PvP Matches (Not Confirmed and might remove this from roadmap)
    • More Enemy Types
    • Procedural Map Generations (Unique map every Run)
    • and much more...
    GAMEBILLET

    [ 5946 ]

    14.99$ (40%)
    21.24$ (15%)
    9.26$ (69%)
    25.48$ (15%)
    25.19$ (16%)
    17.19$ (71%)
    2.00$ (90%)
    12.65$ (16%)
    4.24$ (39%)
    4.34$ (13%)
    12.71$ (15%)
    11.99$ (40%)
    4.44$ (78%)
    12.89$ (14%)
    6.80$ (66%)
    16.57$ (17%)
    1.00$ (90%)
    13.21$ (34%)
    16.99$ (15%)
    9.33$ (38%)
    4.12$ (17%)
    6.66$ (78%)
    5.83$ (81%)
    1.50$ (75%)
    27.88$ (20%)
    3.33$ (78%)
    4.75$ (81%)
    5.94$ (83%)
    17.99$ (40%)
    34.99$ (30%)
    GAMERSGATE

    [ 4248 ]

    1.13$ (89%)
    0.68$ (89%)
    9.37$ (63%)
    8.25$ (67%)
    2.5$ (75%)
    9.99$ (50%)
    2.93$ (77%)
    7.5$ (81%)
    1.69$ (89%)
    8.69$ (57%)
    2.25$ (89%)
    1.46$ (89%)
    5.02$ (50%)
    1.5$ (70%)
    13.59$ (32%)
    11.24$ (44%)
    3.6$ (80%)
    8.28$ (45%)
    9.89$ (34%)
    1.5$ (92%)
    0.45$ (77%)
    9.74$ (25%)
    16.0$ (60%)
    4.95$ (67%)
    5.25$ (89%)
    9.6$ (76%)
    5.0$ (75%)
    8.0$ (60%)
    0.75$ (92%)
    2.63$ (62%)

    FANATICAL BUNDLES

    Time left:

    19 days, 22 hours, 16 minutes


    Time left:

    1 days, 22 hours, 16 minutes


    Time left:

    32 days, 22 hours, 16 minutes


    Time left:

    38 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    Time left:

    35 days, 22 hours, 16 minutes


    HUMBLE BUNDLES

    Time left:

    8 days, 16 hours, 16 minutes


    Time left:

    15 days, 16 hours, 16 minutes


    Time left:

    20 days, 16 hours, 16 minutes

    by buying games/dlcs from affiliate links you are supporting tuxDB
    🔴 LIVE