Is it just me or does it seem like very few games are being made with openGL. It just seems to me that for an aspiring game developer it almost seems like its not worth it to learn it anymore. Mabey its time to learn directx. What do you guys think.
Learn both OpenGL and Direct3D. No need to necessarily be an expert of both, but knowing enough of both to be competent would likely be the best approach and give you the widest range of potential employers.
I’ve been seeing more games giving the option to render using either OpenGL or Direct3D. I have absoultely no idea what API they’re written in, though.
I’m go for OpenGL, because in my humble opinion, the only thing DirectX really accomplishes is make your program specific to Windoze. It’s not as difficult as most people think it is to write a game for multiple operating systems, and from what I’ve seen, OpenGL is actually gaining in popularity.
Any serious game has OpenGL support. Personally, I find most GL rasterizers better/more stable/better visual quality than the DirectX ones, so I always select OpenGL if there is an option.
The portability aspect clearly speaks for OpenGL. Linux and Mac OS X are not as weak as MS would like, and I also think that consoles are more likely to support OpenGL in the future (only XBox will have DirectX).
Often you don’t know what API agame is using.
Many games start from a major engine released with one big title instead of writing their own so several games end up using the same underlying code, this is more than just graphics of course, an engine like this has sound, file loaders, physics, collision, AI and even modelling or scene construction & shading packages etc. Some of the biggest engines are those produced by id software, and those are all OpenGL only. Another engine that springs to mind is the ageing Half Life engine and it supports OpenGL. Another major set of engines are the various Unreal engines and the latest of those supports OpenGL as a configuration option.
Many other games are built on 3rd party middlewear or are written to low level interfaces (not OpenGL or D3D) on other platforms like consoles. The best advice has always been to cut your teeth on OpenGL, simply because it’s better documented, less obfuscated and Open. A lot of the smarts in writing graphics code in state engines (which the hardware is) is not about entering lines of code, it’s about algorithmic tricks. The underlying hardware and way it is called does not fundamentally change between APIs, much of the skill aquired is portable.
I don’t think OpenGL is in worse shape now than before. It’s holding it’s own despite rumours of it’s demise. I think when the Doom3 engine arrives you’ll see another generation of great OpenGL games to rival the current batch of Quake3 based titles.
[This message has been edited by dorbie (edited 01-03-2003).]
(Sorry ppl I registered forever ago and I dont feel like getting my password right now…)
I would say that very often a game is not made with a certain language or API because it is the BEST one to use, it might just be that it is the most popular, or it is all that the programmers know. So, very few opengl games?! Hmm, I wonder why. Could it be because M$ dominates the market, therefore making confused, misled developers (like you?) believe they NEED to use directX to be “current”
Don’t waste your time learning DX unless you are really really really bored and you enjoy being confused and frustrated. To me its not worth it… even to make a game for Xbox, because Xbox is so lame compared to Ps2, and everyone knows it.
" Learn both OpenGL and Direct3D…"
Thats what John Carmack said isnt it…? Bleh
That might be good advice, if you A) want to work for someone else, who will B) be making Xbox games. I dont see any need to look at DirectX code, there are plenty of DX wrappers and alternatives which are a lot easier to use than straight DX if you want to write a game that runs in windows (like say, SDL…)
most of them are portable to non M$ operating systems like Mac and Linux. And these days, portability IS a factor when it comes to sales… because we all know not everyone in the world uses windows…
My advice is to seperate yourself as much as possible from M$ products… Its almost WRONG to code for windows only, its like you are working as a programmer for Microsoft, but not getting paid by them!
Oh by the way, once you finally do learn the latest dX, they will release a new one and give you more useless crap to study, which I think is yet another scam to keep you subscribed to their M$DN…
my 2 cents
You may be right but just because every game doesn’t use OpenGL doesn’t mean that OpenGL isn’t a viable solution. John Carmack has proven beyond all shadow of a doubt that OpenGL can be used to produce high quality, robust graphically intense games. His shaders alone speak volumes for the ability of OpenGL. Could his shader engine be re-written to work with DirectX? Of course but the very fact that it works with OpenGL and works well proves that OpenGL is a viable solution for game production.
FYI: Xbox has a graphics card that rivals most peoples computers (its a geforce 3 with some functions of 4) with a p3 733mhz processor (says so right on the box). PS2 doesnt even come close to that.
At least in America, dunno about anywhere else
[This message has been edited by chxfryer (edited 01-05-2003).]
Xbox is actualy a geforce 2 type GPU( at least the first versions were)T&L, but does not have any of the Geforce 3 functions. The CPU is a 866mhz PIII as well. That is not to say Microshaft did’nt change the configuration after they had already producded a few thousand, but the original xbox that shipped used a Geforce 2 type GPU. Open your xbox up and take a look.
Plus if you ask me I like dreamcast the best still I know all the other consoles supposedly surpass it, but I havent seen ethier of the 3 new consoles meet Resident Evil, Code veronica’s graphics and all the up close and personal face shots just show off what I am talking about, well… one exception, gamecube’s graphics in RE 1 are just plain beautiful.
[This message has been edited by Outlander (edited 01-04-2003).]
For an “aspiring game programmer”, OpenGL is still the better choice, simply because the support channels for it are so much more abundant. But it doesn’t really matter. If you get some impressive coding under your belt and produce some decent 3d demo progs, it won’t really matter what API you used. And, all things considered, if you’ve got a foundation in 3d programmming from openGL, moving to directX is going to be pretty simple: much of d3d is simply openGL progging with different function names, although it does take some reading to get the performance up to par. Bottom line: Learn to program 3d in whatever makes you most comfortable: any decent game company will train you to use their software if you’ve got the skills to learn it.
Outlander, actually the Xbox uses the NVIDIA NV2A gpu. And that is among the Geforce 3 generation of gpus.
[This message has been edited by DFrey (edited 01-04-2003).]
What most TOP game engines do is have an abstraction layer for rendering purposes, and this layer is written for BOTH OpenGL and DirectX. Like take Warcraft3, Im pretty sure that it was coded for BOTH OGL and D3D, using an abstraction layer.
Neverwinter nights uses OGL, so do all other Bioware games, the huge amounts of games based on id engines use OGL, there are alot more. There is a page actually on www.opengl.org that has a pretty up to date list of prominent games that use OpenGL. Sorry, dont have a link to it right now.
Know this as well, if your aspiring to be a game developer, which I am, 99% of the code of a game is non API calls, and maybe 1% of the code or probably less is API calls like glEnable() etc.