GAME JOBS
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
June 19, 2013
 
Trendy Entertainment
Community Manager
 
Trendy Entertainment
UI Artist
 
Subatomic Studios
Art Director
 
Airtight Games
Senior Software Engineeer
 
Edge of Reality
LEVEL ARTIST
 
Sojo Studios
Generalist Game Engineer
spacer
Blogs

  Resources for learning intermediate to advanced 2D graphics resources?
by Robert Boyd on 02/20/12 12:08:00 pm   Expert Blogs   Featured Blogs
7 comments Share on Twitter Share on Facebook RSS
 
 
The following blog was, unless otherwise noted, independently written by a member of Gamasutra's game development community. The thoughts and opinions expressed here are not necessarily those of Gamasutra or its parent company.

Want to write your own blog post on Gamasutra? It's easy! Click here to get started. Your post could be featured on Gamasutra's home page, right alongside our award-winning articles and news stories.
 

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.

Suggestions?

 
 
Comments

Adam P
profile image
I’m guessing you’ve seen resources like this: http://www.amazon.com/Advanced-Game-Development-Jonathan-Harbour/dp/1598633422/r
ef=sr_1_6?ie=UTF8&qid=1329764532&sr=8-6



But also take a look at this: http://www.amazon.com/Real-Time-Collision-Detection-Interactive-Technology/dp/15
58607323/ref=sr_1_1?ie=UTF8&qid=1329764532&sr=8-1



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.

Lex Luthor
profile image
I don't get what's wrong with books about 3D... You eliminate a dimension and most of the time you can apply the same things in 2D...

You draw every 2D object on a quad, you have shaders...I can't understand your issues with 2D engines.

Maybe you should be more specific on what you want to do and can't.

Any 3D graphics book seems that will help you (i would suggest an algorithms book, but these are not so highly looked upon these days unfortunately...unfortunately for the ones dismissing them that is :) ).

Robert Boyd
profile image
Not knowing anything about 3D animation, I just assumed that most 3D techniques wouldn't work when you're dealing with stuff like pixels and sprites.

Lex Luthor
profile image
Even with animation you could apply the same techniques from 3D animation to 2D games. If i remember correctly something like this is done in the latest Rayman game from Ubisoft.

They are not using sprites, but instead they animate the character like it was a 3D mesh.

Think of it like animating in 3dMax a 2D character composed of more than 1 quad:

This could work depending on what you're trying to do visually and if this would work for your type of game.

Personally i think that sprite animations will look better for most 2D, because in sprite animations can have a certain flow to them that seems to be hard to reproduce with max animations. For example it's kinda hard to simulate in max a subtle movement for a character's scarf, but really easy in sprite animations where you can just draw the scarf a bit differently for one or 2 frames.



You can do nice things with light too using concepts usually found in 3D:(ex. normal mapping)

Check this out: http://mossmouth.com/forums/index.php?topic=1016.msg30804#msg30804



If you are interested in shaders you can try this (i'm sure that there is something similar for opengl):

http://www.amazon.co.uk/Introduction-Game-Programming-DirectX-9-0c/dp /1598220160
/ref=sr_1_1?ie=UTF8&qid=1329828886&sr=8-1

Gary Dahl
profile image
There are some pixel shader tutorials using xna and c# on creators.xna.com 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: http://www.kickstarter.com/projects/539087245/spriter
Tile Maps might be useful, here is a nice tool for that: http://www.mapeditor.org/
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.

http://www.amazon.com/dp/1466501898/ref=as_li_tf_til

2D Graphics Programming for Games


none
 
Comment:
 




 
UBM Tech