Jump to content
  • Advertisement
Sign in to follow this  
Normthesamurai

Looking at game engines am I on the right track?

This topic is 3775 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am a programmer with C++ and Java experience. since I want to get into making some games I have been using java to make simple little games and C++ to learn about DirectX and SDL. The more research I do the more certain I am that I don't want to be creating game engines anytime soon. But something has been confusing me: is there any point in learning how to use these libraries if an engine takes care of all that sort of stuff or am I just confused on what a game engine is? Also learning to use, say the torque engine for instance, is that included into a Cpp project or is it more of a substitute to using C++?

Share this post


Link to post
Share on other sites
Advertisement
A game engine is basically a set of functions that you can call from your own code.

A graphics engine will display your graphics. A physics engine will enable you to move your objects around your world in a 'realistic' way.

Different engine will provide you with different levels of support and features. It's up to you to decide which one will suit you and your project (and level of experience)

You will still write your game in your chosen language.

Share this post


Link to post
Share on other sites
Quote:
Original post by OldProgie2
A game engine is basically a set of functions that you can call from your own code.

A graphics engine will display your graphics. A physics engine will enable you to move your objects around your world in a 'realistic' way.

Different engine will provide you with different levels of support and features. It's up to you to decide which one will suit you and your project (and level of experience)


I don't agree with that definition of an engine. As I see it, an engine is more a less a black box that handles the flow of operations required to do what the engine does.

For instance, the Source engine handles all the details of IO, graphics, physics, input, etc. for you. You use an engine by telling the engine to execute your code when certain things happen.

A library on the other hand, doesn't handle the flow of code, but gives you some functionality you can use in your own code.

Similarly a graphics engine will handle the flow of rendering, so you don't have to. You tell the graphics engine what to draw, and the engine handles it, while with an API like OpenGL or DirectX you tell it what to draw, when to draw it, and how to draw it.

Of course, this is a hugh gray area, and there is not a set definition for neither library nor engine.

Whether to write your own engine or not: If you want to focus on the result, then use a ready-made engine. It's a large amount of work to create an engine, and often you will loose focus and never actually finish your game. On the other hand, for many of us the fun part is creating the engine, solving all the technical challenges involved, and designing a solid, stable system.

So, to answer the OP's question: Learn the libraries and write an engine if you want to write an engine. Use an existing engine if you want to write a game.

Share this post


Link to post
Share on other sites
I think of an engine as being a library of objects and routines which help you to solve common tasks involved in making a game.

If you don't understand how an engine works then you're going to find it extremely difficult getting it to do anything. 'Why won't it load my 3d model?', 'How do I make an object interactive?', 'Why aren't my graphics showing on the screen?'. Try solving those questions without context and you're not a million miles away from the kind of questions you'll be asking yourself when making a game with an engine you don't understand.

In my opinion it's best to at least have a go at writing an 'engine' or even just going it alone as it were and then when you finish a game project you can wrap your reusable objects into your own library and call it your own engine.

Just an idea, I hope this helps, and good luck!

Share this post


Link to post
Share on other sites
Awesome thanks for clearing that up guys, I've been looking at some freeware engines but I think I'll have a go of creating one for a simple(ish) 2D game too so I can understand the concept better

Share this post


Link to post
Share on other sites
I think you CAN program your own engine, it just might not be as nice as--say--the Source engine.

I made my own engine, but I'll admit, I cheated because I took a two week workshop for DigiPen using their engine and reverse engineered it a year later by memory (mostly how to deal with movements and interactions). But basically, if you can draw something on screen, try making it move. If you can do that, make it an object. Can you have two that move independently? If you can get even that far, you've got the beginnings of an engine. (Called building incrementally.)

However, playing with a pre-existing engine that let you write your own source for how to deal with things (like I did at that work shop; unlike what Game Maker is), that would help a lot.

But, there's nothing saying you have to build an engine. You could have a long game programming career and never know how to make your own engine (theoretically).

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!