OpenGL ..... Fun or Frustration???
Posted: Sun Sep 27, 2009 12:48 pm
Time to go on a little journey. The same sort of journey like "Alice in Wonderland". In this case though maybe it may be closer to "Siddy in Funnyland".
OK, what do we know?
OpenGL should be a great rendering system that will allow games to be written for all 3 of the major operating systems. Windows, Apple (OS X), Linux.
How easy it will be to make a program that will run on all 3 platforms is yet to be determined. We .... that is ME ... is starting with virtually no background experience, just some funny vague notions that it should all be possible.
The first thing to have clear is that OpenGL is just the rendering part of a program. (The part that puts the graphics onto the screen, provided there is an OpenGL driver installed on a machine for the operating system for that machine).
So far so good. There are OpenGL drivers available for all 3 ... Windows, Apple (OS X), Linux.
Now for the difficult part. Are there counterpart programs for things like networking, I/O (like mouse, keyboard, etc), sound.
The next most important library would be the one that should allow " I/O (like mouse, keyboard, etc)" part to work.
There is a library called "glut" (GL Utility Toolkit). It is a library that acts as a standard interface library for " I/O (like mouse, keyboard, etc)". Using this library with the OpenGL library will allow us to write code that is generic for putting stuff on the screen, as well as handling input and output operations for the player. It appears that a 3rd library called "GLU" (GL Utility) is a collection of utility functions that is usually also coupled with the above 2 to make things a lot easier, so we will also have to include it with them.
It also appears that there is a sound library called "OpenAL" that should be fine for sound. We will look into it at a later time. No point in burying ourselves with too many tasks in the beginning phase.
As far as a generic networking library is concerned ... well I still don't know. This can also be left for a later date.
This is all starting to look a lot more complex than I had thought. Keeping everything limited to just the Microsoft Windows operating system would be much easier .... heck ... if we are going to challenge ourselves, then lets go the whole hog, and see how far we get in creating truly generic code for as many Operating Systems as possible. After all, the idea is to learn something along the way.
Now we all know how many versions of DirectX there are and how many of these have depreciated functionality, as well as totally different ways of doing things .... HMMM!!! there are a number of revisions/versions of OpenGL/GLU/GLUT out there also.
The next task will be to find a set of these libraries that will work with each other and are as late a revision as practically possible.
We know that the latest release of OpenGL is Ver 3.2, but to maintain compatibility with as much video card hardware as possible, it may be bettter to start with Ver 2.0 or there abouts ... you know, cards that are of the DX9 capability, rather than DX10 capable.
Hopefully next post should have a conclusion of the library revisions that have been decided upon, and a quick trial to see if they work together and produce something on a screen.
Time to do some more serious research on the internet.
OK, what do we know?
OpenGL should be a great rendering system that will allow games to be written for all 3 of the major operating systems. Windows, Apple (OS X), Linux.
How easy it will be to make a program that will run on all 3 platforms is yet to be determined. We .... that is ME ... is starting with virtually no background experience, just some funny vague notions that it should all be possible.
The first thing to have clear is that OpenGL is just the rendering part of a program. (The part that puts the graphics onto the screen, provided there is an OpenGL driver installed on a machine for the operating system for that machine).
So far so good. There are OpenGL drivers available for all 3 ... Windows, Apple (OS X), Linux.
Now for the difficult part. Are there counterpart programs for things like networking, I/O (like mouse, keyboard, etc), sound.
The next most important library would be the one that should allow " I/O (like mouse, keyboard, etc)" part to work.
There is a library called "glut" (GL Utility Toolkit). It is a library that acts as a standard interface library for " I/O (like mouse, keyboard, etc)". Using this library with the OpenGL library will allow us to write code that is generic for putting stuff on the screen, as well as handling input and output operations for the player. It appears that a 3rd library called "GLU" (GL Utility) is a collection of utility functions that is usually also coupled with the above 2 to make things a lot easier, so we will also have to include it with them.
It also appears that there is a sound library called "OpenAL" that should be fine for sound. We will look into it at a later time. No point in burying ourselves with too many tasks in the beginning phase.
As far as a generic networking library is concerned ... well I still don't know. This can also be left for a later date.
This is all starting to look a lot more complex than I had thought. Keeping everything limited to just the Microsoft Windows operating system would be much easier .... heck ... if we are going to challenge ourselves, then lets go the whole hog, and see how far we get in creating truly generic code for as many Operating Systems as possible. After all, the idea is to learn something along the way.
Now we all know how many versions of DirectX there are and how many of these have depreciated functionality, as well as totally different ways of doing things .... HMMM!!! there are a number of revisions/versions of OpenGL/GLU/GLUT out there also.
The next task will be to find a set of these libraries that will work with each other and are as late a revision as practically possible.
We know that the latest release of OpenGL is Ver 3.2, but to maintain compatibility with as much video card hardware as possible, it may be bettter to start with Ver 2.0 or there abouts ... you know, cards that are of the DX9 capability, rather than DX10 capable.
Hopefully next post should have a conclusion of the library revisions that have been decided upon, and a quick trial to see if they work together and produce something on a screen.
Time to do some more serious research on the internet.