Technical Discussion January 29, 2009

SFU Burnaby 2:30pm - 3:20pm

Warm Up Topic

What do you think is the most difficult component described in a game design document to figure out how to program? Or generally what is the most difficult component of a game to program?

  • Artificial Intelligence - Realistic AI is quite difficult to achieve, especially in a real time system. Challenges include thinking about how to characterize and group behaviour, making it fun, and making it adjustable. Usually the description of AI in a game design document does not give programmers an idea how to design/program it.
  • Networking - Networks are often unreliable and games that require real time interaction between multiple players are challenging to program. Quality assurance for networking components of games can be difficult to test. Peer to peer connections and good network code is quite difficult.
  • Physics - You have to have a good understanding of physics to understand how to translate vague statements in a design document into a workable system. There is also a question of when it is "good enough." Physics is also more CPU intensive and must be budgeted for appropriately.
  • Collision detection - Not a component usually described in a game design document but often poorly done. In a racing game the player should be able to be nearly touching a wall before a collision happens. In Guid Wars there are collision detection problems when walking up stairs. Approaching the stars at not the right angle sometimes would stop the player.
  • System Architecture - Depending on the hardware layout and power, certain components may be more challenging to program. Problems with direct memory access on word boundaries or small caches such as on the PlayStation 3 Cell processor's SPEs. Artificial Intelligence may be more difficult on the PlayStation 3 due to the Cell processor architecture. Some developers embrace new hardware features such as using branch prediction with the Cell's SPEs for AI. Insomniac's Nocturnal was mentioned.

Topic 1: How would you modify/design an asymmetric processor for gaming?

The discussion used the PlayStation 3's Cell processor as a base design. The Cell processor has one Power Processor Element (PPE) that acts as a controller for the Synergistic Processing Elements (SPE).

Game Structure Designs

  • Parallelize each component (ie. AI, physics, game logic) such that a certain percentage of each SPE is used.
  • Run one component on one SPE and the main game logic on the PPE.

Shortcomings

  • AI threads that share data among SPEs suffer because of the relatively small cache of 256 KiB. The bus speed between SPEs makes up for it although it was suggested developers may still have problems with such a small cache.
  • The biggest bottleneck is still memory access.

Strengths

  • Some components such as graphics can be parallelized. IBM has created a PS3 Real-time Ray-tracing setup that is worth checking out.

Ideas

Members Present

  • Eric Raue
  • Mark Lauman
  • Colin Hume
  • Jon Derrick
  • Long Tran
  • Daniel Truong
  • Sepand Gojgini
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License