Game & Engine - Where do you draw the line?
Moderator: PC Supremacists
Game & Engine - Where do you draw the line?
About 6 months ago I finished a simple game engine, and came back to it to use it for a game and found it was too
lacking in its features (and quite buggy). Today I've decided to rewrite the engine and plan it out more thoroughly
before I code it, and I got started thinking about where you draw the line between the Game and the Game Engine
and I want to get some other developers opinions on it before I get started. The engine is going to be coded in Java
and I want to get Lua into it if I can.
Right now I've got a guess on where the line could be
Engine:
Image Allocation
Velocity Management
Collision Management
Rendering (Well in Java this isn't as much of a problem)
Input
FPS
Game:
Game Logic
Collision Logic
NPC Logic
lacking in its features (and quite buggy). Today I've decided to rewrite the engine and plan it out more thoroughly
before I code it, and I got started thinking about where you draw the line between the Game and the Game Engine
and I want to get some other developers opinions on it before I get started. The engine is going to be coded in Java
and I want to get Lua into it if I can.
Right now I've got a guess on where the line could be
Engine:
Image Allocation
Velocity Management
Collision Management
Rendering (Well in Java this isn't as much of a problem)
Input
FPS
Game:
Game Logic
Collision Logic
NPC Logic
- rolland
- Chaos Rift Regular
- Posts: 127
- Joined: Fri Dec 21, 2007 2:27 pm
- Current Project: Starting an Android app soon
- Favorite Gaming Platforms: PS1, N64
- Programming Language of Choice: C++
- Location: Michigan, US
Re: Game & Engine - Where do you draw the line?
Looks good so far. Sorry, but it kind of eludes me too, so I can't be of more help.
I'll write a signature once I get some creativity and inspiration...
Re: Game & Engine - Where do you draw the line?
Start with the game and code the engine as you encounter your needs.
- hurstshifter
- ES Beta Backer
- Posts: 713
- Joined: Mon Jun 08, 2009 8:33 pm
- Favorite Gaming Platforms: SNES
- Programming Language of Choice: C/++
- Location: Boston, MA
- Contact:
Re: Game & Engine - Where do you draw the line?
K-Bal wrote:Start with the game and code the engine as you encounter your needs.
I definitely agree with this. Once you have an idea of everything you want your game to do, you will know what features the engine will need to have. I am sure you will find here and there that you need to add additional functionality to it as well.
"Time is an illusion. Lunchtime, doubly so."
http://www.thenerdnight.com
http://www.thenerdnight.com
Re: Game & Engine - Where do you draw the line?
Well a game engine should be for a specific 'genre' of game, like maybe a platform game.
The line should be drawn where things start getting 'game specific'. You should have methods/functions that check for collisions, and then have the user of the engine define what should happen with a collision.
So if you look at the engine itself, and you see something that's specific only to your game, then you've probably crossed the line...
That's just my opinion though.
The line should be drawn where things start getting 'game specific'. You should have methods/functions that check for collisions, and then have the user of the engine define what should happen with a collision.
So if you look at the engine itself, and you see something that's specific only to your game, then you've probably crossed the line...
That's just my opinion though.
- ismetteren
- Chaos Rift Junior
- Posts: 276
- Joined: Mon Jul 21, 2008 4:13 pm
Re: Game & Engine - Where do you draw the line?
What do you call engines that isent genere specifik then? I dont think an engine has to be genere specifik, but i agree with the rest of what you saidXianForce wrote:Well a game engine should be for a specific 'genre' of game, like maybe a platform game.
- davidthefat
- Chaos Rift Maniac
- Posts: 529
- Joined: Mon Nov 10, 2008 3:51 pm
- Current Project: Fully Autonomous Robot
- Favorite Gaming Platforms: PS3
- Programming Language of Choice: C++
- Location: California
- Contact:
Re: Game & Engine - Where do you draw the line?
I always thought engines were highly modifiable programs with no story... Like a physics engine that can be implanted pretty easily
Re: Game & Engine - Where do you draw the line?
Yeah engines are portable code that can be used for many applications...
I would say as long as you could make multiple games, be it different genre or just different story, that it would be considered an engine.
and as a side note engines don't have to be genre specific at all, most of the industry standard ones used to make games these days are very versatile, they make FPS, puzzle, raceing, they can do pretty much anything.
Now if you planned on making it very versatile for making future games just think out the basics of those games (collision, image rendering, AI (although this could be game specific), text rendering, gui rendering, and so on.
But anyway good luck on your game and engine, and while I don't think that you have to start figuring your game out first, I'm pretty sure it would be the best to do that for what you want.
I would say as long as you could make multiple games, be it different genre or just different story, that it would be considered an engine.
and as a side note engines don't have to be genre specific at all, most of the industry standard ones used to make games these days are very versatile, they make FPS, puzzle, raceing, they can do pretty much anything.
Now if you planned on making it very versatile for making future games just think out the basics of those games (collision, image rendering, AI (although this could be game specific), text rendering, gui rendering, and so on.
But anyway good luck on your game and engine, and while I don't think that you have to start figuring your game out first, I'm pretty sure it would be the best to do that for what you want.
- wtetzner
- Chaos Rift Regular
- Posts: 159
- Joined: Wed Feb 18, 2009 6:43 pm
- Current Project: waterbear, GBA game + editor
- Favorite Gaming Platforms: Game Boy Advance
- Programming Language of Choice: OCaml
- Location: TX
- Contact:
Re: Game & Engine - Where do you draw the line?
You don't have to have a monolithic engine that your game sits on either. You can have multiple, more specific engines that you can sort of "plug" together: graphics engine, input engine, physics engine, sound engine, collision engine, etc. Then, you can put these together however you want to create an engine specific to your game. And you can combine smaller modules to make larger ones. That way, your collision engine, for example, wouldn't really be tied to the game or the engine, it would be it's own module.
So, by having modules that you can combine to make larger ones, eventually composing them to create a game, you don't really have a "line" between the engine and the game. It's more of a gradient. When you make another game, you can select which components you want to use, with whatever level of granularity you want to use.
Anyway, that's my take on it.
Of course, designing components that will be easy to compose isn't trivial, either. Then you have the problem of where to draw the lines between components.
So, by having modules that you can combine to make larger ones, eventually composing them to create a game, you don't really have a "line" between the engine and the game. It's more of a gradient. When you make another game, you can select which components you want to use, with whatever level of granularity you want to use.
Anyway, that's my take on it.
Of course, designing components that will be easy to compose isn't trivial, either. Then you have the problem of where to draw the lines between components.
The novice realizes that the difference between code and data is trivial. The expert realizes that all code is data. And the true master realizes that all data is code.
- Falco Girgis
- Elysian Shadows Team
- Posts: 10294
- Joined: Thu May 20, 2004 2:04 pm
- Current Project: Elysian Shadows
- Favorite Gaming Platforms: Dreamcast, SNES, NES
- Programming Language of Choice: C/++
- Location: Studio Vorbis, AL
- Contact:
Re: Game & Engine - Where do you draw the line?
Ditto. That was also the design philosophy behind the ES engine.hurstshifter wrote:K-Bal wrote:Start with the game and code the engine as you encounter your needs.
I definitely agree with this. Once you have an idea of everything you want your game to do, you will know what features the engine will need to have. I am sure you will find here and there that you need to add additional functionality to it as well.
- Bludklok
- Chaos Rift Junior
- Posts: 241
- Joined: Tue Apr 14, 2009 1:31 am
- Current Project: EnigmaCore
- Favorite Gaming Platforms: PC, N64, Playstation1, Playstation2
- Programming Language of Choice: C++
- Location: New Jersey
- Contact:
Re: Game & Engine - Where do you draw the line?
My philosophy thus far for my video game development process is...
Step 1. Game Concept - Open up a notepad and record whatever ideas pop into my head that way I have a good idea of what i'll need for the project.
Step 2. Resource Gathering - I start designing pixel art and collecting other needed resources. The reason for this is so I can throw all of the art and sound into the level editor as a placeholder and decide later on what kind of 'setting' I want the game to have then I adjust the content accordingly.
Step 3. Level Editor - Since the main 'design' of each of my level editors are primarily the same I still like to design a brand new editor for each engine so I can learn from my past mistakes on level editors and try to avoid them.
Step 4. Engine - Build the engine. <.<
________________
I've found this to be the easiest and most productive way of developing an engine/editor from scratch (for me at least).
Step 1. Game Concept - Open up a notepad and record whatever ideas pop into my head that way I have a good idea of what i'll need for the project.
Step 2. Resource Gathering - I start designing pixel art and collecting other needed resources. The reason for this is so I can throw all of the art and sound into the level editor as a placeholder and decide later on what kind of 'setting' I want the game to have then I adjust the content accordingly.
Step 3. Level Editor - Since the main 'design' of each of my level editors are primarily the same I still like to design a brand new editor for each engine so I can learn from my past mistakes on level editors and try to avoid them.
Step 4. Engine - Build the engine. <.<
________________
I've found this to be the easiest and most productive way of developing an engine/editor from scratch (for me at least).