how does it work? game engine? small 3D game from scratch? compiler?

Started by
15 comments, last by Daniel Bhagolie 10 years, 3 months ago

1) What is a game engine:

It varies between engines but in general it is a set of tools and libraries that help you make your game.

2) does it restrict my customization ability and animation ability?

Possibly, it varies between engines, general purpose engines are far more flexible than more specialized engines.

3) Is a game engine needed?

No, it is not strictly needed, if you don't use or write an engine you still have to write code for the low level parts of the game but it doesn't necessarily need to be cleanly separated from the game code (for larger games it is a good idea to keep the low level code reasonably separate though and then you would get an engine of some sort either way)

4) Could i use a pre made game engine and still get the results i want ??

That depends on what results you want and how much you are willing to spend on the game engine. most cheap/free engines today can match or even surpass the technical quality of the games released for the PS3 and xbox360 if you put in enough effort.

Also, there is no such thing as a small mmo smile.png

Massively Multiplayer implies that you can have thousands of players (or atleast several hundred) in the same game instance at the same time.(1vs1 is not massively multiplayer)

the one vs one thing was meant for the fighter/action game, sorry for the misunderstanding, and youre correct, i cant make a small MMO. I should have said a small rpg.

And the results I want arent anything like whats already been made but some of these answers have given me a good idea on how to go about it. Thank you for replying

Advertisement

it seems you have a few-well-confused ideas.

I will not try to tell you to give up with mmorpg, you'll learn your way, but let me explain a bit of terms:

game engine: is a tool to make games. It has a lot of features all involved in make games. See Unity or GameMaker. It's not a magic click-to-make-the-game tool, anyway. You have to learn how to use it, but usually it gives you a visual environment to build your game.

library: using a library involves to write code your own. A library can gives you an API to make things easier, but once again you have to learn how to use it. A library usually covers a specific aspect of the game development, such as rendering the scene, load models, deal with assets, manage physics and so on. Probably you'll end to use a bunch of different libraries to reach your goal. And, obviusly, write your c++ code to keep all together.

compiler: it has nothing strictly to do with game dev. It is needed to convert your code into something that your computer can execute, otherwise your code remains a strange kind of text file.

Yes I was very confused lol, which is why I posted this topic, to get rid of my confusion.

You cleared up some if not a lot of my misunderstanding.

I think you need to download something that uses C++ and just get used to programming and dealing with video game concepts in general. A small fighting/mmorpg.....there is nothing small about an MMORPG, absolutely nothing small in those 5 letters. I would get Unity3D along with the book located here, try learning what game development is before trying to create your game. If you dont want to do JavaScript/C#/Mono, you can use Leadwerks which is purchasable off of steam, or you can use a free version located on their website . They use C++ everywhere and they provide a map editor.

I didnt mean MMO. I meant RPG. I used an imporper term, and I understand what youre saying, I plan to do this. Also the resource you gave me will come in handy, Ive been looking for something like this for the past few days, thank you.

because it helps render all the environment and characters during gameplay and tell the objects and characters what to do or is that part of programming the game and not the engine??

Rendering is handled by the engine. You can typically customize it with your own shaders or just let it render how it wants.
Do not mistake a graphics engine for a game engine. Unity 3D is a game engine. Ogre is a graphics engine. One handles everything and the other handles only graphics.

Telling the characters what to do is part of the game logic.
Game logic is, not surprisingly, part of the game. The engine may help you with path tracing, but your game needs to decide if, when, and which path to take.


L. Spiro

This was the answer I was looking for in reply to that section. Thank you!

What is a game engine rreally?
premade library of tools at your disposal?

A game engine is a collection of tools and hooks. A complete "Game Engine" consists of any number of systems, some are required, others are optional. It entirely depends on the needs of the project. Some dont need physics, some dont need 3D, for example.

Game Engine Components are:

  • Rendering Engine
  • Asset Loader & Entity Manager
    (Assets like, Models, Textures, Materials, etc)
  • Scene Manager / "Map/Level" Loader
  • Entity Animation Manager
  • Artificial Intelligence & Pathfinding
  • Particle Engine
  • Physics Simulation Engine
  • Audio Engine
  • Input Manager
  • GUI System
  • Scripting Engine
  • Garbage Collector (if one isn't present)
  • Network Component (aka NetCode)

And tools would be created to work with the engine:

  • Scene/Map/Level Editor
  • Model Viewer
  • Script IDE
  • Build Pipelines
  • Sound Shader compiler
  • Material compiler
  • Model compiler / Asset exporters

As you can see, a "Game Engine" is a large series of components. This is why you have entire army's of people swarming around one as a tech house, like Rockstar San Diego and the RAGE Engine, or one man armies like John Carmack with Id Tech and Tim Sweeny with Unreal Engine. (note: these people have a bunch of programmers underneath them, but they are chief architect and bare an unorthodox amount of work of the engine onto themselves)

does it restrict my customization ability and animation ability?
- for example, I want to make a new fighting system, with its own unique animations, as well as custom characters and custom environment, basically the entire game is custom, the environment, the characters, the movement, textures.

Would this be possible with a pre made game engine?

Is a word, yes. In short? yeah, and It's a great deal of work.

In long? It depends on the engine! Some use scripting languages that interface with the engines API that lets you get right down and dirty into the guts of the system, doing basically anything you want with it without the need to even touch the underlying code. Engines like UDK do this with UnrealScript. Specifically with UDK there is extremely little reason to go into the code, because the scripting has unparalleled power.

Others require you modify the code base to do anything useful with it.

The new fighting "system" would require usurping the existing character controllers, as well as modifying their animation bank, and letting the engine know of the new states ("I am punching now! Use animation "punch1" when I do this! Check for collisions with Entities with my fist. Do something if so. Now I am not punching, go back to "fists raised idle")

The rest is all asset creation and has no baring on the code at all. Except implementing each new one, you might need to update something somewhere for that to register, make the engine "aware" of it.

Is a game engine needed? if the premade one doesnt help? Do I need one to make a game from scratch in general?
is it called a game engine? because it helps render all the environment and characters during gameplay and tell the objects and characters what to do or is that part of programming the game and not the engine??

Yeah, (im generalizing here but) thats all game programming. A Game Engine is typically created during development if one hasnt been chosen. You will still NEED most (if not all) of the components listed above. Otherwise your going to be developing for 10 years rewriting all the same code for the same thing over and over and over and over again and HOPING itll all play nice.

Pretty much every game project ever that started from scratch, by the end of the project, they have made themselves a Game Engine that powers it.
Even something like Super Meat Boy, thats a custom engine programmed by Tommy.

There's really no two ways about it, to make a game, your gonna want an "engine" whether you choose on Off-The-Shelf style, or craft one from the ground up.

Even PONG kind of runs off of an engine haha

Could I make a game without premade game engine or engine in general and just code everything? or would making a game from scratch actually mean, making the engine to go along with it?

Pretty much exactly what I just answered above

My idea of game engine is just a tool of common materials used in games to put into your game and not the basic life or core of the game, where, if you didnt have it, the game could not play or look 3D, Thats the job of the compiler correct?

The compiler is responsible for transforming your code into an executable for your OS to run. And thats it. The Rendering Engine component is responsible for sending instructions through a DX/OGL/Software instruction API, that sends the information to your display card (video card, whatever), and in turn you NVidia powerhouse then takes over to display what it was told onto your screen. Your GamePlay component is completely separate from everything, and its responsibility is to run through a single big loop that

  1. Checks out the previous state
  2. listens for input from user
  3. makes updates based on logic and input
  4. modifies the frame contents
  5. sends the frame contents to your rendering engine

You can craft your gameplay to be whatever you want it to be. The difference in presentation between an RTS and a First Person Shooter is a matter of where the main camera is positioned and pointed.

Again, a Game Engine is a collection of tools and Components. Your Gameplay Component is going to send information to ALL of those components for them to do their job (play sound, find next footstep position, change scene, whatever you want)

Could I use a pre made game engine and still get the results I want?? or should I make everything from scratch? (given that I need to make an engine in order to have my game work)

Being as this is your very first rodeo, it probably wouldn't be wise to just go "craft a game engine". At the point of creating this thread you werent even totally sure what a Game Engine was, how do you expect yourself to build one? Go grab a few and dissect them. There are a lot of free game engines to grab, and a lot of them are open source now for you to poke around in. Break them apart, work with them a bit, see how they tick. Find what you like, and figure out how you would implement that into your own engine (and possibly improve upon it).

Signed: Redacted


Some game engines allow you to create a game without writing a single line of code. So they can take over the entire job of a compiler. Others are more limited.

Not to be buggy or annoying here but what is the name of such a 3D game engine?

I was actually conveying what the concept of a game engine is, not specifically talking about 3D game engines. The OP seemed confused about the actual definition.

But Blender is indeed a 3D game engine with no coding required. It uses event-driven logic bricks (extendable via scripting). The logic bricks aren't all that different from non-programming interfaces provided in 2D engines, so I'm not sure why we haven't seen more 3D game engines providing similar interfaces.

What is a game engine rreally?
premade library of tools at your disposal?

A game engine is a collection of tools and hooks. A complete "Game Engine" consists of any number of systems, some are required, others are optional. It entirely depends on the needs of the project. Some dont need physics, some dont need 3D, for example.

Game Engine Components are:

  • Rendering Engine
  • Asset Loader & Entity Manager
    (Assets like, Models, Textures, Materials, etc)
  • Scene Manager / "Map/Level" Loader
  • Entity Animation Manager
  • Artificial Intelligence & Pathfinding
  • Particle Engine
  • Physics Simulation Engine
  • Audio Engine
  • Input Manager
  • GUI System
  • Scripting Engine
  • Garbage Collector (if one isn't present)
  • Network Component (aka NetCode)

And tools would be created to work with the engine:

  • Scene/Map/Level Editor
  • Model Viewer
  • Script IDE
  • Build Pipelines
  • Sound Shader compiler
  • Material compiler
  • Model compiler / Asset exporters

As you can see, a "Game Engine" is a large series of components. This is why you have entire army's of people swarming around one as a tech house, like Rockstar San Diego and the RAGE Engine, or one man armies like John Carmack with Id Tech and Tim Sweeny with Unreal Engine. (note: these people have a bunch of programmers underneath them, but they are chief architect and bare an unorthodox amount of work of the engine onto themselves)

does it restrict my customization ability and animation ability?
- for example, I want to make a new fighting system, with its own unique animations, as well as custom characters and custom environment, basically the entire game is custom, the environment, the characters, the movement, textures.

Would this be possible with a pre made game engine?

Is a word, yes. In short? yeah, and It's a great deal of work.

In long? It depends on the engine! Some use scripting languages that interface with the engines API that lets you get right down and dirty into the guts of the system, doing basically anything you want with it without the need to even touch the underlying code. Engines like UDK do this with UnrealScript. Specifically with UDK there is extremely little reason to go into the code, because the scripting has unparalleled power.

Others require you modify the code base to do anything useful with it.

The new fighting "system" would require usurping the existing character controllers, as well as modifying their animation bank, and letting the engine know of the new states ("I am punching now! Use animation "punch1" when I do this! Check for collisions with Entities with my fist. Do something if so. Now I am not punching, go back to "fists raised idle")

The rest is all asset creation and has no baring on the code at all. Except implementing each new one, you might need to update something somewhere for that to register, make the engine "aware" of it.

Is a game engine needed? if the premade one doesnt help? Do I need one to make a game from scratch in general?
is it called a game engine? because it helps render all the environment and characters during gameplay and tell the objects and characters what to do or is that part of programming the game and not the engine??

Yeah, (im generalizing here but) thats all game programming. A Game Engine is typically created during development if one hasnt been chosen. You will still NEED most (if not all) of the components listed above. Otherwise your going to be developing for 10 years rewriting all the same code for the same thing over and over and over and over again and HOPING itll all play nice.

Pretty much every game project ever that started from scratch, by the end of the project, they have made themselves a Game Engine that powers it.
Even something like Super Meat Boy, thats a custom engine programmed by Tommy.

There's really no two ways about it, to make a game, your gonna want an "engine" whether you choose on Off-The-Shelf style, or craft one from the ground up.

Even PONG kind of runs off of an engine haha

Could I make a game without premade game engine or engine in general and just code everything? or would making a game from scratch actually mean, making the engine to go along with it?

Pretty much exactly what I just answered above

My idea of game engine is just a tool of common materials used in games to put into your game and not the basic life or core of the game, where, if you didnt have it, the game could not play or look 3D, Thats the job of the compiler correct?

The compiler is responsible for transforming your code into an executable for your OS to run. And thats it. The Rendering Engine component is responsible for sending instructions through a DX/OGL/Software instruction API, that sends the information to your display card (video card, whatever), and in turn you NVidia powerhouse then takes over to display what it was told onto your screen. Your GamePlay component is completely separate from everything, and its responsibility is to run through a single big loop that

  1. Checks out the previous state
  2. listens for input from user
  3. makes updates based on logic and input
  4. modifies the frame contents
  5. sends the frame contents to your rendering engine

You can craft your gameplay to be whatever you want it to be. The difference in presentation between an RTS and a First Person Shooter is a matter of where the main camera is positioned and pointed.

Again, a Game Engine is a collection of tools and Components. Your Gameplay Component is going to send information to ALL of those components for them to do their job (play sound, find next footstep position, change scene, whatever you want)

Could I use a pre made game engine and still get the results I want?? or should I make everything from scratch? (given that I need to make an engine in order to have my game work)

Being as this is your very first rodeo, it probably wouldn't be wise to just go "craft a game engine". At the point of creating this thread you werent even totally sure what a Game Engine was, how do you expect yourself to build one? Go grab a few and dissect them. There are a lot of free game engines to grab, and a lot of them are open source now for you to poke around in. Break them apart, work with them a bit, see how they tick. Find what you like, and figure out how you would implement that into your own engine (and possibly improve upon it).

this is what I was looking for thank you

This topic is closed to new replies.

Advertisement