newbie has engine questions

Hello everybody!

After sifting through’s tutorials, I feel I’ve got a solid base (and reference material) to start work on a simple openGL 3D FPS (will have scripted story, also want to show off impressive vfx, use mp3s for sound/music)

ANYWAY … lol

my first question: which is a better way to implement an engine? should it be a library (i.e. a header file full of functions to call and structs) or like a class (an object with it’s own inbedded functions and data values). any articles out there that discuss this?

secondly: after parusing development articles, it seems like making your own dev tools is a must! any good sites with tutorials/articles on how to do so? I know a lot of this is product dependent, but anything helps.

finally: any good articles on camera implementation/manipulation/effects? I ask only because I haven’t found too many articles on that subject

Thanks for taking time out to read my post! Anything that gets implemented into my project will be posted on my site! I’ll post that url when it gets up and running! lol Thanks again!

First: There is no such thing as “the best way” to do something. You should always choose whatever you feel most comfortable with. You should never force yourself into another way of coding just becuase someone else said he/she thinks thats a better way. It’s a matter of taste.

Second: It’s definitely not a must to write your own tools. Especially if you are a beginner. You will have gotten WAY into game programming before you MUST write your own tools. A simple 3D editor is more than enough for a beginner.

Third: A camera is only a few transformations. If you can’t handle them (guess you can’t, since you ask for tutorials on them), a game engine is probably a bit too much. Have a look in the Red Book about viewing. If you understand that, you will be able to do your own camera fonctions without the need for extra tutorials.

Thanks for your reply Bob!

Thanks for recommending the Red Book, it definately seems like a must have.

About the cameras, I do understand they are just transformations ( or at least the theory, haven’t done much hard code yet ). Basically, you just move the world using a point ( the camera ) as a reference for how you move it.
I suppose saying I’ll be making a 3D engine for my project would be overstating it a bit … it will probably be a library of functions I write specifically for this project ( won’t be very flexible, at least not at first ). This is definately an “experiment as I go” project, but with goals.
Thanks again for your input! Any more thoughts are welcome.

i think it’s better to code using class, but not for everything, for example find it reasonable to have a map class with all loading related things, another class for renderer would be good too…
but when everything is a class you can fall in troubles because of no easy or complicated way of exchanging datas between them…
using objective oriented programming can help you when your engine gets really big…

that’s real challenge that after your engine has some thousands of lines and some thousands of variables you can still find whatever you want fast and you know what which variable is

[This message has been edited by MickeyMouse (edited 03-25-2002).]

Thanks for the input MickeyMouse, I do appreciate another view.

As far as data sharing, seems like you could make all your variables public and it wouldn’t be a problem, but that could get messy.
I will be using classes for the maps, objects (enemies, weapons, etc.), and probably lights as well. It’s the engine functions that will use these classes that will probably not be a class itself. Anyway, thanks again so much!