The Void Project
Silver Demon Studios Developer
Silver Demon Studios Publisher
Coming soon Release
🎹🖱️Keyboard + Mouse
🕹️ Partial Controller Support
🎮 Full Controller Support
8 user reviews
(8 reviews)
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 ] 
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)
- Procedural Map Generations (Unique map every Run)
3.93$ (21%)
44.45$ (11%)
16.57$ (17%)
16.57$ (17%)
24.87$ (17%)
33.17$ (17%)
42.45$ (15%)
17.75$ (11%)
20.72$ (17%)
17.75$ (11%)
24.87$ (17%)
17.75$ (11%)
8.39$ (16%)
4.87$ (19%)
13.02$ (13%)
16.96$ (15%)
16.79$ (16%)
9.98$ (67%)
16.57$ (17%)
16.97$ (15%)
24.87$ (17%)
4.19$ (16%)
49.77$ (17%)
4.95$ (17%)
41.47$ (17%)
29.02$ (17%)
44.45$ (11%)
24.99$ (58%)
13.25$ (47%)
49.77$ (17%)
1.0$ (80%)
1.8$ (80%)
1.13$ (96%)
8.49$ (58%)
16.0$ (60%)
16.0$ (60%)
2.55$ (91%)
4.8$ (70%)
10.0$ (60%)
0.26$ (91%)
5.95$ (83%)
6.44$ (82%)
6.0$ (80%)
2.55$ (91%)
1.58$ (95%)
8.91$ (70%)
0.51$ (83%)
6.3$ (70%)
3.4$ (83%)
2.76$ (86%)
4.14$ (86%)
0.68$ (91%)
4.5$ (77%)
1.7$ (83%)
5.4$ (82%)
3.4$ (91%)
9.9$ (67%)
3.4$ (91%)
6.8$ (60%)
3.19$ (79%)
1.99$ (89%)
4.98$ (75%)
17.49$ (13%)
1.19$ (88%)
2.98$ (80%)
15.89$ (21%)
38.99$ (13%)
2.49$ (88%)
13.99$ (22%)
1.09$ (84%)
2.98$ (85%)
73.99$ (8%)
15.99$ (20%)
0.99$ (90%)
7.49$ (75%)
1.29$ (84%)
1.99$ (90%)
7.79$ (40%)
1.24$ (75%)
53.99$ (10%)
1.49$ (85%)
1.19$ (88%)
0.79$ (84%)
21.99$ (27%)
5.99$ (70%)
1.09$ (82%)
0.69$ (30%)
1.09$ (91%)
1.49$ (90%)
1.19$ (91%)
FANATICAL BUNDLES

Time left:
356223 days, 21 hours, 5 minutes

Time left:
356223 days, 21 hours, 5 minutes

Time left:
0 days, 4 hours, 5 minutes

Time left:
13 days, 4 hours, 5 minutes

Time left:
0 days, 4 hours, 5 minutes

Time left:
9 days, 4 hours, 5 minutes

Time left:
19 days, 4 hours, 5 minutes

Time left:
30 days, 4 hours, 5 minutes

Time left:
33 days, 4 hours, 5 minutes

Time left:
34 days, 4 hours, 5 minutes
HUMBLE BUNDLES

Time left:
0 days, 22 hours, 5 minutes

Time left:
2 days, 22 hours, 5 minutes

Time left:
13 days, 22 hours, 5 minutes

Time left:
14 days, 22 hours, 5 minutes

Time left:
14 days, 22 hours, 5 minutes

Time left:
16 days, 22 hours, 5 minutes
by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE
anyholeworks
IRL
setting up a neural network for natural speech
echoplexmedia
Politics
Downballot - Bay Area Local News - !downballot in chat for this week...
bigrob029
Jusant
The other OTHER climbing game.... on linux. (Jusant Stream)
disk1of5
Software and Game Development
Doing some programming and hanging out!
ulfrinntv
Hollow Knight: Silksong
First playthrough
Telico760
Helldivers 2 (Arch Linux BTW) Gameplay #22
pullarity
Hollow Knight
The skill issues are over 9000!!!! | Game library status: 18/1397 | !d...
tuxramus
The Lord of the Rings Online
LOTRO On Linux (Server: Glamdring) Commands: !discord !fish !leaderbo...
spikeslayer
Dune: Awakening
The Lisan Al Gaib Uses Linux / Dedicated to LadyGingerTiamat, We Love ...
LeandroDasLives
HOLLOW KNIGHT SILKSONG NO RETROARCH COM ARCH LINUX! SER QUE ESSE JOGO ...
meleneth
Software and Game Development
making a Python Animation Framework to create animated videos with tra...
thmyblu
Just Chatting
[ES&EN]Y el Fightstick?? (2 Week 36, 2025)
salt86
Knuckles' Chaotix
Knuckles Chaotix - 3 Hour Stream for 3 Hour People
longvoid
Satisfactory
it's a data! w. @scanda_lyss and @cadesguy
outermostghost
ELDEN RING
[18+] SubaDonaMonth Day 8 - Moar Rang w/ @thricedtalon !book !rewards
kl0cw3rk
FINAL FANTASY XIV ONLINE
M6s reclear > M7s prog
telico760
HELLDIVERS 2
Helldivers 2 (Arch Linux BTW) Gameplay #22