Saturday, May 31, 2008

INCG lecture notes

Time to compile all of the INCG lecture slides into one single huge blog post so it makes it easier for me to revise for the INCG term test next Thursday. -.-

Table of Contents
Course Introduction
  • This subject introduces students to:
    • Different aspects of games and game development.
    • An overview of the necessary tools required to create content in game projects.
  • Students will learn to design a game and describe the components of a game system. They will also learn how to identify the skill sets required to build the components of a game.
  • What is a 3D Game Engine?
    • A 3D Engine is a library of 3D graphics functions. Many 3D engines are available on the Internet, some are free, some are between $50 and $250,000 for commercial use.
    • 3D engines usually require programming with an external development system, normally Microsoft Visual C++.
    • Programming a game around a 3D engine offers a maximum of flexibility, but requires also a maximum of experience, work and time to be invested before something's moving in your game.
  • What is Shadow Mapping?
    • Also called Lightmapping - a system for creating realistic lights and shadows without frame rate penalties.
    • A shadow mapping compiler allows you to place an unlimited number of static light sources in the level, and then recalculates the light flow and static shadows for each surface.
    • Most commercial 3D games use shadow mapping.
A Brief History of Video Games
  • Topics to be covered
    • The first video game
    • The development of games for the "masses"
    • The development of the console game
    • Home computer game development
    • The game studios
  • The First Video Games
    • William Higginbotham and Tennis for Two
      • Created in 1958 for the Brookhaven National Laboratory's annual visitor day
      • Display was an oscilloscope
      • Sound effects were a side-effect of the relays that made the game run
      • No one realized its significance
    • Steve Russell and Spacewar
      • Created in 1961 at MIT for the DEC PDP-1 computer
      • Hugely popular within MIT
      • Required prohibitively expensive equipment (back then)
      • Eventually shipped as a diagnostic program with PDP-1s
  • Games for the Masses
    • The Advent of Home Video Games: Ralph Baer and the Magnavox Odyssey
      • 1966: initial idea for a game machine that would work on home TVs
      • Created a shooting game and ice hockey game
      • Sold to Magnavox in 1972
    • Breaking Into the Amusement Business:
    • Nolan Bushnell and Atari
      • Engineering major at the University of Utah
      • Background in coin-operated amusement devices
      • Tried to bring Spacewar to arcades as Computer War
    • Bringing Games to the Masses
      • Atari founded by Nolan Bushnell in 1972
      • Brought Pong to arcades
      • Sued by Baer and Magnavox
      • Paid a one-time license fee of $700,000
  • The Console Kings
    • Atari and the 2600
      • Atari VCS (1600) released in 1977
      • Not quite the first cartridge-based home system
      • Open architecture allowed easy development
      • First to introduce licensing of a system
    • Video Game Crash of 1983
      • Factors leading to the crash
      • Poor economy
      • Natural market cycle
      • Video games perceived as fad
      • Glut of poor 2600 games
      • Introduction of home computers
    • Nintendo and Shigeru Miyamoto
      • Released Donkey Kong arcade machine in 1981
      • Released Nintendo Entertainment System in 1985
      • During late 80's Nintendo owned 90% of the market
      • Latest console is the Nintendo DS
    • Sega
      • Created in 1952 in Japan to sell amusement games on US army bases
      • Released the popular Sega Genesis in 1990
      • Final console was 1999's Sega Dreamcast
      • Now dedicated to software
    • Sony's PlayStation
      • Created out of an aborted attempt to launch a CD-ROM based system with Nintendo
      • Released PlayStation in 1994
      • PlayStation 2 released in 2000, maintaining backwards compatibility with hugely popular PS1
      • Next console release is PSP handheld
    • Microsoft and the Xbox
      • Xbox released in 2001
      • Based on a PC-like architecture
      • Initially significant money lost on each console sold
      • Halo and Halo 2 are its most popular games
  • Home Computers
    • Apple Computer
      • Founded by Steve Jobs, Steve Wozniak and Mike Markkula in 1976
      • Apple II was released in 1977
      • Revolutionized the home computer market
    • Commodore
      • Commodore Vic-20 Released in 1981
      • Low price and shrewd marketing lead to success
      • Commodore 64, released in 1982, became the best selling computer in history
    • IBM
      • IBM PC introduced in 1981
      • Moderate pricing helped it gain a foothold in the business world
      • BIOS licensing model backfired on them, allowing cheap clones to enter the market
  • The Studios
    • Activision and Infocom
      • Activision founded by former Atari programmers
      • Lawsuit by Atari created the "royalties" system still employed by console makers today
      • Merged with Infocom and gutted it
      • Still a strong player today
    • Electronic Arts
      • Created by Trip Hawkins in 1982
      • Revolutionary business plan did three things
        • Creative artists treated like talent
        • Creation of in-house tools to aid cross-platform development
        • Handle own distribution
      • Now the largest game software company in the world
    • Interplay
      • Formed in 1983
      • First big hit was The Bard's Tale in 1985
      • Famous for their CRPGs, including Wasteland, Fallout, Baldur's Gate, Baldur's Gate II: Shadows of Amn
      • Since de-listed from the NASDAQ
    • LucasArts
      • Formed in 1982 as an offshoot of LucasFilm Ltd.
      • Released Maniac Mansion in 1987
      • Created strong history of adventure games and Star Wars universe games
    • Blizzard
      • Started in 1991 by Frank Morhaime, Allen Adham, and Frank Pearce.
      • Released one of the seminal Real-Time Strategy games, Warcraft, in 1994
      • Their latest release, the MMORPG World of Warcraft, has become the fastest selling PC game in history
    • id Software
      • Formed on February 1, 1991
      • Successfully utilized Apogee's shareware formula
      • Created the defining first-person shooter with DOOM
Game Genres
  • Topics to be covered
    • Discuss the different genres out there
    • Understand the characteristics of each genre
    • Know examples from each genre
  • Game Genres
    • Games are divided into different categories, called "genres"
      • Based on game play
    • Genres are not always definitely "exclusive"
      • i.e. characteristics in one genre may appear in another genre
    • Within one genre, there are often sub genres
      • i.e. What genres are there for Strategy Games?
  • Genres
    • The "Major" Genres
      • Adventure
        • Sub-genres include text-based adventure and graphical adventure
        • Zork by Infocom
        • King's Quest by Sierra
      • Action
        • Superset of all other action-oriented genres
        • Typified by fast-paced combat and movement
        • Spacewar, Pong, and Space Invaders helped define the genre
        • Action-Adventure
          • Adventure games with action elements
          • The Legend of Zelda was first break-out hit
          • Jak 3, Metroid Prime 2 Echoes, and Resident Evil 4 are modern examples of the genre
        • First-Person shooters
          • Very popular
          • Action game where player is "behind the eyes" of the game character in a first-person perspective
          • Involves shooting and combat
          • Game setting may not always be modern or futuristic
          • id Software's Wolfenstein 3D and DOOM are the earliest popular examples
      • Platformer
        • Typified by a character running and jumping in a side-scrolling playing field
        • Modern definition has expanded to include 3D
        • Super Mario Bros., Sonic the Hedgehog, Pitfall! and Super Mario 64 are examples
      • Fighting
        • Players typically fight other players or the computer using swordplay or martial arts
        • Double Dragon is an example of a side-scrolling fighter
        • Virtua Fighter, Mortal Kombat, and Street Fighter are examples of versus fighters, where the players fight each other
      • Strategy
        • Games that focus on analysing, planning, and execution of a plan to meet the game's objectives
        • Tend to require methodical play skills, as opposed to impulsive skills
        • Real-Time Strategy (RTS)
          • Typically, a game in which the goal is to collect resources, build an army and combat the other player or computer
          • Popularized by Westwood's Dune 2 and Command and Conquer and Blizzard's Warcraft
        • Turn-Based Strategy
          • Like real-time strategy games, but turn-based
          • Civilization, X-COM, Master of Orion, and Jagged Alliance are standouts of the genre
      • Role-Playing Game (RPG)
        • The video game counterpart to pen and pencil games like Dungeons and Dragons
        • Final Fantasy, Baldur's Gate and Wasteland are some popular examples of the genre
      • Massively Multiplayer Online Games (MMOGs)
        • Gaming worlds populated by usually thousands to millions of players
        • Often (but not always) require initial purchase of the game client, followed by regular subscription with a fee
        • Massively Multiplayer Online Role-Playing Games (MMORPGs)
          • The most well-known type of MMOG.
          • An RPG set in a persistent virtual world populated by thousands of other players
          • Ultima Online in 1997 was the first popular one
          • World of Warcraft is currently the most popular one
      • Simulation
        • Based on the simulation of a system
        • Often intended to mimic reality, i.e. the game can be realistically compared to the "real thing"
        • Popular types include: flight, military, space, and "God"
          • Wing Commander and X-Wing are popular space combat simulation games
          • SimCity and The Sims are example of "God" simulations where you control the lives of a town or a family
      • Sports
        • Games that simulate the sporting experience
        • Either from the sport's player perspective, or from a strategic or managerial perspective
        • Examples include John Madden Football and Tiger Woods' Golf
        • Racing
          • Games that involve competing in a race in a vehicle
          • Typically try to re-create a real-world activity
          • Pole Position was first popular racing game
    • The "Other" Genres
      • Stealth
        • Characterized by a focus on subterfuge and planned-out, deliberate play
        • Metal Gear in 1987 was one of the first
        • Popular modern series include Metal Gear, Splinter Cell, and Thief
      • Survival horror
        • An action-adventure or first-person shooter where survival elements and a fight against the undead are stressed
        • Resident Evil is easily the most popular series in this genre
      • Rhythm
        • Gauge player's success based on the ability to trigger the controls in time to the beat of music
        • Sometimes require specialized controllers such as dance pads or bongo drums
        • Konami's Dance Dance Revolution is the pre-eminent title of the genre
      • Puzzle
        • Games that combine pattern matching, logic, strategy and luck with a timed element
        • Tetris is the breakout hit of this genre
      • Mini-games
        • Short, simple games that exist within the context of a larger game
        • Mario Party and Wario Ware are popular examples of this genre
      • Traditional
        • Computerized versions of board, word, and card games
        • Battle Chess and the Hoyle series are standouts of this genre
      • Educational
        • Games designed to teach grade-school concepts to children and young adults
        • Oregon Trail was the first popular game in this genre
        • The Carmen Sandiego series and Mavis Beacon Teaches Typing are more modern popular examples
      • Serious
        • A game designed to teach real-world events or processes to adults
        • Most are privately funded
        • Popular with the US Government and the medical field
Team Structures
  • Topics to be covered
    • Publisher versus Developer issues
    • Developer's Team and their roles
    • Publisher's Team and their roles
    • Trends in current team structures
  • Programming Teams
    • In the 1980s programmers developed the whole game (and did the art and sounds too!)
    • Now programmers write code to support designers and artists (who are the real content creators)
    • As a result, the idea of Game Development team structures came about
  • Typical Team Structure
  • Publisher versus Developer
    • Publisher
      • Finance
      • Huge Company with offices all over the world
      • Game Marketing and Distribution
      • Chooses which titles to produce
      • Finances titles
      • Provide QA testing
      • Markets titles
      • Distributes titles
    • Developer
      • Deliver the product (Game)
      • Pitches creative ideas and demo to publisher
      • Uses money from publisher to produce title, game design, programming, art, audio etc.
    • However, many publishers are also a developer (usually the bigger companies like EA, Microsoft and Nintendo)
    • These publishers usually have their own in-house development teams
  • Examples of Publishers and Developers
    • Publishers
      • Electronic Arts
      • Activision
      • Nintendo
      • Sony Computer Entertainment
      • Microsoft Games
      • Take two Entertainment
      • Disney Interactive
      • Vivendi Universal Interactive
      • Atari
      • Eidos
    • Developers
      • Blizzard Entertainment (WOW and Diablo)
      • Rockstar Games (GTA series)
      • Ensemble Studios (AOE)
      • Westwood Studies (Command & Conquer)
      • Bioware (Baldur's Gate)
      • Maxis (Sims)
      • Epics (Unreal series)
      • Gas Powered Games (Dungeon Siege)
      • Lionhead Studios (The Movies)
  • Developer's Team
    • Producer
      • Project leader
      • Responsible for the delivery of the game
      • Create schedule, budget and resources allocation
      • Also found in publisher team
      • Collaborate with the publisher producer closely
      • Single point of contact to publisher
      • Motivate team and solve production related issues
      • Represent the team in public, conferences or press
      • Assistant Producer to assist Producer
    • Game Designer
      • Responsible for play experience
      • Conception to Completion
      • Collaborated with other members closely
      • Designer's Primary Responsibilities
        • Brainstorms concept
        • Create prototypes
        • Playtest and revises prototypes
        • Create design document
        • Communicates vision to all other members
        • Acts as advocate for the player
    • Programmers
      • Draft technical specifications
      • Technical implementation
        • Software prototypes
        • Software tools
        • Game modules and engines
        • Structuring data
        • Managing communication
      • Documenting codes
      • Coordinating with QA engineers to resolve bugs
      • Most programmers eventually become producer or designer
      • Oversee the entire production
      • Usually work in team lead by a lead programmer
    • Visual Artists
      • Design all visual aspects of the game
      • Includes character designers, illustrators, animators, interface designers and 3D artists
      • Development responsibilities
        • Characters
        • Worlds and world objects
        • Interfaces
        • Animations
        • Cut-scenes
    • QA Enginners
      • Testers or bugs finder
      • Many game professionals started their career as QA
      • Found in both publisher and developer sides
      • Responsibilities
        • Create test plan based on design and technical specifications
        • Execute test plan
        • Record all unexpected or undesirable behaviors
        • Retest applications
      • QA is Designer's best friend (and Programmers and Visual Artists' enemy?)
    • Level designer (optional)
      • Some Game are designed into levels
      • Uses toolkit or level editor to develop new missions, scenarios, quests
      • Responsibilities
        • Implementing level designs
        • Design level Concepts
        • Test levels and work with designer to improve overall gameplay
      • Many level designers are also good programmers who can see the overall vision of the game
    • Specialized media
      • Include many specialized media or technology like:
        • Special Writing skills
        • Sound Designers
        • Musicians
        • Motion capture operator
        • Karate instructor
        • Historian, etc., etc.
  • Publisher's Team
    • Producer
      • Project leader on publisher side
      • Marshalling the forces of the marketing team
      • Responsibilities
        • Team leader
        • Main communication link to developer
        • Schedule and budget of production
        • Tracking and allocation of resources
        • Approve work accomplished by developer so milestone payment can be made
        • Coordinate with internal executive management, marketing and QA personnel
    • Marketing Team
      • Sell the game to the public
      • Provide feedbacks to developers
      • Open minder game designer
      • Address to trends and features that people like
    • Executive
      • Includes CEO, President, CFO and COO, etc.
      • Run the publishing company
      • Provide leadership and directions
      • Come from all types of background
      • Others have extensive game development experience
  • Usability Specialists (optional)
    • Ensure that game is intuitive and accessible to target market
    • Test general focus such as interface and controls, rather than core gameplay
    • Usually a third party company
    • Can create an incredible difference in the player experience
    • Responsibilities
      • Heuristic evaluation of interfaces
      • Creation of user scenarios
      • Identify and recruit test subjects from target market
      • Conduct usability sessions
      • Record and analyze data from sessions
      • Report findings and recommendations
Stages of Game Development
  • Topics to be covered
    • Five stage development process of computer games
    • Process and issues from each of the development process
    • Mapping the Team Structure with the different Stages of Game Development
  • Introduction
    • Game development: complex and expensive process
    • Goals
      • Produce the highest quality game within the limits of their resources and budget
      • Produce best selling game with limited risk by keeping costs low
      • Many variables and uncertainties especially if you are inventing new technologies or tools
    • Budget overflow or delay schedule is common
      • Developer and publisher started pointing fingers
    • To combat such issues, industry has evolved some best practices
    • Each stage is defined by a milestone
  • Stages Defined
    • Five stage development process
  • Stage 1 - Concept Contract
    • The team
      • Publisher wanted to have experience developers, so as to reduce their risk
      • Team that have worked together
      • Team history and experience
      • Team experience in console
    • Project plan
      • Includes budget and schedule
      • Most important document (Once approved it is legally obligated to adhere)
    • The idea
      • Least important thing to the publisher (unfortunately!)
      • Publisher reply on market data to determine funding
      • Interesting new idea might not be funded because of high risk
      • The pitch (art meet commerce)
      • The publisher's pitch wish list
        • Sales sheet
        • Design document
        • Interactive demo
        • Technical Design Document
        • Risk analysis
        • Project plan
        • Cost Forecasts
  • Stage 2 - Pre-Production
    • Prototyping
    • Feasibility Testing
      • Team will work on creating playable level or environment
      • Focus on proving differentiating features and risky technology
      • Tools and middleware
      • If the test fails, the game might be killed at this stage
    • Storyboarding
    • Detailed Documentation and technical specification
    • Help to reduce the risk on using new technology
    • Final prototype will be evaluated in order to decide whether to continue with the development
  • Stage 3 - Production
    • Longest and most expensive stage of development
    • Number of team members increased significantly
    • Execute the vision and plan from previous stage
    • Stage involved:
      • Programmer write code
      • Artists build CG and animation
      • Sound Designer create music and sound effects
      • QA engineers familiarize themselves with all aspects of the project
      • Producer works to ensure everything on schedule
    • Alpha code created and send to QA team
    • Publisher usually pays the developer for the completion of this milestone
  • Stage 4 - Quality Assurance
    • Bugs searching and fixing
    • Ensure game quality
    • Development team shrinks down in size
    • Hardware Approval (ensure that the finished games meets the approval of the console manufacturers)
    • Beta version created and sometime release to the user for testing
    • Final stage is to create the "Gold Code"
  • Stage 5 - Maintenance
    • Ongoing process
    • Only a few programmers left in the team
    • Game patches are created constantly
    • Upgrades — additional content created to enhance the original game — are also released.
    • Expansions — self contained games requiring their own software, and sometimes the original software as well.
  • Post-Production Stage (optional)
    • Publisher and developer meet the regulation boards
    • Localization
    • Converting from NTSC to PAL
    • Ingenious solution
    • Cultural Differences
    • Sequels and Expansions
Gameplay
  1. Definition
    • Gameplay can be defined as "Choices, challenges, or consequences that players face while navigating through a virtual environment." (Novak 2005)
  2. Rules
    • All games contain rules.
    • Rules define the actions or moves that the player can (and cannot) make in the game.
    • Rules often documented in the instruction manual.
      • Further supported through in-game tutorials, hints
    • Victory Conditions
      • Indicate how players "win" the game
      • Consider this: at what point in your game can it be said that victory condition(s) have been met?
        • Completion of a level
        • Completion of a level within a specific time
        • etc.
      • Not all games have Victory Conditions
        • e.g. Puzzle games like Tetris
        • God simulations like The Sims
    • Loss Conditions
      • Indicate how players "lose" the game
      • Two types of "loss" conditons:
        • Implicit (e.g. not the first to achieve victory)
        • Explicit [e.g. your character dies, or loses all resources (e.g. in an RTS)]
  3. Interactivity Modes
    • Interactivity refers to the degree of responsiveness in a communication exchange.
    • Several modes
      • Player-to-game: single-player games where player interactes only within the game itself and the platform.
      • Player-to-player: multi-player games where players interact not only with the game but with each other.
      • Player-to-developer: players interact with the persons who actually developed the game. (e.g. discussion forums or chat rooms on a game's web site.)
      • Player-to-platform: refers to the connection between a player and the game platform's hardware and software. Concerns input devices, system's graphics or sound capabilities, memory, storage etc.
  4. Game Theory
    • Game Theory: focuses on the types of conflicts that exist in games, and how players might respond to these conflicts.
    • Two basic types:
      • Zero sum
        • Involve situations where players have completely opposing interests.
        • E.g. chess: one player wins, one player must lose
        • Zero sum games always involve competitive behavior.
      • Non Zero sum
        • Involve situations where players do not have completely opposing interests.
        • E.g. MMOGs: players cooperating with each other in teams or guilds
  5. Types of Challenges
    • A situation where one's abilities or skills are tested.
    • Gameplay involves a series of "challenges" that are linked together.
    • Types of challenges that occur in the game are often related to the game's genre.
    • In fact, players who focus on a particular genre often expect certain challenges to occur in these games.
    1. Implicit & Explicit
      • "Explicit" challenge: an intentional, immediate, and often intense challenge.
        E.g. "How do you unlock the ammunition locker to get the BFG2000?"
      • "Implicit" challenge: an emergent feature of the game itself.
        E.g. "What units should you deploy to rush the enemy's base?"
    2. Perfect & Imperfect Information
      • "Perfect" information: when all and correct information is known to players at all times.
        E.g. a game of Chess
      • "Imperfect" information: when players are only provided with a fraction of the information needed to make their decisions
        E.g. a fog of war in an RTS
    3. Intrinsic & Extrinsic Knowledge
      • "Intrinsic" Knowledge: knowledge gained from within the game world.
        E.g. you learn from an NPC inside the game the strategy needed to beat the Big Bad Guy
      • "Extrinsic" Knowledge: knowledge gained from outside the game world and applied in the game
        E.g. applying common sense to in-game situations
    4. Pattern Recognition & Matching
      • Where players subconsciously match or recognize patterns during gameplay.
      • E.g. Tetris
      • Often involves a lot of automatic thinking
    5. Spatial Awareness
      • Where players have to navigate through an environment.
      • Very common in vehicle simulations
    6. Micromanagement
      • Where players manage settings and actions associated with their resources or characters.
      • E.g. managing money, resources, population happiness, citizen employment in a Sim City game.
    7. Reaction Time
        Where the time taken by players to react or respond to a game event is critical.
      • Speed at which a player responds to this challenge is directly related to the speed at which the player's character reacts in the game.
  6. Balance
    • A game is "balanced" if players perceive that the game is:
      • Consistent
      • Fair
      • Fun
    • Does not exclude "random" events
      • E.g. meteor destroys the entire city.
    • In general though, "better" players need to be more successful in the game compared to "poorer" players.
    • Criteria for "balanced" gameplay
      1. Consistent challenges
      2. Perceivably fair playing experiences
      3. Lack of stagnation
      4. Lack of trivial decisions
      5. Difficulty levels
    • Two forms of game balance: Static and Dynamic
      • "Static" balance: does not depend on time and exists before the game is actually played.
        E.g. Rules that indicate the relative strengths of units in an RTS.
      • “Static” balance: how do you ensure static balance in a game? E.g.:
        • Obvious strategies: i.e. strategies that are superior to every other possibility in the game.
        • Symmetry: involves providing each player (and NPCs) with the same starting conditions and abilities.
          Ensures that the game outcome only depends on the relative skill levels of the players.
      • "Dynamic" balance: games typically begin with "static" balance. But once the game is in motion, a dynamic balance takes over.
      • Players can interact with dynamic balance in several ways:
        • Players who destroy the balance
        • Players who attempt to prevent other forces from destroying the balance
        • Players who attempt to restore the balance.
Programming Languages
  • C++
    • C used to be the most popular language for games
    • Today, C++ is the language of choice for game development
  • C++: Strengths
    • Performance
      • Control over low-level functionality (memory management, etc)
      • Can switch to assembly or C whenever necessary
      • Good interface with OS, hardware, and other languages
    • High-level
      • High-level language features are essential for making today's complex games
      • Has inheritance, polymorphism, templates, and exceptions
      • Strongly typed (i.e. language is fussy about parameter-passing correctness), so it has improved reliability
    • C heritage
      • C++ is the only high-level language that is backwards-compatible with C
      • Has APIs and wide-spread compiler support in all platforms
      • Easier transition for experienced programmers
    • Libraries
      • STL (Standard Template Library)
        i.e. a very comprehensive set of standard libraries that attempts to provide all major high-level functionality needed by most programs.
      • Boost: another widely used library with wide variety of functionality
      • Many commercial C++ libraries also available
  • C++: Weaknesses
    • Too low-level
      • Still forces programmers to deal with low-level issues (e.g. memory allocation)
      • Attention to low-level details is overkill for high-level features or tools
    • Too complicated
      • Because of its C heritage, C++ is very complicated
      • Takes many years to be really competent. Long learning curve.
    • Slow iteration
      • C++ needs to be fully compiled into binary format from source code
      • Compiling large numbers of files is very slow
      • This will only become more of a problem as games become more complex
  • C++: So when do you use C++?
    • When performance is crucial
    • If your current code base is mostly C and C++
    • If you have a lot of in-house expertise in C++
  • Java for Game Development
    • Why use Java?
      • It's a high-level object-oriented language that simplifies many C++ features
      • Adds several useful high-level features
      • Easy to develop for multiple platforms because of intermediate bytecode
      • Good library support, including libraries for input/output, graphics, low and high-level networking.
    • Performance
      • Has typically been Java's weak point
      • Has improved in the last few years: still not up to C++ level, but very close
      • Uses Just-In-Time compiling and HotSpot optimizations
      • Now has high-performance libraries
      • Also has access to native functionality
    • Platforms
      • Java is well suited to downloadable and browser-based games where performance requirements is somewhat less demanding.
      • Dominates development on mobile and handheld platforms
      • Possible to use in full PC games
        More likely to be embedded into a game
      • Not currently used in consoles
  • Java in Game Development
    • Commercial games using Java
      • Downloadable games like those from PopCap Games: Mummy Maze, etc
      • Online card games
      • PC games using Java as a scripting language: Vampire: The Masquerade, Star Wars Galaxies
      • PC games fully written in Java: You Don't Know Jack, Who Wants to Be a Millionaire
  • Scripting Languages
    • Why use scripting languages?
      • Ease and speed of development (definitely easier than C++).
      • Short iteration time, i.e. the time elapsed from making a code change to seeing the results in the game.
      • Code becomes a game asset
      • Highly customizable and scripts can be used in other areas.
    • Drawbacks
      • Slow performance. Don't expect similar performance compared to C++!
      • Limited tool support, e.g. debuggers, integrated development environments.
      • Dynamic typing makes it difficult to catch errors, compared with strong typing.
      • Awkward interface with the rest of the game engine and code (which was probably written in C++).
    • Popular scripting languages
      • Python
        OO scripting language, mature language, resembles C.
      • Lua
        Lightweight language, small memory footprint and good performance.
      • Other off-the-shelf options such as Ruby, Perl, Javascript
      • Custom scripting languages
        UnrealScript, QuakeC, NWNScript
    • How to choose a scripting language
      • Consider whether you need one at all.
      • What features do you need?
      • What kind of performance do you need?
      • What debugging facilities does the language have?
      • On what platforms does it need to run?
      • What resources and expertise are available?
Computer Graphics
  • Fundamentals
    • Firstly, we will introduce some of the key terms in computer graphics.
    • Key terms and constructs in CG
      1. Frame and Back Buffer
      2. Visibility and Depth Buffer
      3. Stencil Buffer
      4. Triangles
      5. Vertices
      6. Coordinate Spaces
      7. Textures
      8. Shaders
      9. Materials
  • 1. Frame and Back Buffer
    • Frame buffer: an area of memory where the screen is stored.
    • Frame buffer is displayed on screen
    • Back buffer is a region of memory where image was rendered
    • Image is rendered to the back buffer
      • Half-drawn images are very distracting
    • Swapped to the frame buffer
      • May be a swap, or may be a copy
  • 2. Visibility and Depth Buffer
    • When rendering 3D, only visible / unobscured objects are visible in the final scene.
    • Sometimes, only part of an object is visible.
    • Solution is to have a second buffer that stores “depth” values. Often called the “Z” buffer.
      • The value in the Z buffer indicates how far is the corresponding pixel
    • Pixels test their depth against existing value
      • If greater, new pixel is further than existing pixel
      • Therefore hidden by existing pixel – rejected
      • Otherwise, is in front, and therefore visible
      • Overwrites value in depth buffer and color in back buffer
  • 3. Stencil Buffer
    • A third buffer, but often used as a Utility buffer
      • Does not have a clearly defined role.
    • Usually eight bits in size
      • Usually interleaved with 24-bit depth buffer
    • Can reject pixels based on comparison between existing value and reference
    • Many uses for masking and culling
  • 4. Triangles
    • Triangles are most useful in rendering because everything else can be constructed from them
      • (except lines and point sprites)
    • Three points define a plane
    • Triangle plane is mapped with data
      • Textures
      • Colors
  • 5. Vertices
    • A triangle is defined as the connection of three points in space.
    • These points in space are called "vertices"
  • 6. Coordinate Spaces
    • When specifying a position in space, it is standard to use three numbers (x, y, z).
    • Positioning is defined relative to an origin (0,0, 0).
    • Four types of spaces are of concern to us.
    1. The most fundamental space is World space.
      • This is where everything that happens, where the game is set, and the space in which most coordinates are defined.
    2. Another fundamental space is Object space.
      • This is the space where vertices of a model are defined.
      • Each object has its own object space, and its own relationship to world space.
    3. There is also Camera space.
      • A camera also has position and orientation in world space.
      • To render a scene, objects must be moved out of world space and into camera space: when camera turns right, objects on the screen turn left.
    4. Clip space
      • Natural edges of screen make four side planes
      • Clipping: parts that are inside these edges are rendered; parts outside are discarded.
  • 7. Textures
    • A texture is a surface that holds fragments of data called textels, which is short for "texture pixel”.
    • Each textel holds a red, green, and blue value, and sometimes an alpha transparency channel.
      • “R, G, B, A”

    • Textures are typically 2D arrays of texels, and conventionally represent a picture that is mapped onto the object.
  • 8. Shaders
    • Shader: A program that is used to determine the shape or the color of a mesh.
    • Run at each vertex or pixel
      • Generates pixel colours or vertex positions
    • Relatively small programs
      • Usually tens or hundreds of instructions
    • Hardware capabilities evolving rapidly, with many graphics hardware including dedicated shaders.
  • 9. Materials
    • A Material is a description of how to render a triangle
    • Typically consists of:
      • Vertex and pixel shaders
      • Associated textures
      • Data taken from triangle vertices (e.g. normal, tangent, various colors).
  • High-level Organization in CG
    • After introducing low level components in rendering, here is a high level structural view of engines in general.
    • CG engines typically contain the following:
      1. Interactions between Game and Render
      2. Render Objects
      3. Render Instances
      4. Meshes
      5. Skeletons
  1. Interactions between Game and Render
    • Rendering speed varies according to scene
      • Some scenes more complex than others
      • Typically 15-60 frames per second
    • Gameplay is constant speed
      • Camera view should not change game
      • In multiplayer, each person has a different view, but there is only one shared game
      • 1 gameplay update per second (RTS) to thousands in rendering speed (FPS)
    • Keep the two as separate as possible!
  2. Render Objects
    • A render object represents the renderable description of one game entity (e.g. an ‘enemy' character).
    • Render object typically comprises:
      • A single animation skeleton
      • One or more meshes
    • Typically one type for each render object.
      • E.g. one "seagull" render object for a flock of seagulls.
  3. Render Instances
    • Render Object (from just now) define how each object is drawn, what shape it is etc.
    • Render Object “Instances” reference a single render object and a single set of meshes, textures, and shaders.
      • E.g. all the seagull “instances” reference the seagull render object type.
  4. Meshes
    • Meshes: a collection of triangles, vertices that triangles use, and a single material that is used to render all the triangles.
    • The number of meshes in a render object heavily influences how fast the object can be rendered.
    • E.g. a single human person may have:
      • one mesh for his face (with shader for skin rendering)
      • one mesh for his hands (using same skin shader but different textures)
      • one mesh for his hair (using specialized hair shader and textures)
      • one mesh for clothes (etc.)
      • etc.
  5. Skeletons
    • Each render object will typically have a single skeleton, which describes how the bones of that object are connected together.
    • Each render object “instance” will describe the animation state, which describes the current position of those bones.
3D Modelling
  • Topics to be covered
    • Basic modelling concepts
    • Two common types of modelling
      1. Polygon
      2. NURBS
  • 3D Modeller
    • A professional 3D modeler is a sculptor and a technician.
    • He is an artist and an engineer.
    • Concerned with:
      • Form
      • Expressiveness
      • Style
      • Polygon count
      • Topology
      • Efficiency of the models
  • 3D Modelling
    • Two Modeling Types
      1. Polygon
      2. NURBS
    • A "model" is any renderable object that makes up part of a scene.
  • Polygon Modelling
    • Most common modeling method used in games.
    • "Polygon" means multi-sided shape. A polygon is a number of faces grouped together to form this shape.
    1. Vertices define the object
    2. Edges connect the vertices
    3. Faces are defined by vertices and edges
    4. Polygons are made up of one or more faces
    5. Objects are built up from polygons
  • Polygonal Strengths
    • Very straightforward
    • Easy to troubleshoot
    • Easy to modify
    • Supported by all 3D game engines
  • NURBS Modelling
    • NURBS: stands for "Non Uniform Rational Basis Spline"
    • Type of modelling that uses curved surfaces based on relatively few data points.
    • Extensively used in the film industry and Computer-Aided Design (Engineering) but limited use in the gaming industry.
  • NURBS Strengths
    • Great for cut-scenes
    • Resolution independent
    • Inherent mapping coordinates
  • Polygon Mesh versus NURBS Surface
    • Polygon Mesh
      • Each point is connected by a straight line. Many points are needed to make a smooth curve.
      • No need to bother with rows of CVs.
    • NURBS Surface
      • Points are connected by curved splines. A few points can define a smooth curve.
      • It is easy to create smooth curved surfaces.
      • Can adjust the subdivisions to make the surface rounder.
  • Visual Character Development: Putting it Together
    1. Concept art: involves creating several views of a character (front, sides, back) using pencil sketches or 2D digital renderings.
    2. Modeling: involves creating the character's size and stature in 3D.
      1. Create a 3D wire mesh first
      2. Add 2D textures (e.g. skin, costume)
    3. Animation: conveys character movement
Artificial Intelligence
  • Artificial Intelligence
    • Quality of a game experience depends on whether the game presents a good challenge to the player.
    • One way of providing a good challenge is to offer computer opponents that are capable of intelligently playing the game.
  • Possible Game AI Definition
    • Inclusive view of game AI:
      • "Game AI is anything that contributes to the perceived intelligence of an entity, regardless of what's under the hood."
  • What is considered Game AI?
    • Is it any NPC behavior?
      • A single "if" statement?
      • Scripted behavior?
    • Pathfinding?
    • Animation selection?
    • Automatically generated environment?
  • Game AI
    • Game AI is very different from other AI applications (e.g. military defense, robotics).
      • Core distinction is in terms of goals
    • Goals of an AI programmer include:
      1. The AI must be intelligent, yet purposely flawed.
      2. The AI must have no unintended weaknesses.
      3. The AI must perform within the CPU and memory constraints of the game.
      4. The AI must be configurable by game designers/players.
      5. The AI must not stop the game from shipping.
  • Specialization of Game AI Developer
    • No one-size fits all solution to game AI
      • Results in specialization. E.g.
      • Strategy Games
        • Involves battlefield analysis
        • Long term planning and strategy
      • First-Person Shooter Games
        • Involves One-on-one tactical analysis
        • Intelligent movement at footstep level
    • Real-Time Strategy games the most demanding, with as many as three full-time AI game programmers
  • Game Agents
    • In most games, the purpose of game AI is to create an intelligent agent, or NPC.
    • This game agent may act as an
      • Opponent
      • Ally
      • Neutral character
    • An agent has three key steps that it continually loops.
    • This loop is called: "Sense-Think-Act cycle"
      • Optional learning or remembering step
  • Sense-Think-Act Cycle: Sensing
    • Agent can have access to perfect information of the game world
    • Agent has access to game World Information that is part of the program, including:
      • Complete terrain layout
      • Location and state of every game object
      • Location and state of player
    • But isn't this cheating?
  • Sensing: Enforcing Limitations
    • Hence, agents are also given limitations, e.g. Human limitations.
    • Limitations such as
      • Not knowing about unexplored areas
      • Not seeing through walls
      • Not knowing location or state of player
    • Can only know about things seen, heard, or told about
    • Must create a sensing model
  • Sensing: Human Vision Model for Agents
    • In 3D games, Vision starts with obtaining a list of appropriate game objects.
      • E.g. the agent might ask for a list of all enemies.
    • For each game object, you need to consider (in this order):
      1. Is it within the viewing distance of the agent?
        • How far can the agent see?
      2. Is it within the viewing angle of the agent?
        • What is the agent's viewing angle?
      3. Is it unobscured by the environment?
        • Most expensive test, so it is purposely last
  • Sensing: Vision Model
    • What about recognizing interesting terrain features?
      • E.g. imagine a first-person shooter.
      • Agent needs to recognize hiding spots or high-risk areas.
      • Do you want to play an FPS where the agent strolls around blindly in a hot zone without cover...?
  • Sensing: Human Hearing Model
    • Humans can hear sounds
      • Can recognize sounds
        • Knows what emits each sound
      • Can sense volume
        • Indicates distance of sound
      • Can sense pitch
        • Sounds muffled through walls have more bass
      • Can sense location
        • Where sound is coming from
    • Agents can be created to sense through hearing sounds like the above.
  • Sensing: Modelling Hearing Efficiently
    • Event-based approach
      • When sound is emitted, it alerts interested agents
    • Use distance and zones to determine how far sound can travel
  • Sensing: Communication
    • Many types of agents are expected to communicate with each other.
    • Important to model the transfer of sensed knowledge between agents.
      • Guards might alert other guards
      • Agents witness player location and spread the word
    • Model-sensed knowledge through communication
      • Event-driven when agents within vicinity of each other
  • Sensing: Reaction Times
    • Important for agents to employ similar reaction times like humans.
    • Agents shouldn't see, hear, communicate instantaneously
    • Players do notice this sort of thing!
    • Need to build in artificial reaction times
      • Vision: 0.25 seconds to 0.5 seconds
      • Hearing: 0.25 seconds to 0.5 seconds
      • Communication: more than 2 seconds
  • Sense-Think-Act Cycle: Thinking
    • Once an agent has gathered information about the world through its sense, the information can be evaluated and a decision can be made.
    • Two primary methods
      1. Process using pre-coded expert knowledge
      2. Use search to find an optimal solution
  • Thinking: 1. Expert Knowledge
    • Many different systems for encoding expert knowledge
      • Finite-state machines (most popular)
    • Encoding Expert Knowledge is appealing because it's relatively easy
      • Can ask just the right questions
      • As simple as if-then statements
    • Problems with Expert Knowledge systems
      • Not very scalable
      • As the number of rules increases, the Expert Knowledge system becomes cumbersome and vulnerable to bugs
  • Thinking: 2. Search
    • Employs search algorithm to find an optimal or near-optimal solution
    • Pathfinding in strategy games is a common use of Search technique.
  • Thinking: Flip-Flopping Decisions
    • When decisions are made, there must be mechanisms to ensure that decision is made within reasonable time periods.
    • Imagine an agent that has to evaluable decisions every frame!
      • Agent will be paralyzed because it “flip flips” between two states.
    • Reaction times might help keep it from happening every frame
    • Must make a decision and stick with it
      • Until situation changes enough
      • Until enough time has passed
  • Sense-Think-Act Cycle: Acting
    • An agent's sensing and thinking steps are invisible to player.
    • The only visible step is agent Acting.
    • Important step: Acting is how player witnesses "intelligence" in your game.
    • Numerous agent actions are possible, for example:
      • Change locations
      • Pick up object
      • Play animation
      • Play sound effect
      • Converse with player
      • Fire weapon
  • Acting: Showing Intelligence
    • Agent can only express intelligence in terms of vocabulary of actions
    • In modern game's, an agent's repertoire can include thousands of animations.
    • Current games have huge sets of animations/assets
    • Imagine a game where an agent is to die, but he just sits there and dies — your game will look really dumb.
      • Agent should cower, or scream a death cry with accompanying animation
  • Extra Step in Cycle: Learning and Remembering
    • Learning and Remembering is an optional 4th step.
      • Without it, the agent never improves, never adapts to a particular player, never benefits from past events or information it witnessed or was told.
    • Not necessary in many games
      • Agents don't live long enough
      • Game design might not desire it
  • Learning
    • Remembering outcomes and generalizing to future situations
    • Simplest approach: gather statistics
      • If 80% of time player attacks from left, then expect this as a likely event.
      • Your game agent should execute a flank attack on the player's right!
    • Adapts to player behavior
  • Remembering
    • Remember hard facts
      • Observed states, objects, or players
    • For example
      • Where was the player last seen?
      • What weapon did the player have?
      • Where did I last see a health pack?
    • Memories should fade
      • Helps keep memory requirements lower
      • Simulates poor, imprecise, selective human memory
  • Remembering within the World
    • All memory doesn’t need to be stored in the agent. It can be stored in the world
    • For example:
      • Agents get slaughtered in a certain area
      • Area might begin to "smell of death"
      • Agent's path planning will avoid the area
      • Simulates group memory
  • Making Agents Stupid
    • It is usually very easy to create game agents that will trounce the player
      • Just make agents faster, stronger, more accurate!
    • Sometimes necessary to dumb down agents, for example:
      • Make shooting less accurate
      • Make longer reaction times
      • Engage player only one at a time
      • Change locations to make self more vulnerable, e.g. in a FPS
  • Agent Cheating
    • Players don't like agent cheating
      • When agent given unfair advantage in speed, strength, or knowledge
    • Sometimes necessary
      • For highest difficulty levels
      • For CPU computation reasons
      • For development time reasons
    • Don't let the player catch you cheating!
      • Consider letting the player know upfront
Audio Programming
  • Overview
    • Audio in games is more important than ever before
    • Audio events can be triggered by:
      • In-game events (e.g. firing a weapon, explosion)
      • Locality (e.g. ambient effects from the game environment)
      • Via scripts (e.g. dialog, a cut-scene)
  • Programming Basic Audio
    • Most audio processing hardware perform in similar manner
      • E.g. panning, volume and pitch control, sound channels
    • Learning fundamental concepts of audio programming is important
  • API Choices
    • Two free audio rendering APIs (application programming interfaces)
    1. DirectSound (part of DirectX API) (most popular)
      • Freely available as part of DirectX SDK.
      • Supports only Windows platforms
    2. OpenAL
      • Newer API. Designed as aural equivalent of OpenGL
      • Available on multiple platforms
    3. Proprietary APIs and 3rd Party Licensable APIs
      • Typically available on consoles
    • If you intend to work in gaming audio, you need to be familiar with several API systems.
  • Basic Audio Terminology and Physics
    • Amplitude
      • Measurement of a sound wave's pressure
    • Frequency
      • Measurement of the interval between wave cycles, typically measured in Hertz
    • Pitch
      • The perception of frequency
    • Tuning
      • Musical distribution of frequencies over keys
      • Western music standard: 12 keys in an octave
    • Decibel
      • Measures sound amplitude (which is a measure of its power)
      • Decibels measure perceived difference in loudness between two sounds, not absolute loudness.
  • Digital Representation of a Sound Wave
    • Most common technique known as sampling
    • Sampling involves measuring the amplitude of the analog wave file at discrete intervals
    • The frequency of sampling is known as sampling rate
    • Each sample is typically stored in a value ranging from 4 to 24 bits in size
    • The size of the sample value in bits is known as the 'bit depth'
    • Music CDs have a sample rate and bit depth of 44.1 kHz (samples/sec) and 16 bits (sample size)
  • Modern Audio Hardware
    • Permanent Storage (Hard Drive, Optical Disk, ROM)
    • Data may require optional software decoding at this point (e.g. MP3)
    • Memory Buffer (may be located in either system or dedicated RAM)
    • Sound Channel Processing (perform 2D or 3D processing tasks)
    • Hardware mixing of all the channels and digital to analog signal conversion
  • Sound Playback Techniques
    • Two basic playback methods:
    • Play sample entirely from memory buffer.
      • Used for small sound samples.
    • Stream data in real-time from storage medium
      • Streaming is more memory efficient for very large audio files, such as music tracks, dialogue, etc
      • Streaming loads in a small portion of the sample. When more data is required, it is fetched from storage and replaces the old sample.
  • Sample Playback and Manipulation
    • Three basic operations
    • Panning is the attenuation of left and right channels of a mixed sound, resulting in spatial positioning within the aural stereo field
    • Pitch allows the adjustment of a sample’s playback frequency in real-time
    • Volume control typically attenuates the volume of a sound
  • Compressed Audio Format
    • Compressed audio formats allow sound and music to be stored more compactly.
    • Two classes of compression schemes:
    1. Bit reduction codecs generally are lightweight (e.g. ADPCM)
      • Most popular: ADPCM compression is implemented in hardware on all the major current video game console systems (Xbox, PlayStation 2, GameCube)
      • ADPCM compression is fixed at 4:1.
      • Less computationally intensive than MP3.
      • Simple compression algorithm makes available more audio memory.
      • Not normally used in PC games as memory in PCs are abundant.
    2. Psycho-acoustic codecs often have better compression (e.g. MP3)
      • Most famous: MP3
      • Other formats: Ogg Vorbis, Windows Media Audio
      • Uses sophisticated algorithms to encode sound by discarding audio data that human ears cannot normally hear.
      • Allows variable compression (unlike ADPCM compression)
      • Require substantially more computational horsepower to decode
  • MP3, Ogg Vorbis, Licensing and Patent Issues
    • The MP3 format is patented. Any commercial game is subject to licensing terms as determined by Fraunhofer & Thompson Multimedia, the holders of the patents
    • Ogg Vorbis is similar to MP3 in many ways, but is open source and patent-free (royalty-free)
    • Be aware of patent and license restrictions when using 3rd party software
  • 3D Audio: Introduction
    • Two sets of data required when working in world coordinates:
    • Listener Data, composed of world position and orientation (virtual microphone in the world)
    • Source Data, composed of sound position, orientation, velocity, etc (virtual sound source in the world)
  • Programming Music Systems
    • Two common music systems
    • MIDI-based systems (Musical Instrument Digital Interface)
    • Digital audio streaming systems (CD audio, MP3 playback, etc)
  • Advantages and Disadvantages of MIDI
    • MIDI: industry-standard protocol that enables electronic musical instruments, computers and other equipment to communicate, control and synchronize with each other.
    • Sends digital data "event" messages
    • Actual music data size is negligible
    • Easy to control, alter, and even generate in real-time
    • High quality music is more difficult to compose and program
    • Only effective if you can guarantee playback of a common instrument set
  • Other MIDI-based technologies
    • DLS (DownLoadable Sound) Format, a standardized format for instrument definition files
    • iXMF (Interactive eXtensible Music Format), new proposed standard for a container format for interactive music
  • Advantages and Disadvantages of Digital Audio Streams
    • Digital audio uses digital signals for sound reproduction.
    • Involves conversion of an analog signal into a digital signal at a given sampling rate and bit resolution.
    • Superb musical reproduction is guaranteed
    • Allows composers to work with any compositional techniques
    • Some potential interactivity is sacrificed for expediency and musical quality
    • Generally high storage requirements
Game Production and Management
  • Game Development Management
    • Iterative Development
      • Concept of "iterative" development is commonly applied.
      • Model incorporates circular three-stage process: design, prototype, evaluate.
    • Iterative Development process is repeated over and over again as needed until the game is no longer a prototype — but a complete game.
    • Iterative Development vs Gold Plating
      • Iterative Development is the opposite of "Gold Plating"
      • Gold plating: where development team adds "bells and whistles" to a product, often costing time and money.
    • Effective management in game development
      • Involve the team in the planning stage, and be flexible with the scheduled deadlines when necessary.
      • Encouage employees to discuss problems with you so that they do not grow into unmanageable ones.
      • Don't panic when problems arise, and don't personalize problems.
      • Make sure employees have several uninterrupted hours of work each day.
      • Don't work regular hours when you've asked your team to work overtime.
  • Game Documentation
    • Game documentation is created during the concept, pre-production, and production phases.
      • Intention: convey project components to team members and prospective partners (e.g. publisher, manufacturer, licensor).
    • Documentation serves two purposes:
      1. Ensure that team members understand their roles in the development process.
      2. Convince companies to develop, fund production, or otherwise help the game a reality.
    • No strict documentation standards exist yet in industry.
    • Different documents are required at different stages
      • Concept
      • Game Proposal
      • Game Design Document
  • Game Documentation: Concept
    • Concept ("Pitch" document)
      • Conveys the goal and purpose of the proposed game.
      • Helps management assess whether or not the game idea is viable, timely, and feasible.
      • Purpose of document: sell the idea to funding sources, publishers, or other decision makers in the company.
    • Contains:
      • Premise: What's the mood and unique 'hook'?
      • Player motivation: How do players win?
      • Unique selling proposition: What makes your game unique?
      • Target market: Portion of audience most likely to play the game
      • Genre
      • Target rating: In relation to ratings provided by the ESRB.
      • Target platform and hardware requirements: Mobile, wireless, PDA, PC, console etc.
      • License: Is your game adapted from a licensed property?
      • Competitive analysis: How does your title compete with what is already out there?
      • Goals: What are your expectations for this game as an experience?
  • Game Documentation: Game Proposal
    • Follow-up to Concept document
    • Describes all the previous items but in more detail.
    • Purpose of the document: present the details of the game to a company or prospective partner already interested in the idea.
    • Usually around 10-20 pages
    • Contains:
      • Hook: What attracts players to the game and keep them there?
      • Gameplay: Challenges, paths and activities in the game.
      • Online features: Where approriate.
      • Technology: Are special software or hardware technologies used in the game?
      • Art and Audio features: Do you intend to hire a well-known game composer or artist?
      • Production details: Including development team composition, budget and schedule.
      • Backstory: OVerview of everything that has taken place prior to beginning of the game.
      • Story synopsis: The main story idea, and how gameplay will reflect the story.
      • Character descriptions: Include each primary character's name, physical description, personality characteristics, background and history, and relevance to the game's story.
      • Risk analysis: Discuss all the things that can possibly go wrong with the project, e.g. difficulties recruiting personnel, asset-protection provisions, reliance on external sources for key technology components.
      • Development budget: Estimate of all the costs of bringing the game to market, along with estimates of all anticipated income.
      • Concept art: Concept drawings, sketches of characters and scenes related to the game.
  • Game Documentation: Game Design Document
    • Game Design Document (GDD)
      • Much longer than the concept or proposal document
      • Often about 50-200 pages.
      • Purpose of document: is to be the "reference guide" to the game development process.
      • Focuses on gameplay, storyline, characters, interface, game rules.
    • This document needs to specify enough detail that you could, in theory, play the game without the use of a computer.
    • Contains:
      • Game interface: Include each passive and active interface to be used in the game.
      • Character abilities and items: Acquired, non-acquired, combat, defense abilities of each player and non-player character.
      • Game world: E.g. cinematics, art, gameplay, animation, characters, pickup items
      • Game engine: Include information on what the game engine can or cannot do (e.g. number of characters present simultaneously, number of animations per character, camera and game view restrictions)
      • Art bible: Establish the look and feel of the game, and provide a reference for other artists to work from.
      • Technical design document: Describes the specifics of the game engine, and compares it to other engines on the market.
      • Project plan: Outlines the path taken to develop the game.
      • Test plan: Constructs test cases, and a testing checklist.
Gaming and Contemporary Issues
  • Why do people play video games?
    • Goals
    • Stages
    • Real-Time Interaction
    • Facilitating Community
  • Audience and Demographics
    • Every published video game at its core is a business venture designed to make money.
    • Demographics can guide what kinds of games are financially feasible to produce.
    • E.g. Tells you (very generally) who is buying and playing what
  • Audience and Demographics: ESA 2003 Survey Results
    • Provides broad brushstrokes
    • Snapshots of a particular place and period of time
    • What information stands out?
      • 50% of all Americans play games
  • Audience and Demographics: ESRB (Entertainment Software Rating Board)
    • EC (Early Childhood)
    • E (Everyone)
    • E10+ (Everyone 10+)
    • T (Teen)
    • M (Mature)
    • AO (Adults Only)
    • 32 different "Content Descriptors"
  • Audience and Demographics: ESRB 2003 Statistics
    • 57% of games received an E rating
    • 32% of games received a T rating
    • 10% of games received an M rating
    • 1% received an EC rating
    • 70% of best-selling console games were E or T rated
    • 90% of best-selling PC games were E or T rated
    • Demographics research is one tool that can shed light on how a society uses and interacts with games.
    • Also provides answers to who within society is currently playing games.
  • Societal Reaction to Games
    • Societal reaction to games not normally favorable.
      • Perceived as "kids stuff".
    • Two issues are of concern:
      • Legal issues and notorious games.
      • Additionally, violence in games has garnered a lot of attention because of youth violence.
    • Legal Issues: Night Trap (1992)
      • Undue attention given quality of the game
      • Content comparable to a B-grade slasher movie
      • Misleading press reports about the player's role
    • Legal Issues: Mortal Kombat (1992)
      • Featured quasi-realistic violence
      • Virtual gouts of blood
      • Home release drew attention where the arcade release was largely ignored
    • Legal Issues: 1993 Senate hearings
      • Industry was called to the carpet
      • Threatened with government regulation
      • Created a 12-point plan for self-regulation
      • Birth of the ESRB
    • Legal Issues: Doom (1994) and the 1999 Columbine Massacre
      • Two students armed with automatics went on a shooting rampage. Killed twelve students and a teacher before killing themselves.
      • Shooters were known to play Doom
      • Lawsuits were initiated against the industry, but eventually dropped
    • Legal Issues: Grand Theft Auto: Vice City
      • Haitian-American Rights Groups protest game content, launch Federal case
      • Rockstar Games changes game content
      • Lawsuit moved to Florida courts in hopes of a stringent ruling
    • Legal Issues: St. Louis County Ordinance
      • Ordinance was passed regulating game access
      • Lawsuit filed by the ESA
      • Judge upheld ordinance specifying that video games did not contain speech
      • Ruling was over-turned
    • Games and Youth Violence
      • Current studies on games and youth violence are not flawed and not definitive
      • How does one define "violence" in the context of video games?
    • Root of All Evil, or Good, Old-Fashioned Fun?
      • Games are seen as meaningless fun
      • Games are also seen as a troubling source of youth violence
      • Are these views contradictory?
  • Cultural Issues
    • Worst... Stereotype... Ever
      • Shadow Warrior (1997) lampooned Asian cultures and stereotypes
      • Japanese-American community wasn't amused
      • Risk of offending market
  • Cultural Issues: Foreign Diplomacy
    • Germany
      • Germany has The Index, which is a list of banned games
      • Partial list of controversial elements include Nazi iconography, red blood and extreme violence
    • China
      • Has a long history of banning video games
      • Controversial elements include changing historical facts, recognizing the sovereignty of disputed territories, and being anti-communist
    • Japan
      • In the past, banned games for sexual content, and they generally avoid violent games.
      • An exception is EA’s Medal of Honor: Rising Sun, a game that depicted the Pacific campaign in WWII. Turned out to be very successful: sold 200,000 copies in the first two weeks in Japan.
  • Cultural Issues: Cultural Acceptance
    • The rules are... there are no rules.
    • Violence and sex may lead to a game being banned.
    • ...Or they may not.
    • Past bans may be the only accurate predictor of what game types are truly objectionable to a specific culture.
  • Society Within Games: Online Behavior
    • Computer games see the entire range of behavior: good, bad, and ugly.
      • The Good: socially constructive and beneficial events. Often participated by large communities.
        • Everquest Weddings
      • The Bad: behavior stemming from playing games that alters player’s human habits or the way he interacts with other humans.
        • Addictive properties
        • Online rivalries becoming offline rivalries
        • Games contributing to erratic offline behaviors. E.g. twitching?
      • The Ugly: extreme behavior that can result in emotional or physical violence towards other humans.
        • Disinhibition and deindividuation occur because of perceived anonymity.
        • Hate crimes
    • Society in the online world has to come up with ways to deal with these issues.
    • Tools
      • Moderators and game wardens
      • Communication tools (e.g. say, private say, group say, world say in an MMORPG)
      • Fan sites to discuss gameplay and community outside of the game

Ikebana Exhibition

Went to Japanese Association, Singapore today for an Ikebana (Flower Arrangement) Exhibition with my CCA today.

I went to school this morning at 9.30am, because there was first supposed to be a subcommittee interview. Thank God I switched places at the Director's List student helpers with Jian Shun, or else I would find shit clashing to no end. XD Like poor Yuhaimi, helping out at the Director's List and yet having to attend this interview at the same time. I really pity him.

Aaron was already there at the second floor's corridor between the LTs at the Applied Science when I went there, where we were supposed to wait. I was killing time by reading Reader's Digest, lol. Once again saw that guy from Engineering School whom was in our group during the orientation. He told me, "Sorry, but I forgot your name.", but I admit, I ought to be more apologetic than him. Heck, I didn't even remember his name, forget about forgetting it. ^^"

Aaron was called in first for the interview, making me theorize that they are calling people in according to alphabetical order. I gave my Engineering friend pats on his shoulder, because his name was "Xu Yuanfa". I seriously don't want to know how long he has spent waiting at that corridor this morning. XD

Waiting at the corridor, I realized that it wasn't just an interview for the Anime and Manga subcommittee, but for all subcommittees as well, so that raises one question for me. "Just where the heck is Kenny, who plans to join the Cuisine subcommittee?" I called him and greeted him good morning with this rather rude question, "Oi, where the hell are you?" XD

For some reason, the two people interviewing me kept wanting me to ask questions. The chat went something like this:

Interviewer 1: So, do you have any questions to ask?
Me: Umm... *thinks* No.
Interviewer 2: Are you sure?
Me: No.
Interviewer 1: So you are joining our subcommittee without any questions?
Me: Umm... *thinks* Yes.
Interviewer 1: Are you really joining without any questions?
Me: Yes.
Interviewer 2: Don't you want to know what our subcommittee does?
Me: ...Not really.
Interviewer 2: Are you really sure you don't have any questions...?
Me: *thinks, "Okay, I have a question now. When the hell can I get the fuck out of here?" -.-*

Yeah. It was that bad. Stop asking me to ask questions, I'll ask questions myself when I actually have any. =.=

After both Aaron and I are done with our interviews, we called Kenny, asking him where he is, and went to the library after he told us that he is there. Turns out there is a class coming over to take possession and control of the LTs, lol, so they had to shift the location of the interviews to the library. Aaron and I went to the sixth floor, where Kenny told us he is, and saw him inside a room being interviewed by like five people or so.

And then in the library, Aaron and I saw a girl with a ponytail... wearing a shirt with the Uchiha clan symbol on her back!! O_______O Holy!! I thought the Uchiha clan was all massacred, with only Sasuke and Madara living now! I can't believe I'm actually seeing a living, breathing, walking Uchiha with my own eyes! :P



Aaron and I started planning on what we should do to Kenny after he gets out, and Aaron takes out all kinds of thick, hardcover books from the bookshelves nearby and suggested whacking Kenny with them. ^^" In the end, when Kenny walked out, I launched myself at him, stretched out my left hand and roared, "CHIDORI!!" The interviewers in the room, seeing this, all laughed out loud. XD

After the three of us are done, we took bus 69 to Tampines Bus Interchange, then went to Tampines MRT Station, took an MRT to City Hall MRT Station, then took yet another MRT to Orchard MRT Station. Freaking hell, there's so many people on the MRT. =.= We reached Orchard MRT Station, got our tickets, sat down there listening to each other's songs on our handphones, waited for Kenny's girlfriend to come, and that's basically it.

While the MRT that we were on was stopping at Paya Lebar MRT Station, I took three pictures of the construction site nearby, showing the progress of the Circle Line.







And while we were waiting at Orchard MRT Station for Kenny's girlfriend to arrive, we had a look at Kenny's EZ-Link card, and I instantly went, "What the hell??"



Just in what way does the photo on the card look like this idiot down here??? O______O



At Orchard Road, we walked quite a distance to some bus stop, and there, boarded a shuttle bus to Japanese Association, Singapore. Whoa, that place was rather big and nice.



Saw some koinobori in there as well. I remember watching about them in a certain Doraemon episode when I was young, but meh, details are fuzzy and I couldn't remember much. XD



Went into the exhibition and took whatever flowers look nice to me. Unlike some other people there with me, they were taking pictures of every single flower.



Doesn't this just remind you of the ruins in Clow Country in Tsubasa: RESERVoir CHRoNiCLE? o.o









Argh~!! Doesn't this just look as if the vines would spring into action anytime and start whipping you, like all plant monsters do?? D:



I wouldn't have take this one if Aaron didn't go, "So cute~~!".





This one looks rather funny, haha.





Took photos with Aaron outside. Neither turned out well. D:





Now I know why Kenny calls himself "Cuddling" online. He does nothing but cuddles his girlfriend the whole day!! When the shuttle bus reached Orchard Road after leaving Japanese Association, Singapore, I was like, "Are you guys coming along, or do you want us to leave you alone here so you can continue cuddling the whole entire way...?"

Kenny and his girlfriend went shopping, so there's only Aaron and me left, the two of us heading home. The girl from the Uchiha clan (who told me that her name is Clarice or something, if I didn't hear wrongly) was also heading to Orchard MRT Station, so she led us there. If not, the two of us would be wandering around Orchard Road for all of eternity, since we have no sense of directions. How nice of her. ^^



Took this photo of this tower at Orchard Road, 'cause I kinda like this tower. Mmm-hmmm. I look like a tourist, going around and taking photos.

We reached Orchard MRT Station, and she stayed behind to wait for her friends, while Aaron and I headed to Simei and Tampines MRT Stations respectively, then home.





Fishing level 84, mwahahaha.



Wow, I totally didn't expect to receive these Microsoft Word and Excel certificates, but... how nice. ^^

Friday, May 30, 2008

名も無き戦士になる為に

名も無き戦士になる為に
幼き少年は━
步みを止めはしなかった
Namonaki senshi ni naru tame ni
Osanaki shounen wa -
Ayumi wo tome wa shi nakatta
To become a nameless warrior
This young boy -
never stopped walking onward



Just a summary of what Java has been taught in this week's PRSP lectures and tutorial.

Input

Methods available in the Scanner class for input are:
nextInt()Read in an integer
nextDouble()Read in a double
nextBoolean()Read in a boolean
next()Read in a word
nextLine() Read in a whole line

You need to create a Scanner object first before using the methods here.

Example



Operators
  • An operator performs a specified operation on its operands and returns a value.
  • The operands can be a variable, a literal, or an expression.
  • Java Operators can be divided into these categories: arithmetic, relational, conditional, bitwise, logical and assignment.
  • Operators that require one operand are known as Unary Operators and Operators that require two operands are known as Binary Operators.
  • Binary Operators
    OperatorUseDescription
    +op1 + op2Gives the sum of op1 and op2
    -op1 - op2Subtracts op2 from op1
    *op1 * op2Gives the multiplication of op1 and op2
    /op1 / op2Divides op1 by op2
    %op1 % op2Gives the remainder when op1 divides by op2
  • Division in Java
    int / intgives int (all decimals lost; truncated)
    int / doublegives double (accurate)
    double / intgives double (accurate)
    double / doublegives double (accurate)
  • Unary Operators
    OperatorUseDescription
    ++op++Increases the value of op by 1
    --op--Decreases the value of op by 1
  • Assignment Operator
    • An assignment statement is a statement to assign a value to a variable.
    • The value of a variable may be changed by the following form of statements
      • Variable = Expression;
      • The variable Variable is assigned the value of the Expression.
    • The symbol = is called assignment operator.
    • Example:
      • int year = 1;
      • double amount = 550.0 + 25.50;
    • The assignment always proceeds from right to left. That is, the value of the operand on the right is stored into the variable on the left.
    • Note: the left hand side must be a variable name and not a constant or expression with operators.
  • Special Assignment Operators
    OperatorUseDescription
    +=op1 += op2op1 = op1 + op2
    -=op1 -= op2op1 = op1 - op2
    *=op1 *= op2op1 = op1 * op2
    /=op1 /= op2op1 = op1 / op2
    %=op1 %= op2op1 = op1 % op2



Lol, Naruto chapter 402 is quite good. Looks like Sasuke has got his Eternal Mangekyou Sharingan [getting his Mangekyou Sharingan from the death of someone close to him (Orochimaru), and then getting his Eternal Mangekyou Sharingan from the death of his brother (Itachi), at the same time, lol), and he is going to crush Konoha, which is exactly opposite of what his brother Itachi wants.

Sigh... No choice, Sasuke has gone too emo. So, he renames his team from "Snake" to "Eagle", and oh, guess what? There we see Madara hanging out with Sasuke and his newly-named Team Eagle. What, Madara, intending to join Eagle as well, huh? Oh well. Have fun, the five of you. At least Sasuke's new Eternal Mangekyou Sharingan looks beautiful. XD



Bleach chapter -100 confused the hell out of me. Just when will this darn flashback end?? D:

Thursday, May 29, 2008

Roflmao

Because we would be having our last and final VisLit lesson today (there's still Storyboarding though. Oh well...), our lecturer told us last week that we would be having our lesson at 11pm, two hours later than usual, since we are simply just there to just pass up our assignment and be off. Jian Shun called me at 8.53am, asking me where everyone is, hence the title of today's blog post. Roflmao. XD

Ate breakfast at block 201 this morning. Had roti prata, and what the hell, they gave us plastic disposable utensils?? How the heck are we supposed to cut the roti prata with those soft and weak shit, lol? My mother was especially complaining like fuck about it (*rolls eyes*), but hey, I thought about it. "A skilled swordsman can cut the hardest of materials with the weakest of swords." So, why not? I'll just take it as training anyway, lmao. Take a look at my plate after I'm done.



It looks worse than a shield that has been through many battles in my opinions, lmao. At least better than my mother. She was trying to cut the roti prata using freaking chopsticks.

So I went to school at 10.40am, and saw Jian Shun, Kuan Wei and Aaron already sitting outside the classroom and waiting. I got my Reader's Digest out and joined in the wait. The lecturer came after quite a long wait, and we went into the classroom behind her. We were supposed to present our assignments as well, and looking at how nicely everyone did theirs, I have only this to say: "Oh fuck. That's it, I'm dead."

Kenny disappeared halfway, leaving his assignment on his chair. Kenny, I always knew that you were short, but since when did you become so short that I can't see you even when you are sitting on your chair?



Oh, and coincidentally, both Qiyang and Jian Shun ended up doing "69" (since one looks just like the other when flipped 180 degrees). I guess they are both fanboys of Hisagi Shuuhei (who has a "69" tattooed on the left side of his face) and Muguruma Kensei (who has a "69" tattooed on his stomach).



The lecturer let us off at 12pm, so we got a two-hour lunch break before APEL. Went to Business School to eat with Yong Han, Jian Shun, Qiyang and Jurene. Poor Yong Han, lol, he was forced to sit alone on a separate table. He also left his wallet on the table after he left to return his plate, so Jian Shun and I thought of hiding his wallet. Jian Shun initially wanted to hide the wallet in his pocket, but he realized that he would be the first person Yong Han suspect, so he passed it to me, and I hid it in my pocket. XD

He only realized his wallet's absense ten minutes later just when we were about to leave. XD We went to the bookshop because Jurene, Jian Shun and Yong Han wanted to buy books. I saw Pokémon Adventures volume 27 out as well, so I bought it. XD I was expecting to get laughed at for it, but instead, Yong Han and Jian Shun came asking me for earlier volumes and wondering if they could borrow them. Lol.

Went to the library to kill the rest of the time. A lot of people from our class were already there at the standard usual spot, with some people playing their laptops while most watch. I was reading my newly bought manga. Hehe. ^^ Qiyang was treating the library as an inn or something like that.



Left for APEL lesson with Jian Shun, Jurene, Qiyang, Wan Xiang and Shi Hui. For some reason, it was just our care person demanding $4 from us for the Settler's Cafe last time, then a little chat with him, and then off we go. Didn't understand why I even bothered to put my APEL booklet into my bag.

After that was PRSP lecture. Seriously didn't know what made me went. It was so horrible that after forty minutes, my whole body started screaming, "LET ME OUT! LET'S GET THE FUCK OUTTA HERE!! ARGH~~!!"

Went home with Aaron and Kenny. Aaron forgot to return me my VisLit stuff that I asked him to take for me. XD Oh, and we saw a cute little cat sleeping under the bench at the bus stop.





I couldn't stand waiting for Tsubasa: RESERVoir CHRoNiCLE chapter 191 to come out anymore, so I found and downloaded the RAW, and went to find a translation for myself. XD



I love the design on Syaoran's jian.



Sakura: ...Can I just call you Syaoran?
Syaoran: ......
Syaoran: ...Ah.
Sakura: ...Syaoran.
Syaoran: *blushes*

Hahaha, so cute!! Reminds me of the times back in Cardcaptor Sakura when Syaoran would always blush when he's around Sakura! XD



Lol, Touya looks rather handsome when he was young.



Touya calling Syaoran "ガキ (gaki; brat)", and the two of them staring at each other, with fireworks flying inbetween them... Doesn't this just remind you of the good old times in Cardcaptor Sakura, when we don't have clones running around? Looks like Syaoran learnt well from his father.



Lol, Yuuko is such a dishonest merchant. Sakura gave up her magic staff so her son could go to Clow Country, yet she only allows him there for seven days?

Ugh, it's one whole entire month before Tsubasa: RESERVoir CHRoNiCLE chapter 192 comes out. I think I'm going to entirely forget that I even read this manga or something. =.=





A close-up picture of the hilt of Syaoran's jian for my own future references. I suck at drawing it at the moment. XD



EMO!!