So, A group of buddies and I have been doing butt loads of learning and feel we may be finally up to the task of creating a 3D game. Unfortunately, we have never done so before and would enjoy a guiding hand on where to start (and most likely a few small specifics along the way as well) when it comes to 3D rendering.
--Specifics-ish
We are going to be using OpenGL as well as GLUT to keep this as multi-platform as possible(Unless there are better ways). We are going to try and create our own game engine side-by-side with this game and evolve it as we make more games and get better at what we do, so we will be keeping that in mind with creation and try to have everything be as re-usable as possible.
--Asking once more :D
So, any help, either with links on where to start our 3D rendering journey or tips from your own experience, would be greatly obliged. Also, if anyone is kind enough to be a mentor or guiding hand in this area of our project, it would be ridiculously amazing and extremely appreciated. But alas I know that last request is a lot and would gladly settle for the first :D.
P.S.
I am not some knowledge-less person, spamming forums with "how canz maek gamez?". I have gone through all the tutorials on this site as well as read many texts and am currently enrolled in a computer science degree. I know C++ (Well, at least enough to make a simple 3D game), but rendering is a new topic for me. Enough of my rant, again any help greatly appreciated :D.
Have you ever made a 2d game with opengl?
If no, you may want to start from there.
Difference between basic 2d and 3d isn't as big as you may think. Still, starting with 2d would help you to get familiar with how opengl works.
I have made 2D games before but not with OpenGL, only using WinAPI and C. And I've made a simple 3D flight sim using the Irrlicht 3D engine. I havnt forked over the money yet for the Red Book but I plan to soon (valentine's day eats money), I do have beginning OpenGL: game programming, though.
Our group was planning to try and create our own 3D rendering algorithm, a bit more compicated than running 3D data through a pre-built renderer, we're using OpenGL to simplify platform independance.
Or am I thinking about this entirely the wrong way and I need OpenGL's rendering algorithm because everything is done via direct hardware interactions? (pretty sure this isn't true though and that custom rendering is done).
Or do you mean you want to use openGL to open your window. But technically not draw with openGL - make your own drawing function totally separate from openGL?
That last one, I want to use OpenGL for opening a window (among other similar procedures) and write my own drawing function along with everything closely tied to that function.
I'm all for that painful world an want to face it head on :D. I've made some games with the (excuse the extremity of this statement) plug-and-play rendering but I want to advance my self and my team so to do that I have to do things that are more difficult than what I have already done. And yes I will most likely include statements that make the game decide between my custom draw and OpenGL just to for it's usefulness but I'd still like to have a custom renderer there when possible :D. I'm not worried about the difficulty, I acknowledge it's existence and it acknowledges my stubborness against it so difficulty is not the issue, it is actually the solution ^.^
If you're going to try to write your own rendering function and what not. Why not just make a mini game engine. Why bother using openGL to open a window?
We are planning on making a game engine but were just trying to simplify cross-platform compatibility by using OpenGL for more monotonous tasks such as making windows. We will most likely remove that from the engine in the future as it evolves but for now we wanted to keep the focus on more crucial tasks.
Are you trying to say you want to handle all the graphics rasterization yourself, including polygons, textures, and lighting?
If that is the case, I have one word of advice for you. Don't.
Use the available 3D API to do the low level work for you. Creating a visually pleasing, highly interactive environment is still a monumental task with that foundation already provided for you.
Do you want to make video card do all the stuff for you?
If not, then it's not that hard if you're familiar with the pipeline
It's just
* transform your vertices (lots of maths here)
* draw triangles/lines (lots of lerping here, and a little shader maths too)
I'd like to tell you that it's very complicated, but I'm afraid I can't, because last night I made the first part, and I've already found the triangle drawing algorithm...
It's still a useless thing to do. You really won't make anything faster nor better looking than what opengl and directx have to offer.
Okay, well we are for sure making a game engine though so what would seem to be the most logical way to go about the graphics area of it? Since it seems that most of you are against what i was thinking was the standard for game engines.
The standard is to use what the available 3D API provides and build upon that, whether it's OpenGL or DirectX. Virtually every 3D PC game available today is built using one of those 2 APIs.
So instead of "reinventing the wheel" I should take what is there and expand upon it? Sounds a lot better actually, not sure why I wasn't thinking that way in the first place. Not sure if I should ask this question here or not but, What would go into that 3D section of the engine then since it is just an expansion upon the 3D API being used?