Casual Games SIG/Whitepaper/Technology
International Game Developers Association
Introduction
This Technology Overview surveys the technical aspects of Casual Games. The first section discusses the range of technical characteristics of Casual Games. The second section discusses specific development tools for Casual Games. The third and final section covers a variety of security and Digital Rights Management (DRM) topics.
Technical Characteristics of Casual Games
Delivery Models
The delivery model can be defined as the way for the players to reach the game. For some games, players may have to download a program and then install it. Sometimes, users play the game through their web browser, most likely through an embedded plug-in of some kind. Following is a brief review of the most commonly used delivery models.
Web Browser Games
Web browser games are arguably the simplest form of Casual game (from the user's point of view); most are developed in Flash, Shockwave, HTML, or Java and execute directly in the browser with no need for the player to execute a separate download and installation. Technologies like Virtools, are starting to gain traction in the market as a means of quickly producing professional looking content from within a browser window.
There are substantial security and integrity issues to consider when deploying a Web browser game: for example, it is very difficult if not impossible to save files locally on the users machine (with the exception of "cookies"); there are currently very few technologies that support full screen play (other than maximizing the browser window on the desktop), and; it is unlikely that the developer will be able to block out other applications on the user's machine. In spite of these limitations, users flock to browser-based games because of the ease of use: at most they have to install a plug-in, and at best they simply have to click on a hyperlink to begin playing.
Downloadable Games
Downloadable games execute outside of the web browser, as an application on the user's computer. Generally speaking, developers will package all files necessary for execution into an installer. Users download and execute the installer appropriate for their operating system and then run the game from their desktop. It is common for developers to release both Web and Downloadable versions of the same game, using the web version to generate awareness and advertising revenue and the downloadable version to generate consumer sales.
Downloadable Clients with Web-Based Services
It should be noted that even in the downloadable games described above; it is now possible and often appealing to use network services in conjunction with the downloaded client. This is often done for customer support interaction, but is also used for things like high-score lists, brag sheets, player forum links, etc. Even though the game itself exists locked on the client and the network is not a part of the game play, the Internet is still used to provide experiences that are perceived valuable in relation to the game. This is increasingly the model of choice for downloadable games, as it allows the developer a way to contact the player for a variety of reasons.
Playing mode
The playing mode characteristic of a game covers the number of players involved in a game session and the duration of the game session. While computer game sessions can often require several hours or even multiple sessions of several hours to reach the game end, successful casual games, typically show a tendency to have short simple and repeatable sessions of only a few minutes per session.
Single-Session Single-player Games
Playing games is the most fun if other people take part. But other players are not always available if you need them, which led to the invention of single-player games. The goal of a single-session single-player game is usually to make "moves until one reaches a final state of the game, which results in a win or loss, or a score assigned to that final state.
Thousand of single-players games have spawn all over the Internet during the last years. While some are simply Web versions of old arcade games or existing bundled game (like Solitaire or Minesweeper), several new completely games emerged. Often, the success of these Web games resides in their simplicity to play and the strong addiction they generate.
Single-Session Multiplayer Games
Single-session multiplayer games represent the largest category of multiplayer games. Nearly any game that allows two or more players to join play over a network connection falls into this category. Every genre of game is represented in the universe of single-session multiplayer games, including: classic board games such as chess, checkers, and backgammon; card games such as Hearts and Spades; casino games; first-person 3D shooters; and sports arcade games ranging from snowboarding to billiards.
Single-session multiplayer games save little information about the player between sessions. Exception examples include user authentication data, player ratings and casino winnings. These data chunks can be either stored on the end-user's machine or on the server (the latter being a requirement whenever a secure solution is desired).
From a design perspective, successful multiplayer games work best when the social experience is tuned to the audience. This may vary significantly from genre to genre. For example, some 3D shooters could be described as games that "allow teenage boys to trash-talk while fragging each other". Parlor games allow users to leisurely chat without negatively affecting the pace of play. Another important design component of multiplayer games is the lobby system. A successful lobby system allows users ample time to socialize before entering a game. More importantly, it gives users the power to select their opponents.
Persistent World Multiplayer Games (MMOG)
Massively Multiplayer Online Games (MMOGs) arguably represent the leading edge of Web games development in terms of technological complexity and resource requirements. A persistent world is called "persistent" because when a player quits the game, the world still operates without him. Even if all players would leave the game at the same moment, or if the server supporting the game would be suddenly disconnected from the Internet for any reason, the world would keep running.
Examples of MMOG games in the CD-ROM space include World of Warcraft, EverQuest and The Sims Online. Graphical MMOG games in the Internet space (as opposed to text-based MUDs) have been steadily increasing in quantity since the mid-1990s, and we expect to see several launch in the next year. They operate as a service over the Internet – players connect via client software to a central server array where the game world is stored and managed. The technical problems of such client-server systems are substantial, requiring specialized and non-trivial engineering and operational (up-time, customer support) capabilities. MMOG games are generally offered for-pay only, with a short trial period to allow potential customers to grasp the game play experience. One can obtain the 2004 Persistent Worlds White Paper at the IGDA web site which was released in December 2004.
Skill Based Gaming
From a historical perspective, skill-based gaming as we know it today can still be considered nascent in that the concept of skill-based games only began achieving material market awareness in 2001. As a result, the genre can be characterized as being a fairly "early stage" sub-category of Web gaming.
In an effort to convey skill gaming's most relevant technology issues, this section will focus on the three most technology-affected areas of the sector, which in turn drive technological evolution: User Accessibility, Fraud Prevention, and Game Play Expectations.
User Accessibility
The concept of "pooled liquidity" has arguably had the greatest impact on the technological evolution of skill-based games. In theory, the skill-based game service providers with greatest "pooled liquidity" will succeed relative to the competition because of their ability to consistently offer more skill-based games, faster tournament filling, fairer match-making, and larger prizes.
As a result, in an attempt to appeal to a critical mass of users, the most successful skill gaming companies embrace a "least common denominator" technology development approach, whereby the principle technological objective is to provide a user experience that is accessible to the largest number of potential skill gamers. For this reason the most successful skill-based games are inherently quick to learn, quick to play (less than 5 minutes), and readily accessible by the user whose PC may be limited to 266 MHz of processing power and a basic dial-up Internet connection.
The desire to offer the most readily accessible skill gaming platform has inspired an "arms race" within the community of skill-based game service providers. As would be expected (within a relatively early stage competitive technology environment), myriad programming languages are being deployed in an effort to identify the optimum technology solution. The web-based client-side portion of a skill-based gaming system can be built using several technologies, including Shockwave, Flash, Java, C++ and ActiveX Controls. These client technologies, in turn, communicate with back-end systems capable of large transaction volumes, often built on Sun J2EE, Microsoft.NET, or other appropriate back-end platforms.
Fraud Prevention
Game-related fraud represents the single greatest impediment to the large scale acceptance and subsequent mass popularity of skill-based gaming. In skill games, where cash prizes are on the line, the impetus to cheat is higher, and the need to quash both cheating and the perception of cheating is much more important. Skill game providers must earn the trust of players to build a successful business; therefore it is critical that they thwart cheating of any type.
And while the overall incidence of fraudulent activity experienced within skill-based gaming compares favorably to that of Las Vegas casinos (whose incidence of game-related fraudulent activity is in the low single digits), a misperception of the fraud-related risks associated with skill-based gaming could be detrimental.
Of particular note is the fact that the increasing popularity of skill-based gaming will translate into the availability of more and larger cash prize awards. Consequently, the persistence and technological sophistication employed by would-be "fraudsters" will continue to present a challenge to skill-based game service providers. The first lesson in battling cheating is remembering that it is an ongoing battle, requiring a site to spend money on maintaining an experienced anti-fraud team. New techniques are constantly developed; existing techniques are constantly revised and strengthened.
Another important lesson in preventing cheating is not to rely on a single method. If a cheater manages to foil one or two cheat-detection systems, a third will catch him/her. Having just one system is like relying on just an alarm system to safeguard your house; having multiple systems is like have an alarm system, hidden cameras, a trained Doberman, a moat filled with hungry alligators, and a yard filled with land mines.
The most successful skill-based game service providers have been able to effectively minimize game-related fraud by utilizing comprehensive technology-enhanced fraud prevention techniques. These techniques include, but are not limited to, Move Tracking: which allows the skill game service provider to play back and review all moves made by a particular player in a particular contest; Server-Focused Communication Protocols: which reduce the technical vulnerability associated with client-side communication protocols; Event Probability Assessment: which allows the skill game service provider to determine the likelihood of a particular event (i.e., a winning score, the likelihood of a particular move, etc.) based on statistical precedence; and, Strong Encryption Protocols: which securely encrypt client codes and events rendering server communications cryptographically indecipherable.
In terms of detecting "hot spots" for fraudulent game play, a good rule is to "follow the money." Players winning large single prizes, or with a large amount of cumulative winnings, are deserving of a greater level of inspection
Game Play Expectations
As the skill gaming sector continues to evolve, so will the game play expectations of the skill gaming consumer population. Subsequently, successful skill-based game service providers (like all successful game developers) must contend with the challenge of providing an increasingly more compelling (better graphics, faster processing, better sounds, etc.) game play experience.
However, because of self-imposed technological constraints (derived from the desire to maximize users' accessibility), skill-based game service providers are faced with the conflicting challenge of simultaneously maximizing the game play experience while maximizing user accessibility. Compounding this challenge are the consumers' game play expectations, which have been fueled by the game consoles (Xbox, PlayStation, Game Cube, etc.) and CD-ROM games which, unlike skill games, are not constrained by bandwidth limitations.
Consequently, the ability to deliver a secure and readily accessible skill-based game that has the production values (i.e., 3D graphics, accelerated processing power, etc.) of a console game, equates to the "Holy Grail" for skill-based game service providers and represents the logical evolutionary path for the skill-based game play experience.
Network Protocols
A connection or network protocol describes the set of rules that two applications use to communicate with each other. There are thousands of different network protocols in use nowadays, ranging from downloading documents from the Internet to exchanging real-time audio and video. In fact, when two applications communicate with each other, they will most likely use several protocols simultaneously. This section discusses the common protocols broadly used in networked Web games.
Naturally, stand-alone games as described previously do not require any network protocol while played, and generally use Internet standards such as HTTP or FTP in order to be downloaded. Rather, network protocols apply to client-server or peer-to-peer architectures, and to single-session and persistent-state worlds.
Internet Protocols
Most hosts on the Internet today use the Internet Protocol (IP) to communicate with each other. IP is a low-level protocol used by routers and hosts to ensure the packets travel from the source host to the destination host. IP hides the transmission path and the recipient host has no way to know if the transmission path included phone lines, LAN, satellite links, or whatever. IP splits the packets into small fragments when they traverse networks links that cannot support large packets, and for reassembling the packets at the other end. Finally, the IP header also includes a "Time-to-Live" (TTL) field that specifies how many network hops may transfer the packet before the packet is discarded. This prevents packets from being accidentally routed in infinite loops around the Internet.
Applications generally never use the IP directly. Instead, they use one of the protocols that are written on top of IP. These higher-layer protocols include services for acknowledgements and retransmission, or support for application port numbers.
The Transmission Control Protocol (TCP) is the most used protocol on the Internet today. It is usually layered on top of the IP and referred to as TCP/IP. This protocol provides the running application with the illusion of a simple point-to-point connection to another application running on a separate computer. Each endpoint can consider a TCP/IP connection as a bi-directional reliable stream of bytes between the source and the destination.
TCP/IP is reliable as it automatically transmits acknowledgements and retransmits data. Furthermore, TCP/IP verifies the integrity of received data using a data checksum contained in the data packet header and both endpoints use a data flow control technique to ensure that the sender does not transmit data packets to the network faster than the network can support or than the recipient can process them. TCP/IP even allows the application to detect when the other endpoint disconnected.
Unfortunately, such reliability comes with a cost. Because of it, TCP/IP must transmit more information in order to accurately describe the data ordering, detect corruption using checksums and transmit acknowledgement or retransmission packets. Moreover, the recipient must receive and accept the entire data stream in the order that the sender transmitted it. Therefore, the TCP protocol handle may arbitrarily hold or buffer transmitted data in order to preserve the packet ordering. Consequently, TCP/IP is not suitable for applications that do not necessarily need a strict ordering and consistency.
The User Datagram Protocol (UDP) is a lightweight communication protocol differing from TCP in three respects: connectionless transmission, best-efforts delivery, and packet-based data semantics. UDP does not establish peer-to-peer connections as the sender and recipient of UDP data do not keep any information about the state of the communication session between them. With UDP, data is sent on a packet-by-packet basis. While TCP used such information to detect packets loss, request retransmission or dynamically adjust the data transfer rate, UDP simply provides best-efforts delivery, making the attempt to guarantee that data is delivered reliably or in order. In addition, the datagrams must not be too big, because if they have to be fragmented, some fragments might get lost in transit.
While UDP might appear at first as too weak to be powerful, it has in fact several major advantages. The first one being its extreme simplicity. As UDP packets do not contain any of the information guarantying reliability used in TCP, they require considerably less processing for both the sender and the recipient. Then, UDP does not maintain the illusion of data stream. This implies that packets can be transmitted as soon as they are sent by the application instead of having to wait in line behind other data stream. Similarly, data can be delivered to the application as soon as it arrives at the recipient host instead of waiting in line behind missing data. Thirdly and finally, as many operating systems impose limits on how many simultaneous TCP/IP connection they can support, UDP/IP seems logically more appropriate for large-scale distributed systems (including MMOGs) where each host can communicate with many destinations simultaneously.
There is however one aspect of UDP/IP that can make it rather unsuitable for some environments. When a socket is receiving data on a UDP port, it will receive packets sent to that port by any host, whether participating to the application or not. This can become a security problem for applications that do not make any difference between expected and unexpected packets. For this reason, some ISPs still block UDP packets, or block UDP in particular port ranges. While this is generally less of an issue than it was a few years ago, any large deployment should still check with major ISPs for UDP support and port ranges
Flash Media Server 2
The Flash Media Server 2 (formerly the Flash Communication Server) from Macromedia (now Adobe) allows Flash and Director developers to implement multi-user solutions for clients. As well as standard data transfer, it includes the facilities for multi-way video and data, offering a rich out of the box solution for content developers. The latest release is 2.01.
Applications will be able to add video conferencing, shared whiteboards, audio and text chat, and other features to their applications in an easy, straightforward manner.
Package and pricing information can be found on Adobe's website.
The Flash Media Server 2 is also offered as a solution for multi-player games, via its ability to also transfer simple packets of data. As most games will be transmitting relatively small data packets, rather than constant streams of video or audio, the maximum number of active connections will be more of a concern than the maximum data transfer rate when considering what edition of the server to purchase. There are certain multi-player features that Flash Media Server 2 doesn't support, such as peer to peer networking.
Director / Shockwave Multi-User Servers Options
Since Director MX, the Shockwave Multi User Server (SMUS) has been depreciated somewhat. Although it still operates with all versions of Director and has been ported to OS/X, development has been frozen on it and the above Flash Media Server is recommended by Adobe as an alternative.
However, a number of Director multi-user game developers still use SMUS for a number of reasons, including the fact that it supports features not available in the Flash Communications Server solution, including the ability to implement peer to peer networking capabilities.
One alternative option to using the SMUS server (but still using the client SMUS Xtra) is the Nebulae Multi User Server, available at http://xtras.tabuleiro.com/, which is a third party implementation of a server system that meets the SMUS spec. Also, a useful set of routines for developing SMUS applications for first time developers can be found at http://gomu.rebus.gr/.
Base Delivery Technologies
Director / Shockwave
Adobe Director is a tool that can be used for both Downloadable and Web Games. Although the development environment product is named Director, the web player is named Shockwave.
According to Adobe, the Shockwave plug-in has been installed in just over fifty-five percent (55.4%) of the world’s browsers. It is available for both Windows and Mac OS X.
Its ability to handle fast bitmap blitting operations has given Director/Shockwave the performance edge over Flash for certain types of 2D, sprite-based games. Additionally, Director’s real-time 3D engine and Havok physics, gives it an advantage for developing small, fun 3D games. However, in recent years, Director has fallen behind advancements in 3D hardware. Sophisticated 3D games can still be made in Director, however some developers are turning to other technologies, such as Virtools, to make Web games that can compete with consoles on a technical level.
Shockwave3D is the 3D package that sits inside Director. It offers a vast range of both standard and advanced features such as level of detail, sub-division surfaces, skinning, multi-texturing, particles, the list goes on. Using Lingo or JavaScript syntax, you can create meshes at run-time, or can use content from all of the major modeling packages using the available exporter plugins which exist for 3D Studio Max, Maya, Lightwave, SoftImage, TruSpace and more. Stand-alone converters are also available. The engine supports Direct3D and OpenGL, and even has a software renderer to ensure that everyone can view the content created in Shockwave.
The real-time physics capabilities offered by Havok, although a subset of their full v1.x package, are quite extensive, and can allow for some very impressive simulations that previously would have been out of the scope of most Director based projects.
Director can be used to develop a Shockwave web demo version of a Downloadable game, as well as the Downloadable game itself. Developers do not need to select a different tool for the Web and Downloadable versions of a game. Director is cross-platform, and can be used to develop Downloadable games for Windows and Mac OS X.
Some developers have reported abandoning Director/Shockwave for 2D applications because its sprite engine is too slow for the demands of their games. However, Director has been used in a number of successful Downloadable games and countless Web games in 2005 and 2006.
In the most recent version, MX2004, Director added the capability to manipulate DVD content, and to access all of Director's features through a new, ECMAScript 1.5 / JavaScript syntax (which is very similar to Flash ActionScript), in addition to the Lingo language the product has used for years.
In 2006, Adobe added Flash 8 support to Director / Shockwave, allowing developers to embed and control assets from the latest version of Flash.
Shockwave has built-in sound support that includes audio compression, streaming, basic volume and panning, music playlist branching, and embedded markers. There is midi and mod music functionality via xtras including the BASS xtra plugin
Flash
Flash has an unprecedented popularity compared to any other web based plug-in. It is available across all majors PC platforms (from Windows to Macs to Linux) and numerous non-PC devices (from consoles to PDA's). Flash offers developers a huge installed client base.
Its core engine is primarily a non-hardware accelerated vector based system, and as such has no game-specific features. Despite these limitations however, many developers have discovered and published various optimization techniques and best practices in regards to code and graphics that have enabled them to produce great results in both visual effects and overall game performance. This has resulted in Flash being used for even the development of deluxe Downloadable games.
With the introduction of Flash 8, Adobe has apparently responded to the requests of the game development community with enhancements that enable much higher performance in the areas of screen-draw and math -- as well as bitmap and filter API's which open up an endless array of code-driven visual effects that allow Flash developers to do things that previously could be done only in Adobe Director.
Its ActionScript language, like any scripting language, can be slow at times, although a number of dis-assemblers are available to allow developers to see exactly what is happening under the hood with the scripts, and some of them have used this knowledge to code their games at this level (almost akin to assembly language coding) to get the maximum performance out of the scripting engine.
However, the ease of dis-assembly makes Flash an unsecured client environment. Without the use of code obfuscating tools (there are a few third-party tool) and techniques, any moderately sophisticated end-user can reverse engineer a Flash movie.
Flash doesn't have built-in 3D support. However, it can draw polygons that can be re-positioned at run-time and some rudimentary real-time 3D environments have been designed and implemented. Some utilities allow for the optimized export of 3D model screenshots and animations from popular modeling packages. These utilities basically take each 3D image and break it up into a vector based image. The more advanced ones break the image up into layers, and try to "tween" between the various frames to help optimize further.
The lack of hardware acceleration within the main player will always result in slower performance than if the hardware were handling the rendering of the scenes, so Flash is not appropriate for certain types of games. However, the popularity, flexibility and portability of the engine is unparalleled. Currently within the marketplace, Flash reigns supreme for creating energizing graphical content through a high level scripting language. ActionScript 2.0 syntax offers a mature, class-based OOP architecture. The recent release of ActionScript 3.0 introduces enhanced structure, faster compiling and dramatic improvements in performance.
Flash is an excellent prototyping solution regardless of the final target platform because much can be achieved with only a few lines of code. An experienced Flash developer can produce a decent prototype of the core mechanics of a game within a few hours, allowing quick review and assessment of a concept in advance of level design and game-play refinement. This helps to easily play-test a variety of derivatives of a particular game mechanic before taking the next development steps. Adding and swapping out static art and animations are trivial tasks in Flash, making even "organic" styles of development to be possible on even tight deadlines and budgets.
One real great benefit of using Flash is the possibility to develop a web version of a Downloadable Game with minimal effort. Whether or not the Downloadable game was developed in Flash, one can easily and quickly produce a smaller and limited demo "upsell" version. Because of the ubiquity of Flash, “upsell” versions of a game reach more users and do not have overhead of custom ActiveX control installation.
Flash has become quite powerful in terms of features over the years, but it is still slower than compiled code. If a game requires heavy calculations (e.g. complicated AI), or has a lot of on-screen action and/or a larger scrolling regions, then Flash would not be a good candidate. For most games, the code execution is fast enough in Flash. The main bottleneck is slow rendering of graphics, especially in full screen (800×600). Fortunately, casual games often do not have a scrolling screen and their graphics are fairly static most of the time. Puzzle games and card games tend to be fairly static and work well in Flash. If the screen area taken up by an animation is minimized, a game can run at an acceptable frame rate on a moderate computer.
Although some devices such as Sony's PSP provide support for more full-featured Flash content (currently up to version 6), Flash Lite, which is the Flash technology developed for mobile phones and consumer electronics devices, has seen rapid adoption, particularly in the Asia and Europe.
Flash has built in sound support that includes mp3 compression, streaming, basic volume and panning, limited music branching, and embedded markers. There is no midi, dls, mod, pitch or dsp support.
Java / Java WebStart
Java (http://java.sun.com) began life with the promise of 'write once, run anywhere'. While this is certainly more so than with any other comparable, contemporary language, it hasn't become the panacea once envisioned. On the other hand, Java has become a viable and practical platform.
Java was originally developed to serve as a portable platform for content delivery on interactive set-top boxes. The media group within Sun found themselves grappling with an explosion of portability, compiler, library, and security issues as they attempted to develop atop a variety of commercial hardware platforms, and they invented Java to soothe the pain.
Since those early days, Java has evolved considerably. Java 2 was launched as a successor to the original Java and comes in three 'editions' - each one tailored for a specific class of problems. The original Java has gone on to become Java 2 Standard Edition (J2SE) - a Java platform targeting a desktop environment. The Java 2 Enterprise Edition (J2EE) has emerged as a superset of the J2SE intended for deployment in enterprise and server-oriented environments. Finally, Java 2 Micro Edition (J2ME) has emerged as a slimmed-down Java platform for resource-limited devices (CPU, memory, interface, connectivity, etc.) that still might benefit from the Java platform. J2SE and J2ME are the two most relevant to game development and deployment. J2EE is a set of enterprise-grade technologies not directly relevant (though potentially useful) to game development. Each of these editions have been given extensive coverage in previous papers, and readers making decisions about Java implementations are encouraged to review those notes.
Extending Java
Java provides a standard mechanism for platform extension via native code called Java Native Interface (JNI). This makes it practical to use Java as a scripting language while leveraging any existing libraries and allowing you to implement more performance-oriented operations in native code. In particular, the Java 3D API (http://java.sun.com/products/java-media/3D/) is one such extension that provides advanced 3D APIs built atop existing underlying graphics technologies (OpenGL and Direct3D). While this extension is available only on a limited number of platforms, it is a strong candidate for mid-tier 3D game development (compare to Shockwave w/ the 3D Xtra). Until Java 3D becomes a core component of the Java platform, however, developers will need to ensure that their customers install the Java 3D extensions alongside their Java 3D-based games.
There is also a second development effort in Java circles to promote the use of 3D - the Java Open GL (JOGL) project - which while community run, is now regarded as one of the best opportunities for 3D through Java. More information is available at https://jogl.dev.java.net/.
Java Delivery Mechanisms
A variety of delivery mechanisms exist for packaging and delivering Java-based content to your audience. These include:
- Applets
- The Java Plug-in
- Java Web-start
- Pre-packaged applications (w/ and w/o the JRE)
The two major delivery mechanisms for Java on the web at this point are the Java Plug-in (http://java.sun.com/products/plugin/) from Sun and the Java Web Start (http://java.sun.com/products/javawebstart/).
The final area in which Java delivery is becoming critical is mobile game development. You can learn about these efforts in our Mobile Games White paper that will be distributed in 2005 at http://www.igda.org/SIGs.
Python / PyGame
Python is most often thought of in game development circles as a scripting language for something that controls a lower level C/C++ core. Python in particular has been used in a number of recent projects including ToonTown (Disney), Eve Online (CCP), Blade of Darkness (CodeMasters), Star Trek Bridge Commander (Totally Games), and Earth & Beyond (Electronic Arts).
A new generation of games is springing up using Python in combination with PyOpenGL and/or PyGame (http://www.pygame.org). PyOpenGL provides a wrapper to the standard OpenGL library and is thus suitable for developing 3D games, PyGame provides a wrapper to the Simple DirectMedia Layer (http://www.libsdl.org/index.php) which uses GL or DirectX depending on platform, and provides cross-platform access to hardware accelerated graphics as well as input devices and other common game-engine requirements.
Libraries exist for Python to do its own networking, and there are now several small downloadable client-server games built with Python/PyGame, with more popping up every day. While most game designers are still looking at Python as a scripting language, its ease of use, its cross-platform capability, and its ability to call C/C++ code when needed make it a strong candidate language for small downloadable games. There are currently no known technologies that play python games natively in a browser.
PHP + HTML
The Hypertext Pre-processor language (PHP - http://www.php.net) is a widely used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. It features a simple C/C++ style syntax that supports object-oriented mechanisms. PHP excels at its ease of use in building low to complex systems. PHP is completely free with many modules available for most popular Web servers and platforms.
PHP is primarily designed for server-side scripting, therefore it can do anything that a CGI script can do, from collecting data to generating dynamic page content. The difference between PHP and other scripting languages like JavaScript is that PHP is executed on the server hosting the file. As such, the client only receives the results from this script, without any access to the code that generated the result.
PHP can also be used for command line scripting. This type of usage is ideal for scripts regularly executed using Cron or Task Scheduler. PHP can be used in client-side GUI application as it can output HTML, dynamically generated images and graphics, or even Flash movies generated on the fly. One of the strongest and most useful features in PHP is its support for a wide range of databases, from MySQL, PostgreSQL, Oracle and more via ODBC.
PHP is often selected to create small to medium Web persistent multi-player role-playing and/or strategy games. This is most likely due to its cost, and the ease in which it allows the implementation of a client-server architecture relying on a database system.
These games can be played directly through a client browser written in PHP or through a downloaded client written in another language. Numerous examples of persistent PHP-based games are available through the Internet with the membership ranging from a few dozens to thousands of players.
Among the most successful PHP Web games, is the Legend of the Green Dragon RPG (http://www.lotgd.net), developed under the GNU license and hosted on a few dozen servers, each supporting a few hundreds players. Another interesting example is the Star Wars Combine (http://www.swcombine.com), a free and non-commercial massively multiplayer Web role-playing simulation game, based on the Star Wars universe, developed by amateurs during their spare time. It gathers over 1,500 active players in a persistent gaming universe.
DarkBasic
DarkBasic has gained a small following over the years primarily as a "first programming language" - but one that is very capable of producing game content. The libraries included with the product allow access to DirectX and provide what amounts to a fully functioning 3D engine. Projects produced with DarkBasic cannot run native in a web browser, but must be downloaded to a client's machine and installed. The engine is currently geared at creating stand-alone 2D and 3D games, and does not have tools for networking capability (although experienced programmers could certainly add them). Nevertheless, the graphical capabilities are well documented and easily employed.
BlitzBasic
Please fill in content here
VirTools
VirTools has long been a significant tool in the prototyping of the more traditional games market, from PS2 and Xbox development houses to the big PC Game makers. VirTools also provides a browser plugin and content server to deliver game content. While more expensive than most of the other technologies listed here, VirTools is also one of the most complete - offering near-seamless integration with Maya and 3dsMAX, a "C-like" scripting language, and a wealth of pre-scripted game scenarios, built-in collision detection and even some AI. Unlike several of the other technologies discussed here, it is apparent that VirTools is an engine designed specifically for games and game creation, as opposed to a general purpose tool that can be used as such. One issue to note is the relatively small market penetration of the VirTools plug-in, although that may change as more adopters begin to push content.
Garage Games / Torque
Garage Games offers a variety of game engines and game development tools for both 3D and 2D game development. Their most well-known product is the Torque game engine which comes in two flavors: Torque 3D and Torque 2D. An example of a successful Torque 3D release is Large Animal Games' RocketBowl Plus. While Garage Games' engines are not free, the licenses are priced affordably (around $100 at the time of this writing for the 'Indie License'), with two pricing tiers that depend on the revenue of the licensing company. The Torque engines are very full featured and fairly high-level game engines. While the engines are based in C++, they are designed to be useable without programming in C++ by using Torque's pseudo-C++ scripting language. The engines fully support Macintosh, Windows Desktop and Linux targets, and include sound support. Most recently, Torque has added support for Xbox 360, and has enjoyed some success with LiveArcade titles there. There is also a very active developer community for these products, which can be a significant help to learning the new tool. Common complaints about Torque is that using the engine can involve a steep learning curve, and making modifications to the engine's provided source code can involve considerable digging around.
PlayFirst / Playground SDK
The PlayFirst Playground SDK is a C++ API that offers support for hardware accelerated 2D and 3D graphics, UI controls, Music, Sound FX, and Lua scripting. It also includes more game oriented features like user state/preference management, high scores, multiplayer, and a complete game template. Playground games can be deployed as Windows Download, Macintosh Download, and Windows ActiveX games (including hooks for MSN integration). The engine also has full UNICODE support and an embedded vector font engine allowing development for most common user configurations and languages around the globe. The footprint for the engine compresses to just 0.5 MB. It has been used recently in Diner Dash Hometown Hero. The SDK is free for independent and commercial use. Developers using the SDK have the option of publishing with PlayFirst.
PopCap Framework
The PopCap Framework is a C++ casual game engine and has been used in a number of widely distributed games. It offers a 2D game engine with hardware-acceleration support. The Framework includes many high-level features such as UI controls (buttons, sliders, popup-dialogs) that are very object-oriented and quick to implement. The rendering layer on this framework was designed for the casual user demographic with optional hardware-acceleration support which will fallback to software rendering if it needs to. There is a fairly healthy and growing user base for this engine with active developer forums at PopCap. While this game engine is free, there is an obligation to credit PopCap (including a URL) in any final game product using the engine. There is no direct sound support but the engine comes already integrated with FMOD and BASS sound engines (requires separate licenses). The supported target is only Windows desktop.
SDL (Simple DirectMedia Layer)
SDL is an open-source low-level game engine written under the GPU public license. It is more of a rendering layer with a lot of extra functionality and could be a good fit for expanding into a higher-level proprietary game engine. An example of a successful casual game written with SDL is Grubby Games' Professor Fizzwizzle. SDL has good support for multithreading, streaming audio functionality, and supports a very long list of target platforms including Macintosh, Windows Desktop, and Linux.
GapiDraw
GapiDraw by Develant Technologies AB is a commercial 2D game engine that is probably better known in the PDA games space than in the desktop game space. It is a very popular choice for Pocket PC games development. The GapiDraw framework does not offer a great deal of higher-level functionality such as UI or controls, although it does offer a full range of fast blitting functionality such as rotating, scaling, alpha blending, additive and blended drawing among others. GapiDraw has also shown itself to be quite robust and stable. An example of a successful casual game release that uses GapiDraw is Sandlot Games' Tradewinds. Gapidraw is one of the few game engines that is capable of simultaneous targeting of Windows Desktop, Pocket PC, Windows Mobile and Symbian platforms (if you were able to get the graphic assets arranged correctly). There is no support for Macintosh or Linux or PalmOS, nor is there integrated sound support, and it comes with a somewhat higher licensing fee.
PTK
PTK by Phelios, Inc. is a commercial low-level 2D game engine. Really more of a rendering layer, this engine could be a good solution for developers seeking a no-frills hardware-accelerated framework that they could build on top of. PTK has support for fast blitting (with rotating, scaling, alpha channel support), font management, basic sound support, file access, and targets both Macintosh and Windows Desktop. The API is very simple with virtually no learning curve. There is no higher-level game functionality such as UI or dialogs. An example of a successful casual game created with PTK is Big Fish Games' Fairies (originally developed by FunPause). Support is rather limited and directly through the developer, with little or no community support presently available. The license fee has a very low price-point and licensees gain access to the full source code, further increasing PTK's usefulness as the foundation of a higher-level proprietary game engine. A version with native support for Intel-Macintosh is reportedly nearing completion.
Additional Sound and Audio Middleware Technologies
In some cases when a developer is using a game platform technology that doesn't support sound or the game requires extra needs that the sound API doesn't support, there are several middleware sound packages available. These packages can be especially useful if the game involves sophisticated audio techniques or rhythm action or manipulation.
The most common packages include:
- FMOD - A commercial package that handles extensive audio, mod music, plugin and dsp capabilities that supports PC, Mac, Linux and all consoles.
- Miles Sound System - Another commercial package that also handles extensive audio capabilities, including mod, midi, dls, and dsp support. Miles is available on PC, Mac, and consoles.
- BASS - Another commercial package that offers sound functionality for PC and Mac platforms including mod playback and compression, and sound APIs.
- Audiere - An open source PC only audio solution that supports mod music playback and sound playback functions.
Security and Cheating
As casual games have become a more serious business, security and measures to counter cheating have become more important. Where once a cheater simply boosted his high score, hacked his games with "friends", or disrupted game play and made a nuisance of himself, now these activities can cost a developer potential customers and revenue. Security is a large discipline that spans the entire lifecycle of a product or project and includes both technical and non-technical aspects. This discussion will briefly review the standard IT security technologies that are relevant to networked games, and will focus on those that are unique to this field.
Security is intimately tied to the operational integrity of the game. While computer games were once products, in many cases, casual games today are services. This changes the essential nature of the business - games are not just "published", they are "run". Customer service, retention, and acquisition depend more on persistent quality than on flashy packaging and cool graphics. Development and delivery of a game is not the end, it is just the beginning.
The security threat for traditional computer games used to be copy protection. Various proprietary schemes have been created with each one a balance of protecting sales versus annoying customers. Typically, not annoying customers has won out over security techniques - just as with other traditional software, the belief was that a satisfied "thief" today may be a good, paying customer tomorrow. The effectiveness of the available anti-copying techniques also was (and is) an issue.
It is always important to remember - the bad guy does not need to break the security system, they just needs to beat the game.
The following represents a partial list of the types of attacks and common exploits; new attacks are devised against every new game and security technique.
There is unfortunately a dearth of products focused on networked game security. Rather it falls to the developer to defend against the exploits described below when implementing with any of the previously mentioned toolsets. This is unfortunate, and can significantly impact development time and technological implementation. Some known software solutions to these types of attacks are listed in sections below, although each of these will require careful integration with your game and its development process.
Common Exploits
In the following sections, we will review the most common methods used in Web cheating, and the protections against them. This section is based on the observations compiled from the sources listed in the footnotes.
Network Game Security Issues
With the rise of casual games, security has become a much more serious challenge. While the game industry has always been concerned about piracy, new platforms, new business models, and the power and speed of networks have created new security problems for game developers, publishers and operators. These problems rapidly become more serious for networked games since word-of-mouth and long term relationships drive sales and revenue more than just slick packaging and marketing. Network game operators also face costs associated with customer support and charge-backs that traditional computer game publishers and developers have not had to confront. The discussion that follows will try to establish clearer definitions of game security issues.
Piracy
Piracy continues to be a problem for network games. Digital Rights Management tools have joined older physical media protection and various licensing tactics to protect against unauthorized duplication. Unfortunately, once these systems have been defeated, there is no way to restore the game to a secure state. Web game services do not have this problem as the operation of the service provides some measure of protection against piracy. Web game services do not protect against duplication of legitimate copies of a game - at best they typically prevent concurrent use of a game account. In addition, it is also necessary to protect not only the game itself, but all copyrighted materials contained within the game, any and all music, sounds, artwork, storylines, etc. that are created or derived from copyrighted work. A detailed discussion of these issues as they relate to piracy can be found in our discussion on DRM.
Ghost Servers & Doppelganger Services
Web games have given rise to a new problem - creating pirate servers and services, not just pirating games. Though this problem is new, it is in some sense worse than traditional piracy. The game server or service operator has often invested substantial resources in the game infrastructure. Whether the game service provider is trying to operate a subscription service or simply providing a quality Web service with marketing and license registration features, the game service is an important business asset. In the US, the BnetD application that emulated Battle.Net is an example. In Asia, the problem has been more serious. Due to widespread software piracy problems, subscriptions and virtual goods are virtually the only viable business strategies for game developers. Unfortunately, pirates have set up alternate game servers and hosting services threatening the subscription revenues of legitimate game developers and operators.
Data Spoofing
One of the simplest means to attack games is to spoof the data passed between participants. This is distinguished from "State Spoofing" described below as altering the local game state. Data spoofing may consist of altering player actions, updates to game state, or any other information exchanged between game players. This can occur at two levels: "on the wire", after the data has been sent; or internally, before the data has been packaged and sent to the remote location. Traditional security tools such as encryption and digital signatures are powerful methods to protect against "wire" based or third party attacks.
Unfortunately for game developers, these attacks are the least likely - game players themselves are the most serious threats to networked games. The malicious alteration of data by a game player can only really be stopped by effective verification of the incoming data itself. This does have serious design implications for networked game programmers. If a game sends raw game state updates to remote players, the ability of the receiving game instance to validate the changed state may be difficult. Data exchanges that map to "player actions" may be easier to validate as they correspond to inputs to the game rules. Chess provides a straightforward example: it is easier to validate whether a Knight can move from one position to another than to compare the game board before and after the move to determine if the new board could have resulted from the old one.
State Spoofing & Disclosure
The local game state is inherently vulnerable to attack. It sits on the computer of the potential hacker and, if the game is going to work, the game code has to operate. The reverse engineering of the game state and rules is virtually inevitable. While there are tools to obfuscate code and data, they can only delay the problem. They may also introduce performance and testing issues for the game developer. The best approach is to design game software so that the known game state does not damage the security of the game. This may not be practical for games with rigorous performance requirements and low bandwidth. As discussed above with data spoofing, the alteration or manipulation of the local game state should not permit an advantage against other players. The worst-case scenario should be the cheater simply falling out of synch with the rest of the players.
Net Time Manipulation
"Time Hacks" have been one of the most persistent problems for network games. By manipulating the apparent lag between players' computers, cheaters can give themselves a performance edge. A hybrid between time hacks and data manipulation hacks is to overload a receiving system with more actions than should be allowed within a given time interval (more moves or shots than should be permitted). Part of the rules validation discussed above should be temporal rules, not just state-based rules. Maintaining time synchronization is a problem for computer games, but actually Web Chess faces a worse problem - trying to control the game clock in a manner that is fair to all players.
Score Spoofing
One of the simplest ways to encourage participation in Web games is through a shared high score board. Unfortunately, some players will spoof their score to get on the high score board. If there is no interaction between the game application and the game provider, it is very difficult to detect such spoofs. Hackers will reverse engineer the game application to determine what they need to do to submit a high score. If the game is implemented so that it is completely interactive with the game host, such spoofs can be stopped; the problem with this approach is the bandwidth and processing requirements to support this approach.
Tournament Collusion & "Playing with Yourself"
One of the fastest growing portions of the network game business is offering tournaments. As usual, hackers follow the market. For tournaments, players can collude with other players or create fake player accounts to boost their ranking. This problem is worst for free tournament systems (the cost of registration and play tends to naturally deter this tactic), but could be a concern in games with substantial prizes or other incentives. Though various means can be used to monitor who plays with whom, the best method for official tournament games is probably to randomly assign opponents and change them regularly. This is well proven in the traditional games world for card rooms.
Optimal Play
The problem of a "perfect player" or "aimbot" is not exclusive to computer games. In some sense, a card counter in Blackjack is exactly the same - a player following the rules of the game who is using all of the information available to him to his best advantage. This problem is more of a game "system" or design issue than a security problem - it would be much better to remove optimal strategies from computer games. It is more fun, after all if there are meaningful strategic choices. A good "aimbot" will be nearly indistinguishable from a good player (barring other cheats, of course).
Griefing
The in-game abuse of other players has been a problem as long as network games have. These players are carrying out activities that are legal under the rules of the game, but detrimental to the fun and game experience of the other players. This is no less important an issue than cheating or hacking, but it does need to be countered differently. Spawn killing (killing characters where they enter or re-enter a game) and camping (waiting in a location where a high value creature or item will appear) are both examples of the problem. Once again, good game design practices are probably the best mechanism to counter these issues. For example, instead of having monsters created at a fixed location, they could be created through a probability model in an area where an individual or party is roaming. By eliminating the fixed location, the incentive and advantage to camping goes away.
Outsourcing Play
Recent news reports have discussed MMOG players outsourcing the "operation" of their characters while they work or sleep to other players in Russia and other countries. Players hiring other players to play on their behalf may or may not be a security issue for Web game services today, but it could become a problem if it distorts the experience of the game for other players. Since most Web game services are protected solely by user name/passwords, they do not have a good method to protect against this problem. Also, game service providers must balance the convenience of allowing players to use multiple computers (such as a home PC as well as a laptop) with security requirements. It is interesting to note that the older model of metering gameplay by time would naturally address this issue.
Denial of Service
The problem of denial of service attacks against games and game servers is shared with all other Web transactions. There is no way to completely stop an attempt to bring down a network service. However, game software should be designed robustly to only accept "good" data from valid sources and generally resist buffer overflow and other traditional attack methods. Centralized commercial game services can use rate filters, intrusion protection systems, and other tools to harden themselves against these attacks.
Game Software Security Tools
There are a number of game software security tools. These products attempt to detect and counter cheating software by various strategies. Typically, they are built for client/server games where the server is assumed to be trustworthy. Some current products in this area include HLGuard, Cheating-Death, nProtect's Game Guard, and Even Balance's Punkbuster. Each of these products must be tailored for a specific game and must be updated as new attacks are found. Since they are a separate software package, these tools can be added in to an existing game.
The server portions of such solutions look for anomalous network traffic that corresponds to varies cheating packages. This is very similar to conventional Intrusion Detection Systems (IDS) that have a catalog of signatures that they continuously search for. This catalog is continually updated with new "cheat signatures". The server may also use heuristics to attempt to detect new forms of cheating. Some of these server tools probe the client-side player platforms to determine if the corresponding client security software is in-place and operating properly. The server may also support a registry service for good and bad players.
The client portion of these solutions also is looking for cheating software (sometimes referred to as "warez"). The security client software faces a particularly daunting task as the player typically willingly, if not eagerly, has installed the malicious code. These solutions work similarly to anti-virus software - looking for "warez" signatures. They may also work in a more intimate fashion with the game to make certain types of cheats impossible (Cheating-Death relocates the local position of illegitimate targets to a point where they cannot be attacked). Makers of these security tools are in a continual "arms race" with the cheating community. Cheaters will reverse engineer and circumvent each version of security code and the toolmakers must continually work to keep up.
Game Protocol Security Tools
By their nature, Web games can be attacked both within the local software and on the network connection between players or between a player client and the game server. Encryption and digital signatures can prevent manipulation of game data and against disclosure. This can be very effective against third parties but, as noted above, may be less effective against a malicious player client.
A different approach is to secure the game transaction between the players. The SecurePlay library does this by implementing game transactions in a manner that is mutually suspicious. This approach means that the participants in the game do not need to trust the other players' software - as long as the transaction is valid, the game is valid. These basic transactions can be combined together to implement the various game rules and provide overall game integrity. The advantage of this approach is that the Web game can be assessed secured entirely through the network transactions between the players (or a player and the game server) without requiring any trust in the remote party. The challenge comes from building these transactions into the game, rather than adding an after-release security tool.
Piracy & Digital Rights Management (DRM)
Game developers need to be concerned both with the protection of media assets as well as the game itself. Art, music, and other third-party copyrighted assets may be used under license in a game. This discussion covers both general DRM and addresses issues specific to games.
The Digital Media Life-Cycle
To understand the role of digital security, one must begin with the lifecycle of digital media from creator to consumer. The process described below highlights the major stages of this lifecycle and they vary from music to video to films to games, but the essential steps are the same:
- Creation - the creation of the media in its original format. Content may come from other sources. There is no real means today to provide or mandate appropriate copyright citations or pay royalties.
- Mastering - the conversion of the original work into a format suitable for distribution.
- Production - the printing, stamping, and reproduction of master onto physical media.
- Vendor Distribution - the distribution of media to retailers or end users.
- End-User Distribution - this stage moves copies of the media to the end consumer or audience members.
- Conversion to User Acceptable Format - the delivered media is read by a device or application and converted into a format that the user may see, hear or otherwise comprehend.
- User Experience - the user is able to experience a replica of the original material.
The critical challenge that security systems for digital media face is that an adversary attempting to circumvent the security system must deliver a comparable or identical User Experience. Thus, security measures must only be separated from a "User Acceptable Format" (UAF) as opposed to actually being defeated (Why break down a locked door when there is an open window nearby?). The existence of common, non-proprietary or non-royalty bearing encoding systems such as MP3, JPEG, etc. gives an adversary a means of distributing media in a (UAF) at low or non-existent cost. The adversary's objective, therefore, is reduced to migrating from a secured format to a UAF.
This is not true for many games where the game engine itself prevents creation of a UAF version of the game itself, but not art, sound, or other assets.
Current Security Solutions
The current solutions for securing digital media can be divided into the following general categories. Some systems combine elements of several of these categories (i.e., combining a digital signature with a fingerprint and proprietary encoding):
Proprietary Encoding
Proprietary Encoding is the use of distributor-controlled medium for the distribution and reading of digital media. This solution has been used most widely for DVDs. Proprietary encoding enables post processing and a multitude of other security controls to be implemented - whatever the developer of the proprietary encoding system wishes (as also noted with DVDs that include regional controls over and above traditional copyright protections that limit the use of DVDs to certain geographic regions based on configurations of DVD players).
The practical problems associated with proprietary encoding include their limitations on artists and distributors for the production and control of media as well as issues of royalties to the owners of the encoding technology (as witnessed by the recent and ongoing battles over DVD RAM and previously with VHS and Betamax).
The security problem with proprietary encoding schemes is that they are subject to reverse engineering (DeCSS for DVD that allows DVDs to be read and processed in software by PCs with open source tools) and, in the hands of pirates, to the regeneration of media into any form and format desired. DeCSS showed that the reverse engineering of the DVD proprietary encoding system was not difficult, so a pirate would be able to gain access to the program or do the reverse engineering herself and still can. There is a general security principle that must be recognized: any security system that is mass-produced by the millions can and will be broken by the few for the benefit of many. Economics and engineering all favor the adversary. Cable scramblers, DVD encoding, and file protection schemes for games have all shown that virtually any security system can be broken.
The approach of most DRM and other security solutions today is to "buy time". Games and most other media have a very short "shelf-life". By protecting a game or other media against piracy for days to weeks to even a month, many sales can be protected
Post-Processing
Post-Processing is the alteration, encoding, or other modification of digital media during the act of copying, playing, or distribution. DVD is again an example of this type of system where DVD players output a signal that cannot be easily transferred to videotape. This can be used in conjunction with counters and other means to track the number of times that a piece of digital media has been copied and so trigger limits on copies and redistribution (either stopping the redistribution or degrading the copy through subsequent generations).
The security problems with post processing are identical to those with proprietary encoding and fingerprint systems. If the post-processing system can be reverse engineered or bypassed, then a product can be produced to "reset" the media to a pristine state. Or, if the post-processing uses some fingerprinting approach, a "BEFORE" copy can be compared with an "AFTER" copy to identify and remove the security fingerprints. Finally, it is quite possible for an audience member to be able and willing to accept imperfection - the adversary objective is user acceptance, not perfection. It is notable that these security mechanisms are most effective against individual audience members, not large-scale pirates.
Physics & Engineering
Certain anti-copying technologies rely on the low-level physical characteristics of physical media and the engineering design of digital media readers. These techniques are subject to the wide range of design and specification of consumer electronics (either causing the security technology to fail or resulting in the media being unreadable by legitimate customers). These solutions do not work at all for downloaded electronic media since there is no standard physical media or writing process. They can be circumvented by using low-level copying or production tools to preserve or bypass these technologies.
Watermarking
A "watermark" is information that is embedded in all copies of a piece of digital media. The information is either identical for all copies or divided into large categories. (The most familiar "watermarking" system is the regional encoding used for DVDs.) Watermarks can more easily be engineered to reduce the amount that they degrade a digital media source and are also much easier to produce than fingerprinted systems. (See production challenges under "Fingerprinting".) Watermarks are typically used with proprietary encoding or post-processing systems to limit copying or other use of digital media. Watermarking is much more a forensic than a digital rights security tool - only special devices can read out the watermark. In this scenario, the source of large-scale pirated copies can be identified by determining the "batch" and source of the security leak. Theoretically, watermarks can be used for digital rights protection. However, the fact that the watermark is common across all copies and that all audience media players will have a copy of the "watermark checker" invites circumvention.
Watermarks can be removed or altered if copies are available with different watermarks. They can also be removed (or inserted, if necessary) if the watermarking scheme is reverse engineered.
Fingerprinting
These are copy unique identifiers embedded in a piece of digital media. Fingerprints are actually placed inside of the media file - modifying it in small, undetectable ways that ensure that the fingerprint is present without distorting the base media. The digital fingerprint must match the identifier of the media player in order to be used as a digital rights tool. This technology has been proposed in order to track user authentication and limit copying. There are several fundamental challenges to the use of fingerprint systems: production of unique media for every user, ensuring that the "unique ID" of the player cannot be duplicated, and ensuring that the fingerprint cannot be removed.
Covert Fingerprinting
Like Fingerprinting, Covert Fingerprinting embeds unique identifiers into each individual a piece of digital media. With this technology, customer media readers do not process or identify fingerprints. Rather, media distributors or their agents will scan widely distributed copies and use the covert fingerprints to determine the source of unauthorized copies. Three challenges exist in the implementation of digital fingerprinting systems. The primary obstacle in the deployment of digital fingerprint systems is the registration of authorized consumers. While authorization can be integrated into an on-line sales process, this system does not mesh well with current traditional sales approaches (such as CDs or DVDs). The other practical problem is the creation of unique fingerprints for each copy of a base product (also technically difficult for traditional distribution). Finally, the main security challenge for digital fingerprint schemes is that fingerprints are easy to detect and alter, especially for large-scale pirates. The following process provides an example of how a pirate may work around digital fingerprinting.
- A pirate can buy two legitimate copies of the media (COPY1 and COPY2).
- She can then "add" the two copies together:
- (COPY1 + COPY2)
- Since each has the same base media that has incorporated the fingerprint, she can identify the fingerprint:
- COPY1 + COPY2 = MEDIA + FINGERPRINT1 + MEDIA + FINGERPRINT2 = FINGERPRINT1 + FINGERPRINT2
- Thus, separating the media from the fingerprint
- The media components cancel out and the fingerprint can be identified and either 1, garbled so it is ignored or 2, removed entirely. Thus fingerprinting becomes much better at protecting against casual "fair use" than against large-scale piracy. This approach will work with as few as 2 real copies, so even small-scale piracy is not too difficult.
Because many games support Web play, registration and download systems can incorporate watermarking and fingerprinting into the distribution process with much less effort than for physical media. Web game services themselves are a powerful DRM tool.
Security Labels or Tags
Security Labels (or "Tags") are supplementary tags that are appended to a piece of digital media and may also be bound to it by a digital signature (see "Signatures" below). Tags are typically used with proprietary encoding and post-processing systems to limit copying or other use of digital media. They can include simple copy counters, serial numbers, or other identification and use control information.
Tags are easily removed or altered, as they are a distinct portion of a digital media file or stream.
Signatures
Signatures wrap a piece of media with a tag that includes additional information but is also derived from the media itself. Signatures are used in combination with one of the other means of protection. The important attribute of signatures is that a signature verifier cannot also create a valid signature.
Signatures are most useful as part of an individual identification scheme and thus have the same problems with registration noted for fingerprints. Also, the signature is additional data that can be removed either directly or via the same type of scheme as described above for removing embedded fingerprints. If a signature is required by the media player (or game engine), then the discussion of attacks on proprietary encoding applies. Once the signature has been stripped, the data can be translated into an alternate format that is freely readable and does not require a digital signature for use. Thus, the attack circumvents the signature and does not defeat it.
As noted previously, because of the complexity of game engines, a signature-based solution, if properly designed, can be effective.
DRM and Anti-Piracy Solutions
There are a number of standard commercial anti-piracy solutions. Macrovision and Aladdin Data Systems have targeted the games industry and provide physical media security, software security, and token-based security systems. There are also shareware distributors like eSellerate that include DRM and anti-piracy as well as e-commerce features. There are a growing number of DRM companies that are focusing on the games industry. Most of these companies deliver an integrated distribution, DRM, and e-commerce solution (with try-before-you-buy, limited use, expiration, and other features). Exent, Real Arcade and Trymedia are in this category. Some game companies, such as Valve, with its Steam service, and Blizzard's Battle.net, have created their own solutions. IT GlobalSecure has linked Web game play to anti-piracy and DRM with its SecurePlay Keeper product.
