• Register

Synther is an FPP simulation game with adventure-like, detective elements set in a futuristic, open world. The game has innovative, Commodore 64-like graphics, remindful of early 3D games and DOS applications.

Post news Report RSS 3D Accelerator not included

Since we are big fans of old game consoles and computers, with Synther we went with the oldschool amiga-c64-early PC look. This decision, in mix with our game mechanics, required us to brainstorm about how to solve A couple of rendering problems, for instance: “How, for the love of all the indie devs on the world, are we going to correctly display everything?”.

Posted by on

Since we are big fans of old game consoles and computers, with Synther we went with the oldschool amiga-c64-early PC look. This decision, in mix with our game mechanics, required us to brainstorm about how to solve a couple of rendering problems, for instance: “How, for the love of all the indie devs in the world, are we going to correctly display everything?”. Below is our current approach, using a total of 5 cameras, 3 with downsampling, 2 with dithering and posterization.


Current rendering system in action.

We’ve reached this effect by going through lots of problems during the development. For contrast, that’s how Synther looked like when it was really early in development:


True old-school vibe.

The Setup

To better understand what is happening we’ll look on the system behind the scenes.

1. World camera
Responsible for rendering the whole world, and it does just that. It works in deffered shading mode to allow the usage of big amounts of lights on the scene. If you want to know more about what deffered shading is, you can look it up at En.wikipedia.org.


Final work of the world camera.

2. World UI camera
Busy with world UI's such as computers, vehicle controls and hacking. Anything it sees must be between player and the world, and it must avoid being scaled by the next camera effect, as downscaled UI would be unreadable. To achieve that, it renders before, but applies what it sees after camera no.3

3. Player FPS camera
Place where the magic happens. After a simple render of the player viewmodel, player FPS camera executes three effects on the image, in the following order:

  1. Downsampling
  2. Posterization
  3. Dithering

Downsampling scales the render down, so there are less pixels to process and the game looks more low-res. Posterization cuts the colors to a lower number. For now we are using 18-per-channel colors (18-p-c) posterization, what means that for each of three color channels, RG and B, we’re using 18 colors. Every possible combination gives us a total of 18*18*18 = 5832 colors. That’s nearly a 13 bit color mode, where
Dithering is the main culprit for those cool looking shadows. It mixes the colors giving an illusion of having more than there currently are. It was heavily used in the past just for getting better results for then-available limited hardware and their supported color palettes.


What player FPS camera sees.


What is on the screen so far, before applying the triple old-school effect.


Final work of the player FPS camera.

4. Player UI camera
Used for the player personal computer UI display, as well as other screen-space UI elements that should be displayed right on the screen, where camera no. 2 was responsible for displaying UI in the world in 3D space.


Final work of the player UI camera.

5. Effect camera
Final camera for displaying post processing effects. It takes the work of other cameras up to this point, and modifies the result.


A sad fate of one of our agents, who felt to his death.

Computer SGA translation All the text in the game world is shown in the SGA, which stands for Standard Galactic Alphabet. To make it understandable by the player, who doesn’t necessarily know SGA, our personal computer can translate it for us into English.


Same SGA advert behind the computer screen.

Translation happens automatically when the computer screen is pointed at any SGA material, either text only, or mixed with additional logos. SGA material’s shader renders ENG translation only, if the pixel would happen to be between one of 4 corners of the computer screen.


Visualization of the computer AD translation process.

Our previous approach depended on using the separate layer and a depth texture, but it gave us two problems along the way. First it was problematic, when we decided to ditch forward rendering pipeline in favor of deferred for light optimizations, Second it required juggling with the depth data of the camera, having to render it twice.


Early personal computer SGA translation rendering through the walls.

That’s it, for now as you can see we are making sure that the game visuals will be appealing not only for the most hardcore fans. If you liked what you see, then get ready, as Synther is getting close to the release date.


Bonus: Example of the render using downsampled 6-p-c colors, and 60% dither pass effect.

Synther will be available Q4 2018 on Steam: Store.steampowered.com be sure to add it to your wishlist!

- Griz, Developer

Post comment Comments
BigTinz
BigTinz - - 1,532 comments

Really excited about this! Will the player have control over how much dither effect is applied?

Video 4/5 looks fine, but 6 looks too harsh to me.

Reply Good karma Bad karma+2 votes
Neofuturism Creator
Neofuturism - - 29 comments

happy to read that, thanks!
6 is just example, it will be like it is on 4/5

Reply Good karma+2 votes
INtense! Staff
INtense! - - 4,100 comments

So can it run on a amiga ;)

Looking great

Reply Good karma+4 votes
MagosDomina
MagosDomina - - 19 comments

The dithering really adds to the atmosphere. It helps creates that grungy dark dystopia vibe. I love it!

Reply Good karma Bad karma+2 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: