8
\$\begingroup\$

I'm completely new to computer graphics, and even more so, to game development. I am searching for information to learn the basics, quickly. I have one question in my head; how do engines like the Crytek Engine or the Unreal Engine relate to OpenGL or DirectX?

I'm very interested in game physics, but I can't figure out how the physics, graphics, and engine come together; there are gaps I can not fill.

\$\endgroup\$
  • \$\begingroup\$ Here's part of the answer but it just bring other questions. scientificninja.com/blog/write-games-not-engines \$\endgroup\$ – BRabbit27 Dec 7 '11 at 19:05
  • \$\begingroup\$ Where does the physics enter? It's like I should write a physics algorithm, for instance collision algorithm and then making some circles created on OpenGL behave according to my physics algorithm? \$\endgroup\$ – BRabbit27 Dec 7 '11 at 19:09
9
\$\begingroup\$

TL;DR: An engine is just a collection of reusable components.

Wall of text: Games store a representation of the world, e.g. you'd have an entity like a house, which has a mesh that defines what its geometry looks like and a position.

Now, you probably have more than one entity. Let's say we've got a player controlled character and some boxes. When the player wants to move, you'd move the character and check if he collides with any boxes. That's where physics come into play. Depending on how physics are modelled, the character might just walk through the boxes, stop in front of the boxes or push the boxes.

Mind you, this only changes the internal state of the game world.

Then, after calculating movement and physics, you'd render a frame, e.g. draw the current state of the world on the screen.

OpenGL and DirectX are graphics APIs, they are only used to render stuff (e.g. the character) to the screen.

So, you're basically telling OpenGL/DirectX 'I want to draw the character at position1 and a box at position2, and ...'.

Of course, this is a gross oversimplification.

Anyway, since we don't want to walk through that procedure step by step all the time, we put that stuff into functions and classes. So, we might have a class physics which holds all the functions needed for the physics simulation, or a graphics class which interfaces with the graphics api and draws our entities. Et voila, we've got an engine.

\$\endgroup\$
  • \$\begingroup\$ There's an accent missing "Et voilà" haha just joking. Thanks very much I think I was thinking right but wasn't sure so I decided to ask. Thanks a lot! \$\endgroup\$ – BRabbit27 Dec 7 '11 at 19:52
  • 2
    \$\begingroup\$ DirectX isn't graphics API, but Direct2D and Direct3D are. \$\endgroup\$ – user9790 Dec 8 '11 at 4:34
  • \$\begingroup\$ @JaakkoLipsanen yes I see now, DirectX is a complete framework for game development (3d, audio, video, etc) and Direct3D is just the graphics module. \$\endgroup\$ – BRabbit27 Dec 8 '11 at 15:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.