Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 20, 2014
arrowPress Releases
October 20, 2014
PR Newswire
View All
View All     Submit Event

If you enjoy reading this site, you might also want to check out these UBM Tech sites:

Resources for learning intermediate to advanced 2D graphics resources?
by Robert Boyd on 02/20/12 12:08:00 pm   Expert Blogs   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


What are some good resources to learn intermediate to advanced 2D graphics programming? Books would be preferable but suggestions for good websites would also be great.

Our background - we've released a couple of 2D RPGs using XNA & C#. My partner has some great pixel art skills but the 2D graphics engine I've programmed to support that pixel art is about as simple as it comes. Take target graphic asset and draw it at coordinates x,y. Maybe do some scaling and the occasional transparency. Very simple stuff.

Whereas the visuals for our games are high on art assets and low on programming, you also see some games that are low on art assets but still manage to look very cool through their special effects (like your typical Geometry Wars-inspired dual-stick shmup). I obviously have a lot to learn when it comes to programming 2D graphics and effects.

The question is what's the best way to learn that aspect of programming? Most programming books on graphics are focused on 3D games. And books that are focused on making 2D games are usually intended for beginners and focus more on the making games aspect and less on the 2D graphics.


Related Jobs

Cloud Imperium Games
Cloud Imperium Games — Austin, Texas, United States

Release Engineer
Filament Games LLC
Filament Games LLC — Madison, Wisconsin, United States

Game Engineer II
Filament Games LLC
Filament Games LLC — Madison, Wisconsin, United States

Game Engineer I
InnoGames GmbH
InnoGames GmbH — Hamburg, Germany

Software Developer Analytics / Big Data (m/f)


Adam P
profile image
I’m guessing you’ve seen resources like this:

But also take a look at this:

Although it says “3-D” The VAST majority of this stuff can be used in 2d with very minor adjustments.

Another thing I would recommend, even though you’ll often run into the 3d thing, would be to research building an advanced, scriptable, particle engine. Again, stripping out the 3d parts and being left with a solid 2d particle engine can go a long way in making projects look better. Plus, you can almost always use your last particle engine as the basis for your next one, increasing code reuse.

Just some thoughts.

Gary Dahl
profile image
There are some pixel shader tutorials using xna and c# on that might be a good place to start (along with Shawn Hargreaves blog). I don't know of any good introductory books on this... but the GPU Gems (and Graphics Gems) have are good collections.

I think that whether you're looking for Vector or Raster techniques will make a bigger difference than 2D vs 3D.

Lou Hayt
profile image
I'd suggest researching Particle Systems.
Also check out Spriter animation tool:
Tile Maps might be useful, here is a nice tool for that:
Good luck :)

John Pile
profile image
"2D Graphics Programming for Games" is published by AK Peters and CRC Press and is due out in just a couple months. It covers raster graphics techniques including everything from particles systems to pixel shaders.

It focuses on concepts instead of just code, so the techniques can be applied to almost any platform.

2D Graphics Programming for Games