3D engine for FPS

Started by
13 comments, last by kodeninja 18 years, 10 months ago
dear all, i would like to develop a 3D engine for first person shooter game. can anyone provide any wedsite that good for beginner to create 3D engine? or tutorial on create a 3D engine? i have few very confuse question: is that OpenGL is a 3D engine? can i use OpenGL to create my our 3D engine? NeHe tutorials is teachning people to create game engine? do NeHe having tutorials for create 3D engine? thanks for answering my question!
Advertisement
There is no better site than where you are right now my friend.

ace
Quote:Original post by albertkhor
is that OpenGL is a 3D engine?
No...

Quote:can i use OpenGL to create my our 3D engine?
...yes.

Quote:NeHe tutorials is teachning people to create game engine?
No...

Quote:do NeHe having tutorials for create 3D engine?
...not as far as I know, though it teaches you many of the things you'd use in creating a 3D engine.

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

Developing a 3d engine is a lot of work, and is a pretty hard thing to do. OpenGL is a graphics API, or Application Programming Interface (definition). Basically it provides functionality for working with graphics hardware, in much the same fashion as DirectGraphics (the graphics portion of DirectX, formally known as Direct3d).

NeHe is a good site for learning OpenGL programming, but the tutorials don't really cover everything involved in a complete game engine (sound, input, object-management, etc.), nor is there a tutorial on the site that will walk you through everything involved in creating a 3d rendering engine.

Judging from your questions, I'd say it's probably a safe bet that you're an absolute beginner to programming? You'll need to become very proficient in a programming language of your choice (C/C++ or C# are probably good options) in order to create a good 3d engine. I'd advise buying a book on the subject, as they tend to be a bit more complete than a lot of online tutorials.

You're probably best to start here, check out the resources here and starting to learn programming though.

- Jason Astle-Adams

thank for you answer my question. i want to buying a book but i do not know which one is suitable for me (3D engine for FPS) can you recommand some book to me from amazon.

Quote:Original post by Kazgoroth
Developing a 3d engine is a lot of work, and is a pretty hard thing to do. OpenGL is a graphics API, or Application Programming Interface (definition). Basically it provides functionality for working with graphics hardware, in much the same fashion as DirectGraphics (the graphics portion of DirectX, formally known as Direct3d).

NeHe is a good site for learning OpenGL programming, but the tutorials don't really cover everything involved in a complete game engine (sound, input, object-management, etc.), nor is there a tutorial on the site that will walk you through everything involved in creating a 3d rendering engine.

Judging from your questions, I'd say it's probably a safe bet that you're an absolute beginner to programming? You'll need to become very proficient in a programming language of your choice (C/C++ or C# are probably good options) in order to create a good 3d engine. I'd advise buying a book on the subject, as they tend to be a bit more complete than a lot of online tutorials.

You're probably best to start here, check out the resources here and starting to learn programming though.


http://www.charlesriver.com/Books/BookDetail.aspx?productID=91312

Perfect book for your needs.
Eric Wright o0Programmer0o
Hello and welcome to GameDev! Your goal of creating an FPS is ambitious, but quite doable. However it will take time. You can't go from zero to far cry in a matter of days or weeks. That being said, if you work at it you can achieve an impressive looking FPS over time. But I'm getting ahead of myself.

As Ace has said, this is pretty much the ultimate site for game development. Make it your homepage, read the articles, and cruise the boards several times a day. The amount of stuff you can learn by just reading the questions of other people and the answers given to them is staggering.

You've mentioned OpenGL. OpenGL is a graphics API (application programming interface), not a 3D engine. It is, as you've asked, what you can use to create your 3D engine. You will program in some language (likely C/C++ but not certainly) and utilize the functions OpenGL provides to draw things to the screen. NeHe is definitely one of the best places to learn OpenGL, though I'd recommend using the simple (albeit limited) GLUT rather than the convoluted Win32 API to get your project up and running. SDL is also fairly simple and provides a great deal more functionality than GLUT. Anyway, if you want to learn to program 3D graphics in OpenGL, NeHe is your man (though move quickly, the content may not be around for much longer).

But! Before you get rolling on 3D graphics, I'd recommend getting a small 2D game up and running. Pong, breakout, and tetris are popular games to clone for beginner projects. You might also try a 2D side/top scroller, though I'd recommend doing that after one of those simpler games. Java (and I hear C#) is a great language to get a small project up and running like that, as it's very object oriented and has lots of little 2D graphics stuff you can use without much trouble. Seriously do this. You will be amazed how much you can learn from a small project like Pong. It's simple, but you'll get stuck a few times and the learning experience is invaluable. Plus you'll start in on some of the topics you'll need later on (like event timing, collision detections, and creating independently moving (and reacting) objects). Do it, you won't regret it.

Of course, all of this may also be jumping the gun, depending on your programming experience.

Anyway, once you have a (complete) 2D project under your belt, hit up NeHe and start learning 3D graphics under OpenGL (you might also consider using Direct3D, but I can't really speak knowledgably about it, short of I think OpenGL's more straightforward and that you can't go cross-platform with it). After you've worked with 3D graphics for a while, start building up the fundamentals of your 3D engine. Build a camera class the way you'd want it to function (likely with alot of vector math and trig), a model loader that'll read in milkshape, maya, quake2, etc. models (I'd recommend anim8or, google it for more info), a particle system (getting a particle fountain up and running is a great experience), and that sort of thing. Just keep building and building and building until you have all of the parts of your engine in place. Then you'll likely want to re-write the thing so that it's cleaner and you solve design problems you came across while learning, but once you've already done it (and have that code in front of you), it won't take you long to re-do (copy and paste alot).

It takes time, dedication, and patience (all the things that make a good jedi), and if you keep working at it you will indeed accomplish what you set out to. But you really gotta walk before you can run, or learning what you need to learn will be frustrating and take a great deal more time than it has to. Read everything you can, try stuff out, and ask questions 'till your blue in the face (as long as you've read some on the topic, googled your question, and searched the forums before posting, you won't get flamed) and you'll have a sweet looking project up and running in no time. Not an FPS, yet, but still something cool.

Anyway, I hope this answers your question (it certainly answers some questions you didn't ask) and please feel free to ask for clarification on anything (either here or in a PM if you like).

Best of luck!
Without order nothing can exist - without chaos nothing can evolve.
Ever heard of the search option? first make sure you know how to use search options before you even think about creating a 3d engine..
Quote:Original post by KingsRevenge
http://www.charlesriver.com/Books/BookDetail.aspx?productID=91312
Perfect book for your needs.


KingsRevenge: Have you used/studied this book dude ? (If so) Good/bad points Thanks !

Currently I've been using a ideas from superpig's *excellent* 'Enginuity' engine from his series of articles to build a structured layout for my engine.
(Btw, I *love* the diagram from part 2 in the series, I have a copy stuck above my monitor on the wall.)

albertkhor: If you think you're up for it hardcore stylee checkout this link (Superpig's Enginuity - Part 1) It's one of the most useful seies of articles on this I've read to date on the subject...

(Also after a good book on engines if anyone could recommned =D, thanks)

Good Luck !

Add
"The FFT - an algorithm the whole family can use" ... and for my next joke...
For books I'd suggest "3D Game Engine Design" and "Realtime Rendering".

This topic is closed to new replies.

Advertisement