Advertisement

Few questions from starter(ish)

Started by September 26, 2013 10:27 AM
4 comments, last by ram090 11 years, 4 months ago

Hi people, hopefully someone will be good enough to answer some of these.

1) Why did graphics go from 2D to 3D back in the days of Doom, was it because DirectX and Opengl were released in 1995 and 1992 respectively?

2) What exactly is a graphics library like Opengl, is it written in C/C++,

3) Is the Doom 3 source code still relevant today - in the sense that it's up with the latest graphics, physics, Ai etc.

4) What's to stop using the Doom 3 source to produce a game, I understand even that would be a mammoth task, but you could do it?

5) taking GTA 5 for example, do you think one programmer wrote the whole rendering engine in the same way as John Carmack wrote the D3 renderer himself?

6) Why have graphics improved(better eye candy etc) over the years, is it because of better hardware or more functionality from the graphical APIs such as Direct3D etc?

TIA for any help.

1) Why did graphics go from 2D to 3D back in the days of Doom, was it because DirectX and Opengl were released in 1995 and 1992 respectively?

No. Doom was running in DOS. That was before DirectX, that was before even WinG, that was even before Windows was an OS you would consider for a game. OpenGL had not role on PCs during that time. That said, Doom was not 3D in the sense we would understand it now. It was extremely 2D with some very clever tricks to make it look 3D.

2) What exactly is a graphics library like Opengl, is it written in C/C++,

OpenGL is not a graphics library, it's an API to talk to the graphics card (or maybe a software rasterizer). You could build a graphics library on top of OpenGL. While most OpenGL implementations will be written in C/C++/Assembler you cannot really know how a specific implementation is written nor should you care.

6) Why have graphics improved(better eye candy etc) over the years, is it because of better hardware or more functionality from the graphical APIs such as Direct3D etc?

Graphic APIs advance when the hardware becomes capable of new things (and people have stopped arguing). For example, there would have been no point to add shader programs to either OpenGL or DirectX back in, say, 1998. Hardware back then was happy when it could do a decent job of the fixed function pipeline. Defining an API for something that no one was yet sure how to create in hardware and how exactly it would look then would have been a fool's errand.
Nowadays new drivers can often expose new functionality even on older graphics cards but there are always limits where new functionality is simply impossible for that particular piece of hardware or just not realistic to use in a real world application.
Advertisement


[quote name='ram090' timestamp='1380191238' post='5096920']
2) What exactly is a graphics library like Opengl, is it written in C/C++,
[/quote]
OpenGL is not a graphics library, it's an API to talk to the graphics card (or maybe a software rasterizer). You could build a graphics library on top of OpenGL. While most OpenGL implementations will be written in C/C++/Assembler you cannot really know how a specific implementation is written nor should you care.

Well, OpenGL is the Open Graphics Library, so it's actually down to how you define that. It is a library, but of course it's also, more importantly, an API...

Many things can be called libraries, regardless of them being a specification or an implementation.

(Also, sorry for replying without anything constructive.)


Why have graphics improved(better eye candy etc) over the years, is it because of better hardware or more functionality from the graphical APIs such as Direct3D etc?

Almost everything in hardware, software, and coding libraries has improved greatly in the last ten years. It really is a matter of synergy because all the improvements in the various areas have resulted in the fantastic "eye candy" that you see in most games today. More than anything else, I feel, the advances in the sophistication of game engines has directed the leading work in the industry, especially private custom made game engines at the forefront, for examples the latest ones behind Crysis, Call of Duty, Assassin's Creed, and Battlefield series of games. Granted that their older versions of their game engines are usually made available to indy developers, we see them moving the whole industry to more complex and effective game development.

Game engines allow highly skilled specialists in every category within a team to create, produce, and publish the highest quality and most innovative games in the industry. These game development organizations depend on a framework, a sort of skeleton of coding libraries, to put more creative power into the hands of the game feature programmers and artists on the end-user side of development. Included in their organization is integrated Version Control (Source Control) which enables team leaders and company officials to make accurate assessments in both strategic and tactical decisions about the evolution of coding from their team. Game engines either used under license from third party game engine developers or game engines created in-house are most important to the astonishing advances in game development, the only way to facilitate the greatest synergy.

Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

To be pedantic, OpenGL is a specification. It is up to hardware manufacturers (NVIDIA / AMD) to create their own library implementations. There are also software implementations (Mesa) which some open-source projects use as a base to create their own implementations which also make use of dedicated hardware.

This kind of helps answer question 6 in that because the specification has grown, it has also become more flexible (and generic), allowing for new ways to use the hardware which doesn't necessarily need to be burnt into the chip (unlike the old fixed function pipeline). This means cooler effects are easier to achieve.

Didn't Doom 3 have lots of renderers for all the different platforms it ran on? If Carmack did write them all, then that certainly is quite a feat. In general though I believe the renderers will be written by a (relatively small) highly skilled group of programmers within rockstar (unless they outsourced the engine to another company like they did with Bully (scholarship edition) which used a version of Gamebryo.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

Thanks for the excellent answers.

Can anyone recommend this book?

'Introduction to 3D Game Programming with DirectX 11' - Frank D. Luna

This topic is closed to new replies.

Advertisement