maths & technologies for games console development & middleware co3303 week 18

16
Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Upload: dortha-quinn

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Maths & Technologies for GamesConsole Development &

Middleware

CO3303

Week 18

Page 2: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Today’s LectureToday’s Lecture

1. Comparing PC & Console Development

2. Development Environments• Commercial Dev Kits• Indie Development

3. Middleware

Note: All material here can be found in the public domain

Page 3: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

PC & Console DevelopmentPC & Console Development

• Historically, console development has been much closer to the hardware than the PC– Known hardware specification– Tendency to drive hardware with assembly language, direct I/O,

interrupts, etc.– To get maximum performance

• Early PC games were similar, but gradually moved to higher level programming– Due to wide range of possible hardware– Two layer approach – API <-> Driver

Page 4: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

PC & Console DevelopmentPC & Console Development

• Lifespan of a console is up to 7-8 years– Between release and eventual fall from use– E.g. PS1: 1994->2002, PS2: 2000->2008, PS3: 2006/7->2014/15– XBox One & PS4 2013->2021?

• Hardware barely changes during this time– Need to gain maximum performance, especially during latter years– Low level work essential for best performance

• PC hardware constantly evolves– Can increase minimum spec slightly every year– Higher level approach more suitable

Page 5: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Current Gen: PC vs ConsoleCurrent Gen: PC vs Console

• However, the current generation of consoles are very close in specification to a PC– Multi-core CPU– Powerful GPU (similar to PC variants)– Concurrent programming very important– Shader programming key for graphics

– Ability to develop using higher level APIs• Xbox One uses a variant of the Windows 8 APIs

– Games of the standard of a moderately powerful PC• Although PC games usually have better graphics now• Latest gen titles, so far, do not seem to be outstripping recent

PC titles. This is unusual so early in console lifetime…

Page 6: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Current Gen: PC vs ConsoleCurrent Gen: PC vs Console

• Still some differences between PC / console development:

• Hardware is known– So little need to query hardware, run performance tests.– Assumptions about available features are OK

• More requirements on the operation of software– e.g. being locked into the platform holders UI (e.g. Sony’s XMB)

• Closer integration between parts– E.g. CPU / GPU memory have symmetrical performance (shared

on 360 / Xbox One), unlike a PC

• Low-level development can still be key– Especially for commercial games, and later in the console lifetime– Custom development environments help with this

Page 7: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Commercial Development: Dev KitsCommercial Development: Dev Kits

• Commercial console development requires a Development Kit (Dev Kit)– A special form of console that can be hooked into a PC for

programming / debugging etc.– Various types: from a basic console that can just run user code, to

machines with additional hardware to assist debugging

• Supplied with a custom SDK– Development environment– Compiler and linker– Graphics, Sound, Storage and other libraries– Complete technical and software documentation

• Note that console development can emulated on a PC– Testing on a development kit in the later stages

Page 8: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Commercial DevelopmentCommercial Development

• Dev kits must be licensed:– Apply to platform holder– Only experienced & viable developers accepted– Licensing is easier later in console lifecycle– Developer must sign NDA (Non-Disclosure Agreement)

• Dev kit details are a trade secret

• Until the current gen, dev kits have been expensive– £10,000+ each at launch, price dropping with time– Fair sized team could expect outlay > £100,000

• However, the costs for development on the latest gen have been greatly reduced, or even disappeared– To boost indie development (see later)

Page 9: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

PS4 Development KitPS4 Development Kit

• Note: limited public domain info on latest gen dev kits• Playstation 4 dev kits cost ~$2,500 each

– Although Sony have a dev kit loan program

• Initial version looked like a tower PC– There have been several subsequent versions available

• GameMaker: Studio and MonoGame (as well as Unity) are made available for free to indie developers

Page 10: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Xbox One Development KitXbox One Development Kit

• All retail Xbox One’s can operate as a debug station. – Simplest kind of dev kit, which can run user code

– This may possibly be used later to encourage indie development

• Fully featured dev kits are available to developers

• Again, the initial version looked like a tower PC, but latest iterations look like ordinary consoles– Although current dev kits are more powerful than retail consoles

• Indie developers can get two dev kits free.

Page 11: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Prev-Gen: PS3 Dev KitPrev-Gen: PS3 Dev Kit

• Playstation 3 dev kits (called the PS3 Reference Tool) eventually dropped in price to ~£1,000 each:

• Included development tools (SN Systems):– ProDG – development environment– Distributed C++ compiler, linker, build tool

• Can compile and link on multiple PCs

Original Dev KitFinal Dev Kit is same shape as standard PS3

Page 12: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Prev-Gen: PS3 Dev KitPrev-Gen: PS3 Dev Kit

• Two graphics libraries are part of the SDK:– libgcm: low-level – direct access to RSX chip and graphics memory– PSGL: [rarely used] implementation of OpenGL ES (full source

code provided)

• Also a full game engine – PhyreEngine is available (free for developers)

• Use a special debugging station for testing– Standard console that can run user code or discs burned by the

developer (effectively no copy protection)

Page 13: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Prev-Gen: Xbox 360 Dev KitPrev-Gen: Xbox 360 Dev Kit

• Much like the Xbox one, an Xbox 360 dev kit looks similar to the retail console

• Compiles C or C++ using Visual Studio variant

• Uses variations of PC libraries:– DX 9+: like DX9 with low level extras (command

buffer, predicated tiling)– XAudio2: Successor to DirectSound– Many low level tools provided

Old Version

New Version

Page 14: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

Indie DevelopmentIndie Development

• The cost & licensing of professional development kits used to limit hobbyist, homebrew or indie games

• However, in the latest gen, Sony and Microsoft have begun to make indie development easier– Lower price points, loans, or even free kits– Lower barriers to register as a developer– More indie developer support, conferences etc.

• Still, the support for indie development may not be as rich as that offered for AAA titles.– Maybe limited tools, generic or simplified libraries– Possible less low-level hardware access– Too early to tell which platform will be better. Microsoft have the

“all consoles are dev kits” advantage, but Sony have been very active in supporting indies…

Page 15: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

MiddlewareMiddleware

• Middleware traditionally describes software used to connect different components or applications

• However, in games development, the term middleware is used differently, describing self-contained software libraries– Performing distinct tasks, e.g. AI, physics or rendering– I.e. Use middleware instead of own technology

• Typically this allows the developer to cut costs– Less technology to develop– Rely instead on a pre-built, robust solution– At the expense of flexibility for their own needs

Page 16: Maths & Technologies for Games Console Development & Middleware CO3303 Week 18

MiddlewareMiddleware

• Middleware ranges from very general engines, to specialist technologies

• There are many middleware options, choosing an appropriate one is often a challenge

• Here is a random selection of popular middleware:– Unity [free], Unreal [free], Source, etc. (game engines)– Havok, Bullet, Box2D (physics [free])– Euphoria (human animation synthesis)– Speed Tree (Tree rendering)– fmod (audio [free])– ScaleForm, Coherent UI (vector UIs)[Those noted as free are for non-commercial use only]