Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / I need proof that a game engine is NOT a compiler!

Author
Message
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:43
So I have been skype instant messaging with the zachadoodle. He claims that a compiler is a game engine. Here is what I wrote back to him:

Quote: "A game engine is a bit of software that is generalized to a specific game or a specific genra of games that handles the variations of the game. For example, a racing game such as mario kart has an engine, it's job is to load the track, players, vehichles, obstacles, etc specific to the level/course you choose, and then simulate it. So whether you are zooming around luigi raceway or sneaking through bowser's castle, that same bit of software is being run, that being the enigne. However, the different levels use different modesl and whtnot. Many games have their own engine made specifically for them, then one can add models, sounds, whatever and then perhaps do some scripting to tell the engine how to handle different levels, course, ect. That example is rather specific to mario kart, but some engines, such as ogre which im sure you have heard of are very generalized and designed to let you make any game you want to with minial programming. DBPro ont he other hand, is not an enging but rather just a language and its resepctive compiler that will turn code written in the DBPro format into executable machine code files. "
Who is correct?? He denies that I am correct, but I am near certain he is wrong.

Someone please help us straighten this out!!
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 03:45
Well in that case then why is Unreal considered a game engine? Or Source?

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:47
I bet those use scripting, not conventional source code.
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 03:48 Edited at: 23rd May 2012 03:48
I said Dark Basic Pro was a game engine.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 23rd May 2012 03:48 Edited at: 23rd May 2012 03:51
An engine is not a compiler, if it was a compiler we would call it a compiler. Is the scripting in FPSC just running pre-compiled code or does it actually compile the scripts? Either way an engine is not a compiler.

WARNING: The above comment may contain sarcasm.
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:48 Edited at: 23rd May 2012 03:50
It uses conventional source code, not scripting.

Edit:

OBESE TO THE RESCUE!!!
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 03:51
Quote: "An engine is not a compiler, if it was a compiler we would call it a compiler. Engines don't compile anything, even if you are scripting it is running pre-compiled code. Text adventures are not compilers for example."


But he said that Dark Basic wasn't a game engine and it is since it use coding to make video games.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:53
No!! DBPro is a compiler.
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 23rd May 2012 03:53
An engine is a program, dark basic is a language. When you script (like FPSC) you are sending scripts to the program (engine) you don't do that with dark basic, there is no engine.

WARNING: The above comment may contain sarcasm.
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 03:54
Wrong again. It uses codes to make animations on the screen move with your keyboard and mouse.

A video game does that.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:54
Yes indeed.^^^^ Therefore FPSC is an engine whereas DBPro is not.
Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 23rd May 2012 03:55
Quote: "Well in that case then why is Unreal considered a game engine? Or Source?"

They do not compile source code into a separate executable. They might allow changes to the source code which is then compiled by an appropriate compiler(Intel's C++ compiler, MSVC compiler, GCC/G++,etc). Most game engines like Unreal and Unity allow customization through an interpreted scripting language, not through direct source access that would require a recompile.

The main difference between a generic compiler and a game engine such as UDK/Source/Unity is that a compiler can take arbitrary code(any valid code you think of) and turn that code into an executable. A game engine is an already existing piece of software that is customized through map editors and/or scripting to allow custom behaviors and are rarely edited via direct source code(which would prompt compilation by a compiler) that is the basis for a game's gameplay, graphics, sound, input, and physics aspects.

Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 03:56
Quote: "An engine is a program"

Then why is it I click on a icon it pops up Dark Basic Professional. All programs do that you know.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 23rd May 2012 03:57
Quote: "It uses codes to make animations on the screen move with your keyboard and mouse."

Are you talking about DB or FPSC?

Any program you write in DB could be called an engine but DB itself is not an engine, it's a compiler.

WARNING: The above comment may contain sarcasm.
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 03:58 Edited at: 23rd May 2012 03:59
@Zach Again, you are grammatically making no sense.
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 23rd May 2012 03:59
Quote: "Then why is it I click on a icon it pops up Dark Basic Professional. All programs do that you know."

You mean on the desktop? You are opening the editor which is a program, the editor is not Dark Basic.

WARNING: The above comment may contain sarcasm.
Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 23rd May 2012 04:01
Quote: "Then why is it I click on a icon it pops up Dark Basic Professional. All programs do that you know."

For the same reason that when I click Microsoft Visual Studio 2010 Premium a program opens up. Every compiler needs an development environment of some sort, whether it be a text editor like Synergy or a full-blown IDE like Visual Studio.

A compiler takes a piece of source code, in a text file of some sort, and outputs machine code that implements that source code. Then a linker comes along and makes that machine code an executable that the operating system can run.

DBPro is a language, its compiler is called the DBPro-Compiler.
FPSC is not a language, so it has no compiler.

Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 04:09


Oh screw it. You all win the argument.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 04:12
Yay!!! I get the 50 points!!! But im so nice that i now feel guilty for winning the argument. That always happens to me...
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 23rd May 2012 04:15
Quote: "Oh screw it. You all win the argument."

But you also won because now you know the difference.

WARNING: The above comment may contain sarcasm.
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 04:16

I didn't even bet 50 points.

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 04:16
Hehe... Yeh he and i had a bet over 50 points.
Fallout3fan
16
Years of Service
User Offline
Joined: 9th May 2009
Location:
Posted: 23rd May 2012 04:21
No I didn't

_!!!!_
,0~U -Well I do say, its been quite a fancy forum for
__-____TheZachadoodle.________________________________
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 04:22
That's right...
jobromedia
13
Years of Service
User Offline
Joined: 9th May 2012
Location: Stockholm, Sweden
Posted: 23rd May 2012 05:58
The way I see it: DBPro is the building blocks for us to build our own game engines. Like this:

When I need a new music instrument then I design it with SynthMaker or SynthEdit. They allow me to prototype the instrument engine in a safe environment. Then when I'm ready to take the instrument into the studio then I compile it Then the synth is running on the engine parts I built it on inside my digital audio workstation. It loads the interface, it calculates the maths needed to make lovely music.

Let's say I need a new tile based map system. I design the loader in DBPro, then I design the editor. Then all I need to do is to add the source code to load and interpret my map system inside my game engine I build with DBPro.

MIDI packs for sale.
Best regards
Johan Brodd
zeroSlave
15
Years of Service
User Offline
Joined: 13th Jun 2009
Location: Springfield
Posted: 23rd May 2012 06:25
The compiler builds the car. The engine makes the car move.

Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 06:29
Nice analogy.
Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 23rd May 2012 11:06
A videogames source code tends to be split into 2 main halves, game engine, and game logic. The game logic would be the main loop, media loading, variables, menu system etc, and would use the game engine components to handle the graphics, sound etc.

We could say that DBPro has the main components of your engine built in, then you'd probably have custom functions for the parts that aren't covered, either coded directly in DBPro or added as a plugin.

There is always some overlap between the engine and game logic, because you might not be able to just take a game engine, and write a different game - for example GTA4 and Red Dead Redemption both use the same graphics and sound engine, but the engine will have custom functions specific to whatever game. A lot of the game logic, if not all of it would be scripted code, probably precompiled into bytecode that can be interpreted quickly, and this will mostly use customised functions in the engine.

Personally, I think the confusion arises when people talk about single function engines, like Direct3D, or OpenGL - these are graphics engines, and would obviously be part of the game engine. These systems really need a game engine 'layer' on top of them, to provide functions for handling 3D objects, displaying graphics, that sort of thing. Really, that layer is present in all game engines, that's where DBPro really lies - between DirectX and your own code. I guess I'd say that DBPro is both. It provides a higher level language for game logic, much like an engine might use scripting, but also compiles it all into machine code.

So DBPro is really a hybrid of compiler and engine, it's a mongrel! - so your both right

Health, Ammo, and bacon and eggs!
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 23rd May 2012 11:57 Edited at: 23rd May 2012 11:58
You don't have to make games with DBPro, you can make applications, video editors, music editors, midi players, movies, light shows, music players, and physics experiments. So calling it a game engine is way off.

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 23rd May 2012 12:09
Game Engines:
Unity3D, UDK, Torque, NeoAxis

Graphics Engines:
Irrlicht, Ogre 3D

Physics Engines:
ODE, PhysX, Havok

Sound Engines:
Irrklang and I can't remember others off the top of my head.


I think VanB has it right that people get confused with game engines and single function engines. Once a game engine is built it tends to rely on your scripting to make it function so that you don't have compile the source code over and over (as it would be time consuming to make a game that way).

However, some game engines may compile code. Unity3D has you build its scripts. You have to hit 'build' every time you make changes to your scripts, it's a part of its debugging process, but it's actually very quick because it's not actually recompiling the game engine itself. But not every game engine does that and it's not the same as coding in DBP. DBP provides all of the single function engines you need to build a game engine - now you might choose to do everything inside of DBP, or have a scripting system. Either way, what you built could be considered the game engine.

bitJericho
22
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 23rd May 2012 14:48
I'd say DBP is both a game engine and a compiler.

Zotoaster
20
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 23rd May 2012 14:54
I wouldn't even call it a game engine. I would say it's more of a framework, because I would argue that although it has graphics, sound, etc, it doesn't do anything to link it all up for you, you have to use their framework to make a game engine yourself, to make a game.

"everyone forgets a semi-colon sometimes." - Phaelax
Quik
16
Years of Service
User Offline
Joined: 3rd Jul 2008
Location: Equestria!
Posted: 23rd May 2012 15:51
first half of this thread is more like a skype chat than a forum, glad it finally came to more forumy conversation...

x)


The result of origin.. Oh and ponies
TheComet
17
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 23rd May 2012 16:13
DeadTomGC
14
Years of Service
User Offline
Joined: 11th Aug 2010
Location: LU
Posted: 23rd May 2012 16:33
Perhaps this is a good place for the Dark GDK to step in? It, I believe, makes the difference between the compiler and the engine clear by having them be completely separate.
VC++ is the compiler, while the Dark GDK and your code together make up the engine.


Van B
Moderator
22
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 23rd May 2012 16:39
Quote: "I wouldn't even call it a game engine. I would say it's more of a framework, because I would argue that although it has graphics, sound, etc, it doesn't do anything to link it all up for you, you have to use their framework to make a game engine yourself, to make a game."


It's the levels of abstraction that push it towards being an engine IMO - like your not dealing with the Direct3D framework, or a specific sound framework - it's all abstracted for you. There are varying degrees of complexity with game engines, but I'd say that if your not setting up the framework directly, your behind an engine, and DBPro is fairly far behind a direct framework, at least as far as sound and visuals go. You couldn't use an alternative graphics engine for example, not effectively.

The line between engine and language is blurry in this case, that's for sure!

If someone was to ask me, which engine a DBPro game uses, I'd say DirectX, but I prefer to be vague with this stuff, I hate the look on someones face when you answer a question that they wish they hadn't asked .

Health, Ammo, and bacon and eggs!
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 23rd May 2012 19:57
DX is just an API though. I suppose you could call its engine though.
Diggsey
19
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 23rd May 2012 21:34
DBPro is a game engine and a compiler. The game engine is in the form of all the DLLs that DBPro comes with (not just plugins, all the built in ones, "DBProImageDebug.dll", "DBProBasic3DDebug.dll", etc.) and the compiler is the actual executable which converts your DBPro code into machine code.

Also, anything that will load and display 3d objects in 2 commands can safely be considered to be an engine rather than an API in my book

[b]
Travis Gatlin
16
Years of Service
User Offline
Joined: 14th May 2009
Location: Oxford, Alabama
Posted: 24th May 2012 01:55
Game engines are not compilers. A game engine is an interface to aid in the creation of a game. A game engine creates the code for the compiler. Otherwise we would have to program in pure binary. So no, a compiler is not a game engine, or vice versa.

http://www.talenthouse.com/travisgatlin
You can find my latest work here. Please comment on my work and tell me what you think!
Indicium
16
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 24th May 2012 01:56
Quote: "A game engine creates the code for the compiler"


Woah woah, no.

Benjamin
22
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 24th May 2012 02:42 Edited at: 24th May 2012 02:43
I think a lot of people are confusing game engines ( something you use to make a game) with game engines (the engine of a game itself, like Source, UE, etc.). At least that's my view on things.

I wouldn't refer to libraries as game engines since IMO in the true meaning of the term all the different parts (graphics, physics, sound. etc) are strung together already.



Support a charitable indie game project!
Travis Gatlin
16
Years of Service
User Offline
Joined: 14th May 2009
Location: Oxford, Alabama
Posted: 24th May 2012 02:47
Quote: "Woah woah, no."

Well if you're looking at a game engine like Unity, the actual game code is generated for you, and you do a few scripts but that's it. No actual programming involved.

http://www.talenthouse.com/travisgatlin
You can find my latest work here. Please comment on my work and tell me what you think!
Indicium
16
Years of Service
User Offline
Joined: 26th May 2008
Location:
Posted: 24th May 2012 04:53
But there is no compiling done, and if game engines didn't exist we would not code in binary.

Travis Gatlin
16
Years of Service
User Offline
Joined: 14th May 2009
Location: Oxford, Alabama
Posted: 24th May 2012 05:17
Noo, the code that the game engine generates, goes to the compiler, which is eventually translated into binary. If it weren't for the intermediaries, we would have to program everything in binary.

http://www.talenthouse.com/travisgatlin
You can find my latest work here. Please comment on my work and tell me what you think!
Libervurto
18
Years of Service
User Offline
Joined: 30th Jun 2006
Location: On Toast
Posted: 24th May 2012 05:31
An engine can send code to a compiler but it doesn't compile code. You need some sort of interface to input the code but it doesn't matter what it is. You can write C programs in notepad but I wouldn't call notepad a game engine.

WARNING: The above comment may contain sarcasm.
Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 24th May 2012 05:36
First guy---"Look at my new game engine!!!"

Second guy---"...That's notepad..."
zeroSlave
15
Years of Service
User Offline
Joined: 13th Jun 2009
Location: Springfield
Posted: 24th May 2012 06:19 Edited at: 24th May 2012 06:27
Quote: "Noo, the code that the game engine generates, goes to the compiler, which is eventually translated into binary. If it weren't for the intermediaries, we would have to program everything in binary."

The intermediary which translates your code into machine language is the compiler. The people that created the Unreal engine and the Unity engine programmed it first. You may not have to program a single thing in them, but they were programmed. The IDEs and SDKs that come bundled with the already existing libraries make it much easier for people to make a great game.

A game engine can consist of a graphics engine, an audio engine, a physics engine(havok?), and etc. All the programming involved (whether behind the scenes or not) tells your computer how to load the graphics, store them into memory, control gravity, how fast to play frames in a 3d animation, when to implement ragdolls, controlling the physics involved with ragdolls, etc, etc, etc. But unfortunately, your computer is not going to understand any bit of what you have typed.

You will now need to compile all your source code into machine language. A compiler can be compared to interpreters as well. Compilers translate all your code into a package which the computer can understand before it is ever executed. Interpreters are very similar, but compile the code as it receives instructions during runtime (such as how HTML is interpreted when your browser receives the source code) JIT (Just-in-time compilation) is a good example of an interpreter that compiles at runtime.

An engine is coded. But it will not run until after it is compiled.




Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.
mr Handy
17
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 24th May 2012 09:31
Dark Basic is not an engine though it has functions like
"control camera with arrowkeys", but it is just a functions that built-in, you can write them too. DB is a Lee's personal language and it's own compiler to machine code, that is all compilers do.

«It's the Shader, shader me this, shader me that»
TheComet
17
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 24th May 2012 10:39
If a game engine is a piece of software that executes internal functions according to script files, but doesn't do any compiling itself, why is DarkGDK considered a game engine?

TheComet

Dark Java Dude 64
Community Leader
14
Years of Service
User Offline
Joined: 21st Sep 2010
Location: Neither here nor there nor anywhere
Posted: 24th May 2012 10:42
It shouldnt be...

Login to post a reply

Server time is: 2025-05-19 00:17:16
Your offset time is: 2025-05-19 00:17:16