DonNTU   Masters' portal

Abstract

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

Contents

Introduction

First Person Shooter - a genre of video games in which the gameplay based on the battles with guns and missile weapons with a first-face: the player perceives what is happening through the eyes of the main character (see Fig. 1). Since the inception of the genre, complex three-dimensional or pseudo graphics put challenges for developers of computer hardware.  

   
First-person shooter

Figure 1 - First-person shooter
(Animation: 20 frames, 60 ms delay, 148 Kbytes)

   

 The ability to create your own shooter provides full creative control and  the unique potential of the project, using a strictly limited budget. Thanks to the availability of tools (engines and designers, content editors), you can develop a variety of games, from simple SMB-like platforming to MMO RPG.

Many companies still make AAA-games like «Assassin's Creed» or «Call of Duty», great composition but smaller indie developers are often able to compete with them on the popularity and profit. This means that rather large set of commands buying expensive tools, you can use all available means, focusing on the original idea [1].

1. Theme urgency

In 2013, the development of computer games has been available only to the elect. Every day, created and perfected a powerful new and easy tools for development. Now everyone can try out themselves in this exciting field.

However, despite the large number of multi-tools, the developer still requires a very large amount of work to create a really interesting product. Whereas previously the programmer had to write many lines of code to use an easy way to check collision between two objects, but now all these calculations are only one team. Thus, the game engines greatly simplified the lives of programmers. However, programming this is only one part of the development of computer games. Creating a quality gaming product will be also include the creation of a large amount of graphic material. Will also need to make quality scoring game. With the latest problems usually do not arise, because the Internet is full of Free sounds and music [2].

Thus, the developer is engaged in the development of video games, which can be represented as a single person and firm. Development of the project AAA (the highest grade) is a million dollars or more. Process normal development of the modern game takes about a year for AAA projects can take up to 2-3 years. The development cycle of the usual "casual" games will take about 4-6 months. To develop games using different tools means, one of which is a game designer.

Games Designer - software for quick assembly-line computer games. Combines the game engine and IDE, and significantly simplifies the process of creating games.

Sometimes the designers of games are limited in some genre (eg arcade, RPG or quests). In the simplest case can be attributed to the designers finished the game with an advanced editor games (eg Cube or Stratagus). On the other side of the spectrum are the classic programming environments such as Blitz BASIC [3].

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

The aim of the study is the development of tools for creating computer games the action genre from the first and third person.

The main objectives of the study:

1. Review and analysis of the existing game engine.

2. Review and analysis of existing games designers and game development environment.

3. The development of a new efficient design to create a computer game genre shooter.

4. Software implementation of the proposed product development of software for creating and editing the game scenes.

5. Analysis of the results and evaluation of the effectiveness of the developed project.

The object of study: architecture design games.

Subject of research: the development of tools for creating and editing the action genre of computer games from the first and third person.

The result of the study: a new effective designer shooter genre of computer games.

3. Overview of Research and Development

Over the past two years, the line between game engines and game designers was serious blurred. The game engine - it is a bare piece of code editors with minimal (or no) and other amenities, and the designer - this is a "closed" code. Now, many game engines professed "visual" approach to game development, support all kinds of principles drag & drop, sliders, sliders. The most striking example - the game engine Unity, which is up to 90% of the work on the creation of the game allows in your editor [4].

3.1 Overview of development environments

 

Blitz3D - is a development environment designed for quickly creating game projects using three-dimensional graphs and based on the programming language called BlitzBasic. In fact, BlitzBasic is based on the syntax Language Basic, which is widespread and known for its ease of learning and use. In addition, Blitz3D allows you to connect to the project library files written in other languages, which exclusively extends its capabilities. Easy to create games that language is achieved in that it is comprised almost entirely of ready-made teams for working with graphics and other objects. Thus, for example, to display the cube, sphere or cone, only one line, which will be attended by the name of the object and its parameters (coordinates center and dimensions) as well as on-screen display command. To do with the subject of any action like rotation, translation, etc., only two or three commands. Instead of simple geometric primitives can be taken and more complex objects (terrain, the character models, entourage mazes) basic commands for manipulating them remain the same. Blitz3D - a good tool for casual or mini-games [5].

Unity 3D - 3D application development system for Mac OS, Windows, Wii, Xbox 360, PlayStation 3, iOS and Android. Has an advanced editor, "sharpened" by visual approach to game development. A free indie version and professional license ($ 1500). Well suited for casual and indie projects.

Unreal Development Kit (UDK) - a powerful set of tools to create interactive 3D-applications and games based game engine Unreal Engine 3. Suitable for creating games top, AAA-class. Free for non-commercial Frequency. Supports Windows and iOS.

Adobe Flash - Flash-IDE application of certain of Adobe. The abundance of Flash games on the Internet, and the relative ease their creation says that Flash - good choice for those who want to create small games for publication on the Web.

Constructors games:

Game Maker - the popular and easy to learn game designer that allows you to create games without a deep knowledge programming. Platform support Windows, iOS and Android.

RPG Maker - a series of games in the style of designers jRPG (from japaneseRPG, the Japanese role-playing game). Designer is easy to learn and comes with a set of content.

Mentioned only a tiny fraction available for game engines and game designers. To select the designer need to make a start on the following designers: opportunities, conditions of use, price, support from developers, Community members zadokumentirovannost, support third-party development tools, ease of use [6].

3.2 Overview of free and commercial game engines

Free engines:

• Agar (English) - a high-level graphical application framework used to develop both 2D, and 3D computer games.

• Axiom Engine - offshoot comprising, based graphics engine OGRE.

• Boom - port of the source code for the game Doom by TeamTNT.

• CheapHack (English) - is no longer being developed engine based TomazQuake.

• Crystal Entity Layer - the expansion of the engine Crystal Space 3D Engine.

• Crystal Space - a complete framework for developing 3D applications.

• DarkPlaces - one of many advanced open source Quake engines.

• Daybreak motor - an object-oriented graphics engine for XNA (XNA 3d engine - Xbox, Windows).

• Delta3D (English) - joins other well-known free projects in a simple API, originally developed US Navy.

• DGD - object-oriented MUD engine.

• Eternity Engine - source port engine of the game Doom.

• Exult (English) - a free game engine reincarnation of Ultima VII.

• FIFE (English) - a free 2D ISO engine supporting resources Fallout 1 and 2.

• Game Maker - object-oriented software for game development with drag-and-drop interface and its scripting language.

• GZDoom - source game engine, Doom, based on ZDoom.

• Genesis3D - 3D real-time engine for Windows.

• GemRB - free implementation of the Infinity Engine.

• HGE - Haaf's Game Engine, an engine for creating 2D games.

• Jogre - client/server game engine, written in Java, containing the API for real-time online games, whether it's checkers, chess, and more.

• MGF - Mortem's Game Framework - actively developing gaming framework open source for PSP gaming console in C++.

• MRPGe - a game engine for Visual Basic, for two-dimensional RPG-games, with built-in scripting language. Change in the very early stages of development.

• MUGEN - dimensional game engine for fighting game genre (eg, Mortal Kombat).

• Multiverse Network - MMOG platform, including server, client, and tools.

• Nebula Device - a three-dimensional real-time game engine developed by German game studio Radon Labs.

• OctLight - game engine in Java, using a scene-graph, and drawn on the basis of Lightweight Java Game Library (LWJGL), using OpenGL.

• OMEGA Engine - an easy-to-use 2D engine. Uses as render Direct3D8 or OpenGL, to the sound - DirectSound.

• OSlib - Old School Library - library for porting old games on the PSP or writing 2D games in the style of past games in C++.

• Pentagram - the project creates a game engine that is used in the released game Ultima VIII: Pagan.

• PLIB - game engine, comprising: trehmerku, sound, music, graphics, user interface, window manager, and portable to Linux/Windows/MacOSX.

• ProQuake - improved game engine Quake.

• QSP - Russian popular cross-platform engine for creating games in the genre of Interactive Fiction.

• RealmForge - game engine open source Microsoft .NET Framework, predecessor Visual3D.NET.

• rRenderer - the current level of the game engine written in VB6, for DX8.

• Sauerbraten - improved engine forked from the engine Cube.

• SmartX - a game engine using the platform .NET Framework. Written in C#.

• Storm3D - engine uses Direct3D 9, written in C++.

• Stratagus - a cross-platform game engine for real-time strategy games.

• Telejano - changed the game engine Quake.

• URQ - popular Russian engine to create games in the genre of Interactive Fiction.

• vbGORE - engine open source, based on which you can create a two-dimensional online game with some 3D effects.

• ZDoom - one of many sources Doom [7].

Commercial Engines:

• Arcane Engine - developed by Wolfpack Studios for Shadowbane.

• Auran Jet - engine developed by the Australian company AURAN and used in the game Trainz.

• Baja Engine - professional quality engine used for the game The Lost Mansion.

• Blitz3D - graphics engine with its own language programmirovnaiya BlitzBasic.

• C4 Engine - an emerging next-generation game engine by Eric Lengyel.

• Dark engine - an outdated engine, used for gaming Looking Glass Studios.

• Earth-4 Engine - graphics engine used in Earth 2160.

• Explorations - creator of two-dimensional MMO.

• IMUSE - specially designed engine to synchronize music with visual effects.

• KjAPI - C++ technology to create three-dimensional games and applications for your PC.

• Odyssey Engine - used to create a three-dimensional role-playing games, as well as the game Star Wars: Knights of the Old Republic.

• ORE - online engine for role-playing games.

• Quasar - a game of object-oriented display the next generation, developed by Syide Technologies.

• Power Render - the main goal of this package - the development of games and three-dimensional representations.

• Reality Engine - a three-dimensional game engine of Artificial Studios.

• Retribution Engine - a game engine to create games in the style of action.

• Revolution3D - three-dimensional graphics engine developed by X-Dream Project.

• Shark 3D - a cross between Spinor for computer, video games and a three-dimensional real-time applications.

• Silent Storm engine - a three-dimensional game engine for tactical strategies (eg Silent Storm).

• Torque Game Engine - a modified version of the three-dimensional game engine originally developed by Dynamix for the 2001 FPS Tribes Game 2.

• TOSHI - a cross-platform game engine fourth generation, developed by Blue Tongue Entertainment.

• Truevision3d - a three-dimensional game engine that uses the DirectX API.

• Unigine - cross-platform middleware.

• Unity (game engine) - easy to use three-dimensional game engine.

• Vicious Engine - a game engine, a portable Microsoft Windows, Sony PlayStation 2, Microsoft Xbox, and Sony PlayStation Portable.

• 3DGame Studio - a full game designer, the whole system is a system for creating three-dimensional games.

• Virtools - the engine for creating games, simulators and simulations, 3D Internet and virtual reality systems.

• WGAF - a game engine developed by Guild Software, which is used in their MMORPG Vendetta Online.

• White Engine - the seventh generation game engine, owned by Square-Enix, will be used in their projects for the PS3. Thought through the use of pre-rendered CGI quality graphics in real time.

• Xors3d Engine - an engine for creating three-dimensional games. Began its existence as a shared library for Blitz3D, which allows you to use GAPI DirectX9.

• Zero - a three-dimensional game engine used in Star Wars: The Clone Wars, Star Wars: Battlefront, and Star Wars: Battlefront II.

• LyN engine - the engine company Ubisoft, used in their own development.

• Vicarious Visions Alchemy - the engine of Intrinsic Graphics.

• Cry Engine 1-3 - a game engine created by German private company Crytek in 2002 and was originally used in the first-person shooter Far Cry.

• Id Tech - family game engine developed by the American company id Software.

• Source - a game engine developed by Valve. Its features are considered a modular basis and flexibility, lip synchronization with speech technology is the expression of emotions and physics system that runs on the network.

• Serious Engine - a game engine developed by Croatian company Croteam and was first used in the game Serious Sam 2001 release. The technology was in development for three years. Subsequently, the company Croteam have developed more advanced game engines - Serious Engine 2 and the Serious Engine 3 [8].

3.3 Overview of local sources

A search of papers devoted to topics of this work has not been found any work corresponding to the given direction. Cursory review of the subject is presented in the works of Chastikina S.S."Research means to create three-dimensional models of geometric shapes and their relationship with comprehensive blueprint"[9] and Kodak E.A. "The research funds accelerated the development of geometric modeling systems" [10].

However, the content of the work has a slightly different character.

4. Analysis of the future of the project

Game project can be divided into separate large area, building a stack:

1. The graphics engine. Then work with the underlying API (OpenGL, DirectX), work with memory buffers, shaders, procedural generation, hard optimization. Here, C++ out of competition.

2. Game logic. Ultimately, this miscalculation object interactions with objects. Moreover, the objects are consistent with the objects in the traditional understanding of OOP. Actions of some objects may cause reactions other, objects may form complex hierarchies.

3. The algorithmic basis. Different versions of AI, working with graphs and complex data structures, searching and sorting. Tasks that are typical of functional languages. F#, Scala, Lisp, Haskell, OCaml, Clojure. Some combinations may be effective: C++/Java/Scala, C++/C#/F#, C++/Python [11].

In order to understand what technology to use, it is necessary to define the requirements of the software security. Generated funds should provide the user with a large number of options for configuring future game genre shooter and third person. Should be simple and intuitive interface that works quickly and supports image output the best possible quality. We need to use the software to OS windows.

We will use three-dimensional graphics engine Irrlicht, because it is free and cross-platform free software. Unlike other game engines, it is quite easy to learn.

Irrlicht takes advantage of OpenGL, DirectX, and a few of their own renderers. The user is provided various features of loading and three-dimensional control (3D) objects (scene pattern, etc.). No need for third-party modules to implement higher-level functions (there is a very simple physics, GUI (graphical user interface user), etc.). There are three official add-ons for Irrlicht: IrrKlang (Audiolibrary), IrrXML (Loading and processing XML-files), IrrEdit (Editor scenes). To use the advanced functions of physics there physics engine ChronoEngine (due to the fact that in the Irrlicht built a primitive physical system) [12].

Irrlicht provides easy portability (ie, the transfer of the engine) to various platforms.

We will also use the interface of Windows Forms, responsible for the graphical user interface, which is part of Microsoft. NET Framework. This interface simplifies access to the Microsoft Windows interface elements by creating a wrapper for existing Win32 API in managed code. The programmer can use the same Windows Forms as when writing software in C#, C++, and in VB.Net, J#, etc. On the one hand, Windows Forms is considered as a replacement for an older and sophisticated library MFC, originally written in the language C++, on the other hand, WF paradigm has not comparable with MVC. To remedy this situation and the implementation of the functional in the WF there are third-party libraries. Inside the. NET Framework, Windows Forms is implemented within the namespace System.Windows.Forms.

We will be using. NET wrapper Irrlicht Lime, in order to run the application with the desired interface. Irrlicht Lime - this is a C++ .NET project that uses native (C++) Irrlicht inside and out delivers only managed C++.

Managed C++ - set of additions to the language C++ (fully called Managed Extensions for C++). They allow programs written originally in C++, managed by the CLR and work on technology Microsoft .NET. In fact, these supplements can write managed Code (english managed code), compatible with the .NET Framework and executed in the environment .NET.

For writing applications. NET-language using Irrlicht enough to add to the project .NET ref on IrrlichtLime.dll (next to which must necessarily lie native Irrlicht.dll).

Conclusion

The analysis of the existing tools for game development. A comparison of game engines. The optimal means to develop a quality product.

References

  1. Creating games. One is a warrior! Igrostroy GCUP. 2013 // Access mode: http://gcup.ru...
  2. Creating games. About novice developers indie games. Igrostroy GCUP. 2013 // Access mode: http://gcup.ru...
  3. Designer games. Wikipedia, the free encyclopedia. - 2013 // Access mode: http://ru.wikipedia.org/wiki/...
  4. How to choose a game engine or game designer. 3D Graphics and me - a blog about 3d graphics and game development, articles, lessons, analyst. - 2013 // Access mode: http://3dg.me/ru/gamedev/...
  5. Create 3D games on the language Blitz3D. Blitz-school - a training center the creation of computer games. - 2013 // Access mode: http://www.blitz-school.info/
  6. Several popular game engines and game designers. 3D Graphics and me - a blog about 3d graphics and game development, articles, lessons, analyst. - 2013 // Access mode: http://3dg.me/ru/gamedev/...
  7. The list of available game engines. Wikipedia, the free encyclopedia. - 2013 // Access mode: http://ru.wikipedia.org/wiki/...
  8. List of commercial game engines. Wikipedia, the free encyclopedia. - 2013 // Access mode: http://ru.wikipedia.org/wiki/...
  9. Chastikin S.S., research tools to create three-dimensional models of geometric shapes and their relationship with the complex drawing // Scientific adviser: Ph.D., Karabchevsky V.V., 2012,http://masters.donntu.ru...
  10. Kodak E.A. study tools accelerated the development of systems of geometric modeling. // Scientific adviser: Ph.D., Karabchevsky V.V., 2010,http://masters.donntu.ru...
  11. C++ - programming language for game development. The hash code - a forum of questions and answers for beginners and experienced programmers. - 2013 // Access mode: http://hashcode.ru/...
  12. Irrlicht - graphics engine. Wikipedia, the free encyclopedia. - 2013 // Access mode: http://ru.wikipedia.org/wiki/...