Q3osc Or: How I Learned to Stop Worrying and Love the Bomb Game
Total Page:16
File Type:pdf, Size:1020Kb
Q3OSC OR: HOW I LEARNED TO STOP WORRYING AND LOVE THE BOMB GAME Robert Hamilton Center for Computer Research in Music and Acoustics (CCRMA) Department of Music Stanford University [email protected] http://ccrma.stanford.edu/∼rob Figure 0. A single q3psc performer surrounded by a sphere of rotating particles assigned homing behaviors, each constantly reporting coordinates to an external sound-server over OSC. ABSTRACT 1. INTRODUCTION q3osc is a heavily modified version of the ioquake3 gam- ing engine featuring an integrated Oscpack implementa- Virtual environments such as those presented in popular tion of Open Sound Control for bi-directional communi- three-dimensional video games can offer game-players an cation between a game server and one or more external immersive multimedia experience within which the per- audio servers. By combining ioquake3’s internal physics formative aspects of gameplay can and often do rival the engine and robust multiplayer network code with a sim- most enactive and expressive gestural attributes of instru- ple and full-featured OSC packet manipulation library, the mental musical performance. Control systems for mov- virtual actions and motions of game clients and previously ing client avatars through fully-rendered graphic environ- one-dimensional in-game weapon projectiles can be re- ments (commonly designed for joysticks, gamepads, com- purposed as independent and behavior-driven OSC emit- puter keyboards and mice or any combination of such con- ting sound-objects for real-time networked performance trollers) place a large number of essentially pre-composed and spatialization within a multi-channel audio environ- in-game functions, gestures and movements at a gamer’s ment. This paper details the technical and aesthetic de- fingertips, available for improvisatory use during differ- cisions made in developing and implementing the q3osc ent stages of gameplay. And with the advent of easily- game-based musical environment and introduces potential accessible fast wired and wireless networks, the focus of mapping and spatialization paradigms for sonification. computer-based game-play has shifted from predominantly solitary modalities of play towards an emphasis on a gen- dimensionally rendered graphic environments. Initially uinely peer-oriented and communal gaming experience. released as a commercial product in December of 1999, Dynamic relationships between game-users and their Quake 3 Arena used a client-server architecture with a peers - both virtual and physical - have shifted in kind, significant amount of server-side prediction to allow play- bolstered by massive online communities and expansive ers from across the world to join together in fast-moving game-worlds designed and developed with multi-user col- virtual combat environments which themselves could be laborative or combative play in mind. Much like tradi- created and modified by members of the gaming commu- tional collaborative musical performance, many networked nity. Following continued research by id Software into interactive game environments allow participants to affect more realistic and technically-advanced gaming engines, the experiences of other participants in (hopefully) posi- the Quake 3 game engine source-code was released under tive or (potentially) negative manners. the GNU GPL in August 2005, providing game-developers q3osc is a musical and visual performance environ- and “modders” an invaluable tool for the creation of new ment which makes use of these paradigms of communal gaming platforms and virtual environments of all shapes networked conflict and collaboration to repurpose virtual and sizes. Development of the open-source Quake 3 en- entities and traditional game control methodologies into gine has continued under the title ioquake3 [7]. agents and actions capable of affecting musical response in physical auditory space. By extending the source-code 3. RELATED WORK of a multi-user video game engine to include Open Sound Control [20] input and output libraries, data from within q3osc’s use of visual environments both as representative a game-engine’s virtual environment can be encapsulated models of physical acoustic spaces and also as virtual in- and transmitted to one or more external sound-servers with terfaces for the control and display of musical data has the intent of sonifying virtual gesture and motion into a been directly influenced by works from both the gam- musically rich and satisfying aural experience. In turn, ing and computer-music communities. Muench and Fu- data generated by external performative controllers, po- rukawa’s two-dimensional small fish [4] makes use of tentially extracted from the auditory environment or gen- bouncing projectiles and their subsequent collisions with erated using algorithmic processes can be routed back into virtual entities as midi-triggering controllers for the dy- the virtual environment as control data for the modifica- namic creation of musical patterns and forms. Oliver and tion of environment parameters and the control of individ- Pickles’ ioquake3/Pure-Data (PD) modification q3apd [12] ual game entities. made use of PD’s string-based FUDI protocol to export Custom modifications made to traditional game ele- game parameters to a Pure-Data sound-server. The real- ments such as the targeting methods of “weapon” pro- time visualizations of ChucK processes displayed by Ge jectiles and global world-level variables such as gravity Wang and Perry Cook’s Audicle [19], as well as game- and avatar speed allow for striking and dynamic change in based Audicle interfaces like the ChucK-ChucK Rocket the visual and performative characteristics of both client interface respectively use three-dimensional graphical en- behaviors and the virtual environment itself. By empow- vironments and features extracted from game-play to both ering game-players with the ability through gesture and represent and sonify virtual actions. In addition, this au- motion to generate complex evolving visual and musical thor’s ioquake3-based work maps and legends [5] made structures, relatively simple modifications in pre-existing use of q3apd and Pure Data by building virtual compo- game code can have profound and far-reaching effects. sitional maps within which game-players’ motions would At this time, development of q3osc has concentrated trigger sonic events and control spatialization of their own primarily on the integration of OSC classes into the io- specific sound-set within an eight-channel environment. quake3 source code, and the modification of the behav- iors of in-game projectiles to allow individual projectiles to persist and be destroyed dynamically, and to create as- sociative “homing” relationships between projectiles and client avatars. Additional work is ongoing to create pow- erful and evocative mappings between game-entity mo- tions and gestures and spatialized musical output. the Audicle small_fish 2. BACKGROUND maps and legends q3apd The gaming platform modified for this project is the open- sourced version of the wildly successful Quake 3 Arena by id Software [6], one of the most commercially suc- cessful and widely played FPS or “First-Person Shooter” video-games of modern times. In Quake 3 Arena, game players control a futuristic gladiator-like warrior fighting Figure 1. Interactive graphic environments used as gener- with other players connected over the internet in three- ative systems for musical output. cal programming languages (including SuperCollider [11] , Max/MSP [10] and PD [13]) makes any of these lan- guages strong contenders for use in sonifying game data, at this time q3osc is sonified using the ChucK language. The very nature of this project requires the dynamic in- stantiation of in-game entities - from players to projec- The Hub PLOrk tiles - at any given time. Therefore audio environments to be used as q3osc sound-servers should also allow for the on-the-fly instantiation of independent audio events without performance lag or noticeable effect. In this re- spect, the philosophy of the ChucK language meshes per- fectly with q3osc. A ChucK sound-server parses incom- ing OSC messages or bundles and dynamically instanti- SoundWIRE ates or “sporks” independent audio-generating processes for each game-entity in the system which receive ongo- Figure 2. Networked ensemble projects including per- ing OSC broadcasts of their related entity’s position and formers in local as well as remote locations. state data. As game-entities move in the virtual space, their actions generate sounds in a multi-channel audio en- q3osc’s goal of creating multi-user networked musi- vironment which are in turn spatialized within a multi- cal environments draws inspiration from a rich history of channel speaker setup. By presenting q3osc performances the use of WAN and LAN computer networks for collab- in a concert space with the use of multiple video projec- orative performance. Early networked performances by tors and a local ensemble of q3osc performers present in The Hub [21] stand out as rich examples of the complex the room, strong correlations can be made between ac- musical constructs formed through communal composi- tions and motions in the virtual space and audio output in tion, improvisation and performance. Stanford’s Sound- the physical concert space. Wire project [2] and its recent networked concert perfor- mances with the ensembles Tintinnabulate at RPI (NY) 5. IOQUAKE3 MODIFICATIONS and VistaMuse at UCSD utilises multiple channels of un- compressed streaming audio over the Jack-Trip