I am all thumbs-up for 2d games. I don't actually like 3d games all that much. I am working on a 2D game/engine at the moment part of which involves writing my own 2D blit-routines that work in main memory - only part of the overall functionality that I need for the engine. The actual displayable graphics are going to be handled by direct OpenGL rendering, but there's graphics/data that I need to manipulate that isn't on the graphics card, so that's why I am writing my own library of routines. I also wrote another 2d Graphics library - Mildred, for the original BlitzBasic on the Amiga, so I have some experience to draw upon.
I'd say that you need to have all the basics in there, you need to be able to blit stuff and preferably in several different modes which should include Replace, Add, Subtract, Color (mask is drawn as a color), maybe also an Alpha Blend, some kind of Masked blit, etc. The one big difference with 2D these days compared to how it used to be is that you're probably going to work with 32-bit color data rather than 8-bit. Working in true-color makes certain things obsolete and introduces certain other things.
You'll also need some drawing routines - again the basics are rectangles, boxes, lines, plots, and you might branch out into ellipses, polygons, floodfill, splines, etc. I'm probably going to need all of those in my game.
Your 2d stuff also needs to be sufficient to allow you to probably implement a scrolling engine of some kind, be it with tilemaps or superbitmaps or whatever.
I think 2D games are great. They are simple to control and navigate and they don't overstimulate the senses with too much movement. Moving in 3D tends to be overwhelming, I find, and sometimes nauseating.
I think that not only is there plenty of `market` left for 2D games, but also that they will continue to go strong for the indefinite future. Even if a 2D game is now more of a `sub-genre` in gaming, it's still going to stick around. There's also some very interesting things you can do in 2D which you stil cannot do fast enough in 3D and won't be able to for some time.
Some extra functionality you might want to consider these days for 2D is being able to zoom and rotate stuff as well. Max2D handles it pretty good because OpenGL/DX can draw a rotated texture just as easily as an aligned one. But doing your own zoom/rotate routine is a bit more complicated. I guess it depends on what kind of an engine you are going to make as to what functionality you will need but it definitely helps to be able to rotate/zoom in realtime than to have to try to implement that as pre-rendered.
Also particle engines seem to be all the rage these days, something to consider. Plus the coming interest in more advanced physics and simulation of materials.
I'd say that you need to have all the basics in there, you need to be able to blit stuff and preferably in several different modes which should include Replace, Add, Subtract, Color (mask is drawn as a color), maybe also an Alpha Blend, some kind of Masked blit, etc. The one big difference with 2D these days compared to how it used to be is that you're probably going to work with 32-bit color data rather than 8-bit. Working in true-color makes certain things obsolete and introduces certain other things.
You'll also need some drawing routines - again the basics are rectangles, boxes, lines, plots, and you might branch out into ellipses, polygons, floodfill, splines, etc. I'm probably going to need all of those in my game.
Your 2d stuff also needs to be sufficient to allow you to probably implement a scrolling engine of some kind, be it with tilemaps or superbitmaps or whatever.
I think 2D games are great. They are simple to control and navigate and they don't overstimulate the senses with too much movement. Moving in 3D tends to be overwhelming, I find, and sometimes nauseating.
I think that not only is there plenty of `market` left for 2D games, but also that they will continue to go strong for the indefinite future. Even if a 2D game is now more of a `sub-genre` in gaming, it's still going to stick around. There's also some very interesting things you can do in 2D which you stil cannot do fast enough in 3D and won't be able to for some time.
Some extra functionality you might want to consider these days for 2D is being able to zoom and rotate stuff as well. Max2D handles it pretty good because OpenGL/DX can draw a rotated texture just as easily as an aligned one. But doing your own zoom/rotate routine is a bit more complicated. I guess it depends on what kind of an engine you are going to make as to what functionality you will need but it definitely helps to be able to rotate/zoom in realtime than to have to try to implement that as pre-rendered.
Also particle engines seem to be all the rage these days, something to consider. Plus the coming interest in more advanced physics and simulation of materials.