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: bet your gay 2006-04-26 14:08

lol fag

Name: Anonymous 2006-04-26 14:32

You had me going for a while, up until you mentioned Java.  I'm now convinced that this thread is a joke on several levels.

Name: Anonymous 2006-04-26 14:49

highly complex systems (up to 4000 lines of code)
Uh. 4000 is pretty damn small FYI.

Name: Anonymous 2006-04-26 14:54

Yeah... lol @ 4000 lines !

Name: Anonymous 2006-04-26 15:18

Lol. Good job. You got for the first paragraph, I was even feeling pity and had written this:

Uh... If this is not a troll I'd like to let you know of something, not to be an asshole or anything, but you should know this. 4000 is the limit between small and medium. A large/complex project is usually 20K-50K lines of code. I'm maintaining a 200K+ lines system among other things at work. The insane Windows 2000 codebase is about 40 million lines.

Name: Anonymous 2006-04-26 16:16

4000 lines was enough for minix3.org

Name: Anonymous 2006-04-26 16:24

Just too funny, I HAD to reply with a semi-seriously.
lol @ 4000 lines
lol @ java
lol @ your cutting-edge tech. You do know that effects in movies may take ages to render! Games need to be realtime, doh!
lol @ people not having the right preperation. Looks like you don't either mate. Besides, theres no way you could compete with id or valve, especially from the sound of your post. And the fact you're asking this on 4chan. heh
Have you ever tried writing a game engine before? I have and can tell you it's no easy task.
ROFL @ "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"
I have decent knowledge of C++, C and some x86 assembly mechanisms, but I still won't claim that I can produce a high performance engine. Especially not using Java!!
DirectX vs OpenGL... search google. OpenGL is a graphics API, DirectX does graphics, sound, input... If you don't know what both of these are, then you are NOT ready to make any sort of large game engine. lol

"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)."
lol! How are *YOU* going to be able to draw stuff faster than a  graphics card!? Besides, how would you expect to produce faster/better hardware interfacing code than the engineers at nVidia and ATI..? You know, the guys who know everything about the hardware and how it works.

roflmaool!!!

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

Name: Anonymous 2006-04-26 18:15

>>9
fale

Name: Anonymous 2006-04-26 20:15

You can access the framebuffer in directx.
You could also render to a texture and then map that to the screen.
Also, you are not going to get much performance if you are going to render each pixel by hand, in software.
If anything, you could do it iusing pixel shaders.
I do not believe you have done enough research and I personally doubt you're programming experience.

Name: Anonymous 2006-04-26 20:16

it is 4chan afterall ;)

Name: Anonymous 2006-04-26 20:34

>>11
This Anonymous still hasn't realized this is a joke.

Name: Anonymous 2006-04-26 21:05

You sure did put quite a lot of time into this joke. *Applause*

Name: Anonymous 2006-04-26 21:10 (sage)

This attempt at comedy fails to deliver.

“I tried to see things from his point of view, but I couldn't fit my head up his arsehole too.”

Name: Anonymous 2006-04-26 21:55 (sage)

>>15
Truth

Name: Anonymous 2006-04-26 22:25

Im looking for a bento box, it cant be pinku (thats japanese for next-gen engine) or any girl color. It has to be
of 2 or more kotoba (thats japanese for 4000 lines of code) and has be be chibi (Java) sized. And
has to be really kawaii (glDrawPixels). Also It has to be about 10-20 bux. And you have to post pics of it
first (i want to make shure it's kawaii [glDrawPixels]). And it would be nice if it came with matching
chopstick holder (WITH chopsticks). OH! and it CANNOT have any cartoon pictures, or be made
out of plastic. It has to be made of ceramic, or something like that. Also it would be nice if it was
made in japan. and not in china or corea (mainly tetris clones) or whatever. I have found a bento box similar to
the one im describing in e-bay, but it was 1 kotoba, and i dont want my gohan (cutting-edge) to touch my
other things (it can get wet and i would not like that, plus 2 compartments looks more kawaii)

Name: Anonymous 2006-04-26 23:00

A. he's trolled the fuck out you
B. Your lack of experience is showing 200KLOC IS HUGE CODE LOL GTFO.

Name: Anonymous 2006-04-27 3:12

>>17
I can't remember if that was Lounge or VIP

Name: Anonymous 2006-04-27 3:22

>>19

I think USENET, late 90s.

Name: Anonymous 2006-04-27 5:05

Source, a failed GameDev legendary thread: http://www.gamedev.net/community/forums/topic.asp?topic_id=389701

Name: Anonymous 2006-04-27 6:48

>>17
This starts to deliver, a little..

Name: Anonymous 2006-04-27 9:15 (sage)

>>4
It's Java, 4000 lines of Java is pretty close to unmaintainable :P

Name: Anonymous 2006-04-27 9:17 (sage)

Let's not forget about all the XML Progr^H^H^H^H^H"Configuration"!

Name: Anonymous 2006-04-27 15:11

4K lines of Java is a huge achievement!

Name: Anonymous 2006-04-27 18:48

You actually got to write four fucking thousand lines of Java without quitting your job? I admire you.

Name: Anonymous 2006-04-27 21:46

"highly complex systems (up to 4000 lines of code"
HAHA! That's nothing dude!

"I was sadden in realizing how outdated the technology of today games is"
Don't forget that a sucessful game has to hit diferent budgets. But yes there are several poor examples that I know... You should monitor the disk access of the America's Army game, it's a joke!

I recomend DirectX because has a very easy API, and it's integration with Windows drivers makes it easier to achieve better results. OpenGL is more portable and better for opensource programming, but heh! Where is the linux gaming today? Well I have some good games running on linux but have poor support to it, but it's still a good adventure!

You SHOULDN'T access graphics card memory, and it's a driver's work. So you would have to write diferent code for diferent cards. A shit heh? If you want 2d access you should try SDL library or Direct Draw from DirectX package, both have prety good performance. Also explore the new pixel shader features present in almost every graphic card (not mine).

Check out game programming sites
http://www.devmaster.net/
http://nehe.gamedev.net/

Name: Anonymous 2006-04-28 2:12 (sage)

>>27 GB2/under the bridge(t)/

Then again, I think I can do that engine in 200LOC of PHP!

Name: Anonymous 2008-06-17 16:10

bampu pantsu, because it was lonely without the MP3-beating compression to keep it company.

Name: Anonymous 2008-06-17 16:18

>>29
Hm, I must have posted this one as well, but I cannot really remember about it...

Name: Anonymous 2008-06-17 16:35

>>25
Consider, if you will Opening a simple filehandle in java

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

/*Now the same but with error checking:*/

BufferedReader br = null;
InputStreamReader isr = null;

try
{
  isr = new InputStreamReader(System.in);
  if( isr != null )
    br = new BufferedReader(isr);
}
catch (InputStreamException ise)
{
  //Handle this shit
}
catch (BufferFullException bfr)
{
  //Handle that shit
}
catch (Exception e)
{
  //Handle some more shit
}
return br;

you would reach 4000 lines easy if you just handle every exception thrown.

Name: Anonymous 2008-06-17 16:43

if( isr != null )

Please tell me that this can't happen...

Name: Anonymous 2008-06-17 16:51

>>32

Could there ever be a case when there is no standard input?
I dunno....
maybe if you don't have the appropriate access rights to STDIN

Name: Anonymous 2008-06-17 17:00

>>33
You always have, it's a file descriptor, not file.
At least in C.

Name: Anonymous 2008-06-17 17:02

>>33
Yes, but in that case an exception would be thrown. It would be ludicrous for isr to be null immediately after calling new.

Name: Anonymous 2008-06-17 17:34

lol I posted in that gamedev thread back in 2006. does that make me a faggot?

Name: Anonymous 2008-06-17 17:48

I lolled hard

Name: Anonymous 2008-06-17 18:21

>>36
Pouya?

Name: Anonymous 2008-06-17 18:32

If everyone in game programming used STL data structures like Ron Penton, we wouldn't have shitty games like we do now.

Name: Anonymous 2008-06-17 18:40

>>39
Its much better to invent new data structures that work best with your game than use shitty old STL data structures.

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