This book project traces the industrial development, migrations and ideological inflections of video game engines. Providing one point of analysis in the game development pipeline, the game engine, as an object of critical inquiry, can be used to illustrate the synthetic power of computing and the instrumentality of code in everyday life. Game engines have promoted a new cultural economy for software production; while the formative impulse for the separation of engine and assets in the early 1990s was to cultivate communities of collaborative production (working with common source code structures), open source software has yielded to a business model that privileges fixed forms of interaction with stricter technological and relational constraints. This project explores the bounded relations between technologies and their social contexts, grounding its social impact statements in a focused intellectual history of computing.
What is a game engine? In the most reductive terms, the engine is a single piece of software that produces common functionality for multiple games; a game engine includes a tool suite or content editor (for game creation and object-oriented asset manipulation) and a runtime component that is active when a game is played. As a software abstraction of a graphics processing unit, engines are development tools for interactive digital content creation, and code frameworks that determine and control the attributes of the field of play across platforms and devices. The birth of engines in the early 1990s fostered a split between core functionalities (components such as the rendering engine, the physics engine, sound, scripting and artificial intelligence) and game-specific content, building on the already extant separation of source code from assets and resources. This split also fostered a division of labor (one of socio-economic consequence) between programmers creating systems and artists filling in the parameters of those systems, with the most segmented organizational subdivisions in triple-A (large in scale and budget) development. This industrial division also shaped the field of game studies, placing more focused attention on visual analysis, ignoring certain material relations to study narrative, genre, seriality, and other literary and cinematic conceits.
Game engines manage the computational tasks that are central to many digital media production pipelines, and their value lies in the rapid prototyping and development of real-time interactive content. Engine development by its very nature has led to the widely accepted practice of separating core software components (for example, rendering, collision detection and audio systems), from game art (commonly referred to as assets) and the rules that govern play, though the line between the game and the engine may shift within any one development studio and across a studioâs intellectual properties (Gregory, 2009, 11). This developmental practice has also led to commonly held divisions of labor in the game development pipeline; in large team environments, distinctions are often drawn between designers (responsible for the governing play concept, including gameplay rules and structures), artists, programmers, level designers, as well as other discrete talent classifications (for example, sound engineers).
The engine is a data-driven architecture, a software framework, while a game contains hard-coded logic or special-case code to render specific types of assets. The game engine can best be understood as a foundation, though the engine itself can be subdivided between runtime components (the subsystems required when a game is executed) and a tool suite (for digital content creation) that suggest even more deeply bifurcated fields of production and analysis. The engine lays down the framework for both game development and gameplay. Engines contain a large number of subsystems that govern game logic, memory management, networking, rendering (generating animated graphics), audio, physics and artificial intelligence; and their ease of use is both a product of their programming language and scripting (how they are written and how gameplay is structured and customized, with scripting as a higher-level construct to call out underlying code functions) and the simplicity of their editorial graphical user interface. As a software foundation, most engines are iterative; they can be used as a base for multiple games without undergoing extensive modification to their programming, and their versioning is commonly limited only by major changes to a hardware platform. Whether they are game consoles or mobile devices, most engines encounter a limit to their reusability as processing environments move forward. By knowing the engine and the unceremonious and decidedly non-visual machinations and industrial labors of software, we may untangle the multiple paradigms of game studies and find the roots of those affordances that are commonly (mis)understood as characteristics of playâwhen, in fact, everything matters in the game development pipeline.
For those unfamiliar with game engines and uncertain as to why they matter, this book turns to a number of case studies drawn from game culture, consumer culture and contemporary media industries that reveal exactly how game engine logic is impacting everyday life; game engines are embedded in the infrastructure (and the business models) of those media and information industries that depend on algorithmic exactness. Amazon, Apple, Capcom, Epic Games and Unity Technologies are all building their own engine-dependent software ecosystems; engines are transforming the commercial landscape of film and television, and becoming central to new media economies and new experiences in augmented and virtual reality. Game engines are responsible for running most simulated environments, and while they may be complexly layered software development tools, composed of multiple subsystems, many have become so visually oriented that they allow content developers to avoid the complexities of code. Game engines are the building blocks for efficient real-time visualization; and they signal quite forcefully the colonizing influence of programming, of software on digital and physical experience. Game engines are powering our visual futures, and engine developers are rapidly iterating their products to tackle new markets, where data and visuality continue to converge. A number of key technology shareholders are looking to dominate the field of engine-driven social experience, and are capitalizing aggressively on the common language borne from the video game industry. Game engines are part of the larger field of code; they can be understood as entities where code has coalesced. Given that engines undergird contemporary media and information systems, it is important that we make them more visible; because technology is so central to our social systems, shaping and organizing daily life, declaring our identities, interpreting and answering our queries, and impacting how we see and know the world around us, it is important that we understand what engines and similar code objects are doing.
The difficulty of holding on to mechanics and aesthetics is compounded by the semantic and practiced openness of game engines as well as their importance not only to game development but also to the field of play. The game engine, as a complex software structure, is comprised of a number of substructures. We might begin by separating the core engine (a collection of product-facing tools used to compile games to be executed on target platforms) from any number of associated user-facing tools. The core layer of the engine handles low-level base systems that typically include rendering, collision detection and response, physics and character animation, which are interlinked to gameplay systems that include scripting, artificial intelligence, player mechanics, cameras and sound, and data handling systems that include networking, streaming, memory management, file reading and threading; this is an oversimplification of game engine architecture, as many game engine developers also rely on engine abstraction to simplify hardware and software platform dependencies, writing an abstraction layer that sits on top of the specific operating system code. These system layers are usually wrapped by user-facing development tools or a more robust integrated development environment populated with common editor windows.
This study is focused primarily on 3D (three-dimensional) game engines (engines used to generate real-time interactive 3D animated content), and is based on a particular conception of the game engine as a software framework that contains both a core engine (a more static, âhardwiredâ operating systemâthe engineâs root persona) and a user interface system that offers the necessary plasticity associated with game design and developmentâthe production of a unique intellectual property. Within this field, there are both general-purpose game engines suitable for building a broad range of game genres, and special-purpose game engines, often designed by individual studiosâproprietary software builds targeted at specific titles, genres, aesthetics, game mechanics or industry-defined implementations. Game engines, as system-dependent tools, often function alongside a number of middleware offerings. Most game developers depend on more than one product, and follow a decision-tree that begins with selecting a game engine, then choosing additional software supports (middleware) that might include a multiplayer solution (to support networked play), a backend solution (for hosting), an analytics platform, an advertising platform, and a product to manage in-game purchases. The developer is also dependent on a publisher. There are multiple opportunities for specialized engine-based middleware development and integration along the game production pipeline, as most game engine developers use middleware to satisfy certain conditions of their engines; and while even the most comprehensive game engines can accommodate middleware, several of the key engine manufacturers have built-out ecosystems of convenience, with tightly-integrated interrelated middleware components, and have strategically positioned themselves to drive the game development market.
The video game industry is not simply a sum total of its software enterprises and its serialized intellectual properties; it is also an arena of hardware and software development and licensing. Brand names are attached not only to game franchises, but also to the engines that govern the physics-based properties of characters and, by extension, those players who read and engage with them. With most engines, success is measured by the naturalness of the relations across engine, asset, controller, character and playerârelations that are circumscribed by the historical, technical and material conventions of the game industry. While a game engine may be known in developer and player communities by its distinct mechanics, abilities and features, in most video games the dynamics of play and the constellation of transactional engagements with the game world work to conceal the engineâs core mathematical logic; and the signature look of a developer or studio commonly masks any particular aesthetics that might otherwise be associated with the engine.
With its focus on video game engines, this manuscript proposes how an analysis of code space, and the engine-based labors and technologies that undergird the objects of contemporary screen culture, can strengthen more generalized discussions of the impact of code on everyday life. Understanding that a game engine is a particular type of code object, the goal of this manuscript is to help media scholars and practitioners to âlocateâ software; given its relative immateriality, software is a rather challenging ânon-objectâ that is nonetheless central to contemporary cultural experience. Software is not simply a tool, it is also a structuring transaction, actuated with little debate or understanding, and difficult to tackle alongside an informed textual or industrial analysis of any media form; yet software is the medium and the context of convergence culture. The goal is to unravel the material outcomes of code through a detailed examination of video game engines, and by examining several case studies that make clear their pervasive use across a broad range of industries.
We live in a software culture, which we can begin to approximate first by gathering together our everyday software and then expanding our scope outward to consider the toolsets that impact our lives, even if they are beyond our reach: search engines, social media systems, mapping applications and global positioning systems (GPS), blogging platforms, instant messaging clients, online shopping portals and their offline warehouses, assemblies and distribution systems, aeronautical and military systems, platforms that allow the writing of new software (including APIsâapplication programming interfaces), and game engines. We may differentiate between software programs (applications) and software environments (application contextsâfor example, within an operating system, as part of a database system, or framed by a suite of development tools), between common use software that connects industries and user groups (technologically integrated market sectors), and software deployed in micro-industrial contexts (such as Amazonâs inventory management system, and middleware deployed in peer-to-peer architectures for systems integration). Collectively, these reference points produce a sense of computational ubiquity that is lived and material, and may be broadly framed as part of increasingly complex information space, of context-aware, data-rich connections between software and the physical world. Game engines are part of the coded landscape; they can be integrated into a companyâs backend systems and used to model touch screen experiences, set to work for previsualization in live action filmmaking, and woven into the data flows of architectural visualization; extending the parameters of real-time 3D rendering beyond video games, their graphical capabilities can be leveraged in both animation and simulation.
There have been a number of intellectual efforts to secure the relevancy of code and its associated artifacts. Lev Manovich (2013) has taken an ontological approach, outlining the intrinsic properties of software objects. Lawrence Lessig (1999) focused on the commodity value of code. Theorists such as Adrian Mackenzie (2006) have examined the machinations of labor (and the production of identity and subcultural formations) associated with the work of hackers, programmers, and those bound up in the consumption of their knowledge capital. Each of these frameworks considers code at a particular juncture, rather than holding on to the complex interactions of code; code operates along a continuum, as a site of negotiations involving commodity production, organizational life, technoscientific knowledge and industrially-aligned geopolitical territorialization. Code carries power relations, distributes agency, shapes communication, contours personhood and organizes everyday life; yet it readily disappears behind functional surfaces and their more immediate gratifications. David Golumbia (2009) suggests that while computation occupies a privileged place in critical discourseâas a popular metaphor for illustrating the intersectionality of technology and everyday lifeâthe precise role of computation on human patterns of interaction and belief systems is often underanalyzed. While the rhetoric associated with computation often points to a radical historical rupture (from analog to digital, and toward new organizing principles), I argue that the rise of computation follows other cultural flowsâa network of changes in public discourse, in our institutions, in corporations, and in governance, as well as in cultural expression. Golumbia notes, âToo often, computers aid institutions in centralizing, demarcating, and concentrating powerâ (4). One of my goals is to illustrate those power relations, and to do so requires moving beyond a conversation about the broad strokes of computation; instead, we need to look more deeply at computation in context, and the shifting alignment of the functionalities of physical computers (and their respective languages) with the ideologies of computationalism (a state-based, mechanistic view of cognitionâa computational theory of mind).
To further the fields of media studies and game studies, this manuscript considers the manner in which the engine, code and 3D design, purposefully bound together in the game production pipeline, introduce operational limits that link those correspondences (between computation and cognition, as part of the industrial labors and efficiencies of game development). For developers, game engines present a necessary mechanical order, but they also facilitate rapid development and cross-platform deployment. Game engines make the process of development more economical. This presents a trade-off between order and possibility that organizes the field of play and establishes the playerâs relative freedom. The writing of an engine requires that larger development teams work through the idiosyncratic approaches (to writing code) of individual programmers to arrive at a common codebase. The proprietary game engine is illusive; beyond the editor environment, it is pure code (though some engine editors feature integrated visual scripting tools to foster collaboration between artists, designers and programmers). The engine provides the syntax to allow the insertion of an infinite variety of assets that may perform in the same way. The engine controls the soft and hard physics, determines the relative utility of exploration, and emits the signals of agency. The engine determines the relative impact (and realness) of our (avatarâs) presence in the world we inhabit, and the general push in engine development, asset creation and game mechanics is toward realism in effect and affect. The engine produces the relative openness of the game universe.
Game demos and trailers may reveal or conceal the mechanics of the engine itselfâcelebrating the attributes of interaction and occasionally showcasing machine-based physics, or illustrating the narrative impulse or the signposts of agency. The core technologies of the engine drive embodiment; they are the locus where static and dynamic elements are defined and world chunks are delimited. By knowing the codebase of the engine, we come closer to understanding the relative mutability and stasis associated with software, and we are pushed to reconsider traditional studies of new media that treat internal data structures as static formalizations of attributes that can simply be read (Mackenzie, 2006).
As they are software âobjects,â video game engines may be considered within the purview of software studiesâan interdisciplinary field that has emerged since around 2006 (with the gathering of the Software Studies Workshop in Rotterdam) as a creative and critical approach to the theories and practices of computingâto understand the core yet underexamined role of software in both culture and society. Software can shape subjectivity, social agency, politics and aesthetics; and it is produced, activated, theorized and reinscribed by computer scientists, engineers, hackers, consumers, artists, technologists, philosophers, entrepreneurs and industrialists. The limits of participatory culture, where tech-savvy consumers are also empowered producers, are tethered to the relative openness of coded architectures; as software applications become more complex, their scripts become more specialized and inevitably de-democratized.
Software studies has continued to gain traction within educational circles as core curricula have opened up to include information and computational literacy (and liberal arts fields have expanded to embrace the digital humanities), and beyond the academy as the labor market has revived skills-based initiatives in high-tech fields including software programming, mobile application development, data analysis and user experience design. These two impulses have foregrounded to varying degrees the material layer of software as a matter of language and engineering, and its ideological layer as an instrumental part of social formations.
Software is at the center of the global economy, culture, social life and, increasingly, politics; it lies at the heart of various institutional operations that need control mechanisms, data management and assessment tools, from social service agencies to hospitals to universities to scientific research labs, corporate retailers, and municipalities (which deploy a number of digital tools for mapping, data visualization, data-informed decision-making and large-scale infrastructure projects). Software undergirds contemporary systems of representation, communication, organization and interaction; software is the substrate and context of media. Every software program has distinct architectures of coding, scripting and programming that govern basic linguistic processes, the specificity of contextual actions, and the implications of device control. We may understand the impact of software on material culture (software is not simply a metaphor), but what methodology do we use to scrutinize the immaterial layer of code?
Game engines have become integral to our information economy, and are central agents in a number of often interrelated media and media-dependent development pipelines. They are a part of broader industrial arrangements that depend on the organizing power of code, though they are most often directly associated with video games. Game engines are central to the production of meaning in games and other engine-driven experiences and software-driven objects; and as such, one of my goals is to introduce the design process as a rich textual field that can work comfortably alongside more traditional textual analysis. By introducing process, my hope is to close one of the gaps that exists in critical game studiesâthe separation of production from analysisâand to bridge the divide between the equally important work of game producers and theorists. To do so, I am drawing attention to a pipeline model and interrogating creative labor at multiple points in the development cycle, as a way to see the evolving ideological imperatives and complexities of codeâto understand code as a process. By introducing design as a process into game studies, we can more properly locate the relevant discursive tensions that emerge as game developers negotiate ...