1 / 16

Maths & Technologies for Games Console Development & Middleware

Maths & Technologies for Games Console Development & Middleware. CO3303 Week 18. Today’s Lecture. Comparing PC & Console Development Development Environments Commercial Dev Kits Indie Development Middleware Note: All material here can be found in the public domain.

swhitman
Download Presentation

Maths & Technologies for Games Console Development & Middleware

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Maths & Technologies for GamesConsole Development &Middleware CO3303 Week 18

  2. Today’s Lecture • Comparing PC & Console Development • Development Environments • Commercial Dev Kits • Indie Development • Middleware Note: All material here can be found in the public domain

  3. PC & 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

  4. PC & 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

  5. Current 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…

  6. Current 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

  7. Commercial 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

  8. Commercial 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)

  9. PS4 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

  10. Xbox 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.

  11. Prev-Gen: PS3 Dev Kit • Playstation 3 dev kits (called the PS3 Reference Tool) eventually dropped in price to ~£1,000 each: Final Dev Kit is same shape as standard PS3 Original Dev Kit • Included development tools (SN Systems): • ProDG – development environment • Distributed C++ compiler, linker, build tool • Can compile and link on multiple PCs

  12. Prev-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)

  13. Prev-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 Old Version New Version • 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

  14. Indie 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…

  15. Middleware • 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

  16. Middleware • 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) • Box2D, Bullet, (physics [free]) • Euphoria (human animation synthesis) • Speed Tree (Tree rendering) • fmod (audio [free]) • Coherent UI (vector UIs) [Those noted as free are for non-commercial use only]

More Related