Tuesday, September 25, 2007

"Grand Prix"

Mini-Race Game Concpet Document

Summary


The “Booster Buddies” project will be complemented by the addition of a race game that will allow the player to take their customized car for a spin around the virtual streets of Safety Town and/or a related environment. The Booster Buddies’ race game, here codenamed “Grand Prix”, can be accessed by the player once they have attempted every mini-game in Safety Town at least once. Pedestrian and vehicle road safety issues are features of the game challenge presented by “Grand Prix”. Obstacles, environmental features, and real-time racing situations raise issues of pedestrian and vehicle road safety, to which the Clek booster seat is the preeminent answer. However, this mini-game component emphasizes fun as a reward for participating in Safety Town, and does not have any requisite learning objectives or a need to measure player learning.

Key Features


• Race your pimped-up Cleck Adventure Ride through the Safety Town environment
• Race against mildly competitive computer controlled cars
• Avoid track obstacles for the best lap time
• One minute lap time for short attention spans
• Cartoon violence to illustrate the importance of safety seats.

Creative Overview


The key to success for the “Grand Prix” mini-game is linked to the successful implementation of two major design features: (1) simplicity of control, and (2) environmental immersion.

Cinematic Introduction


Players will have the best experience in “Grand Prix” if they are completely clear how to correctly play the game before it begins. For users from ages 4 to 8, this introduction to the mini-game is best accomplished through the use of a cinematic introduction, or “Introductory Movie”. Like the popular children’s 3D animated series “Backyardigans”, the “Grand Prix” cinematic introduction will employ a refined sense of cinematography to the movements and adjustments of the active camera, in such a way that clearly related the functions, obstacles and objectives of this driving mini-game.

Game Play Overview


The “Grand Prix” mini-game can be divided into three major phases, each of which is integral to the game play experience. The first phase is the introduction, where the game narrative, controls and objectives are presented to the player in the form of a real time movie using 3D characters (Oto and Ollie) and the 3D environment (Safety Town). The second phase is the actual game play, where the player navigates their car through the streets of Safety Town, avoiding obstacles, and out-pacing the other cars in the race. The third and final phase of the game is a real time 3D cinematic sequence that shows the conclusion of the race, the winners circle, and the conclusion of the Safety Town narrative.

Control


Typically, driving games are controlled using either the keyboard (as in the arrow keys), or the joy stick. “Booster Buddies” has been designed for deployment to the World Wide Web, and must utilize input control devices the most universally available to the target audience. Therefore, the “Grand Prix” racing game controls must use keyboard, mouse, or a combination of the two. Additionally, there is no technical limitation that prohibits redundant control of the player’s car implemented for both keyboard and mouse. In consideration of the user experience, it is strongly recommended that redundant car controls for both the keyboard and mouse be implemented.

The use of the mouse to control the car suggests that graphical controls in the form of buttons be added to the game HUD in a spatial configuration that mimics the layout of the arrow keys on the keyboard. The reason for including the mouse as an available control device for the car is that the use of the mouse is required to get into the game, and should not be abandoned at the time that actual game play begins.

Camera


The default camera view of the “Grand Prix” mini-game is the third-person overhead following camera. The use of an in-car dashboard view suggests that the Safety Town HUD dashboard not be visible in the third-person overhead view. Because the presence of the dash board suggests that the player is inside the car, when he/she is outside the car, the dashboard is naturally not visible.

Track


The “Grand Prix” track will be designed so that the typical lap time is about one minute. Even though it is short, the track will take the player through a selection of Safety Town environments, including a neighborhood, the industrial area near the factory, and a short section of the highway that has been laid outside of the town.

Obstacles



  1. Pothole alley: between the Factory and a warehouse is “pothole alley”. The player must swerve back and forth through the alley to avoid potholes that are either empty or full of splashable water.

  2. Construction ramp: A drivable ramp of durable construction material such as sheet metal is identified as being for construction through the use of black and yellow construction arrow decals. The player can use the ramp to jump over a railroad crossing to save valuable lap time.

  3. irt Ramp: A drivable ramp of piled up earth is placed in proximity to a construction site. The player can use the ramp to jump over a railroad crossing to save valuable lap time.

  4. Bridge: A bridge passes over the trace track, with a supporting column inconveniently placed in the middle of the road. This type of obstacle is used by games such as Project Gotham Racing to force the player to out of the middle of the road.

  5. Water puddle: There is a puddle in the middle of the track with shimmering water. But watch out: the puddle is deeper than it looks and will cost you valuable lap time if you don’t avoid it.

  6. Wrecker ball: Upon entering the construction area, a wrecking ball swings low across the track just in time to hit the player’s car if he is not moving fast enough (or driving too fast!). The player’s car will deform and veer off couse before it does an “Incredibles”-style rubber band snap back into place. This is an opportunity to use cartoon violence to show how well booster seats work when correctly installed.

  7. Ducks/kittens crossing road: There is a duck/kitten crossing right across the race track. The player must slow to a crawl to avoid hitting the cute critters as they cross. If not, the rubberized creatures will go flying away from the car like bowling pins being scattered by a bowling ball.

  8. School bus and school crossing: There is a school bus letting off kids at the side of the road. The rules of the road (and the stop sign that swings out from the side of the bus) indicate that drivers must stop and wait for the bus to unload all of its passengers. If not, a police patrol car may be waiting for you just behind the next hedge, which will cost the player valuable lap time.

  9. Street hockey game: Neighborhood kids are playing street hockey in the middle of the road. Slow down and wait for the kids to get out of the way, or plow into them like a bowling ball plowing into neatly placed bowling pins.

  10. Slow-moving dump truck: There is a slow moving dump truck making collection rounds through the town. Avoid it as it stops for garbage, or as it swerves left and right across the road.

Friday, September 21, 2007

The Winter of the Couch

There are going to be a lot of game sales this fall.

Something happened. I think it was just last year that was a dud. There are some great games coming out this year. I was just looking at a preview of Halo 3. The visual quality is much improved. The user interface is much improved. I even see differences in the physics. Finally, a game that begins to be worthy of their untold millions. Halo 2 was all Bungie's money and Microsoft's talent, when it should have been Microsoft's money and Bungie's talent. Halo 3 appears to be what remains of Bungie talent bankrolled by Microsoft.



On the other hand, Team Fortress is almost all designer talent, with very little in terms of technical innovation. The game appears to move very much like HL2DM, but the visual quality is unparalleled. "Be the Cartoon." I believe that this year's improvement in games less attributable to an increase in game design intelligence, and more attributable to a broad adoption of high definition video for both game play (what you buy) and game cinematics (what they sell you).



Speaking of visual quality, we watched yet another "Trailer/Feature" for Metal Gear Solid 4 Guns of the Patriots. It looks so great. To bad we will never get to play a game that looks that great. Not only is MGS notorious for being heavy on full motion video (where the user sits and watches and does not actively play,) I have come to the personal opinion that the in-game camera is entirely lacking in narrative contribution. In stark contrast to this kind of unimaginative use of the in-game camera is the Gears of War camera, which is dynamic, adaptive, maximized (as in the use of three depth-of-field effects on the camera at the same time), and very much apart of the scene (blood splatters onto the camera lens in the style of slasher flicks.) Worth mentioning with regard to the skillful use of the in-game camera as a narrative device is Jackson's "King Kong" game. The scenes where you play Kong is a shining example of how a third person camera can be used with a player character to make the player feel like they are staring in a movie.



So in my mind, the jury is still out on how cinematic a game should be. Lots of FMV does not make it. Some film makers have produced playable games of high cinematic quality (Jackson) while others have not (Wachowski). Halo 3 is offering more and more camera control, which is good. In the world of the computer, the camera is imminently scriptable, and should do more than just follow. But who can accomplish that without a vision for it? Anyway, things continue to improve (or, at the very least, evolve.) For that reason it looks like we will all be spending a lot of time in front of the HD console this winter, so you might want to keep these issues in mind :0)



For more game preview visit 1up.com.

Thursday, September 20, 2007

Schematic Illustrations

Development Environment





Ordinarily, I write my scripts with a strict left-to-right layout except for loops. For the sake of these screen shots, I re-arranged the scripts into the switch-back pattern that you see below. Do not be deceived: even tough Virtools offers you a two dimensional scripting interface, the instructions are translated into an extremely linear command stream for the computer. For example, if two "bIn" behaviour inputs are activated on the same building block at the same time, the one on top takes priority. If it appears that several behaviours are taking place at the same time, this is a result of the illusion produced by your computer operating at upwards of three billion cycles per second.

Panorama Script






This script was the level script at the time the Panorama VMO was produced. It was moved from the level to the canvas (so called "Plane White") when exporting the entire composition as an NMO object.

Behaviour Graphs





These are expanded behaviour graphs that were used in the Panorama script.

Object Load Script








This is the Object Load Studio script, deployed as a tidy web player. If you click the left mouse button, a flask will appear near the center of the canvas. Clicking again will make the flask disappear. This flask is contained in the Object Load Script VMO, and demonstrates how feedback elements from the loading script can be made to work with presentation elements contained in the loaded object.

Virtools Web Development

Loading Textures and Sounds at Runtime



Summary



By loading images and sounds at run time, both the file size on disk and the file size in memory can be drastically reduced for Virtools-based games and presentations. In this example, we take a composition containing one panoramic view, which occupies about 10 megabytes of memory on disk, and enhance it so that it displays a series of 70 panoramic images and plays a sound track of 21 songs, while occupying only about 200 kilobytes of memory on disk.

Panorama Object Load Studio

Overview



What is Virtools



Virtools Dev allows you to build video games, virtual worlds and interactive presentations that can be easily deployed on the World Wide Web. When a project is being developed in Virtools, it is called a composition, and the working file has a .cmo extension. Compositions that are exported to the “Virtools Player” (id est the “3D Life Player”), a file with the extension .vmo is produced which can be run from a web page using the HTML < object > tag. By default, both the Virtools composition and web player files save texture files (such as Targa .tga, DirectX .dds, JPEG .jpg, or Portable Graphics Network .png) and sound files (such as Fraunhofer .mp3 or good ol’ Wave .wav) as raw data within the file itself according to Virtools’ proprietary algorithms. This method simplifies the directory structure for the project, but tends to produce large file sizes, especially when high-quality or large-size asset files are used.

Problem Solved



Fortunately, the engineering team at Virtools has thought of everything, and is just waiting for us to learn the basics before the maelstrom of Virtools development power is fully unleashed. Somewhere hidden within the Virtools Dev package is every conceivable tool a game developer would want for developing beautiful, robust, web-based games and virtual interactions.

Game Dev Best Practices



One of the most fundamental techniques in optimizing the delivery of game content is the serialized loading of game assets at run time. Simply put, once the game has been initialized, it continues to pull itself up by its boot straps by loading in images and sounds one at a time or as they are needed. Simple “loading screen” animations are used to provide feedback to the user, assuring them that the game has not crashed and will begin momentarily. In addition to loading textures and sounds at runtime, Virtools can also load complete “objects” at run time, duplicate and modify objects as need, and even construct entire 3D models at run time from code.

Virtools Composition: CMO


Games, virtual worlds and interactions are built as “compositions” within Virtools. A composition is equivalent to a document in Flash or a project in objective C. Depending on the preferences set on the Options menu, the images used as textures in a composition can be saved within the composition in a “raw” format that relies on Virtools own compression algorithm, or they can be saved using a specific file format and compression rate. For example, a picture can be stored within a composition in JPEG format at 50% compression. If you do this, the image will suffer from pixelization and will not look its best, but the image file will remain fairly small on disk. The main advantage of working with a composition is the WYSIWYG layout of about a dozen “managers” that Virtools provides. Some of the most important managers are the “Schematic” layout, which allows you to build and edit scripts visually using graphical building blocks, the “Level Manager” which gives a line-item inventory of the assets in a composition, the Hierarchy Manager, which allows you to observe and set parent-child relationships, and the Attribute Manager, which is an interface for attributes worn by objects. Although it is technically possible to run a CMO within a Web browser, the recommended practice is to create a Web Player VMO for deployment to the Web.

Virtools Web Player: VMO


It is possible to make both desktop applications (.exe) and 3D Life Player applications (.vmo) from a Virtools composition (.cmo). The process of building a VMO from a CMO is similar to the Flash process of building a .swf file from a .fla file. In the case of Virtools Dev, select “Export to Virtools Player” from the File menu. Select a destination folder and name the 3D Life Player file in the “Save As” dialog box. To create a Web page (HTML) with an imbedded VMO from your composition, select “Create Web Page” from the file menu. In the “Create a Web Page” dialog box, set destination folder, page title and Virtools player window size, and then click on Ok.

Virtools Script: NMS


The Virtools Schematic interfaces allow designers and developers to work with graphically oriented building blocks that effectively replace the need to read or write lines of programming code. (It is worth mentioning that Virtools offers the schematic interface for rapid prototype development. Once concepts and algorithms have been worked out in the schematic interface, they can be encapsulated into custom building blocks (the Run VSL building block), or replaced with runtime DLLs written in objective C.) Scripts can be applied to nearly any “object” within Virtools, including 3D objects, meshes, frames (another convenient abstraction), materials, textures… even the composition itself (referred to in Virtools as the ‘level’). Scripts are also swappable (in our example, we take a script originally written for the level and apply it to the canvas that displays the panorama), savable, and can be attached to objects programmatically at run time.

To save a Virtools script to the hard drive, right click on the script in the schematic view and select “Save As…” from the context menu. Select a destination directory and give the script a name. In the “Behavior Information” dialog box that follows, you have the option of entering the script’s author, version and description.

To load a Virtools script onto an object, right click on the name of the object in the “Level Manager” and select “Load Script…” from the context menu. Using the “Load File” dialog box that appears, select the script and press “Ok”. The script will then be loaded into the composition and attached to the object. An expansion triangle appears to the left of the object in the “Level Manager” view pointing right. Click on the triangle; it will point down, and show the script as a child of the object.

Virtools Object: NMO


A Queer Object Orientation


The Virtoos 3D Object is a data abstraction which associates a model with its meshes, materials, textures, scripts, and other real time 3D and 2D assets. For example, a “Car” object might have a “Car Body” mesh, a “Dented Car Body Mesh”, a “Car Body Paint” material, a “Car Window” material, a “Car Decal” texture, a “Car Script”, and perhaps a “Blow Up Car Script”. Even though these assets exist within the Virtools Level Manager as separate line items, they can be saved to disk as a single file. To do this, select all of the assets that you want to go into the Virtools object file (.nmo), right click, and then select “Save As…” from the context menu. You will be given the normal opportunity to find a directory for the object and choose a file name. This object file can then be imported back into a composition. To manually load an object, select “Import File” from the Resources menu. To load an object programmatically while the composition is running, use the “Object Load” building block.

Level as Object


The contents of an NMO file are not limited to one 3D Object, or even assets that are strictly related to each other. Because the Virtools object is an abstraction, it is implemented mostly for the convenience of the composition author. It is possible to save an entire composition as a single Virtools object, in the sense of an NMO. The caveat is that objects loaded into scenes cannot have a “level” script. (The level script will not appear when the NMO is loaded.) In our example, the script that controls the loading of images and sounds is removed from the “level” and attached to the plane object that acts as a canvas for the panoramic images. Thus, by creating a Virtools Object from an entire composition, the “Panorama_Object_09.nmo” object behaves in the same way within the “Object_Load_Studio_02_Web.cmo” composition as the entire “Panorama_09_Web.cmo” composition does on its own. (In terms of the 3D Life web Player, “Panorama_Object_09.nmo” behaves in the same way within “Object_Load_Studio_02.vmo” as the entire “Panorama_08_Web.vmo” does on its own.

Making it Work on the Web



  1. Upload the assets to a specific directory on the server (the panorama pictures to the images folder, the sound track mp3s to the sounds folder).

  2. Build the Panorama composition that loads pictures and sounds at run-time.

  3. Produce a Panorama VMO to test the code

  4. Produce a Panorama object (NMO)

  5. Upload the panorama object (.nmo) to the directory on the web server where the VMO will go.

  6. Build the Object Loader Studio composition that loads the Panorama object at run-time.

  7. Upload the Object Loader Studio VMO to the directory on the web server where the panorama object is located.

  8. Build a web page that will properly feature the Object Loader Studio VMO, and optionally include JavaScript with the page that will install the 3D Life Player on the client browser.




Summary


Virtools offers a number of techniques for optimizing and streaming real time 3D and 2D applications. Many of these techniques are embodied in the graphically oriented development building blocks Web Download, Texture Load, Sprite Load, Sound Load, Object Load, and Movie Load. Loading game assets programmatically has a number of manifest advantages over including all assets in a single file. Textures, videos, audio files and Virtools objects can be loaded into the memory of the client’s computer only before they are needed, and then deleted or replaced once they are no longer required. Load screen animations can be created to provide critical feedback to the user, whether the time to load objects is long or short. Game assets can be prioritized, so that less important assets are only be loaded if the current system performance and available resources are above a certain minimum set by the developer. Textures and meshes of a higher quality can be used, especially for feature assets that occupy centre-stage. Perhaps most importantly, loading multi-media assets into a presentation at runtime removes the practical limit on the scale of Web-based 3D and 2D application

Wednesday, September 19, 2007

Friday, September 14, 2007

Now I Really Need to find Blake Kilgore



Old school is the new school. "The Real Battle" circa 2001 by "B. Kilgore and C. Birch". Sounds to me like a great sound track for a spiritualized war game.

http://sphereofhiphop.myshopify.com/products/circumcised-mind-the-real-battle

F 'n Tab

Multi-Thousand Dollar Photoshop Lesson



Okay, here is how you save yourself a couple of grand by not going to graphic design school: to look really spiffy during that graphic design interview, be sure and use as many keyboard commands as possible. These days, jobs go to those who work fast over those who work well. Today's handy dandy Photoshop Keyboard Shortcuts are courtesy of Craig Alguire.

The F Key



To cycle the current Photoshop document through the featured display mode (hiding other documents), press F. Hitting it three times cycles through the feature display modes. First the document is featured with a grey background, then featured a black background, then 'normal' display with other documents visible.

The Tab Key



To toggle the display of floating windows and toolbars, press the Tab key.

Ergo, pressing F twice and Tab once will show the current document in the center of the screen with a black background. This black background is said by some to be crucial for accurately evaluating the colours of your working document (presuming that you have already accounted for the colour shift introduced by your monitor, graphics card chip set, and of course the difference between RGB and CMYK.)

Happy 'Shoppin'.

Wednesday, September 12, 2007

Future Game Designer

This morning I have been joining game-design oriented groups on facebook. (I think I have signed up for ten so far). I just joined the last one " A group of Future Game designers" about ten minutes ago, and this is what I wrote on the group wall:

"Technically, I moved from being a 'future' game designer to being a 'present' game designer just last week. Congratulations to me. Actually, I was a student before, and now lucky enough to be hired by the school to work on a paid project for a couple of months. The future is still yet to be created (along with my game). Game design is more than just making models or scripting interactions: it is about creating digital artifacts that govern human experience. (That sounds cooler than I thought it would.)"

Yah, I may need to remember those words for some as-yet-unforeseen purpose.

Properly speaking, only good designs are permitted to govern human experience for any length of time. Bad designed are dropped like the proverbial hot potato.

Sunday, September 9, 2007

A Little Secret Called Virtools

Virtools® is a full featured integrated content development environment which allows you to rapidly develop video games, virtual worlds and marketing presentations for any computerized environment that supports DirectX or OpenGL. Virtools allows you to import a wide variety of 3D models, character animations, video, audio, image and data including XML. Once imported, nearly any conceivable scripted or interactive behavior can be applied to your presentation assets. Compositions can then be deployed to the Web, the desktop, or other presentation environment with as much ease and reliability as the Adobe Flash® integrated content development environment.

Typically, Virtools is used to develop games, virtual worlds, or interactive marketing applications. The steps that end users go through to install the Virtools “3D Life Player” browser plug-in are the same as those for Flash, Shockwave® and 3D Groove® technologies, is fully supported by the .NET interface, and can be automated with server-side scripts.


Toronto Virtools Users Group

The Toronto Virtools Users Group is a community of professionals and hobbyists who are interested in building interactive digital content on the Virtools development platform. Members include game designers, industrial designers, graphic and Flash media designers, virtual world artists, traditional media artists, programmers and internet technologists. The mission of the TVUG is to foster the community Virtools users by providing information, networking opportunities, and an outlet for creative work.

Everyone is Welcome

Everyone is welcome to sign up for the TVUG news letter and attend the monthly users group meeting, regardless of their level of knowledge or interests. Meetings include short presentations from members of current or recent projects, feature presentations by guest speakers, and time to socialize. The TVUG news letter includes entry level tutorials, technical topics, Virtools news, and a list of recent job postings that mention Virtools. Even if you don’t work with Virtools full time, staying in touch with the TVUG means that you will stay in touch with an exciting and emerging interactive content development platform.

Tuesday, September 4, 2007

How to Avoid Phishing

I opened two e-mails in my mailbox this morning. As for the first one, I get that kind of message fairly often. As for the second one, I don't get that kind of message very often at all. When I opened the e-mail titled "FREE CAREER Seminar with Training and Job Offer (50-70K)" from one 'URVI SONI', I knew that it was not a legitimate e-mail -- one that would be addressed to me, and even better from someone that I know -- but I was curious to see if it was connected to all of the job search activity that I have been conducting recently.

The e-mail begins, "Hi,

"I am writing to you from MLC College of Business, Technology and Healthcare.


"We are a career transition college providing services to Consultants and students to develop unique ERP/ERM consulting skills which typically would enhance their chances of employment / more productive employment (if already employed) from current 10-20% to 80-90%. The college unlike other colleges focuses on building real-life skills based on training that will create a new breed of highly paid executives in the industry."

I hope you are not reading this too carefully. Really I just scanned it for proof of BS. Anyway, it got funnier. "We have specifically selected your resume based on your experience and skills as we feel that you are an ideal fit for a Career transition into a business consulting area like SAP, Compliance Act - Sarbanes and Oxley (SOX) etc." Now, rest assured at this point that I am thouroughly not interested (not interested in the Seminar; completely interested in URVI's spam mail practice.) because SOX is old hat. The "Hi," without my name is enough to let me know that this looser didn't even take the time to use all of the scripting features in his e-mail spammer.

So that was that. All of a minute's e-mail read. It got more interesting when I opened the very next e-mail message, titled "An Important Message to Our Valued Monster Customers" by one 'Monster'. The bottom of the e-mail was actually signed (they used a gif of the guy's signature)

"Sincerely,
[gif]

Sal Iannuzzi

Chairman and CEO
Monster Worldwide"

I won't take the time to reproduce the gif file here. This second e-mail is what I call a legitimate e-mail: this particular CEO is trying to save his career because there was a major security breach at his information-based company. Among other things, Sal said, "As you may be aware, the Monster resume database was recently the target of malicious activity that involved the illegal downloading of information such as names, addresses, phone numbers, and email addresses for some of our job seekers with resumes posted on Monster sites." In another place, Sal also said, "The Company has determined that this incident is not the first time Monster’s database has been the target of criminal activity. Due to the significant amount of uncertainty in determining which individual job seekers may have been impacted, Monster felt that it was in your best interest to take the precautionary steps of reaching out to you and all Monster job seekers regarding this issue. Monster believes illegally downloaded contact information may be used to lure job seekers into opening a “phishing” email that attempts to acquire financial information or lure job seekers into fraudulent financial transactions."

This is the point where I need some reader feedback. By "a 'phishing' email that attempts to acquire financial information or lure job seekers into fraudulent financial transactions," is he not talking about the same old guy in some African country who has all this money locked up in US accounts and he just needs your signature and social security number and five thousand dollars and then he'll gladly share all of his money with you? So now there is some guy in Mississauga (the seminar is "Thursday 6th Sept, 2007 Timing: 5:30 PM Local Time") ready to literally or figuratively beat me up and take my money.

People beware!

Fortunately, I have been on the Internet long enough that anyone who wants to use my e-mail address without bothering to use my name has all of the Google cache they need to get the job done.