Remember guys, any idea that gets implemented comes with an opportunity cost. All the bells and whistles being added to SDL 1.3 is holding up a stable release with OpenGL 3+ functionality. Currently I’m using freeGLUT for OpenGL 3. freeGLUT.
I study work flow management and I found the GTD (http://www.amazon.com/Getting-Things-Done-Stress-Free-Productivity/dp/0142000280) method to be one of the more effective methods. Programmers tend to like it because it essentially boils down business to a recursive algorithm.
According to the GTD Method: the steps to successful planning are:
-Defining Purpose
-Defining what success looks like
-Brainstorming
-Organizing
-Identifying what needs to get done
Here’s my two cents regarding SDL 2.0:
-Defining Purpose
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.
I think SDL’s goal moving forward is to be the go to library when you want to do multiplatform games and simulations development. When companies like EA or Activision want to make multiple ports, SDL should be the clear choice
-Outcome envisioning
How would SDL 2.0 achieve what’s mentioned above?
-The APIs should do one thing really well as opposed to doing many things poorly. This Unix philosophy has served me well.
-Let’s not reinvent the wheel, only make it multiplatform.
-A new focus on being multiplatform as opposed to cross platform. Code once compile anywhere is great, but what if I want to support iOS achievements for the iPad version of my game? SDL 2.0 should allow us to take advantage of our platform’s native features
-OpenGL users have always wanted a DirectX the same way Direct3D users have. SDL being the ultimate OGL support library will ensure it’s relevance in the future.
-Brainstorming
Key to brainstorming is go for quantity not quality. Many “stupid” ideas have turned out to be great (“A free encyclopedia that’s maintained by people that aren’t paid? No way that’ll do better than Encarta”). So let’s see what we have on the table (plus a few of my own):
-OGL/D3D wrapper
-Primitive geometry
-Abolishing software rendering
-Depth buffer
-OpenGL features
I’m currently doing some major OGL development and it’s a pain having to lug around 8 different libraries. Having an SDL_OGL extension library to facilitate OpenGL development that does what D3DX does and more will make SDL of the more influential open source libraries. Some feature I would like to see for SDL_OGL
-A GLEW like functionality that will grab all of the OpenGL function pointers in one call
-SDL_image augmentations to allow for easier texture generation. This will mean not having to add DevIL to my project. (Nice library, but I would like few dlls)
-SDL_TTF augmentations to allow for easier bitmap font textures IE
Code:
TTF_GetFloorPlanTexture( font, pixels, clipRects, &clipRectCount )
This’ll save me having to touch TrueType directly
-Built in model parsers for popular formats like obj and collada
-Built in functionality to load text file shaders
-Some stock GLSL/HLSL shaders to get up an running fast
-Filesystem access
For a previous game a I made, I had each user have their own their own directory save files. I had to use boost to traverse and create/delete directories. Having this integrated into SDL would have made things much nicer.
-Matrix/vector library
If we’re going to have primitives, having a matrix library to transform the geometry is a must have for games and physics simulations. This’ll also save me having to link glmatrix.
-Installation library
A set of functions that will make installing applications easier IE getting the program/my documents path.
-Organizing
This the part where we take all of the ideas and evaluate them to see what we can do with them
-Identifying what needs to get done
From here we can create a todo list and execute
You’ll have to excuse me from coming out of nowhere and appointing myself scrum master. I just wanted to share a management strategy that always helped with my projects and to throw in some of my ideas for what I would like in my SDL apps.