Evolving pixel shaders for the prototype video game Subversion

Andrew Howlett, Simon Colton, Cameron Browne

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

13 Citations (Scopus)


Pixel shaders can be used to create a variety of visual effects in 3D environments, far more efficiently than if produced using the standard graphics pipeline. For such efficiency reasons, pixel shaders are commonly used in video game rendering, to add artistic or other visual effects. We investigate the automated creation of novel shader programs for rendering scenes in the Subversion virtual game world, with a view to providing the player with a visually richer and more diverse 3D environment. We show how shader programs based on the OpenGL shading language may be represented in a hierarchical tree form. This representation admits an evolutionary approach to shader creation, and we show how the application of genetic programming techniques can lead to the evolution of new and interesting shaders. We harness this for an approach where the user supplies details of a fitness function for the overall look of the city environment. We experimented with a number of different fitness function setups in order to produce some preliminary results about this approach. While generally successful in the creation of novel and visually interesting shading effects with little effort, we find some drawbacks to the approach and suggest methods for improvement.

Original languageEnglish
Title of host publicationProceedings of the 3rd International Symposium on AI and Games - A Symposium at the AISB 2010 Convention
Number of pages6
Publication statusPublished - 1 Dec 2010
Externally publishedYes
EventAISB Symposium on AI and Games 2010 - Leicester, United Kingdom
Duration: 29 Mar 20101 Apr 2010

Publication series

NameProceedings of the 3rd International Symposium on AI and Games - A Symposium at the AISB 2010 Convention


ConferenceAISB Symposium on AI and Games 2010
Country/TerritoryUnited Kingdom

Cite this