Advice please / Hello all.
Posted 18 August 2009 - 07:01 PM
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 install`d VC++ 8.0 and SDK.
Sorry for my BAD English.
Posted 18 August 2009 - 07:54 PM
Posted 18 August 2009 - 08:09 PM
Old, but good:
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.
Lastly, google, google, google.
Posted 19 August 2009 - 09:31 AM
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 , i`m 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 class`es from MFC where I found a class that load`s 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 process`d 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 Class`s of them were actually using ASM library`s.
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 library`s 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...
Posted 19 August 2009 - 10:27 AM
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.
Posted 19 August 2009 - 12:42 PM
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...
Posted 19 August 2009 - 02:27 PM
- 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.
Posted 19 August 2009 - 02:41 PM
Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach
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.
Posted 19 August 2009 - 04:15 PM
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 i`m 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 i`m a bit lazy but i`m not that stupid neither .
Posted 19 August 2009 - 04:54 PM
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).
Posted 19 August 2009 - 05:31 PM
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.
Posted 19 August 2009 - 06:57 PM
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.
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.
If you have a fixed six months, consider using an existing 2D engine and make a good, simple 2D game.
Posted 19 August 2009 - 08:49 PM
(='.'=) This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!
Posted 19 August 2009 - 08:59 PM
As for the second Question i guess all three of you are total`y and other`ly correct , i do not think i`l 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 i`l 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 i`l be making .
And for the Question that alphadog say`d 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 company`s hear in Romania although i doubt it , any way it dose not matter thats what i want to do and that is what i`l do .
Posted 20 August 2009 - 12:27 AM
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.
Posted 20 August 2009 - 07:06 AM
Sow what do you think alphadoq about my idea ??? What do i need to do in " + " or " - " to what i say`d ??
Posted 20 August 2009 - 07:52 AM
Then you could try to add the monsters, but that would be tricky.
Posted 20 August 2009 - 09:51 AM
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 .
Posted 20 August 2009 - 11:25 AM
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.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users