31 replies to this topic

### #1Zyus

New Member

• Members
• 8 posts

Posted 18 August 2009 - 07:01 PM

For the first time hear I am here , I want to say "HY ALL" and I salute all of you.

I am a student at a school in romania, my level of programming algorithms in the field I can say it is at an advanced level although I have never made a game using SDK/OpenGl/Direct3D/etc. although I heard a lot about them.

I want to make my license for the university in a "3D project ", if you ask why now I will have to answer as Luffy from "One Piece" : " BECAUSE !", funny but the truth is that from now on I want to know all about this interesting and captiveithing " WORLD " not only for the license but as for the future wen i wood like to working in a company that develops games / animation / etc.

The problem is that I want to learn to make a 3D graphics engine to learn to use graphics card drivers and more.

So what I want from you all is advice and examples for how to begin to build a graphics engine from 0 .

Please tel me what i need after i installd VC++ 8.0 and SDK.

### #2imerso

Senior Member

• Members
• 431 posts
• LocationBrasil

Posted 18 August 2009 - 07:54 PM

first thing a beginner needs, and probably the MAIN thing he/she needs is the instinct of heavy, persistent and constant researching.

DevMaster Staff

• Moderators
• 1716 posts

Posted 18 August 2009 - 08:09 PM

Old, but good:
http://www.flipcode....me_Engine.shtml

Try looking at the source code for open-source 3D engines like OGRE, Horde3D, Sauerbraten, or games like Quake. Don't try to understand the nitty-gritty of each line, but rather see the overall code structure. It may be enough to go to docs. Frequent the forums for those packages and ask questions. The developers may answer.

### #4imerso

Senior Member

• Members
• 431 posts
• LocationBrasil

Posted 18 August 2009 - 09:33 PM

http://nehe.gamedev.net (opengl, c++)

you may like to research xna as well:
http://creators.xna.com (xna, direct3d, c#)

### #5Zyus

New Member

• Members
• 8 posts

Posted 19 August 2009 - 09:31 AM

Interesting / exciting ...
But after I read a large majority of the tutorials / info on how to do graphics engines , I have reached a conclusion that it is not what I was thinking it to be ...
I was thinking that OpenGL/XNA/Direct3D will use the files directly as direct 3D shapes with color and ... rather than simple images after transforming each one in "mash" / "map" / etc , not to mention there would be vectors with polygons , im not saying that there not cool and all but its not what i was thinking.
I remember when I first learned how to use the classes from MFC where I found a class that loads super fast image almost instantly, but processing each and every pixel it lasted a long/long/long time.
But when I upload images with my one class it took a lot of time but when I processd each pixel it did not take as long as id did with the other class from MFC and I reached a conclusion: that the class that was loading the files is not itself a class but a DLL and when I started studying the forms of existing DLL members , I realized that that bookstores MFC Classs of them were actually using ASM librarys.
The problem now is this: when you want to make a game of a "high caliber" sorry from my words, what I meant is for example the games that will be realist in 2010/2011 : " Blade and Soul "/" TERA "(Lineage 3 code stolen from NCsoft) /" C9 "/ etc . these games in my opinion I dont think they have the same processing engine of OpenGL/Direct3D although some of there librarys may stile be there meaning that not only they restructured the graphic engine but also the transfer data between "<=> RAM <=> CPU <=> RAM ( 3D Card) <=> CPU (3D Card )<=>" specifying a new type of game that none of as can imagine it.

But I want to learn to program at this level because I have some "interesting" ideas I could create.
Sow what i want is some 1 telling me what i need to do in order to understand game programing at that level meaning reading files and settings up date from disk directly to the RAM of graphics card or normal RAM and using CPU only for algorithms and stuff .

Sorry form my English...

### #6rouncer

Senior Member

• Members
• 2722 posts

Posted 19 August 2009 - 10:27 AM

first thing you do is get a triangle rendering on the screen, once you can handle that you can make a bunch of triangles (which would be a mesh) then make it so the camera cant pass through the triangles (collision detection)

you have to make small demos before you can make a finished game, even tho i probably know you want the game right now, but you have to be patient. You probably are SURE that you can finish a game RIGHT NOW!!!!
But im sorry to say its just not possible first time.

To get good enough to make a real decent game takes years of hardworking self education.

Start with something small, my first game i pulled off a basic fps, but i had troubles getting the character to walk (walking models are harder than cars to get going) and it had tonnes of bugs.

I remember when I put it together I had a basic understanding of how dooms engine worked so I just went from there.

The project was a complete disaster! Im planning on coding much more different now I have a bit more experience.

Im coding my new engine all with interpeted plugins for the ai, and the main infastructure of the engine is just for displaying triangular models, and the plugins make the game behave and make everything animate.

Your first projects cannot be good for anything except educational purposes, no matter how smart you think you are, your probably not smarter than me. ;)

Oh yeh, without artists that are actually fully decent at fine art (im talking real special guys) then your graphics will suck donkey balls.

Just make sure you work this out, engines like crytech are made by guys that might as well be geniuses, making a full engine with all those features is NOT FOR A BEGINNER TO EVEN ATTEMPT.
you used to be able to fit a game on a disk, then you used to be able to fit a game on a cd, then you used to be able to fit a game on a dvd, now you can barely fit one on your harddrive.

DevMaster Staff

• Moderators
• 1716 posts

Posted 19 August 2009 - 12:42 PM

You simply cannot go from not understanding what a game engine is to making, and managing, a "high caliber" 3D MMO by 2010. It just won't happen.

Many, if not all, games are written as multiple layers over either DirectX or OpenGL. For example, a game may be a middleware layer consisting of multiple interacting components and libraries, over OGRE (a 3D rendering library), which itself interacts with DirectX, which itself interacts with lower-level OS functions.

It doesn't mean coding a big game can't happen later, but you are being very unrealistic about the complexity of the task.

You really need to read up on how games are made from a top-level view. Forget DLLs for a couple of days and get the big picture...

### #8Nick

Senior Member

• Members
• 1227 posts

Posted 19 August 2009 - 02:27 PM

If you want to create something with limited time and budget, you have three choices:
- Creating a really simple game from scratch (e.g. tic-tac-toe)
- Creating a simple game using an engine (e.g. a space shooter using Torque)
- Modding an existing game (e.g. turn Unreal into a racing game)

Personally I find creating a mod a rewarding first experience with game development. It involves far less programming than starting from scratch: most things can be done with a scripting language. But you'll be able to create something exciting and you get a lot of insight into game development.

### #9SyntaxError

Valued Member

• Members
• 139 posts

Posted 19 August 2009 - 02:41 PM

If you want to use DirectX I would get:

Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach

or

Introduction to 3D Game Programming with Direct3D 10.0

and work from there. I'm not sure how far you will get but it's a good starting point and you will learn a lot. I'm sure there are equivilently good OpenGL books if that's your focus. In my view it doesn't hurt to try something complex even if you fail becuase at least you get experience doing it.

### #10Zyus

New Member

• Members
• 8 posts

Posted 19 August 2009 - 04:15 PM

I understand what you all are saying about creating a game or treying to do the engine itself .

Question :
1 ) If i want to join the NCSoft company what do i need to do , or a similar company for example thats in MMORPG game developing ?? Although im almost a beginner at this , and i have 1 more year of university " + " i want to do my Master in Game developing and 3D animation . ??

2 ) This is a long project for at list 3 years . I want do create my one Graphics System , what i mean my one OpenGL/Direct3D but different with something of my one ideas , after that i want to do a engine with it . The Question is : Where do i find infos on this mater , and how do i use the RAM / CPU of the Graphics Card ( ATI / NVIDIA /etc. ) directly ??

3 ) This a sort time project . I want to make a game but i do not have any ideas what to do but i need to finis it in less then 6 MONTHS . The Question hear is : Pls give me some ideas on the game and from where do i start coding ??

PS.: ROUNCER : Yes im a bit lazy but im not that stupid neither .

### #11SamuraiCrow

Senior Member

• Members
• 459 posts

Posted 19 August 2009 - 04:54 PM

2) Hardware banging is illegal on most operating systems and the type of code is different from one card to the next. That's why device drivers are used and OpenGL and DirectX are the interfaces to those drivers. One application programming interface for 3d graphics that didn't cach on, Glide, was used by Voodoo graphics cards.

One thing you'll need to know to understand how at least OpenGL works is to download Mesa from http://www.mesa3d.org/ and look at that. You'll need to know really good linear algebra (also known as matrix math).

### #12SyntaxError

Valued Member

• Members
• 139 posts

Posted 19 August 2009 - 05:31 PM

Zyus said:

The Question is : Where do i find infos on this mater , and how do i use the RAM / CPU of the Graphics Card ( ATI / NVIDIA /etc. ) directly ??

I'm sure the information is out there but if you want to do game programming that's the last place you want to start (or finish). That's mainly for writing drivers. Writing a game that bypasses DirectX or OpenGL is slightly more fun than being hit by a tactical nuke. I wouldn't recommend it. Your game will be out of date in no time and the support will be a nightmare. If you want to program games, stick to DirectX or OpenGL at minimum, or you can use an existing game engine of your choice. DirectX and OpenGL have plenty of lower level functions that let you do a vast amount of customization. You also have the shader languages. You really shouldn't have to go any lower than that.

I used to write low level graphics routines for very old graphics cards years ago. I had to write every pixel to the screen. It has it's charms but the time for that has come and gone unless you are doing something extremely specialized and have very good reason for doing it.

DevMaster Staff

• Moderators
• 1716 posts

Posted 19 August 2009 - 06:57 PM

Zyus said:

If i want to join the NCSoft company what do i need to do , or a similar company for example thats in MMORPG game developing ??

You have to:
• get a degree in software development or computer graphic design depending on what part of a game design team you want to join (coder vs. artist). You can get a general CS/Art degree or a "game development school" degree. It's debatable as to what would serve you better. I favor the latter because it's generalist, once you join a company there's still plenty to learn, and it's reusable in other industries. Some prefer the focus and networking of the latter.
• build a portfolio in that field. Either software prototypes, or digital assets in graphics.

Zyus said:

This is a long project for at list 3 years . I want do create my one Graphics System , what i mean my one OpenGL/Direct3D but different with something of my one ideas , after that i want to do a engine with it . The Question is : Where do i find infos on this mater , and how do i use the RAM / CPU of the Graphics Card ( ATI / NVIDIA /etc. ) directly ??

You want to write a drop-in replacement for Directx/OpenGL?!? Good lord, why? I want to drive to work, but I am not going to build an alternative rubber making factory, then build a tire, then build a car.

You are probably looking at the industry romantically, and are mesmerized by everything that goes on in it, so naturally you want to know about it all. But, it's a huge field!

Ask yourself: "Ten years from now, I will be most happy if I am doing _______."

What is is? Writing WDDM or WDDM-like code? Writng an engine that game developers use? Writing a game?

You can't master all those levels.

Zyus said:

3 ) This a sort time project . I want to make a game but i do not have any ideas what to do but i need to finis it in less then 6 MONTHS . The Question hear is : Pls give me some ideas on the game and from where do i start coding ??

If you have a fixed six months, consider using an existing 2D engine and make a good, simple 2D game.
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

### #14starstutter

Senior Member

• Members
• 1039 posts

Posted 19 August 2009 - 08:49 PM

Zyus said:

2 ) This is a long project for at list 3 years . I want do create my one Graphics System , what i mean my one OpenGL/Direct3D but different with something of my one ideas , after that i want to do a engine with it . The Question is : Where do i find infos on this mater , and how do i use the RAM / CPU of the Graphics Card ( ATI / NVIDIA /etc. ) directly ??
Good lord indeed. I'm all for writing your own engine, it's a great learning experience... but writing your own API? Thats going a little too far. If you had 20 years to do this project, then maybe... but even that's pushing it.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.

### #15Zyus

New Member

• Members
• 8 posts

Posted 19 August 2009 - 08:59 PM

Thank you alphadog for the good advice given on the first question.
As for the second Question i guess all three of you are totaly and otherly correct , i do not think il become driver developer but a engine writer if it will be the case although i love to do every little thing my self .

I guess i cant do all of them sow il stick with writing a game for my license exam , but i do not know what game i cant writer down in this 6 months sow that i can get a nice mark for my work and finding a job in this domain with the game il be making .

And for the Question that alphadog sayd to ask myself :"Ten years from now, I will be most happy if I am doing GAME DEVELOPING FOR A MMORPG COMPANY." the problem is that i do not know if there are any MMORPG companys hear in Romania although i doubt it , any way it dose not matter thats what i want to do and that is what il do .

DevMaster Staff

• Moderators
• 1716 posts

Posted 20 August 2009 - 12:27 AM

If that is the case, forget developing the new DirectX (I think most would agree here) and forget developing a game engine (some won't agree, but if anything, at least prioritize making a game versus making a game engine, which could take you 6 months to "get it right").

Get a 2D library (since you are studying C++, I'd recommend SDL, SFML, Haaf's or PTK) and build a game.

As for what kind of game, does it have to be original? Try picking your favorite boardgame or card game. Do a side-scroller. Doesn't matter. The idea is not to make a game that will make you rich. The idea is to make all your initial mistakes on throwaway games.
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.

### #17Zyus

New Member

• Members
• 8 posts

Posted 20 August 2009 - 07:06 AM

Alphadog to create a game in 6 months i thought i can do a simple 3D game with collision detection ( 2 types : 1) one object colliding with an other object , 2) hit {damage} to an object ) / character creation {3DMax or something} / polygons of an object to be between maxim and minim / sound and virtual effects / last but not list the map can be created bay any one . Sow i guess thats all you need to create your on Q2 from scratch .
Sow what do you think alphadoq about my idea ??? What do i need to do in " + " or " - " to what i sayd ??

### #18rouncer

Senior Member

• Members
• 2722 posts

Posted 20 August 2009 - 07:52 AM

If i was going to make a game for the first time, id probably start off with a world like wolfenstien, made out of cubes with simple texturing to make a doungeon. Im sure you could probably finish that.

Then you could try to add the monsters, but that would be tricky.
you used to be able to fit a game on a disk, then you used to be able to fit a game on a cd, then you used to be able to fit a game on a dvd, now you can barely fit one on your harddrive.

### #19Zyus

New Member

• Members
• 8 posts

Posted 20 August 2009 - 09:51 AM

After reading a lot of the forum topics and trying to understand it all i come 2 a conclusion and that is : i cant say i`l make a game at this time and with the knowledge that i have now, sow first i need to gather up a lot knowledge in one of this domains : OpenGl/DirectX . But i do not know with what to start and what is easy to understand at the beginning of the "road".

Sow PLS/PLS/PLS help me start to walking on the "road" and say what is bather and easy to start off with OpenGL or DirectX .

### #20rouncer

Senior Member

• Members
• 2722 posts

Posted 20 August 2009 - 11:25 AM

I use Direct X.

open gl is used by lots of people too, i like it i had a small glance myself, but they both DO THE SAME THING MAN.

If you finish something, post it up here and be proud of it, even if it only looks like PS1.
you used to be able to fit a game on a disk, then you used to be able to fit a game on a cd, then you used to be able to fit a game on a dvd, now you can barely fit one on your harddrive.

#### 1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users