Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

My next gen engine

Name: nedunlock 2006-04-26 13:11

Hello everybody.

Let me present myself first. I am an engineer currently working on databases for a well established company in the UK. Given my job, I have years or experience in programming highly complex systems (up to 4000 lines of code, a big number I guess among people in these forums). I have programmed so far in Java, but I am currently reading some books on C++ in order to gain confidence with this language and further improve my programming skills.

I have recently become interested in videogames programming. Given my engineering background, I scientifically researchead information on the current state-of-the-art technology. At the same time, I extended my research range to the techniques used in the movie industry to recreate those stunning visual effects we can enjoy in movies today (such as subdivision surfaces, heard about that?). After this research, I was sadden in realizing how outdated the technology of today games is, despite their poor attempts to market it as "cutting-edge". Graphic effects in movies are undoubtly of superior quality despite being created on machines that roughly offer the same power as the average consumer machine. I put some thought into this problem and I come to the conclusion that videogames programmers are responsible for this quality gap between games and movies. The typical videogame programmer has poor knowledge in advanced fields such as software engineering, garbage collection, etc, whose concepts instead are necessary for programming advanced technologies on complex systems. The typical videogame programmer is a figure that would find the right place in the early 90's, when programming was a mere work of hacking code until seemily correct results were obtained. This kind of approach negatively affects the quality of commercial games but also of independent and amateour games, including those made by people in these forums (mainly tetris clones). Simply, people do not have the right preparation to tackle more complex products.

As I am in possess of such knowledge, I am convinced of being in the position to create an engine featuring a visual quality comparable to that found in the movie industry. Of course I am realistic person and I've realized that this project of mine will take a large part of my spare time, possibly some months. But that is the same time that average people spend in realizing the aforementioned tetris clones, so I certainly cannot complain. I also promise that my engine will offer high performance on the current consumer machines because I have a deep knowledge of all Java mechanisms and of its interaction with the processor. Eventually I could program some critical sections of the engine in C++, as it supposedly produces faster machine code (although I am bit sceptical about this, I would like to test that personally first).

I am writing to this forum because there are a couple of issues I have not yet found a solution to.
I found that two major APIs are used in current games: DirectX and OpenGL. You probably already know about them. As I don't have direct experience with games programming so far, what are the pros and cons of both and which one you'd ultimately suggest for my cutting-edge (really cutting this time) engine?

Second, for performance reasons I will need to bypass the API of choice in critical situations and write directly to the video memory using my own routines for drawing, texturing and processing polygons (high-order surfaces will be supported of course). I have not found in the APIs documentation a way to have direct access to the graphic card memory. What is the solution?

Please only professional developers answer my question.

Thank you for your help.

Ned Unlock

Name: nedunlock 2006-04-26 17:21

Hello everyone,

Thank you to those who tried to answer my questions properly. To the rest, please do understand, I have done a lot more programming than most of you, and I am much more experienced than most of you. That is why I said I only wanted opinions from professional developers.

I think I have decided to use OpenGl, as after a lot of research, I have found that you can use glDrawPixels to draw individual pixels, or blocks of pixels. (http//www.opengl/... This is essential as I have thought of some very unique methods which require rendering directly into a frame buffer. DirectX doesn't seem to have this feature; maybe Microsoft will include it in DirectX10. I have sent them an email requesting this feature... I'll keep you posted!

I find it hard to believe the so called 'standard' API on windows lacks such simple features like that; once again reinforcing my theory about games lagging so much behind movies.

Please stop telling me about how movies are rendered using supercomputers, etc. I know how these work (I have done a lot of research). Did you know NVidia (one of the major graphics card manufacturers) have shown the final fantasy movie running in real time (60fps+) on thier graphics cards?

Please try and answer my questions, and refrain from posting if you are just going to make fun.

Thank you.

Ned Unlock

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List