Українська   Русский

Abstract

When writing the abstract of this master's work is not yet complete. Final completion: December 2014 Full text work and materials on the topic can be obtained from the website after this date.

Contents

Introduction
1. Topic actuality
2. The purpose and objectives of the research, expected results
3. Overview of the typal structure of the game engine
3.1 Graphics
3.2 Artificial Intelligence (AI)
3.3 Physics
3.4 Audio
3.5 User input
3.6 Framework
3.7 Managers
4. Sources overview
5. Analysis of the future of the project
Conclusion
References

Introduction

Game engine — software core of the complex software system (game), containing the basic functionality of the game, but at the same time it doesn't include code of specifical gameplay functionality of the specific game [1].

In modern models of the game programming game engines are used as the mechanical basis of the games. Game engine consist of many components and modules that implement the functionality of the game in the form of showing and processing graphics, sound, artificial intelligence, etc. In the next it leaves only to impose content upon engine, corresponding to developed game. Module design of game engines allows for gamers and programmers easily change it's parts, modify them on purpose of creating new games with new models, improved graphics, sounds, else scenario, change existing materials and add new functions [2]. Thanks to that on the base of existing game engines were created and being created a lot of new games, herewith the amount of work did for that becomes significantly reduced.

The example of strategy game, implemented with use of the game engine, which allows showing the image of the entire game map, can be seen on Figure 1:

Strategic map in dynamic. Game "Machines at War"

Figure 1 — Strategic map in dynamic. Game Machines at War [3]
(animation: 147 kilobytes, replay 6 times, 10 frames, frame show intervals [2s, 1s (8 fr.), 5s]

1. Topic actuality

All you need to know when using the game engine - is how to use it, herewith the knowledge of how it works, you can omit. It reduces the development time of the game exactly for the time of development of the engine (the engine itself can often be 80% of all the complexity of the project), on which would work designed game. In addition, the game's code is written using the game engine looks more organized and more manageable, which reduces the number of software errors occur.

Using the game engine can make your game more portable. A well-designed game engine can run your games using other libraries or even other platforms. In the current market with the presence of multiple operating systems, as well as a tendency to develop games not only for computers but also for mobile devices, it is more than actual. This lack of universality of game engines could be seen in the recent past, when many applications and games were exclusives only for certain platforms and operating systems, while for the rest they were not available [4].

Based on the foregoing it can be concluded that the game engine technology plays a very important role in the modern gaming industry and building graphical simulation systems of anything. Therefore, the investigation of established features of the modern engines, as well as field-proven principles of their design and implementation, is a hot topic.

2. The purpose and objectives of the research, expected results

The purpose of research is studying and using game engine development tools for the games of genre strategy.

    The main objectives of research:
  • Overview and analysis of modern game engines.
  • Overview and analysis of typal game engine structure.
  • Overview and analysis of available components for building the game engine.
  • Development of the new game engine oriented for creating games in the genre of strategy.
  • Software implementation of the aforementioned game engine, as well as game-example, working on the game engine created.
  • Analysis of the results, as well as of possible options of their future use.

Research object: game engine's architecture and its components.

Research subject: development of the game engine for the computer games of the genre strategy.

3. Overview of the typal structure of the game engine

Diagram of typical modern game engine structure can be seen on Figure 2 [5].


Typical modern game engine structure

Figure 2 — Typical modern game engine structure


As it can be seen the game engine itself is a framework with managers which control the other systems linked to the engine through the interfaces. Further by section goes the description of each component.

3.1 Graphics

For graphics in the game engine is responsible graphics engine. Graphics engine – this middleware software, software engine, whose main task is visualization (rendering) of two-dimensional or three-dimensional computer graphics [6]. Graphics engines are of different types and purposes, ranging from those intended for visualization of individual images or computer-video, ending with engines designed for complex three-dimensional graphics, called renderers which are used in computer games or just 3D modeling systems (such as 3ds Max, Maya, Cinema 4D, Zbrush, Blender).

Often have a variety of options - settings affecting the quality and type of outgoing pictures, ranging from resolution and frame angle, continuing with such important parameters as quality of textures, shadows and effects, and ending with a variety of technologies improving image quality: filtering (bilinear, trilinear, anisotropic), shaders, mapping (bumpmapping, parallax mapping), Anti-Aliasing (smoothing) tessellation, vertical sync, post-processing, High Dynamic Range, bloom, glow, film grain, motion blur, SSAO, Cel shading, Depth of field, more detailed description of which can be found on the links in the source list [7] [8].

3.2 Artificial Intelligence (AI)

Game artificial intelligence — a set of software techniques that are used in computer games to create the illusion of intelligence in the behavior of the computer-controlled characters. Game AI, in addition to traditional methods of artificial intelligence algorithms also includes control theory, robotics, computer graphics and computer science in general [9].

As a component of the game engine, artificial intelligence module provides developers with a set of actions, functions, and triggers that can perform objects with intellect and tools for linking them together and setting conditions for the mechanism of transitions between states. Moreover, the AI ​​module often includes optimization algorithms to find the best solutions and else. There is nice collection of articles about AI on the habrahabr.ru website [10]

3.3 Physics

Physics engine — computer program, which makes a simulation of physical laws of the real world in the virtual world, with varying degrees of approximation. [11]. In game physics engines realistic visual simulation of physical processes is pursued, with use of a very strongly approximated calculations, approximate models and other software tricks.

Depending on the scale and specificity of game, physics engine included in them, can be quite a serious tool, which quickly calculates the interaction of many bodies with complex form, heterogeneous mass, density, energy, and other attributes, or can be completely absent.

3.4 Audio

Audio engine — software component of the game engine, responsible for reproduction of sound (noise and music, character voices) in a computer game or other application. Often sound engine is also responsible for the simulation of certain acoustic conditions, sound reproduction according to the location, echo, etc. [12].

3.5 User input

Input system is not only responsible for reading the control signals from keyboard and mouse, and their interpretation in the corresponding game actions, but also for their accumulation during the processing of physics, gaming events, drawing graphics, and also provides the well-timed emission of these signals to the game thread.

3.6 Framework

Framework (internal integrated environment) — a component that brings together all the components of the engine, initializes their work, and keeps information about the scene [5].

Game cycle executes in the framework has the following order (figure 3):

Main game cycle

Figure 3 — Main game cycle

At the first stage of the game loop execution, framework processes all pending messages, which went into the game from the user controls. Then the scheduler assigns tasks to the components of the game engine using the Task Manager. All changes that have been registered by the State Manager are being transmitted to each corresponding engine component. At the end framework checks the status of accomplishment of tasks and assigns further action of engine (waiting, end of work, go to the next scene)

3.7 Managers

Managers provide support of global functions within the engine and are implemented as a singleton-objects, in other words, the manager of each type is only available in one copy [5]. Their purpose is to manage the resources of the engine, registration of changes, scheduling tasks and watching the general state of the game engine, allowing the work of the engine itself, but also making it work process optimized.

4. Sources overview

As the result of search of works dedicated to the theme of current work , a lot of relevant works were found in the internet, information of which have been used while writing this work, you can view them by looking links in the references. It is worth noting that on the Internet there are rare, but quite informative and educational resources devoted to the development of game engines (for example 3D Game Engine Programming), but detected resources, closely related to the topic of this work and accurately implemented, are English-languaged, that is to say that in Russian and Ukranian-languaged communities the question of constructing the game engines is covered purely, mainly limited with description of already existing game engines API and instruction for their use.

Locally, on DonNTU masters portal, good amount of relevant works was found, you can view them looking for links in ссылки section. Worth for mention the one most relevant of those works by Ilkun V. Tools for game development of the action genre from the first and third person [13].

5. Analysis of the future of the project

The ultimate goal of research is creating a simple 3D game engine, on which then will be created game-sample of the genre strategy, to be more exact real time strategy.

As a development environment of the game engine Visual Studio 2012 will be used. Used programming language — C++. As the graphical system will be used simple renderer created using OpenGL. Playing sound carried using OpenAL. Complicated physics engine is not required. Controls tools are keyboard and mouse. The game engine will have commands for controlling objects AI of the wargame corresponding types (infantry, tanks, aircraft), for implementing unit behavior algorithms script language Python will be used.

In the future, the project will provide both practical and academic benefits. As in the case of its successful implementation, it can be developed further, and release version, written in the most simple (maybe still, severally suboptimal) form can be further used as a template/example, which will allow everyone to learn the architecture of game engines with a specific example.

Conclusion

Done the analysis of the typical architecture of the modern game engine, its components are described. Written essay on the theme of master's work. Tools chosen to implement the pilot project.


References

  1. GameDev.ru / Программирование / Термины / Движок (игровой движок) [Электронный ресурс]. — Режим доступа: http://www.gamedev.ru/...
  2. Чеканов Д. Анатомия игровых движков [Электронный ресурс]. — Режим доступа: http://www.3dnews.ru/...
  3. Machines at War. A real time strategy on massive scale [Электронный ресурс]. — Режим доступа: http://www.isotope244.com/... (использована анимация)
  4. Robotex Пишем игровой движок, статья на habrahabr.ru [Электронный ресурс]. — Режим доступа: http://habrahabr.ru/...
  5. Эндрюс Дж. Проектирование архитектуры параллельного игрового движка [Электронный ресурс]. — Режим доступа: http://www.uraldev.ru/...
  6. Википедия. Графический движок [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/...
  7. Настройки графики в играх и на что они влияют [Электронный ресурс]. — Режим доступа: http://itc.ua/...
  8. Белокриницкий А. Настройки графики в играх: с чувством, с толком, с расстановкой [Электронный ресурс]. — Режим доступа: http://www.notebook-center.ru/...
  9. Википедия. Игровой Искусственный Интеллект [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/...
  10. Искусственный интеллект. Раздел сайта habrahabr.ru [Электронный ресурс]. — Режим доступа: http://habrahabr.ru/...
  11. Википедия. Физический движок [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/...
  12. Википедия. Звуковой движок [Электронный ресурс]. — Режим доступа: http://ru.wikipedia.org/...
  13. Илькун В.П. Инструментальные средства для разработки компьютерных игр жанра экшн от первого и третьего лица [Электронный ресурс]. — Режим доступа: http://masters.donntu.ru/...