UFCEKU-20-3Web Games Programming Game Development Environments and Middleware.

13
UFCEKU-20-3 Web Games Programming Web Games Programming Game Development Environments and Middleware

Transcript of UFCEKU-20-3Web Games Programming Game Development Environments and Middleware.

UFCEKU-20-3Web Games Programming

Web Games Programming

Game Development Environments

and Middleware

UFCEKU-20-3Web Games Programming

Game DevelopmentEnvironments (Known)

Unity 3D (Mac & PC) – Android, iPhone, xBox Wii, Playstation deployment (licenses' required!)

C#, JavaScript, Boo

Windows Microsoft Visual Studio.NET C, C++, C#

Open Watcom (open source)(Windows) C, C++ (e.g Doom, Duke Nukem)

Genesis 3D (open source)(Windows) C, C++ with Direct X

Java 2D & 3D X Code (OSX)

C, C++, Objective C, Java

UFCEKU-20-3Web Games Programming

Microsoft DirectX

Microsoft's solution to gaming for the Windows OS First appeared in 1995 as the ‘Game SDK’ Renamed to DirectX where X stands for a number of

related ‘to the metal’ software technologies. ‘to the metal’ means close to the hardware - thus providing fast

dedicated algorithms that can out-perform more abstracted code that must communicate through several layers of software.

DirectX currently at version 11 Some libraries now exclusive to Windows Vista and do not have

exclusive access to all hardware devices

UFCEKU-20-3Web Games Programming

Principles of DirectX Fast low-level libraries Framework established by DirectX in an

effort to shift the burden of hardware support from developers to hardware manufacturers

Hardware Abstraction Layer (HAL) Hardware Emulation Layer (HEL) Provides developers with a known,

dependable set of features they can use

UFCEKU-20-3Web Games Programming

Game Code

DirectX Hardware Emulation Layer (HEL)DirectX Hardware Abstraction Layer (HAL)

Hardware devices i.e. graphics, sound, input etc

abstracted

direct

Game Application Interface

DirectX Architecture Principles

UFCEKU-20-3Web Games Programming

Gamer’s graphics card supports 3D bump mapping, but no environment mapping.

Gamer bought the latest game that has both bump mapping and environment mapping in its 3D engine's feature list. DirectX HAL would takes advantage of the bump-mapping capabilitiesHEL would provide the functionality needed for environment mapping.

Gamer gets a new 3D graphics card that supports both of these capabilities in its hardware, the DirectX HAL will take control

Gamer experiences the improved effects in the same game through hardware acceleration.

The original spec of the Gamer’s machine wasn’t perfect - but the game still worked!

The DirectX Philosophy

UFCEKU-20-3Web Games Programming

DirectX also used by non-game applications

SoundForge showing Waves AudioTrack DirectX plug-in

UFCEKU-20-3Web Games Programming

Middleware

Middleware is a layer of software that lies between the game application code and the run-time infrastructure e.g DirextX on the Windows platform, hence `middle'.

Middleware generally consists of a library of functions, and enables an application to include these functions from a common library rather than re-create them for each application

UFCEKU-20-3Web Games Programming

Middleware example: Dark Game

#include "DarkSDK.h” // include the middleware SDK functionalityvoid DarkSDK ( void ){

// initialise stuff

while ( LoopSDK ( ) ) // main game loop{

if ( dbEscapeKey ( ) )return;

// other stuff

userInput ( );

dbSync ( );}

}

void userInput ( void ){

dbControlCameraUsingArrowKeys ( 0, g_fSpeed, g_fTurn );

// other stuff}

This line here contains lots of ‘wrapped’ keyboard input functionality !

UFCEKU-20-3Web Games Programming

Middleware: Renderware

Originally a middleware game technology solution Used fairly widely within the games industry Parent company Criterion Software acquired by

Electronic Arts in 2004 EA promises to retain availability of Renderware for

development community Want your company to rely on a middleware solution

owned by a competitor ? - I don’t think so… Renderware now withdrawn from commercial market

UFCEKU-20-3Web Games Programming

UFCEKU-20-3Web Games Programming

DirectX: One more thing

Hardware emulation principles originally developed by a UK company founded in 1992 called Render Morphics

Microsoft buys Render Morphics in February 1995 during the development of Windows 95

Render Morphics team employed by Microsoft to lead the continued development of real-time 3D and related technologies

Windows 95 released along with Game SDK Game SDK later rebadged as DirectX

UFCEKU-20-3Web Games Programming

URLs

Visit the module website for links to relevant

resources and examples