Game Engine vs Game

Started by
2 comments, last by L. Spiro 11 years, 11 months ago
So, I'm getting frustrated with my game, so to take a break and yet still be productive, I did some article/forum browsing.
In a lot of posts and many articles I saw repeated something along the lines of: "Beginners should make the game not the engine"
I realize that a lot has to do with the fact that in preexisting engines/systems, much of the technical stuff is already written. But then, you can still take that pre written framework and use it in your own engine.

So what I'm wondering is: What's the difference, from a programmer's perspective, between a game built from code, and a game that was built from an engine. It seems to me like you'd have to do much of the same things. ie. set up a scene graph, create objects, handle input and output. The only difference I could think of, would be with an engine you allow users to alter or use their own assets more easily.

Well, theres my question. Any ideas are appreciated.
Thanks,
Peter
-------------------------------------
"Other than that, I have no opinion."
My Blog - Check it Out
Advertisement
Hi.

I'm not sure what articles it is that you have been reading but in the ones I've come across that talks about engine vs game they aren't talking about implementing an existing engine but rather "Make a game and you'll end up making an engine as well". Are you sure they are talking about using an existing engine?

having said that there is nothing wrong with using an engine, sometimes it's the better choice. It depends on why you are making the game.
If you are making a game to learn how to program games I'd recommend not using an engine, on the other hand if you are only interested in design I don't see anything wrong with using an engine.

Also the difference between using an existing engine vs writing one yourself is that you implement existing functionality rather then defining that functionality first.
I think there is different degree of access though. Some engines surely allows you to change that functionality to a greater extent.

I am kind of novice though so I'm not stating facts but rather personal opinions.

BR / AS.

So what I'm wondering is: What's the difference, from a programmer's perspective, between a game built from code, and a game that was built from an engine. It seems to me like you'd have to do much of the same things. ie. set up a scene graph, create objects, handle input and output. The only difference I could think of, would be with an engine you allow users to alter or use their own assets more easily.

The difference is time and effort. It's a lot more difficult to write a scene graph than it is to use a scene graph that someone else has already written. Likewise with creating models, there's a big difference between writing a model loader and just calling Load(model).

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]Make a game and you'll end up making an engine as well[/background]

[/font][/quote] When most people say that, they're talking about making a game from scratch, not with the help of an existing engine. And the quote is a little misleading. If you write a game from scratch and design it the right way, you will end up with reusable chunks of code for common things like loading models. But this collection of code snippets isn't an engine, it's just spare parts.


In a lot of posts and many articles I saw repeated something along the lines of: "Beginners should make the game not the engine"

To be more precise, a beginner simply can’t write a game engine. Beginners make disorganized messes of frameworks, due to both lack of coding organization skills and actual game-programming experience.
As both of these attributes are earned, over a very long period of time, the mess of a framework can slowly be remade and remade, and over many iterations it could eventually become an engine.

My company realizes that both are necessary, so if you don’t have the coding experience, you simply won’t be allowed to work in R&D (the team that makes the in-house engine) and if you do not have the game-programming experience you can join R&D, but you will be sent away to work on a game project until you have released at least 2 products, which takes about 3 or 4 years.

The point here is to illustrate how much time it takes to make an engine. That same time could have been spent making 20 iOS games or so.



So what I'm wondering is: What's the difference, from a programmer's perspective, between a game built from code, and a game that was built from an engine.

Do you want to make your own 3D file format, plus the loader for it, the renderer for it, the animation controllers, etc., or do you want that to all be done for you so all you have to do is use the existing 3D resources?
Do you want to make a physics engine, handling collisions between objects, implementing sleep states, and interpenetration resolving, or do you simply want to add an object to your scene with a click and then watch in awe as it falls to the ground and stays there?
Do you want to tell the CPU how to load a .OGG or .WAV file, handle the chunking of the wave data and the streaming it into the sound device, or do you simply want to click a menu item that tells the engine what sound to use for BGM?
Do you want to create a building format, load the solids from it, compose them for efficient collision detection, build a solid-leaf BSP representation of the rooms, splitting polygons where necessary, compose them into convex leafs, generate portals, generate PVS’s, and then use that data to perform efficient rendering, or do you just want to make a building and drag-drop it into the scene?

What is the difference between an engine and a game from a programmer’s perspective? About 99% of all the time and effort there is on the programming side.


L. Spiro


P.S.: Every time someone says, “scene graph”, an angel loses its wings.

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

This topic is closed to new replies.

Advertisement