Pages

Monday, June 30, 2008

Introduction to XML

XML was designed to transport and store data.
HTML was designed to display data.

What You Should Already Know
Before you continue you should have a basic understanding of the following:
HTML and JavaScript

What is XML?
XML stands for EXtensible Markup Language
XML is a markup language much like HTML
XML was designed to carry data, not to display data
XML tags are not predefined. You must define your own tags
XML is designed to be self-descriptive
XML is a W3C Recommendation

The Difference Between XML and HTML
XML is not a replacement for HTML.
XML and HTML were designed with different goals:
XML was designed to transport and store data, with focus on what data is
HTML was designed to display data, with focus on how data looks
HTML is about displaying information, while XML is about carrying information.

XML Does Not DO Anything
Maybe it is a little hard to understand, but XML does not DO anything. XML was created to structure, store, and transport information.

The note above is quite self descriptive. It has sender and receiver information, it also has a heading and a message body.
But still, this XML document does not DO anything. It is just information wrapped in tags. Someone must write a piece of software to send, receive or display it.

With XML You Invent Your Own Tags
The tags in the example above (like and ) are not defined in any XML standard. These tags are "invented" by the author of the XML document.
That is because the XML language has no predefined tags.
The tags used in HTML are predefined. HTML documents can only use tags defined in the HTML standard (like

,

, etc.).
XML allows the author to define his/her own tags and his/her own document structure.

XML is Not a Replacement for HTML
XML is a complement to HTML.
It is important to understand that XML is not a replacement for HTML. In most web applications, XML is used to transport data, while HTML is used to format and display the data.

My best description of XML is this:
XML is a software- and hardware-independent tool for carrying information.
XML is a W3C Recommendation
XML became a W3C Recommendation 10. February 1998.

XML is Everywhere
XML is now as important for the Web as HTML was to the foundation of the Web.
XML is the most common tool for data transmissions between all sorts of applications.

Saturday, June 21, 2008

Cross-site Scripting (XSS)

Overview
Cross-Site Scripting attacks are a type of injection problem, in which malicious scripts are injected into the otherwise benign and trusted web sites. Cross-site scripting (XSS) attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end user. Flaws that allow these attacks to succeed are quite widespread and occur anywhere a web application uses input from a user in the output it generates without validating or encoding it.
An attacker can use XSS to send a malicious script to an unsuspecting user. The end user’s browser has no way to know that the script should not be trusted, and will execute the script. Because it thinks the script came from a trusted source, the malicious script can access any cookies, session tokens, or other sensitive information retained by your browser and used with that site. These scripts can even rewrite the content of the HTML page.

Description
Cross-Site Scripting (XSS) attacks occur when:
Data enters a Web application through an untrusted source, most frequently a web request.
The data is included in dynamic content that is sent to a web user without being validated for malicious code.
The malicious content sent to the web browser often takes the form of a segment of JavaScript, but may also include HTML, Flash or any other type of code that the browser may execute. The variety of attacks based on XSS is almost limitless, but they commonly include transmitting private data like cookies or other session information to the attacker, redirecting the victim to web content controlled by the attacker, or performing other malicious operations on the user's machine under the guise of the vulnerable site.

Stored and Reflected XSS Attacks
XSS attacks can generally be categorized into two categories: stored and reflected. There is a third, much less well known type of XSS attack called DOM Based XSS that is discussed seperately here.

Stored XSS Attacks
Stored attacks are those where the injected code is permanently stored on the target servers, such as in a database, in a message forum, visitor log, comment field, etc. The victim then retrieves the malicious script from the server when it requests the stored information.

Reflected XSS Attacks
Reflected attacks are those where the injected code is reflected off the web server, such as in an error message, search result, or any other response that includes some or all of the input sent to the server as part of the request. Reflected attacks are delivered to victims via another route, such as in an e-mail message, or on some other web server. When a user is tricked into clicking on a malicious link or submitting a specially crafted form, the injected code travels to the vulnerable web server, which reflects the attack back to the user’s browser. The browser then executes the code because it came from a "trusted" server.

XSS Attack Consequences
The consequence of an XSS attack is the same regardless of whether it is stored or reflected (or DOM Based). The difference is in how the payload arrives at the server. Do not be fooled into thinking that a “read only” or “brochureware” site is not vulnerable to serious reflected XSS attacks. XSS can cause a variety of problems for the end user that range in severity from an annoyance to complete account compromise. The most severe XSS attacks involve disclosure of the user’s session cookie, allowing an attacker to hijack the user’s session and take over the account. Other damaging attacks include the disclosure of end user files, installation of Trojan horse programs, redirect the user to some other page or site, or modify presentation of content. An XSS vulnerability allowing an attacker to modify a press release or news item could affect a company’s stock price or lessen consumer confidence. An XSS vulnerability on a pharmaceutical site could allow an attacker to modify dosage information resulting in an overdose.

How to Determine If You Are Vulnerable
XSS flaws can be difficult to identify and remove from a web application. The best way to find flaws is to perform a security review of the code and search for all places where input from an HTTP request could possibly make its way into the HTML output. Note that a variety of different HTML tags can be used to transmit a malicious JavaScript. Nessus, Nikto, and some other available tools can help scan a website for these flaws, but can only scratch the surface. If one part of a website is vulnerable, there is a high likelihood that there are other problems as well.

Thursday, June 19, 2008

Cryptography

Cryptography (or cryptology; "hidden, secret"; and graph, "writing", respectively) is the practice and study of hiding information. Modern cryptography intersects the disciplines of mathematics, computer science, and engineering. Applications of cryptography include ATM cards, computer passwords, and electronic commerce.
Cryptology prior to the modern age was almost synonymous with encryption, the conversion of information from a readable state to nonsense. The sender retained the ability to decrypt the information and therefore avoid unwanted persons being able to read it. Since WWI and the advent of the computer, the methods used to carry out cryptology have become increasingly complex and its application more widespread.
Alongside the advancement in cryptology-related technology, the practice has raised a number of legal issues, some of which remain unresolved.



Terminology

Until modern times cryptography referred almost exclusively to encryption, which is the process of converting ordinary information (plaintext) into unintelligible gibberish (i.e., ciphertext). Decryption is the reverse, in other words, moving from the unintelligible ciphertext back to plaintext. A cipher (or cypher) is a pair of algorithms that create the encryption and the reversing decryption. The detailed operation of a cipher is controlled both by the algorithm and in each instance by a key. This is a secret parameter (ideally known only to the communicants) for a specific message exchange context. Keys are important, as ciphers without variable keys can be trivially broken with only the knowledge of the cipher used and are therefore useless (or even counter-productive) for most purposes. Historically, ciphers were often used directly for encryption or decryption without additional procedures such as authentication or integrity checks.
In colloquial use, the term "code" is often used to mean any method of encryption or concealment of meaning. However, in cryptography, code has a more specific meaning. It means the replacement of a unit of plaintext (i.e., a meaningful word or phrase) with a code word (for example, wallaby replaces attack at dawn). Codes are no longer used in serious cryptography—except incidentally for such things as unit designations (e.g., Bronco Flight or Operation Overlord)—since properly chosen ciphers are both more practical and more secure than even the best codes and also are better adapted to computers.
Cryptanalysis is the term used for the study of methods for obtaining the meaning of encrypted information without access to the key normally required to do so; i.e., it is the study of how to crack encryption algorithms or their implementations.
Some use the terms cryptography and cryptology interchangeably in English, while others (including US military practice generally) use cryptography to refer specifically to the use and practice of cryptographic techniques and cryptology to refer to the combined study of cryptography and cryptanalysis. English is more flexible than several other languages in which cryptology (done by cryptologists) is always used in the second sense above. In the English Wikipedia the general term used for the entire field is cryptography (done by cryptographers).
The study of characteristics of languages which have some application in cryptography (or cryptology), i.e. frequency data, letter combinations, universal patterns, etc., is called cryptolinguistics.

Wednesday, June 18, 2008

Toad (Mario)

Toad – known in Japan as Kinopio (キノピオ?) – is a fictional, anthropomorphic mushroom in the Mario series, created by Shigeru Miyamoto. A citizen of the Mushroom Kingdom, Toad is one of Princess Peach's most loyal servants and is constantly working on her behalf. He is usually seen as a non-player character (NPC) who provides assistance to Mario and his friends in most games, but there are times when Toad takes center stage and appears as a protagonist, as seen in Super Mario Bros. 2 and Wario's Woods.
Toad's original role as a helper has been increasingly taken over by Toadsworth, causing Toad to appear less frequently than he once had in the main series; however, recently in New Super Mario Bros. Wii, two Toads (Yellow and Blue) appear as playable characters along with Mario and Luigi.

Concept and creation
Toad and the Toad species were first seen in the game Super Mario Bros. where the species was revealed to comprise the majority of the population of the Mushroom Kingdom. Toad's design was made directly from the power up, the Super Mushroom as well as the game's general association with mushrooms. In the game, the peaceful Toads of the Mushroom Kingdom had been turned into various objects such as bricks and pipes by the evil King Bowser; however, some of Princess Toadstool's loyal servants, known as the "Mushroom Retainers" were simply kidnapped.
During the development of New Super Mario Bros. Wii, the developers at Nintendo decided between four characters to be playable in the game: Princess Peach, Toad, Wario and Waluigi (all suggestions made by fans). Two Toads (Yellow and Blue) were eventually included as playable characters in New Super Mario Bros. Wii due to their physical similarity to Mario and Luigi.

Characteristics
Toad bears a similar appearance to the rest of his species with his large mushroom cap and clothes. He is extremely small in size, and has no legs visible, with just his shoes showing. Unlike other Toads, he features red polka dots on his mushroom head and wears a blue waistcoat; however, his coloration will change if he gets a fire flower, as his cap's colors will be reversed while his clothes turn red. A yellow outline was added to his blue vest in the recent Mario games starting from Mario Kart Double Dash. Sometimes, Toad appears with a red vest, though he is most often seen with his blue vest.
In the Mario cartoons, Toad has on occasion removed his mushroom cap, revealing three strands of hair; however, the games have never confirmed or refuted this. Toad appears as a mix between a mushroom and a rather small human. However, Toad can grow to about a normal human's height if he consumes a Super Mushroom, as seen in Super Mario Bros. 2 and New Super Mario Bros. Wii.
At most times, Toad is portrayed as a rather cowardly character, but the fact that he actually knows about his cowardice makes him one of the more innocent and humbler characters in the series. Despite his fears, Toad is usually one of the few people that tries his best to support Mario when he is on his adventures, from providing items to actually going along with the hero on his quest. Despite the fact that Toad is usually seen as a cheerful character, he can get extremely distressed when a major event occurs, such as the kidnapping of the Princess.

Abilities
Through the various games that Toad is playable in, he has been shown with different unique abilities that differ from the other characters in the series. In Super Mario Bros. 2, he has a combination of being the strongest and fastest character in the game with 5 out of 5 stars each. However, he has horrible jumping ability (rated at 2 out of 5 stars). In Wario's Woods, Toad has the unique ability to run up walls and give strong kicks as well. Toad is once again given superhuman strength in the game, as he was able to lift and throw enemies around; however, these abilities have not been seen since this game. In New Super Mario Bros. Wii, Toad shares many of the moves and abilities that Mario and Luigi are able to use such as the ground pound and wall jumping. He has access to Mario's Power ups, but unlike the other games Toad has starred in, this game gives him all round stats (such as average jumps instead of weak ones) similar to the Mario Bros. His signature ability to pick up, carry and throw large items (such as barrels) and other characters via his superhuman strength also returns in the game.
In the Super Smash Bros. series, Toad is shown to emit spores like real mushrooms whenever he is attacked as shown when Peach uses her standard special move. However, this has never been actually seen in the main Mario series games.

Tuesday, June 17, 2008

Princess Peach (Mario)

Princess Peach Toadstool (ピーチ姫 Pīchi-hime?) is a character in Nintendo's Mario series of video games. She is the Princess of the fictitious Mushroom Kingdom, and plays the damsel in distress role within the adventure series. In 2007, Princess Peach landed on Forbes magazine's Wealthiest Fictional People list, with a fortune upwards of $1 billion. She is ranked tenth in Electronic Gaming Monthly's list of the top ten video game politicians.

Concept and Creation
Princess Peach's initial appearance was drawn by Shigeru Miyamoto. Miyamoto later asked Yōichi Kotabe to redraw Peach with his instructions. He had asked Kotabe to draw her eyes to be "a little cat-like" and that she should look "stubborn, but cute". With Kotabe's influence, Princess Peach changed considerably.

Design
Princess Peach has long and layered yellow-blonde hair, sky blue eyes, a tall height, a slender but curvy figure, and a rosy complexion. Peach's makeup is black mascara, pink lipstick, and pink nail polish. She wears a pink gown with a dark pink ruffled collar,and a dark pink hem, short puffed sleeves, and dark pink panniers. Her accessories are red high heels, white opera gloves, a sapphire pendant, sapphire earrings, and a gold crown with sapphires and rubies.

Name
In Japan, the Princess's name has always been Peach (ピーチ姫 Pīchi Hime?, Princess Peach). She was originally known as Princess Toadstool in the United States and other Western countries. The English translation of Yoshi's Safari (1993) marked the first usage of the name "Peach" outside of Japan; however, the name did not catch on at that time, as the game itself was not very popular.[citation needed] In Super Mario RPG: Legend of the Seven Stars, she went back to being called Princess Toadstool (the character Belome says that she "tastes peachy" when eating and cloning her in battle, referring to the original name.) It was not until the release of Super Mario 64 in 1996 that the name Peach became widely known outside Japan.

Personality
Peach's personality is generally kind natured and well mannered. In most games she is portrayed as selfless and generous. Typically, she does not show an aggressive nature even when she is fighting (this is done by quick slaps, elegant high kicks thrusts in the air, and other gracious fighting techniques (as seen in the Super Smash Bros series)) or confronting her enemies. This, however, varies slightly from game to game. One of Peach's most common traits during her playable appearances is her ability to temporarily float in the air with her large skirt, and later on, with her umbrella. This was first featured during Peach's first playable appearance in Super Mario Bros. 2. She was one of the more popular character choices in this game since her ability made navigating across platforms easier (though her own jumping was rather short). This ability has also appeared in Super Paper Mario and her playable appearances in the Super Smash Bros. series. However, in Super Princess Peach, she shows wild mood swings from Joy, Sadness, Happiness, and Anger each of which give her a special ability. These changes in emotion are most likely attributed to the "strange powers" of Vibe Island mentioned in the game's booklet.

Relationships with other characters
Mario is shown to be Peach's close companion since childhood. Mario saves Peach quite often and she usually will bake him a cake or kiss him upon her rescue. Since Peach's debut appearance, the two have always been shown to be in a romantic relationship. This is confirmed in the official European Mario website, in which Peach is listed as Mario's girlfriend.
In Luigi's Mansion, she sends Toad to help Luigi search for his brother, and in Mario Party 5, Peach and Mario are called "Cutest Couple". They also share chemistry together in Mario Superstar Baseball and Mario Super Sluggers, as they are "buddy players". Mario Power Tennis even goes as far as showing Mario himself telling Peach of his love for her in Peach's victory scene. Peach responded with a smile and blew a kiss. Also, in Mario's victory scene in Mario Power Tennis, Peach gives him a small kiss on his cheek. They both show deep devotion to each other as depicted in many of the games, especially in the Paper Mario series. Mario and Peach are the Secret Staff Ghosts for Rainbow Road in Mario Kart: Double Dash!!. The official guide describe them at this: Aw, isn’t that cute? Mario and Peach are together again, zipping down the Rainbow Road and leaving you coughing up their dust.
In the comic "Warios Weihnachtsmärchen", published in the German Club Nintendo magazine, it is even revealed that they spent their graduation ball in school together, and that Peach decided in favor of Mario and against Wario.
In the first Paper Mario, one of the Toads tells Mario to take Peach on a date to Shooting Star Summit. For the official guide of Yoshi's Island DS, in the description for Baby Mario and Baby Peach: Dynamic Duo, Nintendo mentioned that before the "romantic entanglements" in their adult lives, they teamed up as babies to stop evil. Also the official guide for Mario Party 8 stated that Peach is apple of Mario's eye. Rosalina in Super Mario Galaxy even referred to Peach as Mario's 'Special One'. Also the two are seen holding hands toward the ending. In Mario Kart Wii, while racing with the Wii Wheels Peach and Mario playfully bump each other.
Rosalina- Peach and Rosalina haven't met officially, but in Super Mario Galaxy Rosalina refers peach as Mario's special one. At the end of Super Mario Galaxy 2 when Rosalina reveals herself to Mario and Peach, Peach agrees with Rosalina of how it was their destiny to see each other.

Voices
In her first voiced appearance in the 1986 Japanese anime Super Mario Bros.: Peach-Hime Kyushutsu Dai Sakusen! (Super Mario Bros.: The Great Mission To Rescue Princess Peach) Peach was voiced by Mami Yamase, a pop singer. In the OVA trilogy released in 1989, she was voiced by Miyako Endo. On the cartoon segments on The Super Mario Bros. Super Show!, Peach was usually voiced by Jeannie Elias. In The Adventures of Super Mario Bros. 3 cartoon from DIC Entertainment, Princess Toadstool was voiced by Tracey Moore. In the CD-i game Hotel Mario, Peach was voiced by Jocelyn Benford. In Super Mario 64 and the English version of Mario Kart 64, Peach was voiced by Leslie Swan, a localization manager for Nintendo of America. Swan voiced Peach again for the release of Super Mario 64 DS in 2004 and in Super Paper Mario in 2007 In Mario Party, Mario Party 2 and the Japanese version of Mario Kart 64, Peach was voiced by Asako Kozuki. Starting with Mario Golf on the Nintendo 64, Peach has been voiced by Jen Taylor.
In 2005, Nintendo used a new voice for Princess Peach. Although Super Princess Peach and Mario Hoops 3-on-3 still used Taylor's voice, other games, such as Mario & Luigi: Partners in Time and Super Mario Strikers have a new Peach voice, Nicole Mills. The infant form of Princess Peach that appears in Mario and Luigi: Partners in Time, Yoshi's Island DS, Mario Kart Wii and Mario Super Sluggers, known as Baby Peach, is voiced by Mills, though replaced by Samantha Kelly starting with Mario Kart Wii. However, in Super Paper Mario, Peach is once again voiced by Swan. Peach has been voiced by Samantha Kelly since Mario Strikers Charged. In Mario & Sonic at the Olympic Games, Peach is again voiced by Taylor, although much is from sound clips recycled from previous Mario games. Likewise, if a player selects Peach in Brawl using a Wii Remote or classic controller, Peach's taunt from Melee (then voiced by Taylor) will sound over the Wii Remote's speaker if the volume is on. In the Annoying Orange episode Super Mario she was voiced by Catrefic.

Luigi (Mario)

Luigi (ルイージ Ruīji?) is a fictional character, featured in video games and related media released by Nintendo. Created by prominent game designer Shigeru Miyamoto, Luigi is portrayed as the slightly younger fraternal twin brother of Nintendo's mascot Mario, and appears in many games throughout the Mario series, frequently as a sidekick or deuteragonist to his brother.
Luigi first appeared in the 1983 arcade game Mario Bros. as the character controlled by the second player, and retained this role in Super Mario Bros., Super Mario Bros. 3, Super Mario World, and other titles. The first game where he was available as a primary character was Super Mario Bros. 2. In more recent appearances, Luigi's role became increasingly restricted to spinoffs such as the Mario Party and Mario Kart series, though he has been featured in a starring role on two occasions: first in the 1991 educational game Mario is Missing and later in Luigi's Mansion for the Gamecube in 2001. In both of these games, he is called upon to act as the hero because Mario, the usual hero within the franchise, is in need of rescue.
Originally developed as a palette swap of Mario with a green color scheme instead of red, Luigi has since developed a personality and style of his own. As his role in the Mario series progressed, Luigi evolved into a physically distinct character, taller and slightly thinner than his brother. Although as kindhearted as Mario, Luigi is portrayed as timid and sometimes cowardly, especially in the presence of ghosts or when forced to do tasks that seemingly are impossible for him to accomplish.

Concept and creation
The events leading to Luigi's creation began in 1982, during the development of Donkey Kong, where the Nintendo designer Shigeru Miyamoto had created Mario (then known as "Jumpman") hoping that he would be able to recast the character in a variety of different roles in future games. Miyamoto had been inspired by the game Joust to create a game with a simultaneous two-player mode, which led to his development of the game Mario Bros. in 1983, with Luigi filling the role of Mario's brother as the second playable character. In accordance with Nintendo's marketing policy of naming and promoting individual characters, the new character was given the name Luigi, which was inspired by a pizza parlor near Nintendo of America's headquarters in Redmond, Washington, called "Mario & Luigi's". While Mario was originally portrayed as a carpenter in Donkey Kong, the duo of Mario and Luigi in Mario Bros. were styled as Italian plumbers by Miyamoto, on the suggestion of a colleague. Software constraints of the time - similar to those that gave Mario his distinctive look in Donkey Kong - meant Luigi's first appearance was restricted to a simple palette swap of Mario designed to represent the second player. Graphically and in terms of gameplay, the characters were completely identical, except for their color schemes; the green color scheme adopted for Luigi would remain one of his defining physical characteristics in subsequent releases.
After the success of Mario Bros., Luigi was introduced to a wider audience in 1985 with the release of the console game Super Mario Bros. Once again his role was restricted to a palette swap of Mario, functioning as the second-player in a similar fashion to Mario Bros.. The subsequent release of Super Mario Bros.: The Lost Levels in 1986, however, marked the beginning of Luigi's development toward becoming a more distinguished character.As with his previous appearances, Luigi remained a palette swap of Mario. While this version of Super Mario Bros. 2 was released in Japan, it was deemed to be too difficult for American audiences at the time, leading to the development of an alternative release for the latter; this version would play a key role in shaping Luigi's current appearance. In 1988, consequently, a version of Yume Kōjō: Doki Doki Panic with the graphics altered to represent characters and scenes from the Mario franchise was released in the United States as Super Mario Bros. 2. In this release, the character of "Mama" served as the template for Luigi, resulting in his gaining a taller, thinner look, complete with his ubiquitous green color scheme. As this alternative version of Super Mario Bros. 2 was largely spearheaded by the Nintendo of America division, the Japanese headquarters was not immediately influenced by this change in Luigi's appearance. From the 1992 game Super Mario Kart onwards, however, Luigi's distinguished appearance from the Yume Kōjō: Doki Doki Panic-inspired version of Super Mario Bros. 2 was adopted by Nintendo for both character artwork and in-game appearances.

Actor portrayal
Upon debuting on the Nintendo 64, Luigi received a voice, provided by Charles Martinet, who also voices Mario, Wario, Waluigi, and Toadsworth. Much like his appearance, Luigi's vocal portrayal has fluctuated over the years. When first introduced in Mario Kart 64, Luigi's voice was considerably lower in pitch than Mario's (although it was high pitched in the Japanese version[citation needed]); however, in Mario Party, his voice has a much higher pitch, similar to Mario's voice (the same voice from the Japanese Mario Kart 64). He retained this higher voice in Mario Party 2. In Mario Golf, Mario Tennis, and Mario Party 3, his voice returned to a lower state. Since then, with the exceptions of Mario Kart Super Circuit and Super Smash Bros. Melee, Luigi has consistently had a medium-pitched voice. In Mario Kart Super Circuit, Luigi's voice was the same high voice from the Japanese Mario Kart 64. In Super Smash Bros. and Super Smash Bros. Melee, Luigi's voice is made up of clips from Mario's voice taken from Super Mario 64, with raised pitches. In Super Smash Bros. Brawl, he has his own voice instead of a pitched-up version of Mario's.

Characteristics
Luigi is portrayed as the taller, younger brother of Mario, and he is usually seen dressed in green with overalls. Although Luigi is a plumber, like his brother, other facets of his personality vary from game to game. Luigi always seems nervous and timid but is good-natured and not as quick to anger as his more famous brother.
While it has not been made official, Daisy may be Luigi's romantic interest. They were a romantic couple in the film[citation needed] and in Mario Kart Wii they are seen in statue dancing together. She was his caddy in NES Open Tournament Golf as Peach was to Mario. Also on Daisy's trophy in Super Smash Bros. Melee, it says that she is possibly Luigi's answer to Mario's Peach.

Monday, June 16, 2008

Mario

Mario (マリオ Mario?) is a fictional character in his eponymous video game series, created by Japanese video game designer Shigeru Miyamoto. Serving as Nintendo's mascot and the main protagonist of the series, Mario has appeared in over 200 video games since his creation. Though originally only appearing in platform games, starting with Donkey Kong, Mario currently appears in varied video game genres such as racing, puzzle, role-playing, fighting, and sports.
Mario is depicted as a short, pudgy, Italian American plumber who lives in the Mushroom Kingdom. He repeatedly stops the turtle-like villain Bowser's numerous plans to kidnap Princess Peach and subjugate the Mushroom Kingdom. He also has other enemies and rivals, including Donkey Kong and Wario. Since 1995, Mario has been voiced by Charles Martinet.
As Nintendo's mascot, Mario is arguably the most famous character in video game history, and his image is commonly associated with video games. Mario games, as a whole, have sold more than 210 million units, making the Mario series the best-selling video game series of all time. Outside platform games, he has appeared in video games of other genres, including the Mario Kart racing series, sports games, such as the Mario Tennis and Mario Golf series, and role-playing games such as Paper Mario and Super Mario RPG. He has also inspired television shows, film, comics, and a line of licensed merchandise.

Concept and creation
Mario was created by Shigeru Miyamoto in his attempts to produce a best-selling video game for Nintendo, after previous titles, such as Sheriff, had not achieved the same success as other titles such as Pac-Man. Originally, Miyamoto wanted to create a video game that used the characters Popeye, Bluto, and Olive Oyl. At the time, however, Miyamoto was unable to acquire a license to use the characters (and would not until 1982), and ended up making Jumpman (later known as Mario), Donkey Kong, and Pauline. In the early stages of the game, Mario was unable to jump, and the focus was to escape a maze. However, Miyamoto added in that ability, saying "If you had a barrel rolling towards you, what would you do?".
Mario's name was originally "Mr. Video", and he was to be used in every video game Miyamoto developed. This idea was inspired by manga artists such as Osamu Tezuka and Fujio Akatsuka, who feature several characters across multiple manga, as well as British director Alfred Hitchcock, who appears in most of his own films. During localization of the game for American audiences, Nintendo of America's warehouse landlord Mario Segale confronted its then-president Minoru Arakawa, demanding back rent. Following a heated argument in which the Nintendo employees eventually convinced Segale he would be paid, they opted to name the character in the game Mario after him. Miyamoto had commented that if he had named him Mr. Video, he likely would have "disappeared off the face of the Earth". By Miamoto's own account, Mario's profession was chosen to fit with the game design. Since the game was set on a construction site, Mario was made into a carpenter. When he appeared again in Mario Bros., it was decided he should be a plumber, since a lot of the game is played in underground settings. Mario's character design, particularly his large nose, draws on western influences; once he became a plumber, Miyamoto decided to "put him in New York" and make him Italian, lightheartedly attributing Mario's nationality to his mustache. Other sources have Mario's profession chosen to be carpenter in an effort to depict the character as an ordinary hard worker, and make it easier for players to identify with the him; after a colleague suggested that Mario more resembled a plumber, Miyamoto changed his profession accordingly and developed Mario Bros., featuring the character in the sewers of New York City.
Due to the graphical limitations of arcade hardware at the time, Miyamoto clothed the character in bright red overalls and a blue shirt to contrast against each other and the background. A cap was added to let Miyamoto avoid drawing the character's hairstyle, forehead, and eyebrows, as well as to circumvent the issue of animating his hair as he jumped. To make him appear human onscreen despite his small size, Mario was given distinct features, prominently a large nose and a mustache, which avoided the need to draw a mouth and facial expressions on the small onscreen character.
Miyamoto developed Mario with the idea of using him as a "go to" character that could be put in any title as needed, albeit in cameo appearances as at the time he was not expecting Mario to become popular. To this end he originally called the character "Mr. Video", comparing his intent to have Mario appear in later games to the cameos done by Alfred Hitchcock within his films. Over time, Mario's appearance has become more defined; both a red "M" in a white circle on the front of his hat and gold buttons on his overalls have been added. Miyamoto attributed this process to the different development teams and artists for each game as well as advances in technology as time has gone on. Nintendo has never revealed Mario's full name, stating only that it was not "Mario Mario" despite the implication of the Mario Bros. series' title, its use in the film, and information given in the Prima official Guidebook to Mario and Luigi: Superstar Saga.

Spacewar (Game)

Spacewar! is one of the earliest known digital computer games.
Steve "Slug" Russell, Martin "Shag" Graetz and Wayne Witaenem of the fictitious "Hingham Institute" conceived of the game in 1961, with the intent of implementing it on a DEC PDP-1 at the Massachusetts Institute of Technology. After Alan Kotok obtained some sine and cosine routines from DEC, Russell began coding, and by February 1962 had produced his first version. It took approximately 200 hours of work to create the initial version. Additional features were developed by Dan Edwards, Peter Samson and Graetz.

Gameplay
The basic gameplay of Spacewar! involves two armed spaceships called "the needle" and "the wedge" attempting to shoot one another while maneuvering in the gravity well of a star. The ships fired missiles that were unaffected by gravity (due to a lack of processing time). Each ship had a limited number of missiles and a limited supply of fuel. The hyperspace feature could be used as a last-ditch means to evade enemy missiles, but the reentry from hyperspace would occur at a random location and there was an increasing probability of the ship exploding with each use.
Each player controls one of the ships, and must attempt to simultaneously shoot at the other ship and avoid colliding with the star. Player controls included clockwise and counterclockwise rotation, thrust, fire, and hyperspace. Initially these were controlled using the front-panel test switches, with four switches for each player, but these proved to wear out very quickly under normal gameplay. Most sites used custom control boxes wired into the same switches, although joysticks and other inputs were also used.

Options and features
Early versions of the game contained a randomly generated background starfield. However, the inaccuracy and lack of verisimilitude annoyed Samson, so he wrote a program based on real star charts that scrolled slowly: at any one time, 45% of the night sky was visible, every star down to the fifth magnitude. The program was called "Expensive Planetarium" (referring to the price of the PDP-1 computer), and was quickly incorporated into the main code.
There were several optional features controlled by sense switches on the console:

  • no star (and thus no gravity)
  • enable angular momentum
  • disable background starfield
  • the "Winds of Space"- a warping factor on trajectories that required the pilot to make careful adjustments every time they moved

Spacewar! was a fairly good overall diagnostic of the PDP-1 computer and Type 30 Precision CRT Display, so DEC apparently used it for factory testing and shipped PDP-1 computers to customers with the Spacewar! program already loaded into the core memory; this enabled field testing as when the PDP was fully set up, the field representative could simultaneously relax and do a final test of the PDP.

Ports to other systems
Spacewar! was extremely popular in the 1960s, and was widely ported to other systems. As it required a graphical display, most of the early ports were to other DEC platforms like the PDP-10 or PDP-11, or various CDC machines.
Early microcomputer systems also supported Spacewar!. The Cromemco Dazzler had a version, as did the ECD Micromind. The Micromind did not have a high-resolution bitmap display, due to the high cost of memory at the time. This version rendered ships in portions of the computer's flexible character generator, which was dynamically generated to support rendering ships at different angles.

Spacewar! today
As of May 2006, there is only one working PDP-1 known to be in existence, at the Computer History Museum in Mountain View, California. The computer and display were completely restored after two years of work, and Spacewar! is operational. On May 15, 2006, the museum presented The Mouse That Roared: A PDP-1 Celebration Event. The PDP-1 was demonstrated running Spacewar! as well as other programs, and members of the public were able to play the game using makeshift controllers.
Most recently, Spacewar! code has been given out with Microsoft XNA Game Studio Express.

Sunday, June 15, 2008

History of Video Games

The origin of video games lies in early cathode ray tube-based missile defense systems in the late 1940s. These programs were later adapted into other simple games during the 1950s. By the late 1950s and through the 1960s, more computer games were developed (mostly on mainframe computers), gradually increasing in sophistication and complexity. Following this period, video games diverged into different platforms: arcade, mainframe, console, personal computer and later handheld games.
The first commercially viable video game was Computer Space in 1971, which laid the foundation for a new entertainment industry in the late 1970s within the United States, Japan, and Europe. The first major crash in 1977 occurred when companies were forced to sell their older obsolete systems flooding the market. Six years later a second, greater crash occurred. This crash—brought on largely by a flood of poor quality video games coming to the market—resulted in a total collapse of the console gaming industry in the United States, ultimately shifting dominance of the market from North America to Japan. While the crash killed the console gaming market, the computer gaming market was largely unaffected. Subsequent generations of console video games would continue to be dominated by Japanese corporations. Though several attempts would be made by North American and European companies, fourth generation of consoles, their ventures would ultimately fail. Not until the sixth generation of video game consoles would a non-Japanese company release a commercially successful console system. The handheld gaming market has followed a similar path with several unsuccessful attempts made by American companies all of which failed outside some limited successes in the handheld electronic games early on. Currently only Japanese companies have any major successful handheld gaming consoles, although in recent years handheld games have come to devices like cellphones and PDAs as technology continues to converge.

A device called the Cathode-Ray Tube Amusement Device was patented in the United States by Thomas T. Goldsmith, Jr. and Estle Ray Mann. The patent was filed on January 25, 1947, and issued on December 14, 1948. It is described using eight vacuum tubes to simulate a missile firing at a target and contains knobs to adjust the curve and speed of the missile. Because computer graphics could not be drawn electronically at the time, small targets were drawn on a simple overlay and placed on the screen.

Tennis for Two
In 1949-1950, Charley Adama created a "Bouncing Ball" program for MIT's Whirlwind computer. While the program was not yet interactive, it was a precursor to games soon to come.
In February 1951, Christopher Strachey tried to run a draughts program he had written for the NPL Pilot ACE. The program exceeded the memory capacity of the machine and Strachey recoded his program for a machine at Manchester with a larger memory capacity by October.
Also in 1951, while developing television technologies for New York based electronics company Loral, inventor Ralph Baer came up with the idea of using the lights and patterns he used in his work as more than just calibration equipment. He realized that by giving an audience the ability to manipulate what was projected on their television sets, their role changed from passive observing to interactive manipulation. When he took this idea to his supervisor, it was quickly squashed because the company was already behind schedule.
OXO, a graphical version tic-tac-toe, was created by A.S. Douglas in 1952 at the University of Cambridge, in order to demonstrate his thesis on human-computer interaction. It was developed on the EDSAC computer, which uses a cathode ray tube as a visual display to display memory contents. The player competes against the computer.
In 1958 William Higinbotham created a game using an oscilloscope and analog computer. Titled Tennis for Two, it was used to entertain visitors of the Brookhaven National Laboratory in New York. Tennis for Two showed a simplified tennis court from the side, featuring a gravity-controlled ball that needed to be played over the "net," unlike its successor—Pong. The game was played with two box-shaped controllers, both equipped with a knob for trajectory and a button for hitting the ball. Tennis for Two was exhibited for two seasons before its dismantlement in 1959.

Wednesday, June 11, 2008

Game Programmer

A game programmer is a software engineer and programmer who primarily develops codebase for video games or related software, such as game development tools. Game programming has many specialized disciplines each of which is regarded as "game programmers". A game programmer should not be confused with a game designer, who works on game design.

Disciplines
A contemporary computer game may include advanced physics, artificial intelligence, 3D graphics, digitized sound, an original musical score, complex strategy and may use several input devices (such as mice, keyboards, gamepads and joysticks) and may be playable against other people via the Internet or over a LAN. Each aspect of the game can consume all of one programmer's time and, in many cases, several programmers. Some programmers may specialize in one area of game programming, but many are familiar with several aspects. The number of programmers needed for each feature depends somewhat on programmers' skills, but mostly are dictated by the type of game being developed.

Game engine programmer
Game engine programmers create the base engine of the game, including the simulated physics and graphics disciplines.

Physics engine programmer
A game's physics programmer is dedicated to developing the physics a game will employ. Typically, a game will only simulate a few aspects of real-world physics. For example, a space game may need simulated gravity, but would not have any need for simulating water viscosity.
Since processing cycles are always at a premium, physics programmers may employ "shortcuts" that are computationally inexpensive, but look and act "good enough" for the game in question. Sometimes, a specific subset of situations is specified and the physical outcome of such situations are stored in a record of some sort and are never computed at runtime at all.
Some physics programmers may even delve into the difficult tasks of inverse kinematics and other motions attributed to game characters, but increasingly these motions are assigned via motion capture libraries so as not to overload the CPU with complex calculations.
For a role-playing game such as Might and Magic, only one physics programmer may be needed. For a complex combat game such as Battlefield 1942, teams of several physics programmers may be required. See also: dynamical simulation

Graphics engine programmer
Historically, this title usually belonged to a programmer who developed specialized blitter algorithms and clever optimizations for 2D graphics. Today, however, it is almost exclusively applied to programmers who specialize in developing and modifying complex 3D graphic renderers. Some 2D graphics skills have just recently become useful again, though, for developing games for the new generation of cell phones, PDAs and handheld game consoles.
A 3D graphics programmer must have a firm grasp of advanced mathematical concepts such as vector and matrix math, quaternions and linear algebra.
Programmers specializing in this area of game development can demand high wages and are usually a scarce commodity. Their skills can be used for computer games as well as games for game consoles such as the PlayStation 3, Nintendo DS, PSP, Wii and the Xbox 360.

Artificial intelligence programmer
An AI programmer develops the logic of the game to simulate intelligence in enemies and opponents. It has recently evolved into a specialized discipline, as these tasks used to be implemented by programmers who specialized in other areas. An AI programmer may program pathfinding, strategy and enemy tactic systems. This is one of the most challenging aspects of game programming and its sophistication is developing rapidly. Contemporary games dedicate approximately 10 to 20 percent of their programming staff to AI.
Some games, such as strategy games like Civilization III or role-playing games such as The Elder Scrolls IV: Oblivion, use AI heavily, while others, such as puzzle games, use it sparingly or not at all. Many game developers have created entire languages that can be used to program their own AI for games via scripts. These languages are typically less technical than the language used to implement the game, and will often be used by the game or level designers to implement the world of the game. Many studios also make their games' scripting available to players, and it is often used extensively by third party mod developers.
The AI technology used in games programming should not be confused with academic AI programming and research. Although both areas do borrow from each other, they are usually considered distinct disciplines. However this is not always true. For example, the 2001 game by Lionhead Studios Black & White features a unique AI approach to a user controlled creature who uses learning to model behaviours during game-play. In recent years, more effort has been directed towards intervening promising fields of AI research and game AI programming.

Sound programmer
Not always a separate discipline, sound programming has been a mainstay of game programming since the days of Pong. Most games make use of audio, and many have a full musical score. Computer audio games eschew graphics altogether and use sound as their primary feedback mechanism.
Many games use advanced techniques such as 3D positional sound, making audio programming a non-trivial matter. With these games, one or two programmers may dedicate all their time to building and refining the game's sound engine, and sound programmers may be trained or have a formal background in digital signal processing.
Scripting tools are often created and/or maintained by sound programmers for use by sound designers. These tools allow designers to associate sounds with characters, actions, objects and events while also assigning music or atmospheric sounds for game environments (levels or areas) and setting environmental variables such as reverberation.

Gameplay programmer
Though all programmers add to the content and experience that a game provides, a gameplay programmer focuses more on a game's strategy, implementation of the game's mechanics and logic, and the "feel" of a game. This is usually not a separate discipline, as what this programmer does usually differs from game to game, and they will inevitably be involved with more specialized areas of the game's development such as graphics or sound.
This programmer may implement strategy tables, tweak input code, or adjust other factors that alter the game. Many of these aspects may be altered by programmers who specialize in these areas, however (for example, strategy tables may be implemented by AI programmers).

Scripter
In early computer games, gameplay programmers would write code to create all the content in the game—if the player was supposed to shoot a particular enemy, and a red key was supposed to appear along with some text on the screen, then this functionality was all written as part of the core program in C or assembly language by a gameplay programmer.
More often today the core game engine is usually separated from gameplay programming. This has several development advantages. The game engine deals with graphics rendering, sound, physics and so on while a scripting language deals with things like cinematic events, enemy behavior and game objectives. Large game projects can have a team of scripters to implement these sorts of game content.
Scripters usually are also game designers. It is often easier to find a qualified game designer who can be taught a script language as opposed to finding a qualified game designer who has mastered C++.

UI programmer
This programmer specializes in programming user interfaces (UIs) for games.[14] Though some games have custom user interfaces, this programmer is more likely to develop a library that can be used across multiple projects. Most UIs look 2D, though contemporary UIs usually use the same 3D technology as the rest of the game so some knowledge of 3D math and systems is helpful for this role. Advanced UI systems may allow scripting and special effects, such as transparency, animation or particle effects for the controls.

Input programmer
The joystick was the primary input device for 1980s era games. Now game programmers must account for a wide range of input devices, but the joystick today is supported in relatively few games, though still dominant for flight simulators.
Input programming, while usually not a job title, or even a full-time position on a particular game project, is still an important task. This programmer writes the code specifying how input devices such as a keyboard, mouse or joystick affect the game. These routines are typically developed early in production and are continually tweaked during development. Normally, one programmer does not need to dedicate his entire time to developing these systems. A first person shooter such as Quake may need a very complex and low latency input system, while the needs of a turn-based strategy game such as Heroes of Might and Magic are much lower.

Network programmer
This programmer writes code that allows players to compete against each other (or play together) connected via a LAN or the Internet (or in rarer cases, directly connected via modem). Programmers implementing this feature of a game can spend all their time on this one task. Network programming is one of the most challenging game programming roles. These programmers have to deal with network latency, packet compression, and dropped or interrupted connections. Though this type of programming can consume the entire development process, network programming is often put off until the last few months of development, adding additional difficulties to this role.

Game tools programmer
The tools programmer can make game development heaven or unbearably difficult. Tools are used on almost every game for tasks such as scripting, importing or converting art, modifying behaviors or building levels. Some tools, such as an IDE, 3D graphics modelling software and Photoshop are COTS products, but many tools are specific to the game and are custom programmed.
It is the tools programmer's job to write the tools that handle these game-specific tasks. Some tools will be included with the game, but most will not. Most tools evolve with the game and can easily consume all of several programmers' time. Well written and fairly bug-free tools make everyone's development tasks easier. Poorly written or poorly documented ones can seriously hamper development and jeopardize the project. Due to time constraints, however, many tools are not carefully implemented.

Porting programmer
Porting a game from one platform to another has always been an important activity for game developers. Some programmers specialize in this activity, converting code from one operating system to work on another. Sometimes, the programmer is responsible for making the application work not for just one operating system, but on a variety of devices, such as mobile phones. Often, however, "porting" can involve re-writing the entire game from scratch as proprietary languages, tools or hardware make converting source code a fruitless endeavour.
This programmer must be familiar with both the original and target operating systems and languages (for example, converting a game originally written in C++ to Java), convert assets, such as artwork and sounds or rewrite code for low memory phones. This programmer may also have to side-step buggy language implementations, some with little documentation, refactor code, oversee multiple branches of code, rewrite code to scale for wide variety of screen sizes and implement special operator guidelines. They may also have to fix bugs that were not discovered in the original release of a game.

Technology programmer
The technology programmer is more likely to be found in larger development studios with specific departments dedicated solely to R&D. Unlike other members of the programming team, the technology programmer usually isn't tied to a specific project or type of development for an extended length of time, and they will typically report directly to a CTO or department head rather than a game producer. As the job title implies, this position is extremely demanding from a technical perspective and requires intimate knowledge of the target platform hardware. Tasks cover a broad range of subjects including the practical implementation of algorithms described in research papers, very low-level assembly optimization and the ability to solve challenging issues pertaining to memory requirements and caching issues during the latter stages of a project. There is considerable amount of cross-over between this position and some of the others, particularly the graphics programmer.

Generalist
In smaller teams, one or more programmers will often be described as 'Generalists' who will take on the various other roles as needed. Generalists are often engaged in the task of tracking down bugs and determining which subsystem expertise is required to fix them.

Lead game programmer
The lead programmer is ultimately in charge of all programming for the game. It is their job to make sure the various submodules of the game are being implemented properly and to keep track of development from a programming standpoint. A person in this role usually transitions from other aspects of game programming to this role after several years of experience. Despite the title, this person usually has less time for writing code than other programmers on the project as they are required to attend meetings and interface with the client or other leads on the game. However, the lead programmer is still expected to program at least some of the time and is also expected to be knowledgeable in most technical areas of the game. There is often considerable common ground in the role of technical director and lead programmer, such that the jobs are often covered by one person.

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.