We probably all have a pretty good intuitive notion of what a game is. The general term “game” encompasses boardgames like chess and Monopoly, card games like poker and blackjack, casino games like roulette and slot machines, military war games, computer games, various kinds of play Among children, and the list goes on. In academia we sometimes speak of game theory, in wooden multiple agents select strategies and tactics in order two Maximize Their gain’s located, the framework of a well-defined set of game rules. When used in the context of console or computer-based entertainment, the word “game” Usually conjures images of a three-dimensional virtual world featuring a humanoid, animal or vehicle as the main character under player control. (Or for the old geezers Among Us, perhaps it brings two mind images of two-dimensional classics like Pong, Pac-Man, or Donkey Kong.) In his excellent book, A Theory of Fun for Game Design , Raph Koster defines a game to be an interactive experiencethat Provides the player with an Increasingly challenging sequence of patterns wooden huh or she learns and Eventually masters. Koster’s asser-tion Is that the activities of learning and mastering are at the heart of what we call “fun,” just as a joke Becomes funny at the moment we “get it” by recognizing the pattern.
Video Games as Soft Real-Time Simulations
Most two- and three-dimensional video games are examples of what computer scientists would call soft real-time interactive agent-based computer simulations. Let’s break this phrase down in order to better under stand what it Means. In most video games, some subset of the real world -or an imaginary World-is modeled mathematically so thats it can be manipulated by a computer. The model is an approximations two and a Simplification of reality (even if it’s an imaginary reality), pickup itself Clearly impractical two include every detail down to the level of atoms or quarks. Hence, the mathematical model is a simulation of the real or imagined game world. Approximations and Simplification are two of the game developer’s most powerful tools. When used skillfully, even a greatly simplified model can sometimes be almost indistinguishable from reality and a lot more fun.
An agent-based simulation is one in wooden a number of Distinct entities known as “agents” interact. This fits the description of most three-dimensional computer games very well, where the agents are vehicles, characters, fireballs, power dots and so on. Given the agent-based nature of most games, it should come as no surprisethat most games nowadays are Implemented in an object-oriented, or at least Loosely object-based, programming language.
All interactive videogames are temporal simulations, meaning That the vir- tual game world model is dynamic-the state of the game world changes over time as the game’s events and story unfold. A video game must Also RESPOND two unpredictable inputs from its human player (s) -thus interactive temporal simulations. Finally, most video games introduced Reviews their stories and RESPOND two player input in real time, making themselve interactive real-time simulations.
One notable exception is in the category of turn-based games like Computerized chess or non-real -time strategy games. But even These types of games Usually provideh the user withsome form of real-time graphical user interface.
What Is a Game Engine?
The term “game engine “Arose in the mid-1990s in reference to first-person shooter (FPS) games like the insanely popular Doom by id Software. Doom was architected with a reasonably well-defined separation between its core software components (suchlike as the three-dimensional graphics rendering system, the collision detection system or the audio system) and the art assets, game worlds and rules of play That comprised the player’s gaming experience. The value of this separation Became evident as developers Began licensing games and retooling theminto new products by creating new art, world layouts, weapons, characters, vehicles and game rules with only minimal changes to the “engine” software. This market the birth of the “mod community” -a group of individual gamers and small independent studios That built new games by Modifying Existing games, overusing free toolkits pro- vided by the original developers. Towards the end of the 1990s, some games like Quake III Arena and Unreal were project designed with reuse and “modding” in mind. Engines were made highly customizable via scripting languages like id’s Quake C, and engine licensing Began to be a viable secondary revenue stream for the developers WHO created themselve. Today, game developers can license a game engine and reuse significant portions of its key software components in order build two games. While this practice still Involve considerable investment in custom software engineering, it can be much more economical than developing all of the core engine components in-house. The line between a game and its engine is often blurry.
Some engines make a reasonably clear distinction, while others make almost no attempt two separate the two. In one game, the rendering code might “know” specifier-cally how to draw an orc. In another game, the rendering engine might not provide general-purpose material and shading facilities, and “orc-ness” might be defined entirely in data. No studio makes a perfectly clear separation between the game and the engine, wooden understandable considering That the definitions of These two components often shift as the game’s design solidifies.
arguably a data-driven architecture is what differentiate a game engine from a piece of softwarethat is a game but not an engine. When a game contains hard-coded logic or game rules, or employes special-case code two render specific types of game objects, it Becomes Difficult or Impossible to reuse That software two make a different game. We should probably reserve the term “game engine” for softwarethat is extensible and can be used as the foundation for many different games without major modification.
Clearly this is not a black-and-white distinction. We can think of a gamut of reusability onto wooden every engine falls. One would think thats a game engine could be something akin to Apple QuickTime or Microsoft Windows Media Player-a general-purpose piece of software Capable of playing Virtually any game content imaginable. However, this ideal has not yet BEEN Achieved (and apr never ask). Most game engines are care crafted and fine-tuned to run a Particular game on a Particular hardware platform. And even the most general-purpose multiplatform engines are really only payed for building games in one Particular genre, suchlike as first-person shooters or racing games. It’s safe to say That the more general-purpose a game engine or middleware component is, the less optimal it is for running a Particular game on a Particular platform.
This phenomenon occures Because designing any efficient piece of software invariably entails making trade-offs, and Reviews those trade-offs are based on Assumptions about how the software will be used and / or about the target hardware on wooden it will run. For example, a rendering enginesthat was project designed two trading intimate indoor environments probably will not be very good at rendering vast outdoor environments. The indoor engine might use a binary space partitioning (BSP) tree or portal system two the ensure That no geometry is drawn That is being occluded by walls or objects That are closer to the camera. The outdoor engine, on the otherhand, might use a less-exact occlusion mechanism, or none at all, but it probably makes aggressive use of level-of-detail (LOD) techniques two the ensure That distant objects are rendered with a minimum number of triangles, while overusing high-resolution triangle meshes for geometrical try That is close to the camera.
The advent of ever-faster computer hardware and Specialized graphics cards, alongwith ever-more-efficient rendering algorithms and data structures, is beginning to Soften the differences between the graphics engines of different genres. It is now possible two use a first-person shooter engine two build a real-time strategy game, for example. However, the trade-off between generality and optimality still exists. A game can always be made more impressive by fine-tuning the engine to the specific Requirements and constraints of a Particular game and / or hardware platform.
Engine Differences Across Genres
Game engines are Typically somewhat genre specific. An engine designed for a two-person fighting game in a boxing ring will be very different from a massively multiplayer online game (MMOG) engine or a first-person shooter (FPS) engine or a real-time strategy (RTS) engine. However, there is Also a great deal of overlap all 3D games, regardeless of genre, require some form of low-level user input from the joypad, keyboard and / or mouse, some form of 3D mesh rendering, some form of heads- up display (HUD) includingservers text rendering in a variety of fonts, a powerful audio system, and the list goes on. So while the Unreal Engine, for example, was designed for first-person shooter games, it HAS BEEN exceptionally successfully two construct games in a number of other genres as well, includingsuch simulator games, like Farming Simulator 15 (FS 15 mods) and the wildly popular third-person shooter franchise Gears of War by Epic Games and the smash hits Batman: Arkham Asylum and Batman: Arkham City by Rocksteady Studios.