How to know the coordinates of a 3-D engine?
#1
Posted 03 January 2012 - 07:52 AM
A 3-D game engine is basically like a what? A 3-D space with which instructions to make 3-D games?
3-D world? I don't get it ... how do you put models into 3-D environments, and where do 3-D environments come from? 3-D game engines?
I don't understand this at all ... does an engine consist of low-level instructions to explicitly determine a 3-D space? Or does a 3-D space have nothing to do with a game engine for the third dimension itself?
Not that I'm ready for 3-D programming at all, but I'd like to clear these things up for when I do, if so, proceed to 3-D programming.
Like, look ... in my head I imagine a 3-D space where things are drawn. What must be done to "get" that 3-D space to exist in the first place? Do you need a special file, or files, that can do it? And how do you know how it's done, how and where to draw to this "area" of space, and where it will end up, how big it will be, how the camera is appointed to a generated 3-D area, etc?
And what about a "level editor?" Is a level editor a 3-D environment source, or just a way to edit a 3-D space?
Any help to clear this out would be very much appreciated!
#2
Posted 03 January 2012 - 02:41 PM
A level editor allows a user to create the data of the 3D world. It is, in a way, a very similar tool to a "game engine client" that allows a user to play in the represented world. Most engines for stand-alone games are both world engine and client all at once.
I recommend a game engine book, or some googling to clear this up. It's a very broad question...
#3
Posted 03 January 2012 - 09:00 PM
A 3D graphics engine is a piece of software built on top of this basic level of functionality. It provides higher-level concepts like cameras and persistent objects in a 3D space (the game world), and provides the shaders and other code that cause the GPU to generate a realistic image of the world, by calculating where each 3D triangle should go on screen to provide correct perspective relative to the camera, and how each triangle should be colored to mimic realistic lighting. It also includes a set of tools to allow users to create 3D models, textures, and materials and place them in the game world.
A game engine is a graphics engine together with an animation system, physics engine, audio system, AI system, resource management system and various other things.
#4
Posted 04 January 2012 - 07:30 AM
#5
Posted 04 January 2012 - 01:51 PM
Your code does everything else. Since a lot of stuff is common between many games, they are often separated out to a game engine that takes care of everything that isn't the game itself (story, points, behaviors).
The engine usually handles stuff like:
* Load models, animations, textures, shaders sounds, maps, etc. from disk and store in some suitable data structure.
* Keep track of the 3D world. (Where objects are, where the camera is)
* Handles physics simulations.
* Handles input.
* Renders the world.
There is nothing magical about al this. You could (theoretically) do it all yourself.
> What must be done to "get" that 3-D space to exist in the first place?
The engine would usually have some form of scene graph. There are lots of different ways to do this, depending on the situation and the needs of the game. It could be as simple as a list of "scene entities" with a pointer to a 3D model (basically an array of triangles), a coordinate for the position and a quaternion/matrix for the orientation.
> how and where to draw to this "area" of space, and where it will end up, how big it will be
This is the job of the renderer. It takes a scene entity and hands it over to the 3D driver to be rendered. Depending on the position and orientation in the 3D world of the camera and the object, a projection matrix is calculated. All the vertices of the triangles are transformed by this matrix and gets x/y coordinates on the screen. (Google projection matrix.) Then the triangles are drawn by the hardware.
> And what about a "level editor?"
Mostly, you would just use a modeling software like 3DSMax, Maya, or Blender. They can save your 3D objects (the level) into some file format your code can read. It can be as simple as an array of triangles.
#6
Posted 04 January 2012 - 02:04 PM
Enthusiastic for Sense, on 04 January 2012 - 07:30 AM, said:
Don't take this wrong, but honestly, the problem is the question. I have no real solid idea what you are asking. I thought I did, but I guess I didn't.
I really think you'd best be served by getting a good game engine book and learning the real lingo for concepts you are interested in. Then, you can ask more accurate questions more likely to get you a useful answer.
#7
Posted 04 January 2012 - 03:06 PM
3D game engine is composition of various sub-engines to manage different aspects of 3D worlds, namely; physics, AI, animation, audio, graphics and physics, and infrastructure which binds these sub-engines together (handles the communication between the sub-engines and feeds them with proper data). Nowdays there is plethora of game middleware available which provide various solutions to part of 3D game engines, such as Havok, PhysX, Bullet for physics, Kynapse, xAitment middleware, PathEngine for AI, FMOD, BASS for audio, to name a few. There is also plethora of complete game engines which usually provide some kind of composition of game middleware and custom technology.
3D game engines often come with a 3D game editor (specific to the engine), which enables you to build game levels by place objects to game levels, create some game content, define AI behaviors and scripts, setup trigger volumes and other "helper" objects, etc. to help in making a game. The editors also generally support importing content (3D objects, textures, audio, etc.) that's authored in external applications such as 3DS Max, Maya, Photoshop, etc.
Cheers, Jarkko
#8
Posted 05 January 2012 - 05:13 AM
Tell me how I delete my account here ... it's a waste of time writing anything when nobody can help or understand what you're asking.
I'll just never do 3-D programming then.
#9
Posted 05 January 2012 - 07:02 AM
Maybe you'd get more out of this if you focus on a more specific question, and if you get an answer that seems to miss what you had in mind, maybe try asking for elaboration or clarification about something, rather than just throwing the answer out.
Communication is a two-way street.
#10
Posted 06 January 2012 - 06:37 AM
I'm a well-accomplished programmer and have won honorary awards for algorithms I've wrote in many levels of programming.
This was just to see how easily people can fall for a joke.
#11
Posted 06 January 2012 - 11:43 AM
If that was true, you could just have hade a look at all the old threads here. Clueless beginners who want to make an MMORPGLOLWYSIWYG are really not that uncommon. No, you are just an asshole.
#12
Posted 06 January 2012 - 12:02 PM
#13
Posted 06 January 2012 - 02:20 PM
Enthusiastic for Sense, on 06 January 2012 - 06:37 AM, said:
Yes, it is easy. Enjoy your discovery and "win".
I think it'd be best if people just chilled. Moral indignation is just what this kid seems to be craving. Quite frankly, it seems like a lot of good, educational discussion and some side attention-whoring.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












