Pages

Monday, June 9, 2008

Game Development Tool

Game Development Tool

A game development tool is a specialized software application that assists or facilitates the making of a computer or video game. Some tasks handled by tools include the conversion of assets (such as 3D models, textures, etc.) into formats required by the game, level editing and script compilation.
Almost all game development tools are developed by the developer custom for one game. Though tools may be re-used for later games, they almost always start out as a resource for a single game. While many COTS packages are used in the production of games—such as 3D packages like Maya and 3D Studio Max, graphic editors like Photoshop and IDEs like Microsoft Visual Studio—they are not considered solely game development tools since they have uses beyond game development.
The game tools may or may not be released along with the final game, depending on what the tool is used for. For contemporary games, it is common to include at least level editors with games that require them.

History
Early in the history of the video game industry, game programming tools were non-existent. This wasn't a hindrance for the types of games that could be created at the time, however. While today a game like Pac-Man would most likely have levels generated with a level editor, in the industry's infancy, such levels were hard coded into the game's source code.
Images of the player's character were also hard-coded, being drawn, frame by frame, by source code commands. As soon as the more technologically advanced use of sprites became common, game development tools began to emerge, custom programmed by the programmer. Today, game development tools are still often programmed by members of the game development team by programmers, often whose sole job is to develop and maintain tools.

Use
Numerous tools can be used to assist in game development. Often developers use tools to convert 3D model formats and graphic image formats into custom formats (though, increasingly, importers and exporters handle these tasks). Level editors are used to create environments and other tools may be used to view assets before they are incorporated in the game. For a contemporary commercial game, a half dozen tools or more may be used to assist in the game creation process.
Game tools change very often during the development process. The look and facility of a tool from the beginning of a project to the end may change dramatically. Often features are added with very little testing to assist other developers as fast as possible. The use of a tool also changes so much that users may have difficulty operating it from one day to the next as late-added features change how it is to be used. Since facility is often the primary goal for tools, they may be very user-unfriendly, with little or no built-in help. For tools that are to be shipped with the game, often debugging and user-friendly features are done near the end of the development process.
Outside of the game development team during the game's creation, many tools would have little facility. Level editors, however, once entirely proprietary, have increasingly been included with the shipping game to allow users to create their own game scenarios. Some games, such as Firaxis' Civilization IV, are built with user modification in mind and include numerous tools for game customizing.

Implementation
Traditionally, game tools were developed in the language that the game itself was developed in. This makes sense since, early on, at least one programmer on the game was also developing the tools. Also, the tools could easily access and use libraries that the game used.
Increasingly, though certainly not universally, games that are implemented in C++ use tools developed in C#. This is because C# is an extremely RAD language and tools, which are often needed posthaste, can be developed extremely quickly. The use of C# is most popular with games developed for Microsoft Windows and the Xbox.

Friday, June 6, 2008

Chris Crawford (Figure)

Chris Crawford

Chris Crawford is a noted computer game designer and writer. He created a number of important games in the 1980s, founded The Journal of Computer Game Design, and organized the Computer Game Developers' Conference.

Biography
After receiving a B.S. in physics from UC Davis in 1972 and an M.S. in physics from University of Missouri in 1975, Crawford taught at a community college and the University of California, then turned his game design hobby into a profession at Atari in 1979, eventually heading the Games Research Group.

1980s
At Atari he started game work with Wizard for the VCS, but this work was abandoned and would not appear until some time later. He then turned his attention to the new "Home Computer System", now referred to as the Atari 8-bit family. His first releases on this platform were Energy Czar and Scram, games written in Atari BASIC.
Finding development on the systems difficult due to a lack of clear information, he started experimenting with the system's hardware assisted smooth scrolling and used it to produce a scrolling map display. This work was used to create Eastern Front (1941), which is widely considered one of the first wargames on a microcomputer to compete with traditional paper-n-pencil games in terms of depth. He followed this with Legionnaire, based on the same display engine but adding real-time instead of turn-based game play. Using the knowledge gathered while writing these games, he helped write De Re Atari, a lengthy book covering most of the advanced features of the system, from the hardware assisted smooth scrolling to digitized sounds. Another book followed, The Art of Computer Game Design.
Laid off in the Atari collapse during the video game crash of 1983-1984, he went freelance and produced Balance of Power in 1985, which was a best-seller, reaching 250,000 units sold. Additional creative strategy games followed, often taking commercial risks in order to explore new creative ideas (such as fog of war in Patton Versus Rommel).
The Game Developers Conference, which now draws over 10,000 attendees each year, began in 1987 as a salon held in Crawford's living room with his game design friends and associates. While the GDC has become a prominent event in the gaming industry, Crawford was eventually ousted from the GDC board.

The Dragon Speech
At the 1992 CGDC, Chris Crawford gave "The Dragon Speech", which he considers "the finest speech of [his] life". Throughout the speech, he used a dragon as a metaphor for video games as a medium of artistic expression. He declared that he and the video game industry were working "at cross purposes", with the industry focusing heavily on "depth", when Crawford wanted more "breadth": to explore new horizons rather than merely furthering what has already been explored. He arrived at the conclusion that he must leave the gaming industry in order to pursue this dream. He declared that he knew that this idea was insane, but he compared this "insanity" to that of Don Quixote:
Insanity is an inability to come to terms with reality. Don Quixote was definitely insane, because he couldn't come to terms. But there was a reason: the reality in which Don Quixote lived was a sordid and ugly reality … Don Quixote didn't want that. He wanted to live in a world where there was truth, and human dignity, and, yes, love.… Instead of giving up on it, he imposed his reality onto the real world. Where other people saw a filthy country hostel, he saw a castle! Where other people saw a flock of sheep, he saw a mighty army! Where other people saw a windmill, he saw a dragon. Yes, Don Quixote was a crazy old fool. But, you know, he was more honest about his dream than most people, and for that, I honor him.
The speech is known[citation needed] for its dramatic ending in which Crawford confronts the dragon:
I have committed myself, I have dedicated myself, to the pursuit of the dragon. And having made that commitment … all of a sudden, I can see him! There he is, right in front of me, clear as day.… You're so much bigger than I ever imagined, and I'm, I'm not so sure I like this. I mean, yes, you're glorious and beautiful, but you're ugly, too. Your breath reeks of death!… Am I so pitiful that you can sneer in my face like that? Yes, yes, you frighten me! You hurt me! I've felt your claws ripping through my soul! But I'm going to die someday, and before I can do that, I've got to face you, eyeball to eyeball. I've got to look you right in the eye, and see what's inside, but I'm not good enough to do that yet. I'm not experienced enough, so I'm going to have to start learning. Today. Here. Now. Come, dragon, I will fight you. Sancho Panza, my sword! (He picks up a sword from the desk behind him, which he unsheaths from its scabbard.) For truth! For beauty! For art! Charge!
With these words, he charged down the lecture hall and out the door, symbolizing his exit from the gaming industry. Although he returned to the next year's CGDC, he has not made a conventional computer game since (although he has designed and published Balance of Power 2K online, he considers it a "storyworld" rather than a "computer game").

People games
Since that time, Crawford has been working on Storytron (originally known as Erasmatron), an engine for running interactive electronic storyworlds (see interactive storytelling). As of December 2008, a beta version of the Storytronics authoring tool, Swat, has been released. The system was officially launched March 23, 2009, with Crawford's storyworld sequel to Balance of Power.
People games, as termed by Crawford, are games where the goals are of a social nature and focus on interactions with well-defined characters. They are described in Chris Crawford on Game Design as follows:
“ I dreamed of the day when computer games would be a viable medium of artistic expression — an art form. I dreamed of computer games expressing the full breadth of human experience and emotion. I dreamed of computer games that were tragedies, games about duty and honor, self-sacrifice and patriotism. I dreamed of satirical games and political games; games about the passionate love between a boy and girl, and the serene and mature love of a husband and wife of decades; games about a boy becoming a man, and a man realizing that he is no longer young. I dreamed of games about a man facing truth on a dusty main street at high noon, and a boy and his dog, and a prostitute with a heart of gold.

Bibliography
De Re Atari (contributor) (1982)
The Art of Computer Game Design (1982)
Balance of Power (Microsoft Press, 1986) - a book about the making of the game
The Art of Interactive Design (No Starch Press, 2002) ISBN 1-886411-84-0
Chris Crawford on Game Design (New Riders Press, 2003) ISBN 0-13-146099-4
Chris Crawford on Interactive Storytelling (New Riders Press, 2004) ISBN 0-321-27890-9

Tuesday, June 3, 2008

Pac-Man (Game)

Pac-Man (Japanese: パックマン Pakkuman) is an arcade game developed by Namco and licensed for distribution in the United States by Midway, first released in Japan on May 22, 1980. Immensely popular from its original release to the present day, Pac-Man is considered one of the classics of the medium, virtually synonymous with video games, and an icon of 1980s popular culture. Upon its release, the game—and, subsequently, Pac-Man derivatives—became a social phenomenon that sold a bevy of merchandise and also inspired, among other things, an animated television series and a top-ten hit single.
When Pac-Man was released, the most popular arcade video games were space shooters, in particular Space Invaders and Asteroids. The most visible minority were sports games that were mostly derivative of Pong. Pac-Man succeeded by creating a new genre and appealing to both genders. Pac-Man is often credited with being a landmark in video game history, and is among the most famous arcade games of all time. The character also appears in more than 30 officially licensed game spin-offs, as well as in numerous unauthorized clones and bootlegs. According to the Davie-Brown Index, Pac-Man has the highest brand awareness of any video game character among American consumers, recognized by 94 percent of them. Pac-Man is one of the longest running video game franchises from the golden age of video arcade games, and one of only three video games that are on display at the Smithsonian in Washington D.C., (along with Pong and Dragon's Lair).

Gameplay
The player controls Pac-Man through a maze, eating pac-dots. When all dots are eaten, Pac-Man is taken to the next stage, between some stages one of three intermission animations plays. Four enemies (Blinky, Pinky, Inky and Clyde) roam the maze, trying to catch Pac-Man. If an enemy touches Pac-Man, a life is lost. When all lives have been lost, the game ends. Pac-Man is awarded a single bonus life at 10,000 points by default—DIP switches inside the machine can change the required points or disable the bonus life altogether. Near the corners of the maze are four larger, flashing dots known as power pellets that provide Pac-Man with the temporary ability to eat the enemies. The enemies turn deep blue, reverse direction and usually move more slowly. When an enemy is eaten, its eyes remain and return to the center box where it is regenerated in its normal color. Blue enemies flash white before they become dangerous again and the amount of time the enemies remain vulnerable varies from one stage to the next, but the time period generally becomes shorter as the game progresses. In later stages, the enemies do not change colors at all, but still reverse direction when a power pellet is eaten.
In addition to dots and power pellets, bonus items, usually in the form of fruit appear near the center of the maze. These items score extra bonus points when eaten. The items change and bonus values increase throughout the game.

Enemies
North American Pac-Man title screen, showing the official enemy names.
The enemies in Pac-Man are known variously as "ghosts" and "monsters". Despite the seemingly random nature of the enemies, their movements are strictly deterministic, which players have used to their advantage. In an interview, creator Toru Iwatani stated that he had designed each enemy with its own distinct personality in order to keep the game from becoming impossibly difficult or boring to play. The behaviors of each enemy have been exactly determined by reverse-engineering the game.

Development
The North American Pac-Man cabinet design differs significantly from the Japanese Puck Man design.
The game was developed primarily by a young Namco employee named Tōru Iwatani over the course of a year, beginning in April 1979, employing a nine-man team. It was based on the concept of eating, and the original Japanese title was Pakkuman (パックマン?), inspired by the Japanese folk hero "Paku" who was known for his appetite[disputed – discuss] as well as by the Japanese onomatopoeic slang phrase paku-paku taberu (パクパク食べる?), where paku-paku describes (the sound of) the mouth movement when widely opened and then closed in succession.
Although Iwatani has repeatedly stated that the character's shape was inspired by a pizza missing a slice, he admitted in a 1986 interview that this was a half-truth and the character design also came from simplifying and rounding out the Japanese character for mouth, kuchi (口). Iwatani attempted to appeal to a wider audience—beyond the typical demographics of young boys and teenagers. This led him to add elements of a maze, as well as cute ghost enemy characters. The result was a game he named Puck Man.
Later that year, the game was picked up for manufacture in the United States by Bally division Midway. For the North American market, the name was changed from Puck Man to Pac-Man, as it was thought that vandals would be likely to change the P in "puck" to an F, forming a common expletive. The cabinet artwork was also changed.

Sunday, June 1, 2008

SQL injection

SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another. SQL injection attacks are also known as SQL insertion attacks.

Overview
A SQL injection attack consists of insertion or "injection" of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data (Insert/Update/Delete), execute administration operations on the database (such as shutdown the DBMS), recover the content of a given file present on the DBMS file system and in some cases issue commands to the operating system. SQL injection attacks are a type of injection attack, in which SQL commands are injected into data-plane input in order to effect the execution of predefined SQL commands.

Threat Modeling
SQL injection attacks allow attackers to spoof identity, tamper with existing data, cause repudiation issues such as voiding transactions or changing balances, allow the complete disclosure of all data on the system, destroy the data or make it otherwise unavailable, and become administrators of the database server.
SQL Injection is very common with PHP and ASP applications due to the prevalence of older functional interfaces. Due to the nature of programmatic interfaces available, J2EE and ASP.NET applications are less likely to have easily exploited SQL injections.
The severity of SQL Injection attacks is limited by the attacker’s skill and imagination, and to a lesser extent, defense in depth countermeasures, such as low privilege connections to the database server and so on. In general, consider SQL Injection a high impact severity.

Description
SQL injection errors occur when:
Data enters a program from an untrusted source.
The data used to dynamically construct a SQL query
The main consequences are:
Confidentiality: Since SQL databases generally hold sensitive data, loss of confidentiality is a frequent problem with SQL Injection vulnerabilities.
Authentication: If poor SQL commands are used to check user names and passwords, it may be possible to connect to a system as another user with no previous knowledge of the password.
Authorization: If authorization information is held in a SQL database, it may be possible to change this information through the successful exploitation of a SQL Injection vulnerability.
Integrity: Just as it may be possible to read sensitive information, it is also possible to make changes or even delete this information with a SQL Injection attack.
For a short video clip describing the vulnerability, click here (Courtesy of Checkmarx)

Risk Factors
The platform affected can be:
Language: SQL
Platform: Any (requires interaction with a SQL database)
SQL Injection has become a common issue with database-driven web sites. The flaw is easily detected, and easily exploited, and as such, any site or software package with even a minimal user base is likely to be subject to an attempted attack of this kind.
Essentially, the attack is accomplished by placing a meta character into data input to then place SQL commands in the control plane, which did not exist there before. This flaw depends on the fact that SQL makes no real distinction between the control and data planes.