Game Engines

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Presentation by:

Diksha Bhargava
CSE VIII Sem
 What is a game engine ?
 Run Time Engine Architecture
 Tools and the asset pipeline
 Types of Engines
 Tools of the trade
 Best rated engines
 Conclusion
 A game engine is a software framework designed for
the creation and development of video
games. Developers use them to create games
for consoles, mobile devices and personal computers.
 Set of tools to assist in making a game
 Game agnostic software components
 Reusable for many different games
 Multi-platform (typically)
 Allows for data driven development
 Makes development faster!
 Target Hardware
 Device Drivers
 Operating System
 Third-Party SDKs and Middleware
 Platform Independence Layer
 Core Systems
 Resource Manager
 Rendering Engine
 Profiling and Debugging Tools
 Collision and Physics
 Animation
 Human Interface Devices (HID)
 Audio
 Gameplay Foundation Systems
• Renderer (2D or 3D)
• Collision Detection
• Scripting
• Sound/Video
• Animation
• Shading/Lighting
• Networking
• Physics
• Artificial Intelligence
• Level Editor
• Custom Tools
Digital Content Creation Tools

Games are multimedia applications by nature. A game


engine’s input data comes in a wide variety of forms,
from 3D mesh data to texture bitmaps to animation data
to audio files. All of this source data must be created
and manipulated by artists. The tools that the artists use
are called digital content creation (DCC) applications.
• Used by the Render Engine, Sound/Video Engine, Animation
Engine
• Anything that is in the game besides code
o Models
o Textures
o Sounds
o Videos
o Animations
• Tells the Render Engine where to place Assets
• Arranges a scene
o Logically
o Spatially
• Tree Structure
o Hierarchical
• Graph Structure
o Non-hierarchical
• Usually built onOpenGL
or DirectX
• Generates images in
real-time from assets
• Controlled by the Scene
Graph
• Interacts directly with the
GPU
• Intersection of two given solids
o Spheres
o Planes
o Tubes
o Polygons
• Collision Response
o Event
• Usually uses an interpreted language (Python, etc.)
• Allows custom code
• Does not require the source code
• Does not change any engine code
• Game Specific
• Usually played based on an
event
• Built off of an external library
(OpenAL,etc.)
• Video is often only for cut-
scenes or as part of in-game
objects
• Sound is for music and
sound effects
• Handles sound objects that
can control surround sound
and 3D sound
• Handles animation of objects on the Scene Graph
• Tween animation
• Rig/Skeleton Based animation
• Tells the Renderer how to display the assets
• Calculates special effects
o Shadows
o Normal Maps
o Particle Effects
o More...
• Applied by the Render Engine on objects in the Scene
Graph
• Handles multicomputer communication
o Peer to Peer
o Client to Server
o Distributed
• Handles behavior of objects based on collisions
• Simulates or predicts physics models
o Rigid Body Dynamics
o Soft Body Physics
o Fluid Dynamics
• Controls object interaction
o Stimuli
o Needs
o Desires
o Flocking
• Often uses Finite State Machines
• Allows placement of multiple assets to create environments
• Can allow custom scripting for AI
• Primarily used for static asset placement
Tools used by the majority of professional game engineers are of three types :

Version Control : A version control system is a tool that permits multiple users
to work on a group of files collectively. It maintains a history of each file, so that
changes can be tracked and resverted if necessary.

Why Use Version Control?

 Version control is crucial whenever soft ware is developed by a team of multiple


engineers. Version control
 provides a central repository from which engineers can share source code;
 keeps a history of the changes made to each source file;
 provides mechanisms allowing specific versions of the code base to be tagged
and later retrieved;
 Permits versions of the code to be branched off from the main development
line, a feature often used to produce demos or make patches to older versions
of the soft ware.
 Microsoft Visual Studio
 Profiling Tools : A profiler is a tool that measures the
execution time of your code. It can tell you how much
time is spent in each function.
 Memory Leak and Corruption Detection
 A memory leak occurs when memory is allocated but
never freed. Memory corruption occurs when the
program inadvertently writes data to the wrong memory
location,
Unreal Engine 4:
 The Unreal Engine is a game engine developed by Epic
Games, first showcased in the1998 first person
shooter game Unreal.
 With its code written in C++, the Unreal Engine features a high
degree of portability and is a tool used by many game
developers today.
 Company: Epic games
 Platforms (UE4): consoles, TBA, PS3.
 Used in (UE3): Gears of War, Infinity Blade, Mass effect etc.
 Unity is a cross-platform game engine developed by Unity
Technologies and used to develop video
games for PC, consoles, mobile devices and With an
emphasis on portability, the engine targets the following
APIs: Direct3D on Windows and Xbox 360; OpenGL on Mac
and Windows; OpenGL ES on Android and iOS; and
proprietary APIs on video game consoles.
 Platforms: Android browser, flash, iOS, Linux, Mac, PC, PS3,
Wii U, Xbox 360.
 Used in (Any Version): Bad Piggies, Castle Stories, Dead
Trigger 2, Wasteland 2.
 CryEngine is a game engine designed by
the German game developer Crytek. It has been
used in all of their titles with the initial version
being used in Far Cry,
 It has also been used for many third-party games
under Crytek's licensing scheme, including Sniper:
Ghost Warrior 2 and SNOW.
 This game engine has earned wide acclaim in
massive multiplayer and online game circles — you
can see its results in Star Wars: The Old Republic.
 It offers several open-world maps and lively
instances. It also offers a seamless transition
between them. Easy and handy mapping tools and
integrated tool set.
 Cloud support for client server with HeroCloud.
 AppGameKit was developed out of our own need to
create a one stop solution for making game apps for
mobile devices.
 It enables you to write codes for multiple platforms,
including Android iOS, Windows, Mac, and Linux.
 AGK script has powerful commands for networking,
2D graphics, and physics.
GE are now being used for serious games:
visualization, training, medical, and military
simulation applications, with
the CryEngine being one example. To facilitate
this accessibility, new hardware platforms are
now being targeted by game engines, including
mobile phones (e.g. Android, iphone) & web
browsers
(e.g. WebGL, Shockwave, Flash, Trinigy’s,
Unity player).

You might also like