Thursday, July 26, 2018

terminology - What is a Game Engine?



I am new to Game Development, All I have developed is some 2d Games, using Game Maker by YoYo Games. There game development is much more easy, just as simple as Drag and Drop.


But, Now I wish to evolve in Game Development, and wanna try some hands with the common programming languages like, Java, C++ or C. In order to achieve this, I came around the first topic, Game Engine.


So, What is Game Engine.?


That is a broad question, with various answers. I came out with some conclusion after reading various links,




Wikipedia:


A game engine is a system designed for the creation and development of video games. The core functionality typically provided by a game engine includes a rendering engine for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph.


GameCareerGuide.com


It exists to abstract the (sometime platform-dependent) details of doing common game-related tasks, like rendering, physics, and input, so that developers (artists, designers, scripters and, yes, even other programmers) can focus on the details that make their games unique.


Engines offer reusable components that can be manipulated to bring a game to life. Loading, displaying, and animating models, collision detection between objects, physics, input, graphical user interfaces, and even portions of a game's artificial intelligence can all be components that make up the engine.



Now what I understand is, Game Engine takes care of all the common work, like physics, loading etc...


As far my question is concerned, what is a Game Engine (Programmatically)?


Is it a Library? With pre-defined functions and classes, which can be inherited? Or what so ever, what is it?




Answer



A library simply refers to a collection of classes/functions. There is really not much to it. A Game engine can be released as a library, it's not going to change anything. Afterall software is build from a collection of classes and/or functions.


Where a game engine refers to the basic software of your game. When you speak of a game engine there is at least an architecture involved that handles the bare minimum of the game structure( Entities/Gameobject, rendering, etc ). A lot of the technical stuff is automated for you.


Game engines dictate how certain things are done ( adding scenes, entities/gameobject, loading assets, etc ). All you have to do is add gamelogic and give it an artistic flair ( assets-sound/models/shaders/whatever ).


Game engines exists so that they can boost production. Why or how they do certain things in certain ways is arbitrary ( programming styles as well as work environments can play a big role. To each their own).


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...