Black and White Monitor Pixel Shader

Modern pixel shaders have given game developers tremendous capabilities with which to improve the visuals of their games. They’ve also given developers the ability to make their games look WORSE. That’s okay though, when it’s on purpose.

For this week’s post, I’ve put together a pixel shader that takes a normal full-color game and renders it like a black-and-white screen with lots of static. Continue reading

Running and Jumping in Box 2D

When it comes to handling physics in 2D games, few libraries come with the pedigree of Box2D. For implementing piles of rigid bodies behaving realistically in collisions, it is an ideal tool. On the other hand, when implementing character movement in a platforming game like Super Mario Bros, it can take quite a bit of tweaking to get the behavior to feel right.

That being said, it is certainly possible to setup Box2D bodies in such a way to create a high-quality platforming experience. Here’s a description of the setup that’s been working for me so far.
Continue reading

Speedy Upscaling for that Pixely Look

It’s certainly possible to have too much of a good thing. In this generation of HD TVs and game consoles, that too much of a good thing can be pixels. If you take some of the great pixel art of old and display it 1:1 on a modern screen, the art ends of being tiny. In order to fully appreciate the pixel art, you need to scale it up.

There are many ways to accomplish this sort of upscaling and, while they may have the same end result, they are not always the same in terms of performance. With that in mind, I decided to write some code and try out some of those methods for myself and see how their relative performance compares.
Continue reading

Getting TDD in my XNA with NUnit

I’ve had an infatuation with test-driven development (TDD) for years but I’ve never had a chance to use it professionally to any major extent. While the potential benefits of TDD, like reduced bug regression and greater code decoupling, are substantial, the considerable cost involved in learning how to write effective tests and testable code make it a hard-sell to introduce in many work environments.

I can sympathize with a manager who is cautious about adopting TDD, compared to the very palpable up-front costs, the benefits tend to be future-oriented and hard-to-measure. Luckily, I don’t have to worry about convincing managers to let me try TDD for my personal projects. This gives me a chance to give TDD a test-drive (bad pun, I know) and see just how it affects the code I write. Being that I’ve been working a lot with XNA lately, I’ll demonstrate a method to integrate the NUnit unit-testing framework with Visual Studio 2010 Express in order to practice TDD while using XNA.
Continue reading

Spritesheets, Spritesheets Everywhere

Here’s something fun to do if you’re ever feeling REALLY bored. Try searching for something on Google. Then, on the result page, use Chrome (or some other browser if you must) and inspect the images used on the page. You may be surprised to find that most of the images on the Google results page are contained in a single png like the one above.

That’s right! Where game developers may use sprite sheets to optimize their rendering, Google uses sprite sheets to optimize their results page. Sprite sheets on the web? What’s that all about?
Continue reading