|
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?
|
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.
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 :) ).
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
I think that whether you're looking for Vector or Raster techniques will make a bigger difference than 2D vs 3D.
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 :)