UCLAN Lecture - Games _ UCLAN by pengxuezhi

VIEWS: 0 PAGES: 15

									Games Development 2
Console Development &
     Middleware
       CO3301
       Week 12
Today’s Lecture

1. Comparing PC & Console Development
2. Development Environments
   •   Commercial Dev Kits
   •   Hobbyist Development
3. 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

• 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
  more similar to a PC than previous
  –   Multi-core CPU
  –   Powerful GPU (similar to PC variants)
  –   Concurrent programming very important
  –   Shader programming key for graphics

  – Games of similar standard
       • Although PC games often have better graphics now
  – Ability to develop using higher level API’s
       • E.g. OpenGL ES, XNA
  Current Gen: PC vs Console

• Still important differences between PC and
  console development:
• Hardware is known
  – Important general differences, e.g. may need to rely on
    removable media
• Closer integration between parts
  – E.g. CPU / GPU memory have symmetrical
    performance (shared on 360), unlike a PC
• Low-level development still key
  – Especially for commercial games
  – Custom development environments for 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.


• Supplied with a custom SDK
  –   Development environment
  –   Compiler and linker
  –   Graphics, Sound, Storage and other libraries
  –   Complete technical and software documentation
 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


• Dev kits are expensive
  – £10,000+ each at launch
  – Price drops with time
  – Fair sized team can expect outlay > £100,000
  PS3 Development Kit

• Playstation 3 dev kits (called the PS3 Reference Tool)
  cost ~£1,500 each:




       Current Dev Kit is same                      Original Dev Kit
       shape as standard PS3

• Includes development tools (SN Systems):
   – ProDG – development environment
   – Distributed C++ compiler, linker, build tool
       • Can compile and link on multiple PCs
  PS3 Development 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 discs burned by the
    developer (effectively no copy protection)
   Xbox 360 Development Kit

• An Xbox 360 dev kit cost                  Old Version
  ~£4,600 in late 2008
   – Latest version is much less
     than that now
                                                New Version
• 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
  Hobbyist Development

• The cost & licensing of professional development
  kits prohibits hobbyist or homebrew games

• However, there are various free methods of
  developing on consoles
  – Official hobbyist development environments
  – Otherwise, various methods to boot up development
    environments on a normal console

• Hobbyist apps less potent than commercial:
  – Limited tools, generic or simplified libraries
  – Sometimes a lack of low-level hardware access
  XNA

• XNA is a Microsoft-supported cross-platform
  development environment for hobbyists
  – Allows development for both Windows and Xbox 360
    with the same code
  – Requires subscription for Xbox360 development
• C# based
  – Supersedes Managed DirectX
  – Can be performance issues due to this
• Good collection of tutorials, samples etc.

• Not used in major commercial titles
  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

• A wide range of examples:
   –   Unreal [free], Unity [free], Source, etc. (Game engines)
   –   Havok, Bullet (Physics [both free])
   –   Euphoria (human animation synthesis)
   –   SpeedTree (Tree rendering)
   –   RAD Game Tools (e.g. Bink video)
   –   CRIWARE (audio, video)
   –   fmod (audio [free]), ScaleForm (vector UIs) etc.
   –   [Those noted as free are for non-commercial use only]

								
To top