Wednesday, December 12, 2007

Unity, Day 2

Searching for the Unity equivalent of Virtool's "Set Active Camera", I found the weblog of Dominique Boutin at http://www.boutin.info/. Like myself, Dom appears to be new to Unity coming from Virtools. I have been working heavily with Virtools for about a year and a half because it is used in the Game Design Program at George Brown College.



I enjoyed working with Virtools and was able to publish some attention-getting games. There are a couple of reasons I am migrating to Unity. As an independent developer, Unity's $1500 Pro entry point is ten times cheaper than Virtools $15000 Commercial+Physics license. Gamers love shaders, particles and effects. Virtools has extensive shader support, but after a year and a half I am not convinced its shader support is as strong as Unity's. The "have to buy a Mac" factor is a bit of an obstacle, until you start customizing your Mac computing environment in was Windows makes thoroughly impossible. Plus, I have always been a fan of Unix. What makes it wall click though is Mono: .NET development on Unix/Linux has lead to even further cross platform development.

Dom says, "I'll blog about my experiences with Unity - especially from a Virtools Users perspective - while I learn and think about it, "
and wonders how Unity rates with regard to, �Windows .Exe deployment, custom plug-in using C++�

In evaluating Unity for my company, we had to get it to work with a custom DLL that our product uses. Unity passed the test of making function calls from a C# script to our custom C++ DLL. I am now able to make function calls from a JavaScript script that calls the functions from the C# �script� that have been mapped to the functions in the C++ DLL. All of this is to get data from an optical sensor system that tracks the movement of a real golf ball or a real football around the game area. (For details, see http://www.visualsportssys.com) Even though the DLL was compiled for an x86 machine and was not recognized by the MacOS, we were able to develop the test app on the Unity Mac, then deploy it on a PC, and have it successfully call the DLL.

"I finally started to learn Unity3D after having observed it from distance over a couple of years now. Something I've done and I am still doing for many real-time technologies like i.e. Ogre3D, Shiva3D, DxStudio, Visual3D, Blade3D, Quest3D etc. etc."

I am interested to see other developer's observations regarding Unity; especially how they adapt to the straight-ahead scripting (if you compile a script, isn't that a program???) environment compared with the Schematic approach (behaviour graphs and building blocks) employed by Virtools. Dominic has provided a short list of real-time dev platforms comperable to Virtools. I will have to round-out my education by getting some baseline familiarity with each of those. Personally, I have a background in Web development, so JavaScript and Boo (Python) are not a hurtle for me; but they are to many of my designer friends.

- Shannon

Wednesday, November 21, 2007

Macintosh Triumphant

I have had the luxury of receiving an executive tour of Visual Sports Systems facilities in Concord, Ontario. They really impressed me not only with their core game asset, which in many was both prefigures and superceeds the Nintendo Wii, but also with their knowledge of my favourite, Rapid Prototyping IDEs. So, the big news is,

Unity


Unity Game Development Tool
The Macintosh never had so much market equity as it does now. Unity gives every appearance of being the Virtools for the visual artist. The framework is very similar: graphical IDE, web player and plugin, reduced development time, rapid prototyping that leads to objective C development. The license is cheaper; certainly not as much support. But the idea that it is Mac based is the most interesting one of all, because to date game development on the Mac has been an inordinate chore.

Flash forward: the work group that will make a slick 3D composition IDE for the mac will follow it up with a slick modeling app.


So, dive in. Did I mention you'll need a Mac? Killer app. I love them all.

http://unity3d.com/unity/download
System Requirements

* Mac OS X "Panther" 10.3.9 or later
* Radeon or GeForce graphics card with 32 MB of RAM
* Will run fluently on any Intel Mac
* On PPC based Macs, we recommend a 500MHz G3 processor or faster
* Games will run on Windows 2000/XP and Mac OS X "Jaguar" 10.2
* Games will run on a Rage 128 graphics card or better, depending on complexity.

More on Visual Sports Systems



The day of full-scale in-home gaming is dawning.

Saturday, November 3, 2007

Today Was the Busy Day

Today, online, I created my first (and hopefully only) Facebook group: the Virtools Users Group. It is for people interested in doing interactive 3D, animations or games on the Web. Even on Facebook.


Russet Letter Day


The other major thing I did today online was build my first Facebook application. Nothing special, mind you. The traditional "Hello World". Worked great. Take a look.



Now, the only thing I will need from all of you is to install the 3D Life Player plug-in to your browser. This takes about three mouse clicks in Internet Explorer; about six in Firefox. Don't worry, it is no more complicated than installing the Flash plug in; it just that you haven't done it in so long. If you don't want to install the plug-in, that is OK. We are going to be working in 3D; we'll provide you screen shots to keep you updated.

Wednesday, October 31, 2007

Apparently, I'm an Easy Sell

With business partners like this, you'll see me doing Flash development, too.


OpenLaszlo is an open source platform for creating zero-install web applications with the user interface capabilities of desktop client software.

OpenLaszlo programs are written in XML and JavaScript and transparently compiled to Flash and, with OpenLaszlo 4, DHTML. The OpenLaszlo APIs provide animation, layout, data binding, server communication, and declarative UI. An OpenLaszlo application can be as short as a single source file, or factored into multiple files that define reusable classes and libraries.

OpenLaszlo is "write once, run everywhere." An OpenLaszlo application developed on one machine will run on all leading Web browsers on all leading desktop operating systems.



I played around with the Laszlo in 10 Minutes test drive available here.
From the perspective of a scripter, this is a nice and seemingly worthwhile encapsulation of a lot of the trudgery required by Flash. Anyway, at least it will be fun to play with. Fun is half the battle. Laszlo is worth an install.

Tuesday, October 30, 2007

Shannon is Swimming in a Sea of VES*

Shannon is swimming in a sea of VES* with only software licenses to cling to.

From http://www.studica.com/ChaosStudios/

Chaos Group V-Ray v1.5
Click here for more information...After its enourmous success on the market V-Ray has become the renderer of choice in big production studios accross the world. Feature film productions, multi-million dollar game productions, huge and small architectual visualizations have trusted their visuals to V-Ray. Wouldn't you too? V-Ray has become a benchmark for speed used by many hardware vendors and other renderer developers to test against. Richest set of features, cost-effective and production-ready

V-Ray was developed by Chaos Group in an effort to raise the bar on the rendering and raytracing standards set by more expensive systems, but at a fraction of the cost. The result is a rendering tool that offers an incredible suite of features that should satisfy even the most hardcore users without breaking the bank. And the output will stun users in terms of both realism as well as overall control.

Base Price: $1000
Function: Making models look realistic

From http://pressreleases.autodesk.com/index.php?s=press_releases&item=93%3C%2Ftd%3E

SAN RAFAEL, Calif., July 31 /PRNewswire-FirstCall/ -- Autodesk Inc. (NASDAQ: ADSK), today announced Autodesk 3ds Max 9 software, the latest version of its world-renowned 3D modeling, animation and rendering solution. 3ds Max 9 supports 64-bit technologies, providing digital artists with the tools for next-generation games development, design visualizations, and film and television visual effects production....The Autodesk suggested retail price for 3ds Max 9 software is US $3,495. The Autodesk suggested retail price to upgrade from 3ds Max 8 to 3ds Max 9 is US $795.


From http://pressreleases.autodesk.com/index.php?s=press_releases&item=295%3C%2Ftd%3E

SAN DIEGO, Aug. 6 /PRNewswire-FirstCall/ -- Autodesk, Inc. (NASDAQ: ADSK) today announced Autodesk Maya 2008 modeling, animation, visual effects and rendering software. The new version of the Academy Award-winning product focuses on providing improved workflow efficiency for artists in the film, television, game development, design and manufacturing industries.... Maya 2008 will be supported on the Windows and Linux operating systems (64-bit and 32-bit versions), as well as Mac OS X for Intel-based Macintosh and PowerPC computers (32-bit version only).... Autodesk suggested retail pricing is US$1,999* for Maya 2008 Complete (Standalone) and US$6,999* for Maya 2008 Unlimited (Standalone). The upgrade price from Maya 8.5 Complete to Maya 2008 Complete is US$899*, and the upgrade price from Maya 8.5 Unlimited to Maya 2008 Unlimited is US$1,249*.


From http://www.gamedev.net/features/reviews/productreview.asp?productid=518

As for price, it lies somewhere in the "if you have to ask, you can't afford it" category. There are a lot of different extensions and servers and such. but if you want enough product to produce a game, you should count on spending about $9,500. It sounds like a lot, but you do get quite a bit for your money. You not only get a commercial-quality 3D engine, but you get a complete game-authoring environment, web-player, and a half-dozen company support options. Even if you budget your time at a few bucks an hour, the development environment and support will likely level the playing field over cheaper solutions.


From http://www.virtools.com/solutions/ordernow/virtools_publishing.asp

Solutions > Virtools Publishing Rights

Virtools™ Publishing Rights

The Virtools™ 4 license enables you to create, develop and distribute content using the 3D Life Player - both offline and online - available free on our website. Publishing rights/licensing fees depend on the type of application and support.

Below is a chart showing which types of projects require an additional publishing license. Please contact us for further information, or if you have any questions.


From http://www.devmaster.net/engines/engine_details.php?id=46

Price
Not Public


*VES: Very Expensive Software

Monday, October 29, 2007

Searching for a Heart of Gold


We are a group of game designers. We can honestly claim to be the top 3-D for Web development team in Toronto. We have made advergames and edugames. We are familiar with a variety of gaming and content-presentation technologies including Flash (2-D) and Virtools (3-D). We can offer the right business manager a team of experienced, dedicated, bright and ambitious game designer-producers. We are looking for the right business manager to be all things to a start-up game design studio.


Who We Are



Our work group is composed of three recent graduates of the George Brown College School of Design Game Design – Advanced Digital Design program. We have worked together for over a year both as students and as game design professionals. Our team members are Craig Alguire, Sue Chin and Shannon Ware. Examples of the team’s work are attached as “Back_Seat_Bash.jpg” (Craig and Sue) and “Factory_Dayz.jpg” (Sue and
Shannon). Examples of these games in action can be seen on YouTube at http://www.youtube.com/watch?v=bWuJVixZq2Y and
http://www.youtube.com/watch?v=U09dxlP5ZJ4.



What We Do



Working as a team, we are able to produce high quality interactive games in either the Flash (which is principally used for 2-D motion graphics, interactions and games) or Virtools (used principally for 3-D motion graphics, interactions and games). We are able to produce concept documentation, concept art, game design documentation, project management plans, progress reports, game characters, environmental props, textures, animations, game logic (AI), levels, bug reports and project presentation.


What We Have to Offer



Working together as a team, we can offer the right business manager the opportunity to found a highly profitable game design studio or multi-media production company. We have worked together for over a year both as students and as professional game designers. Among the three most desirable aspects of a development project – low cost, high quality and fast delivery – we can offer the right business manager the opportunity to CHOOSE THREE.



Who We Are Looking for



We are looking for an individual who is capable of acting as the business manager for a start-up game design studio. The ideal business manager will be an enterprising visionary with a strong desire to make a name for his or her self in the video game industry, be a rain maker able to develop business, and be a project manager able to coach a highly creative team toward on-time completion. On top of all of these hard skills, the right business manager will be an individual of superior character with a heart of gold.

Summary



This team is currently busy completing the expansion to the Booster Buddies game. The scheduled completion date is November 15, 2007. We are on track to complete the game by this date. Once the game is complete, we will all be looking for work, and will likely go our separate ways. However, with the addition of the right personality, we can continue to function as a team producing high quality, commercially viable video
games. If you know someone who fits the description of a business manager provided in this letter, or if you are the one who fits this description, please contact us right away.

Sincerely,

Shannon Ware
Craig Alguire
Sue Chin

Saturday, October 27, 2007

The End of Auditory Occlusion

Sound design is an increasingly specialized field, except for the fact that every designer, even a game designer, is required to to make some amount of sound design decisions in the course of that designer's career. Breaking the types of sounds required out into functional categories is foundational to the ongoing process of archive building.

From Wikipedia, the free encyclopedia

* Hard sound effects are common sounds that appear on screen, such as door slams, weapons firing, and cars driving by.
* Background (or BG) sound effects are sounds that do not explicitly synchronize with the picture, but indicate setting to the audience, such as forest sounds, the buzzing of fluorescent lights, and car interiors. The sound of people talking in the background is also considered a "BG," but only if the speaker is unintelligible and the language is unrecognizable (this is known as walla). These background noises are also called ambience or atmos ("atmosphere").
* Foley sound effects are sounds that synchronize on screen, and require the expertise of a foley artist to record properly. Footsteps, the movement of hand props, and the rustling of cloth are common foley units.
* Design sound effects are sounds that do not normally occur in nature, or are impossible to record in nature. These sounds are used to suggest futuristic technology, or are used in a musical fashion to create an emotional mood.



The Foley artist on a film crew is the person who creates many of the natural, everyday sound effects in a film, which are recorded during a session with a recording engineer. Before the session, a project will be "cued", with notes kept about what sounds need to be created during the foley session. Often, the project will have a sound supervisor who will dictate what sounds need to be covered in a foley session, and what needs to be created by special (audio) effects, which is generally left to the sound designer. The roles of Foley artists, sound designers, editors, and supervisors are highly specialized and are essential to producing a professional-sounding soundtrack that is suitable for distribution and exhibition.

Sound effects and foley are added during post-production to dialog and real effects which were picked up by microphones on set. Sometimes (especially in the case of cartoons) there is no additional sound, and all the sounds need to be added by the foley artist and sound designer. The Foley artist may also accent existing sounds to make them more effective; enhancing the sounds of a fistfight may require thumping watermelons or cracking bamboo. Many Foley artists take pride in devising their own sound effects apparati, often using simple, commonly-found materials. Some "making-of" featurettes show Foley artists at work.

The term "Foley artist" is named after Jack Foley, one of the earliest and best-known Hollywood practitioners of the art. Foley began his career in the film industry as a stand-in and screenwriter during the silent era, and later helped Universal make the transition from silent movies to "talkies".

Monday, October 22, 2007

Not Fanatics but Fan Addicts

Once upon a time no particular producer I knew completed an extensive set of models for a game. The set was two days late in a rush scenario, was quite a meticulous labor of love, and attempted to make a lot of subsequent scripting assignments easier through the technique of pre-placement. Because this modeling set was completed by the producer, who had modeling skill, the actual impact on the project budget was no more than a couple of hundred dollars, taking the manager a couple of hundred hours in total to complete. It was meticulous, as I said, and a labor of love. Had a professional full time modeler done the work, in say, Vancouver, the set would cost around 2k at 2 1/2 to 3 weeks to complete; for essentially the same deliverable. The artist's lost is the producer's gain, even when they are the same person.



It is all well and good to use top professionals when building your interactive experiences, but if you could somehow bring the work from that special category of pre-professional, or semi-professional, to the market in the context of other apparently professional work, there should be some margin there, shouldn't there? Exploitation, for sure. I was fascinated by the biography of Roger Ebert, weren't you?

I love to throw around the big words. Speaking paradigmaticly, or otherwise, I would say that understanding the nature of the young designer is a pretty safe bet for any founding enterprise. Understand that they will go on to better things, they will take secrets, they will be unsatisfied, the pay will be just enough to live in this city. Everyone's always on their way out of the door; always looking for new talent for sure; an ever revolving door with only a couple months work planned ahead.

To start everything is up in the air and nothing is settled. One thing that is promised is that content developers are paid out of liquid assets, and not on spec. The operation is of such a small scale that there won't always be extra work; they are encouraged to pursue their own designs.

Regarding the platform, I find it a pretty handy device. You have a lot of options on the table; and at this point you should pursue everything relating to the type of media you want to produce. For a while I thought Source was it for me, with Steam as the distribution channel. Probably Steam is a better deal than Source, if you have a business model. My affection for Source was before I broke through with Virtools; and before I discovered how similar they really are at core. Anyway, bon voyage.

What's next for me is to get people who have the skill set to work on their own scripts. It's called production. It's a lot of ducking hassle, but its what gets the job done by the end of the day. Nobody likes to be managed. Too bad eh? Everybody likes to get paid.

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.

Thursday, August 30, 2007

It Begins

I was wondering who I should write to. I could address my blog to my wife, but then I would have to make it private and no one would know it exists. I could address my blog to the would-be game designer. I could even address it to the game and culture pundit. But I won't. No; the unfortunate recipient for all of these pointed missives shall be none other than yours truly. So that I can remember what I was thinking.

Rarely the Day



There are few times in life when a game player is denied a gaming experience because he does not own a Mac. I discovered a fairly old game today called "Sketch Fighter 4000 alpha", which looks like it was published in 2001 (I will have to dig a bit more to confirm this.) The game looks, well, fun. Now, to find a Mac and 19 bucks to buy it with.

More Serious Business



What I was doing when I found Sketch Fighter was looking for reference art for these little guys. They are more or less officially known as "Fisher Price People". They can also be found under 'Fisher Price figure'. They have a distinctive cylinder body, with no legs. The fact that they do not have legs makes them fundamentally different from Playmobil figures. Now you know.