0% found this document useful (0 votes)
41 views35 pages

Chapter 4

Uploaded by

fitri rusli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views35 pages

Chapter 4

Uploaded by

fitri rusli
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 35

GAME

ENGINES
Ts. Dr. Nurul Hidayah Binti Mat Zain/
Ts Dr Norizan Mat Diah
Overview
• Game engines Architecture
• Game engines technology
Game Engine
Introduction
• The game engine term arose in the mid-1990s.
• Doom: First Person Shooter architected with a well-defined separation between
its:
• Core Software Components (the rendering system, the collision detection, the audio, etc.)
• The art assets, game worlds, and rules of play
• Developers began licensing games and remaking them into new products by
creating new art, world layouts, weapons, characters, vehicles, and game rules
with only minimal changes to the "engine“ software.
• Thus, game engines provide a selected set of core components, including the
rendering engine, the collision and physics engine, the animation system, the
audio system, the game world object model, the artificial intelligence system,
etc.
Introduction
• A game engine is a software development environment designed for
people to build video games.
• Game engines provide game developers a framework for creating a
video game without the need to create all systems, such as the physics,
graphics, and AI, from scratch.
• Game engines help developers save time and resources by removing the
need to program and integrate game-supporting systems together, so
developers can focus on creating the meat of the game itself
• Game development teams use game engines to support them while they
program a video game, and the decision of which game engine to use is
usually the first step towards actually creating a game.
Game Engine
• Game engine is defined as the collection of modules of simulation
code that do not directly specify the game’s behaviour (game logic)
or game’s environment (level data) (Lewis & Jacobson, 2002).
• The concept of a game engine: it exists to abstract the (sometime
platform-dependent) details of doing common game-related tasks,
like rendering, physics, and input, so that developers can focus on
the details that make their games unique (Jeff Ward, 2008).
• Commonly identified modules include input handling, graphics,
sound, and physics/dynamics (Bishop et al., 1998; Lewis &
Jacobson, 2002).
Game Engine
Game engine : A gaming engine is a software
development environment, also referred to as a “game
architecture” or “game framework,” with settings and
configurations that optimize and simplify the
development of video games across a variety of
programming languages.
Modern Game Engine
• Game engine should be able to simplify critical tasks like:
• Physics: In-game immersions/physics should be a perfect balance between
simulation quality and computing power limitations for the end-user.
• Input: This is an extremely common issue in cross-platform development. Is
your gaming engine solving this problem for you?
• Visual Assets Processing: Lighting, shading, texture-mapping, and depth-of-
field require less programming effort while using game engines.
• Game engine should perform tasks with reduced coding efforts.
• This helps shorten development times significantly and allows teams
to focus on designing their games to deliver a unique and special user
experience.
Example Game Engine
• Unreal Engine
• A game development multi-platform engine designed for
businesses of all sizes that helps use real-time technology to
transform ideas into engaging visual content.
• Unreal Engine users will be able to use Quixel’s bundled tools
(Bridge, Mixer) and all of Quixel’s Megascans library assets for
free.
• Strengths: scalability, tons of features, rich customization
abilities, 2D & 3D
• Pricing: Free
Example Game Engine
• Amazon Lumberyard
• 3D game engine designed to build games and fan communities.
• It offers VR preview mode, visual scripting tools, and also Twitch
integration.
• Powered by Amazon Web Services, secure cloud platform built
and maintained by Amazon, integration through Lumberyard
means it’s significantly easier to build games with online play.
• Strengths: feature-rich platform, extensive capabilities
• Pricing: Free
Example Game Engine
• CryENGINE
• A free-to-use platform where we get the full engine source
code and all engine features without having to pay any license
fees.
• This is also a great option to purchase in-game assets, which
can be found at the Cryengine Marketplace.
• Strengths: solid interface, stunning visual capabilities,
impressive VR support
• Pricing: Free. Memberships start at $50 per month
Example Game Engine
• Unity
• Multi-platform game engine to create interactive 3D content with
ease.
• This gaming engine is the choice of many large organizations today
due to its excellent functionality, high-quality content, and ability
to be used for any type of game.
• It supports both 2D and 3D content.
• Strengths: Free Version, Multi-Platform Support, Good for Teams of
All Sizes, 2D & 3D
• Pricing: Free for Personal Use. Paid Plans Starting at $35 per month.
Example Game Engine
• GameMaker: Studio
• GameMaker has become widely used because it doesn’t require
programming knowledge to use.
• Users can “point-and-click” to create games much faster than
coding with native languages.
• The problem with GameMaker and other point-and-click engines
is that developers are much more limited than with other
engines.
• Strengths: Easy to Use, Intuitive Interface
• Pricing: Free. Memberships start at $39 per month.
Review Game Engine
List of Game Engine
• https://en.wikipedia.org/wiki/List_of_game_engines
• https://www.incredibuild.com/blog/top-gaming-engines-y
ou-should-consider
• https://www.makeuseof.com/phaser-game-development/
Types of Game Engines
Types of Game Engines
• Game engines come in many different types and at
many levels of programming expertise.
• Three kinds of engines:
1. The Roll-your-own Version (lowest level)
2. The Mostly-ready Version (mid level)
3. The Point-and-click Engine (highest level)
Roll-your-own game engines
(lowest level)
• Despite the cost, many mainstream companies (as well as indie
game makers) will still attempt to roll their own engines.
• This means they use publicly available application interfaces, such
as APIs like XNA, DirectX, OpenGL, the Windows and Linux APIs and
SDL, to create their own engines.
• In addition, they may use other libraries, both commercial and open
source, to help them along the way.
• These libraries might include physics libraries like Havok and ODE,
scene graph libraries like OpenSceneGraph, and GUI libraries like
AntTweakBar.
Roll-your-own game engines
(lowest level)
• Generally, these home-rolled systems give
programmers the greatest amount of flexibility, letting
them pick and choose the components they want and
integrating them exactly how they want.
• But they also take the longest amount of time to build.
• This makes rolling your own engine less attractive to
most game developers, even the professional ones.
Mostly-ready game engines
(mid level)
• Game engines to be "Mostly Ready."
• These engines are ready for prime time right out of the box, with rendering,
input, GUI, physics.
• Many of them even have mature tool chains so you do not have to roll your
own.
• Engines still require a bit of programming to get them up and running into a
complete game.
• They might call for some scripting or sometimes even low-level coding to
get a real game working.
• Mostly-ready game engines are a bit more limiting than roll-your-own
engines and are frequently optimized for the general case.
Point-and-click engines (highest level)
• Point-and-click engines are becoming more and more common
these days.
• They include a full tool chain that allows you to point and click
your way to creating a game.
• These engines, which include GameMaker, Torque Game Builder,
and Unity3D, are built to be as friendly as possible, and are made
to require as little coding as possible.
• That's not to say knowing a little coding doesn't help, but it isn't
really a necessity the way it is for the mostly-ready and roll-your-
own engines.
Point-and-click engines (highest level)

• The problem with many point-and-click engines is that


they can be extremely limiting.
• Many do one or two types or genres of game well, or
one or two types of graphics modes.
• The best thing about these engines is that they allow
you to work quickly, and play your games quickly,
without too much work.
Game Engines Architecture
Game Engines Architecture
• Game Engines Architecture
Game Engines Architecture
• Game Engines Architecture
Game Engine Architecture:
Case Study on Unity
• Unity is a cross-platform game engine developed by
Unity Technologies.
• It is used to develop video games for web plugins,
desktop platforms, consoles and mobile devices.
• Unity is the software that provides game creators with
the necessary set of features to build games quickly and
efficiently.
• Case study:
https://docs.unity3d.com/Manual/UnityManual.html
Runtime Engine Architecture
This is where it delve into the different
layers of systems and libraries that
comprise the game engine, in case
study, Unity. ( patel, 2017)
Principles of Game Engine
Design
Principles of Game Engine Design
• Game engines are often designed according to the four
principles of:
1. Abstraction
2. Modularity
3. Simplicity
4. Recyclability (Reuse)
Principles of Engine Design:
Abstraction
• Abstraction is about producing generalizations from particular
instances, and is a matter of degree.
• A complete abstraction can be identified by its entirely general
nature, for it makes no reference to particular cases.
• The idea of a chair, for example, is an abstraction because it refers
to chairs in general and not to any particular chair.
• The principle of abstraction is useful for engine developers because
by designing the components of an engine to be abstract rather
than particular, the developer increases their field of use or their
versatility.
Principles of Engine Design:
Modularity
• The principle of modularity begins by considering an entity as a working
whole and then proceeds to subdivide that entity into constituent pieces or
modules, each according to their purpose or function as it relates to the
whole.
• In object-oriented programming, each module is likely to correspond to a
class.
• By the principle of modularity, each module is seen as both independent
and exchangeable.
• Independent in the sense that it is distinguished from other modules by its function.
• Example: Two modules belonging to the same whole should share the same function.
• Exchangeable in the sense that it could be replaced without damage to the whole
only by another module that serves the same function.
Principles of Engine Design:
Simplicity
• In this case, keeping things simple refers to a process of
reductionism, which refers to the process of reducing the complex
into the simple.
• Modularity suggests that an entity should be subdivided into
smaller functional components.
• Simplicity suggests that entities should not be multiplied
unnecessarily.
• When the principle of modularity is combined with that of
simplicity, the advice is that an entity should be subdivided into
the fewest number of functional components possible.
Principles of Engine Design:
Recyclable
• Materials and processes that can be reused are considered recyclable, and the
more frequently and widely they can be reused the more recyclable they are.
For game engines, recyclability often relates to efficiency.
• An engine that consumes half the resources of another engine to perform the
same tasks with equal or greater reliability and efficacy is generally considered
to be the more efficient of the two.
• Efficiency refers to the relationship between the resources available and the
performance and reliability that result from the processing of those resources.
• A process is efficient to the extent that it achieves success and reliability from
a given set of resources, and efficiency is improved when success and
reliability are increased from the same resources or from fewer resources.
Conclusion
• Engines designed according to the four principles of
modularity, simplicity, recyclability, and abstractness often
benefit the game developer and prove cost effective in
many ways, including the following:
1. Versatility: can be used for many games and for many games
across many genres
2. Reliability: a bug corrected in the engine potentially represents a
fix for all games powered by that engine
3. Scalability: engine can be licensed by its creator to one or more
other developers for the purpose of powering their games.
Completed Chapter 4
This Photo by Unknown Author is licensed under CC B

You might also like