Thursday, December 15, 2011

Pit-viper initiation



==Win32 OpenGL gaming API (tentatively called pit viper)==

* Opengl 1.1 2D rendering
** Need to work on screen sampling

* Opengl 2.1 2D rendering
** Fragment and vertex shaders load, compile, and execute. Look like complete garbage.
** All my model-view transforms are done via a custom matrix class. Could do final transformation in software or move to a vertex shader
** Might have a library of predefined shaders. (sepia, warp, blur, resample, etc)
** Support for rendering to an image
** Support for Texture rectangles, not just POW2 textures.

** Need to find a way to do some font rendering

* Sound
** Have been playing with the win32 waveOut functions.
** Sound is a very complicated beast.
** Will have support for creating samples
** Will have native support for playing back wav audio.
** Support for sound streaming.

* 3D drawing
** Much of the 3D code is already available via ManaGum and Unicorn21 projects. Should be easy to import.
** Consider using modified original quake .MAP format for worlds. Brush collision detection is super easy.
** Consider using original quake MDL format for models, in addition to an XML interpretation of said format http://tfc.duke.free.fr/coding/mdl-specs-en.html
** Geometry streaming engine, for working with really large levels.
** Block terrain generation (See pyboxel for more info.
** Batch rendering similar to existing 2D components.
** Point sprites as well
** Lighting To Be Determined


* Input handling
** Will be done using the raw-input API.
** Will expose keyboard, mouse, and game controllers
** Will automatically provide support for 2 button joysticks. 


* Physics to be determined, or separate project.

* Networking to be determined

* Entity framework to be determined