PerfKit 6.0 New Feature Highlights:
* No longer requires an instrumented driver on Vista!
* Supports GeForce 8 and 9 GPUs
* SLI Support
* Texture Visualization and Overrides
* API Call List
* Dependency View
* New CPU/GPU Timing graph
Jay Dolan recently blogged about some of the performance optimizations he made to his Quake2-based engine, Quake2World. He provides links to various points in the source code to give context around some of the topics he discusses.
Quake2 was released in 1997. Hardware acceleration was only available on higher-end PC’s, and things like multitexture and vertex arrays which are commonplace today didn’t even exist then. So naturally, Quake2’s rendering techniques appear very dated in 2008. Multitexture was made a part of the OpenGL specification in version 1.2.1, and is available on most 2nd generation hardware (TNT or newer). I strongly recommend cleaning up the renderer and removing any non-multitexture rendering paths.
Texture binds (glBindTexture) are rather expensive too, and so to minimize these per frame, you should group the world surfaces by texture before iterating over them. Note that a simple grouping operation is significantly cheaper than a qsort — overall order is not important, we just want to minimize texture changes.
AMD will add the Havok Physics engine to both its multi-core CPUs and GPUs, but AMD managing director noted that the focus is on CPUs given feedback from gaming developers who like the idea of offsetting physics computation to CPU cores.
AMD is hoping to accelerate Havok Physics on both its multi-core CPUs and GPUs and claims that it’s striving to deliver the best of both worlds. However, the main focus at the moment appears to be AMD’s CPUs. AMD and Havok say that they’re planning to optimise the ‘full range of Havok technologies on AMD x86 superscalar processors, and AMD claims that Havok Physics scales extremely well across the entire family of AMD processors.
Havok’s managing director, David O’Meara, explained the priority for CPUs, saying that the feedback that we consistently receive from leading game developers is that core game play simulation should be performed on CPU cores. However, he added that GPU physics acceleration could become a feature in the future, saying that ‘the capabilities of massively parallel products offer technical possibilities for computing certain types of simulation.
Leadwerks Software has released a paper describing their experience implementing deferred lighting in the OpenGL-based Leadwerks Engine. The paper includes some GLSL code for reconstructing screen space positions without need for a position float buffer, as well as a few results surprising to the author.
Responsiveness is something that can make or break a game at first impression. This is especially true in reviews where a game with poor responsiveness will be described as being “sluggish”, “unresponsive”, “floaty” or “sloppy”. A better game might be referred to as “tight” or “responsive”. There are several factors that contribute to perceived responsiveness. This article looks at some of them from a programmer’s perspective, and offers some routes to making your game more responsive.
La GDC s’adresse aux professionnels de l’ensemble de l’industrie du jeu vidéo, incluant programmeurs, artistes, managers, producteurs et responsables du développement commercial. Les conférences traiteront de problématiques d’intérêt pour l’ensemble des professionnels du jeu vidéo, qu’ils soient étudiants ou développeurs reconnus à l’échelle mondiale. L’événement attirera évidemment par son emplacement de nombreux européens, mais aussi des professionnels du monde entier qui voient là une chance unique d’échanger avec leurs pairs européens et du reste du monde.
[English] Shader Maker is a simple, cross-platform GLSL editor. It works on Windows, Linux, and Mac OS X. It provides the basics of a shader editor, such that students can get started with writing their own shaders as quickly as possible. This includes: syntax highlighting in the GLSL editors; geometry shader editor (as well as vertex and fragment shader editors, of course); interactive editing of the uniform variables; light source parameters; pre-defined simple shapes (e.g., torus et al.) and a simple OBJ loader; and a few more.
[French] Shader Maker est un editeur GLSL multi-plateformes (Windows, Linux et MacOS). Il inclue la coloration syntaxique, des éditeurs pour les vertex, geometry et pixel shaders, édition interactives des variables uniformes.