Photoshop Blend Modes in HLSL

I recently needed to mimic all of the Photoshop color blend modes on the GPU so here we are. These were written for simplicity and correctness rather than performance. That isn't to say they are guaranteed to be 100% perfect (e.g. I'm not sure if the implementation for Darker Color should use a < or <=), but they did the trick for me!

Continue reading...

Rollback Networking in INVERSUS

INVERSUS. is a fast-paced shared-screen multiplayer game for up to four players. It is the type of game that would traditionally be local-multiplayer, and for a long time I thought latency issues would make it a poor candidate for online. Late in development, I committed to…

Continue reading...

Analog to Digital Input Translation

It’s common to use an analog input method (control stick, trigger button) to control a digital system. Maybe you want to control menus with an analog stick. Maybe you want to detect a tap or double-tap of the analog stick. Or, as is the focus…

Continue reading...

Interpreting Analog Sticks

When a game supports controllers, the player is likely using an analog stick at all times. Nailing the input processing can have a substantial impact on quality throughout the experience. Let’s walk through some core concepts along with examples from INVERSUS. View the full article on…

Continue reading...

INVERSUS

INVERSUS is a competitive and cooperative arcade shooter with a mind-bending twist. Player movement is constrained to opposite colors of a black and white grid. My walls are your paths and your walls are my paths. Each shot flips tile colors in an attempt to…

Continue reading...