160 likes | 167 Views
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.
E N D
Maths & Technologies for GamesConsole 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
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
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
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…
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
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
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)
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
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.
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
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)
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
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…
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
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]