Saturday, 15 March 2014

Unit 67 - Game Engines

3D Game Engines

CryEngine 3 - CryTek

CryEngine 3 is CryTek's third version of the CryEngine Sandbox Editor. CryEngine has been used in quite a lot of games, but the most known ones are Far Cry, Far Cry: Instincts; Evolution, Predator and Far Cry Vengeance (CryEngine 1), Crysis, Crysis Warhead & Crysis Wars (CryEngine 2), Crysis 2, Crysis 3 (CryEngine 3) and Ryse: Son of Rome and Star Citizen (CryEngine 4th gen, CryTek's latest version). Crysis 1 had a remake using the CryEngine 3 engine in 2011 for the Xbox 360 and PlayStation 3.

Ever since the beginning of the CryEngine, CryTek has been giving out a copy of the CryEngine software hidden in the game installation files (Clever CryTek), allowing other people to use and create their own missions, maps and multi-player games. Unfortunately, Crysis 3 doesn't come with a CryEngine, and people are still unsure if CryTek will ever release one for it. CryTek has released a free version called the CryEngine SDK. It doesn't have any of the features you would expect to find in the Crysis games, or any other game that CryEngine is used in. The SDK is made for the public to use to make their own games, and it uses the CryEngine 4th gen. Being an experienced game designer, you can come out with some amazing out comes, Star Citizen is one of them. 

This post shows and explains some of the features that are available to use in the CryEngine editor.


Material Editor

The material editor is used to interact with and modify materials that have been created in a Digital Content Creation tool, e.g, Photoshop. You can apply textures to various types of objects and terrain. Users can also apply shaders and adjust material parameters and properties with the editor.


Flow Graph

Flow Graph is a visual scripting system that is embedded in the CryEngine Sandbox Editor. The main advantage of the Flow Graph is that users do not need to have any scripting or programming knowledge.

Simple and complex logic can be built with only a few clicks and without requiring any scripting or coding. A huge library of nodes provides the user with everything to fully control the entities and AI in a level.

In addition to being the main tool used for creating mission logic in single-player levels, the Flow Graph can also be used to prototype game-play, effects, and sound design. Levels can have multiple graphs performing different tasks at the same time.


Track View Editor

The Track View is the embedded Sandbox cut scene editing tool for making interactive movie sequences with time-dependent control over objects and events in the CryEngine.

Creating cinematic cut scenes and scripted events are both possible, allowing you to sequence objects, animations, and sounds in a scene that can be triggered in the game, and played either as a detached cut scene from the third person perspective, or from the first person perspective of the player as he plays the game. Sequences created with Track View can be triggered in game with a specific Flow Graph node. Different properties enable sequences to range from passive in game scenarios up to fully uncoupled cut scenes. 


Particle Editor

The Particle Editor can be used to create particle effects and tweak their parameters, but also manage and store them. 

In order to use a particle effect you can either drag and drop an effect into the perspective view or you assign the effect to a selected particle entity. This entity determines the basic location, angle, scale, and or link information with other entities.


Road and River Tool

The Road Tool uses a series of points to shape terrain and/or apply a texture on top of the terrain texture. It's use is not limited to designing roads in the traditional sense, but can also be used generally to shape terrain.

After the road is placed, the points in the road can be edited, and the terrain can be aligned to the height and curvature of the road.

The River Tool functions similarly to the Road Tool, but is preferable for setting up rivers as it contains several more, and very important, parameters needed for creating realistic looking rivers.


Editable Time Of Day

CryEngine includes a CGI quality Time Of Day lighting system. Designers can use the Time Of Day function to simulate realistic and surrealistic lighting effects.

The Time Of Day dialogue box is used to configure the lighting and environment settings of a level. All values can be animated over time so that the level will look different as time advances.



Multi-Core Support

CryEngine 3 can use up to 8 CPU cores.


Realistic Lighting With Realistic Shadows/Shading

CryEngine 3 features near-reality natural lighting, and created soft shadows that respond to movements in real time.




Frostbite 3 - DICE



Frostbite 3 is DICE's latest engine. Frostbite is used by many game developers like BioWare. Frostbite is mainly used in the Battlefield series made by DICE. The games Frostbite is used in are listed below in order of release year:
- Battlefield: Bad Company (Frostbite 1) 2008
- Battlefield 1943 (Frostbite 1.5) 2009
- Battlefield: Bad Company 2 (Frostbite 1.5) 2010
- Battlefield: Bad Company 2 Vietnam (Frostbite 1.5) 2010
- Medal Of Honor (Multiplayer Only) (Frostbite 1.5) 2010
- Battlefield 3 (Frostbite 2) 2011
- Need For Speed: The Run (Frostbite 2) 2011
- Medal Of Honor: Warfighter (Frostbite 2) 2012
- Army Of Two: The Devil's Cartel (Frostbite 2) 2013
- Battlefield 4 (Frostbite 3) 2013
- Need For Speed: Rivals (Frostbite 3) 2013
- Plants Vs Zombies: Garden Warfare (Frostbite 3) 2014
- Dragon Age: Inquisition (Frostbite 3) 2014
- Star Wars Battlefront (Frostbite 3) 2015

The games using Frostbite that have either been cancelled, TBA (To Be Announced) or just untitled, are listed below in order of year:
- Command & Conquer (Frostbite 3) Cancelled 2013
- Mirror's Edge 2 (Frostbite 3) TBA
- Mass Effect (Untitled Game) 2015/2016

Frostbite 3 is an evolution of the Frostbite 2 engine. It has been in development since 2011.


Significant Runtime and Improved Workflow

 Having a significant runtime improves the speed of reading and loading files, allowing quicker load times. A runtime system implements the core behaviour of a computer language. It is designed to support the execution of computer programmes. Improving the workflow allows the developers to create the game a little easier as well as making a more intelligent AI (Artificial Intelligence) and more realistic physics.


Support for Gen 4 and Mobile platforms

Frostbite 3 now have support for Gen 4 technology and surprisingly, Mobile platforms.

Destruction 4.0

Frostbite 3 also features Destruction 4.0, which enhances the in-game engine destruction over its predecessors.




SnowDrop - Massive Entertainment



Video by Ubisoft at YouTube - https://www.youtube.com/user/ubisoft
Ubisoft Website - http://www.ubi.com


2D Game Engines


GameMaker

GameMaker allows users to create a cross-platform video game using drag and drop or a scripting language, which can be used to develop more advanced games that could not be created just by using drag and drop features. GameMaker was designed to allow novice computer programmers to be able to make computer games without much programming knowledge by the use of these actions.

GameMaker is designed to allow its users to easily develop video games without having to learn a complex programming language such as C++ or Java through its proprietary drag and drop system, in the hopes of users unfamiliar with traditional programming creating games by visually organising icons on the screen. These icons represent actions that would occur in a game, such as movement, basic drawing, and simple control structures. It is also possible to create custom "action libraries" using the Library Maker.

Rendering

GameMaker primarily uses 2D graphics to run games, allowing the use of limited 3D graphics. The programme has no way of choosing which graphics API the runner uses for rendering on a given platform, always using Direct3D since 6.0 on Windows, and OpenGL since 7.0 on non-Windows based platforms. The programme only supports the built in custom "d3d" mesh format which is not compatible with DirectX mesh format and a converter is necessary to use more popular or standard 3D formats such as .3ds and .obj for use in a 3D project. It also supports the ability to create particle effects such as rain, snow and clouds, however not natively in 3D except through use of Dynamic Link Library.

Scripting

Game Maker Language (GML) is the primary scripting language that is interpreted similarly to Java's Just-In Time compilation use in GameMaker, which is usually significantly slow than compiled languages such as C++ or Delphi. It is used to further enhance and control the design of a game through more conventional programming, as opposed to the drag and drop system. 

Originally, GML was designed to supplement the drag and drop interface, allowing advanced users to add greater functionality to their games or programmes. Newer versions of GameMaker actually use GML as their base, with all drag and drop functions as pre-written GML scripts.

Export Modules

GameMaker allows for redistribution on multiple platforms. There is a free version of GameMaker: Studio which limits the user from using more than 10 types of any resource, and excludes features from the other versions, which must be paid for.




Unity

The first version of Unity was launched at Apple's Worldwide Developers Conference in 2005. It was built to function and build projects on Mac computers and garnered enough success to continue development of the engine and tools for other platforms. Unity 3 was released in September 2010 and focused on introducing more of the tools that high-end studios have at their disposal. This allowed the company to capture the interest of bigger developers while providing independent and smaller teams with a game engine in one affordable package.

Unity is a multi-platform game engine developed by Unity Technologies. It is used to develop video games for web plugins, desktop platforms, consoles and mobile devices. 

The latest update currently supports development for iOS, Android, Windows, Blackberry 10, OS X, Linux, web browsers, Flash, PlayStation 3, PlayStation Vita, Xbox 360, Windows Phone 8 and Wii U. Two version of the game engine are available for download, Unity and Unity Pro.

Platforms

Unity supports deployment to multiple platforms. 
Currently supported platforms include:
- BlackBerry 10
- Windows 8
- Windows Phone 8
- Windows
- Mac
- Linux
- Android
- iOS
- Unity Web Player
- Adobe Flash
- PlayStation 3
- Xbox 360
- Wii U
- Wii

Upcoming platforms include:
- Playstation 4
- Xbox One

Rendering

The graphics engine uses Direct3D (Windows, Xbox 360), OpenGL (Mac, Windows, Linux), OpenGL ES (Android, iOS) and proprietary APIs (consoles). There is support for bump mapping, reflection, mapping, parallax mapping, screen space ambient occlusion (SSAO) dynamic shadows using shadow maps, render-to-texture and full-screen post-processing effects.

Unity supports art assets and file formats from Autodesk 3DS Max, Autodesk Maya, Softimage, Blender, Modo, ZBrush, Cinema 4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks and Allegorithmic Substance. 

Physics

Unity also has built-in support for Nvidia's PhysX physics engine with added support for real-time cloth simulation on arbitrary and skinned meshes, thick ray casts, and collision layers.



My own game


I had an idea to make a birds eye view, 2D tank game. The original idea was to survive waves of enemy forces trying to invade your base. The more waves you survive, the more money you earn, giving you access to upgradeable's for your tank and your base, making it stronger and the tank faster. The waves of enemies become harder by more adding more enemies.




Crop Circles (Team Game)


2D Group
3D Individual

Responsibilities


I have been put in charge of designing the aliens. The antagonist's of our game.

Pseudocode Activity


I feel that this sort of code can be tedious and get very frustrating after a while. It's not hard to use, it's the repetitive use of the same code that can get annoying.

It's easy to understand the code when you start to use it, but can be confusing to somebody who has never seen it before.