Its finally the weekend. I'm going home in a couple of hours and not coming back until Monday morning, so I've been working hard to get all my work done. And oh crap, I've forgotten to deposit my math homework in the professor's box. That's another 30 minutes of walking down the drain >:(
Anyway, I stayed up late last night having a fun run-in with OpenGL. I swear, why would anyone not want to reset the projection matrix before setting an orthographic projection? GRR. They could have at least mentioned that little undocumented "feature" in the Red Book. GRR.
So I'm past that little impasse.
I've set up my fillRect and blitTexture calls so that they are all batched together in a vector and rendered (in immediate mode) within a single glBegin/glEnd block. Whoo.
I had originally wanted to shove them all into a vertex array, but the need to bind different textures to render with has rendered this impossible. LOL PUN.
I will, however, be developing an entity/game object/something system which utilizes either vertex array or vertex buffer objects to maximize performance. I can get away with immediate mode because the only thing that should be calling those functions are GUI render calls, and there shouldn't be overly many of those. If it proves to be a problem, I can write 3D-adapter specific GUI controls which don't rely on them.
That said, I've been thinking a lot about the gameplay of what I have tenatively dubbed "Tank Game".
One idea is to have it handle like HopeDagger's Skirmish Online, except with tanks - control a single tank with WASD controls, essentially, and have a point-and-click mouse based firing system. Turret movement will be independant of tank movement - moving and firing is an absolute must.
The other idea is to have it handle more like an RTS, where you control the tanks solely with the mouse and move them around and stuff. This has the added benefit of being able to control AN ARMY OF TANKS! OMG. Which is definitely awesomeness.
I think the ideal game would combine both control approaches - the tanks can be controlled with the mouse, but when selecting an individual tank you can input orders with the keyboard and control it directly.
I don't want to drown myself quite yet, so after I finish the OpenGL adapter (which is the first and foremost priority) all I want to do is start implementing this basic framework. Then and only then will I even start to worry about the gameplay specifics. Rah.
But in any case, there's going to be a lot of decals and particle effects [wink]