Talk:Game engine

message: Were there any commercially viable game engines before Doom?
Yes, at least id's Commander Keen (2D engine(s) the first trilogy engine was used in Duke Nukem (aka Duke Nukum)) and the so called Wolfenstein 3D engine (earlier versions where used in Hovertank 3D and Catacomb 3D, later versions in the Blake Stone series, Rise of The Triad and some others. Between the Wolf3d and Doom Raven Software licensed an 3d engine by id Software's John Carmack for Shadow Caster.
Here's an abbreviated list of a possible outline with over-dramatic titles and mostly engines used for multiple games:
* Console Style Scrolling World (2d smooth horizonal/vertical scrolling): Commander Keen 1-3 (used in Duke Nukem), Keen Dreams, Commander Keen 2, Duke Nukem 2 and others
* The Pixelated World, 1st Generation (2.5d with sprite actors, square based): Wolfenstein 3D (Hovertank 3D, Blake Stone 1, Blake Stone 2, Rise of The Triad, Noah's Arc), Ken's Labyrinth (Ken Silverman/Epic Megagames), Shadow Caster (Raven Software, 3d Engine by John Carmack)
* The Pixelated World, 2nd Generation (2.5d with sprite actors, sector based): Doom 1/2 (id software, used in Heretic, Hexen, Chex Quest, others?), Build (3D Realms, used in Duke3D, Blood, Shadow Warrior, others?)
* The Polygonal World (3d with rough textures): Quake 1 (id software, used in Hexen 2, Half-Life (w/Quake2 network code) Valve, a bunch of mods), some X-Men game that wasn't very good (the X-Men game is not really a shipped game more like a published Quake mod like Malice, others?) and most of its progeny
* The Detailed World (3d with detailed textures and mainstream use of 3d accelerators): Quake 3 (id software, lots of games), LithTech 1 (Monolith, used in NOLF, others?), UnrealEngine 1 (Epic Games, Unreal, Deus Ex, lots of games), Renderware through the GTA3 series
* The Fleshed-out World (skeletal animation, hardware shaders for special effects, wide usage of hardware transform & lighting): UnrealEngine 2 (Epic Games, UT2003, UT2004, Deus Ex: IW, Postal 2, Lineage 2), that engine used in Morrowind (NetImmerse?), Renderware used in Burnout 3, Lithtech Jupiter (Monolith, NOLF2, Tron 2.0)
* The Shaded World (continuous shader usage for model detail frequent usage for environmental effects): Doom3 (id software, Quake 4, Prey), Source (Valve, I forget what games)
:You're right, it makes sense to place the engine first and the actual games second, given the article topic.
It would probably be best to only talk about engines that have titles confirmed using them, which means no UnrealEngine 3 talk yet.
BonzoESC 23:00, 31 Oct 2004 (UTC)
replies: text: First, Unreal Engine 3 was confirmed to be in use for several titles already being developed. Second, the artile is about game engines, not engines used in actual games, so UE3 qualifies in any way. Paranoid 07:14, 1 Nov 2004 (UTC)
thread_title: Engine Before Doom?

message: An anon user added an entire "example" section.  It seems very POV (that is, the code seems to reflect that user's opinion of a good game engine).  I've posted it here for comment before it is reinserted, and actually to discuss whether it should be re-inserted at all.  At any rate, it needs to be copyedited and probably converted to pseudo-code and should be inserted near the end, not near the top where it was:
--Begin pasted section:
===Example===
The software design for a standard engine looks something like this:
//THREAD 1
//Loop 50 times per second
while (true)
{
  logicTime++;
  gfxTime++;
  usleep(20000);
}
//THREAD 2
while (keepRunning == TRUE)
{
  logicLimiter = 0;
  while ((logicTime > 0) && (logicLimiter < threshold))
  {
    doLogic();
    logicTime--;
    logicLimiter++;
  }//while logicTime
  if (gfxTime != 0)
    FPS = 50 / gfxTime;
  else
    FPS = 50;
  gfxTime = 0;
  drawGraphics();  
}
 
In this way, the game is split into two parts: the logic and the graphics.  This method ensures that the logic will run at the same speed on all computers.  Slower computers will display less graphical frames per second.
logicTime: is continually being incremented in a separate thread.  Whenever it's greater than 0, we need to run doLogic(). So, if it were 6, we would call doLogic() six times in a row. In this case, logicTime is incremented 50 times per second.  You can change this by modifying the delay in the usleep() function.
gfxTime: can be used to calculate the frames per second (FPS).  If we are ready to call drawGraphics() and gfxTime is 10, we know that only 5 frames are being displayed each second.  This is because it takes THREAD 1 a fifth of a second to increase gfxTime to 10.
logicLimiter: very slow computers might not be able to update the logic at the desired speed, even if we skip drawing the graphics completely.  By the time doLogic() has finished running, THREAD 1 has already increased logicTime again.  We never exit the logic loop, and never call drawGraphics().  logicLimiter makes sure that the graphics are never completely ignored.  This slows down the game logic, but that was happening anyways.  At least now the user can see what's going on.
CPU Usage: this simple example works OK, but will always use all the processor power available.  A fast computer might be able to draw the graphics before THREAD 1 has a chance to increase logicTimer.  And so, we have two or more back-to-back calls to drawGraphics.  This isn't a big deal, but is a waste of CPU resources.  If the logic hasn't changed, then we're just drawing the exact same image twice.  It may be desirable to include a check for this, and sleep instead of calling drawGraphics() again.
Mutexes: logicTime and gfxTime should be accessed from within mutexes, as they are modified from two different threads.  The mutexes are not present in this example to keep things simple.
--End pasted section.
— Frecklefoot | Talk 15:34, Mar 24, 2005 (UTC)
:Not good. It is better to discuss design than list arbitrary examples. Fredrik | talk 16:15, 24 Mar 2005 (UTC)
thread_title: Example any good?

message: The software design for a standard engine looks something like this:
//THREAD 1
//Loop 50 times per second
while (true)
{
  logicTime++;
  gfxTime++;
  usleep(20000);
}
//THREAD 2
while (keepRunning == TRUE)
{
  logicLimiter = 0;
  while ((logicTime > 0) && (logicLimiter < threshold))
  {
    doLogic();
    logicTime--;
    logicLimiter++;
  }//while logicTime
  if (gfxTime != 0)
    FPS = 50 / gfxTime;
  else
    FPS = 50;
  gfxTime = 0;
  drawGraphics();  
}
 
In this way, the game is split into two parts: the logic and the graphics.  This method ensures that the logic will run at the same speed on all computers.  Slower computers will display less graphical frames per second.
logicTime: is continually being incremented in a separate thread.  Whenever it's greater than 0, we need to run doLogic(). So, if it were 6, we would call doLogic() six times in a row. In this case, logicTime is incremented 50 times per second.  You can change this by modifying the delay in the usleep() function.
gfxTime: can be used to calculate the frames per second (FPS).  If we are ready to call drawGraphics() and gfxTime is 10, we know that only 5 frames are being displayed each second.  This is because it takes THREAD 1 a fifth of a second to increase gfxTime to 10.
logicLimiter: very slow computers might not be able to update the logic at the desired speed, even if we skip drawing the graphics completely.  By the time doLogic() has finished running, THREAD 1 has already increased logicTime again.  We never exit the logic loop, and never call drawGraphics().  logicLimiter makes sure that the graphics are never completely ignored.  This slows down the game logic, but that was happening anyways.  At least now the user can see what's going on.
CPU Usage: this simple example works OK, but will always use all the processor power available.  A fast computer might be able to draw the graphics before THREAD 1 has a chance to increase logicTimer.  And so, we have two or more back-to-back calls to drawGraphics.  This isn't a big deal, but is a waste of CPU resources.  If the logic hasn't changed, then we're just drawing the exact same image twice.  It may be desirable to include a check for this, and sleep instead of calling drawGraphics() again.
Mutexes: logicTime and gfxTime should be accessed from within mutexes, as they are modified from two different threads.  The mutexes are not present in this example to keep things simple.
--End pasted section.
— Frecklefoot | Talk 15:34, Mar 24, 2005 (UTC)
:Not good. It is better to discuss design than list arbitrary examples. Fredrik | talk 16:15, 24 Mar 2005 (UTC)
thread_title: Example

message: I removed the following links because I thought they bore little relevence to the topic and were mostly spam:
*IDV's SpeedTree website
*Great Game Graphics... Who Cares? Includes overview of graphics development in video games till 2003 (Powerpoint)
*The List of areas of a typical game engine
*Gamemaker home page 
*List of Adventure Game Engines
*PTK 2D game engine
If anyone disagrees, state your reasoning and add them back in.  Peace. :-) — Frecklefoot | Talk July 4, 2005 00:51 (UTC)
:None, NONE of these links add to the article, but they could. Thanks for putting them here...
:Nothing here or in the article refrences the a text based game engine made by Infocom, called the Z-Machine. Pbbbbt!  —Preceding unsigned comment added by 69.232.210.165 (talk) 11:21, 4 February 2011 (UTC)
thread_title: Removed extra links

message: Hi! I've removed the cvg "terminology" category from this article as part of the portal project discussed here. The remaining categories cvg "development" and "game engines" cover it I think. Glad to discuss! -- Sitearm | Talk 20:06, 2005 August 20 (UTC)
:Thanks for the explanation. Rl 20:15, 20 August 2005 (UTC)
thread_title:  Computer and video game terminology category change 

message: For a web-based game (specifically Hattrick), could the web server be considered the "game engine?"  -DMurphy 00:40, 15 April 2006 (UTC)
replies: text: IMHO, no.  Unless, maybe, it is only a game web server and not a general purpose web server. I'd get some other people's opinion on this... — Frecklefoot | Talk 15:28, 17 April 2006 (UTC)

text: The Web Server is NOT the game engine, its the middle ware that the Web server serves that is the game engine. I know of NO web servers that stream game engine content, however, online MMRPGs have servers that deliver their content, but the engine runs on the client.  —Preceding unsigned comment added by 69.232.210.165 (talk) 11:16, 4 February 2011 (UTC)
thread_title:  Web-based Games 

message: Currently 3d Engine redirects to Game Engine and also this
A game engine is the core software component of a computer or video game or other interactive application with real-time graphics.
I don't think this is technically correct. A 3D engine is only responsible for graphics while a game engine would be more complete.
It may be common for people to use the two inter-changably to mean one or the other but maybe a note should be added to point out the technical difference. —Preceding unsigned comment added by Quantum1024 (talk • contribs) 
:Be bold. — Frecklefoot | Talk 20:10, 22 September 2006 (UTC)
replies: text: I don't get it either. A RT 3D Engine can be seen as a part of a Game Engine (or as a part of a software of other kind, not game, which is misleading). I think we should have a separate article about 3D Engines and a little subsection under game engine.
--Krahd 20:58, 7 November 2006 (UTC)
replies: text: I agree too, is a complety (althoug inclusive) diferente term. I 3d engine "IS not" a game engine at all, is just abstrac the graphic part only. A 3d engine however, "is a part" of a game engine.
Is like a engine from auto redirects to auto, is two diferent stuff. New arctile must be form.  —Preceding unsigned comment added by 200.108.215.226 (talk) 17:39, 9 December 2008 (UTC)
thread_title: Game Engine VS 3D Engine

message: """A very popular and inexpensive game development environment was created beginning in 1999 by Mark Overmars. His Game Maker object oriented interpreter makes development of 2 dimensional games extremely easy. The system can support many game formats including role-playing games (RPGs).""" —Preceding unsigned comment added by 24.108.200.84 (talk • contribs) 
:Thanks for pointing that out. — Frecklefoot | Talk 16:36, 28 November 2006 (UTC)
thread_title:  NPOV 

message: I have a question why isn't this labeled as a game engine. It is used to create 2D fighting games. —The preceding unsigned comment was added by Agentsix (talk • contribs) 09:07, 22 February 2007 (UTC)
thread_title:  13: Mugen Game engine 

message: Here is a reference that discusses game engines. Maybe you can use it in the article? SharkD (talk) 21:53, 18 June 2008 (UTC)
thread_title: References

message: Seems like an orphaned section that has a bit of out of date ramble that doesn't deserve its own section and has no content worth integrating into the rest of the article. I'm suggesting deleting the whole section and moving the page link to the bottom of the article. Caspar esq. (talk) 03:21, 15 April 2011 (UTC)
replies: text: To the "See also" section? No objection here. — Frεcklεfσσt | Talk 12:56, 15 April 2011 (UTC)
thread_title:  First Person Shooter Engines 

message: I moved JMonkey out of the graphics engines list and into the game engine list. I also thought that Gamebryo and RenderWare look like they should be in the graphics engine list instead of the game engine list, but I did not move them since I know little about them. I made that judgement based on the Gamebryo and RenderWare wikipedia pages, which make them sound like graphics engines.
Could someone who knows more about those two engines make that decision? Thanks.
150.155.129.251 (talk) 17:48, 6 May 2012 (UTC)
thread_title:  Changes to the list of game engines and the list of "graphics-only" engines 

message: It would seem like my page, Game Integrated Development Environments should be taken down, and the card game builders/makers/engines and other 2D game builders moved to this page.  This will take some research to write up the various tools.  The distinction I was trying to make was between building/making a game and running a game (you need an engine to run a car, but motorized tools and robots to make an engine and a car.  You can't use an engine to build a car).  But perhaps at this point, the distinction is irrelevant.
We need to include the card engines and the grid engines on this page somehow.  — Preceding unsigned comment added by 64.5.67.75 (talk) 00:27, 5 December 2012 (UTC)
replies: text: Could that be folded into this article? It's bare-bones as it is, and includes very few sources. -- Consumed Crustacean (talk) 20:59, 17 August 2014 (UTC)
thread_title:  My page, Game Integrated Development Environments and Card Game Engines 

message: The Source engine is aviable for steam users using the Source SDK,
All basic game codes & Source engine are download-able using this
Tool, You can download Source SDK Using the Steam.  — Preceding unsigned comment added by 79.183.193.153 (talk) 18:21, 13 February 2015 (UTC)
thread_title:  The Source engine is open source... 

message: Hello fellow Wikipedians,
I have just added archive links to  on Game engine. Please take a moment to review my edit. If necessary, add  after the link to keep me from modifying it. Alternatively, you can add  to keep me off the page altogether. I made the following changes:
*Added archive https://web.archive.org/20131017044354/http://adlcommunity.net/file.php/36/GrooveFiles/Games%20Madison/report%20Middleware.pdf to http://adlcommunity.net/file.php/36/GrooveFiles/Games%20Madison/report%20Middleware.pdf
When you have finished reviewing my changes, please set the checked parameter below to true to let others know.
Cheers. —cyberbot IITalk to my owner:Online 08:44, 30 August 2015 (UTC)
thread_title:  External links modified 

message: I'm referring to this rewrite: . Since the author () now wants a reassessment based on this new version , I feel I ought to reply.
I'm trying to focus specifically on incorrect and unsupported facts, as well as organizational choices; I don't think I'd actually keep any of the text that's present in the article at this moment as the style isn't summaryish enough. I don't mean to be rough with a new user. Mind, I was considering eventually boldly gutting the old article myself, I really did not like it either.
# The lede
#* Seems to imply they are, but game engines aren't necessarily strictly data-driven, even if you want to make some degree of data-driven architecture part of the definition.
#*And, there's at least one source in this article that provides a very different definition of "game engine" (the Carmack video is one). I'm sure I could dig up others. It oughtn't be defined too narrowly if our sources can't even agree.
#*Referring to game logic as "assets" is strange.
#*Suggests that assets get fed into a build system and voila, game. This is skipping out on the code side of game development.
#*Stating that game engines are a series of libraries is wrong, and it's even directly contradicted by the Carmack video, where he's specifically comparing game engines (he provides idtech and UE as examples) to game libraries (bringing up Criterion and Argonaut).
#*The "modular" vs. "monolithic" line is big. It's also a synthesis. You can't link to the documentation for UBT to support this.
#*Yes, Engines have APIs. They're software. A framework is not an API, they are not interchangeable terms. The term framework is thrown around later on in strange ways as well.
#History surely needed to be trimmed, but this seems to have gone a bit too far and dropped anything that might have been useful from the old version.
#*Again the assets are all you need to make a game thing
#Agents
#*Uses in-line external links.
#*Isn't correct. Unity's GameObject is equivalent to UE's AActor; Unity's Object is equivalent to UE's UObject.
#*Doesn't cite any sources or provide any other clarity on why this should be its own section or why the reader should care. This ought to be gracefully integrated into some other architectural section, especially considering the last bit on composition vs. inheritence, which seems out of place under this heading.
#*Nystrom, Bob. "Component". Does not even attempt to support the assertion it's being used for.
#Main Game Loop
#*Generally, again, a little odd sitting out here, it needs build-up and placement inside an architecture section or something.
#*"The simulations are therefore numerical" - what does that mean?
#*"To make the simulated world seem to move as quickly as the user's world" - What is the user's world? Reality? The rendered view?
#*"Frameworks will usually do the main game loop for the developers." - Frameworks again. What do they have to do with anything here?
#*"agents not detecting collisions will result in a lack of collision response, which could result in inaccurate simulation." is not why you need to fix physics, and the Semi-fixed timestep section doesn't say why you need to either.
#Optimization
#*Generally. Why does this exist? Also a very confusingly-written section.
#*The RAM statement generally. Also disregards the nice points that its provided source actually makes RE: CPU speed vastly outpacing RAM latency improvements.
#MySQL and Unreal's Editor are equated at some point.
#I stopped here. The rest seems to be stubbed out so there's not much to discuss other than the layout / organization, which I'm not sure about yet.
I do appreciate that a lot of the synthesis and irrelevancy has been stripped from the article.
I'd like to help more, though my current thoughts on "help" do amount to undoing much of what's new in the article.  -- Consumed Crustacean (talk) 02:52, 23 September 2015 (UTC)
thread_title:  Several issues with the recent rewrite 

message: Speaking as a gamer with a casual interest, and therefore a Wikipedia reader not qualified to contribute usefully to this page, I was disappointed there was nothing that identified the most popular current game engines, even as a jumping off point for further reading. I'm aware of Unreal, Source, CryEngine, but there's probably a handful of others that underpin highly popular current games, or a large number of them. But from this article, it's impossible to know. I appreciate going into this raises a page maintenance problem to keep it current, and might introduce further challenges with NPOV and puffery. However, an article on "Game engines" that doesn't tell the reader what the most important current game engines are is of limited usefulness.217.155.66.190 (talk) 11:03, 14 November 2016 (UTC)
thread_title: This article needs a section on the state of the art

message: Hello fellow Wikipedians,
I have just modified one external link on Game engine. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
*Added archive https://web.archive.org/web/20110108073502/http://www.m-trends.org:80/2008/01/mobile-and-wireless-trends-for-2008.html to http://www.m-trends.org/2008/01/mobile-and-wireless-trends-for-2008.html
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
Cheers.—InternetArchiveBot (Report bug) 15:31, 7 January 2017 (UTC)
thread_title:  External links modified 

message: Very little if any independent coverage of "free game engines". Searching WP:VG/S, general google searches, Scholar search, the term isn't really discussed by reliable sources. Much of the article is unrelated sourcing that is handling WP:V for individual engine details, not the topic in general.
The few pertinent details can be merged into a paragraph or two of the main article, if suitable. But there may be little available to merge. For example, the first paragraph of "Advantages and disadvantages" is presented as applying to "free game engines", but in actuality is sourced to an article about Godot. The pros/cons are present as being about Godot, not all free game engines. The second paragraph? Almost entirely unsourced/OR. -- ferret (talk) 19:01, 12 June 2022 (UTC)
thread_title:  Proposed merge of [[Free game engine]] into [[Game engine]] 

message: — Assignment last updated by Stevesuny (talk) 14:20, 16 October 2023 (UTC)
thread_title: Wiki Education assignment: Digital Media and Information in Society

message: Hey everyone,
I would like to let you guys know what I am planning to edit this article to see if we are all in the right page. First off, i realized that programming languages are barely talked about in this article, so i would like to add more about the different programming languages that game developers use. I would also like to dabble a little bit more in Virtual and Augmented reality, to see what game engines are used for those realities. One final thing is I would like to improve the Game engines as an Industry section, since there is only one paragraph there and i would like to expand that.
That is all the plans I have for right now, I might add more, but i will let you guys know. Also let me know if you want something else re-edited  in the article, I can have a look.
Thanks for reading,
Hunter Kaminski (talk) 14:18, 1 November 2023 (UTC)
thread_title:  Editing possibilities  

message: Hey everyone
I wanted to let you guys know that I have finished editing the article.
I added onto the game engines as a industry, plus added a new section discussing the future of game engines
If  you would like too add on to it, or completely get rid of it, be my guest, this is a open source after all. Im just letting you guys know
Hunter Kaminski (talk) 01:32, 8 December 2023 (UTC)
thread_title:  Edit finished