Press Releases
2002
2001
2000
1999
1998
1997-1993

Events
2002
2001
2000
1999
1998
1997-1993

Press Reviews
2002
2001
2000
1999
1998
1997-1993

News & Events > Press Reviews 1999


Captain Virtools
by Darren Brooker in CGI

CGI looks at a tool from French developer Virtools that aims to create interactive, intelligent 3D content, and is largely aimed at the games development community.

The big bucks that games developers can now earn reflect the huge worth of the industry as a whole. But on an individual level, the development process requires some very specialized skills - programming in C or C++, 3D Studio MAX skills and a mastery of Photoshop - that take a long time to learn to a suitable level. This perhaps explains the popularity of level editing tools, allowing the uninitiated to quickly create their own game, albeit within the confines of another game (generally Quake).

However, there is a new set of tools that boasts this kind of ease-of-use, but offers a development environment that's not limited any pre-determined gameplay and interactivity. If you attended GDC this year you will no doubt have seen Virtools in action, you may have even seen it at the previous year's show in its early days.

Words like miraculous, awesome and revolutionary have been muttered about this solution - and not always by its developers, Virtools. Others were simply rendered speechless. Nevertheless, the French company has every reason to use such superlatives, the Virtools product line has already proven to be an acclaimed hit with European game developers and is currently in use on several upcoming game titles from Carapace Software, Pure Entertainment and Havas Interactive Europe.

The Virtools product line aims to allow any developer - regardless of 3D programming expertise - to easily prototype or simulate behaviors associated with any 3D object used in a game. This eliminates months of tedious, time-consuming code development and allows game developers to concentrate on storylines, artwork and other programming milestones.

It does this in a development environment that has been likened to a three-dimensional version of Director. However, whilst the Macromedia product offers a very linear environment, Virtools allows the designer to assign behaviors to objects in the scene that offer the interactivity and intelligence necessary to build real 3D games. Furthermore, the straightforward interface and largely mouse-driven environment belie the power that lurks within Virtools.

The two tools on offer - Virtools Creation and Virtools Dev - offer two levels of development. The first is targeted at independent multimedia authors and companies seeking to integrate real-time interactive 3D into their content, whilst the latter offers an environment specifically designed to meet the needs of cutting-edge 3D game development. As such, Virtools Dev comes with all of the features of Virtools Creation, and also includes the Virtools SDK, giving developers low-level access to Virtools technology.

The Creation solution consists of several components, the most fundamental of which is the Virtools core engine, which forms the foundation of the Virtools technology. The Virtools application (the end user graphic interface) sits between the core engine and the user, with the standard behavior building blocks library providing the functionality to assign intelligence and interactivity to objects within the scene. There are over 200 behavior building blocks to kick off a project, and the Virtools Player, which is the final component, allows delivery both as a stand-alone exe file and as an browser plug-in for Web deployment.

All this will set you back $990, with the Dev flavor of the solution weighing in at $3,490, reflecting the power that the SDK brings to the serious games developer. And whilst this is where Virtools is being targeted most strongly, there are many other creatives who could benefit from this 3D content development tool. Graphic artists, programmers and multimedia authors will also be attracted to the way Virtools provides a firm foundation on which to build whilst focusing on content.

Building up
The process of building a simple game can be described in a single paragraph. The first step would be to import elements such as 3D models (from Softimage as well as 3D Studio MAX), textures, characters, sets and sounds into Virtools. Behaviors would then be attached to these entities to create interactions between them. The final stage would be to graphically assemble, control and tweak these behaviors into higher level elements that then form the foundation of the gameplay.

Virtools is an integration tool, clearly you still have to create the elements which you initially import. As such, it is designed to be used along with graphic content creation tools, such as 3D Studio Max for 3D modelling and animating and Photoshop for 2D artwork.

It is the combination of simple integration of this type of content with the power of behaviors that makes Virtools such an attractive solution: speeding up the overall game development cycle by enabling a seamless transition from prototyping to production. Using Virtools, team members can control and test game interactivity from the earliest prototyping stages, allowing gameplay to be immediately evaluated and refined throughout the development process.

Best behavior
It is plain to see then that behaviors are at the heart of Virtools. The concept of behaviors is a simple one: they describe the way "things" act and react in time and according to their environment. They are either made out of smaller behaviors, using Virtools's Schematic Editor, or programmed in C/C++. A behavior is the description of how an entity would act or react in a certain context or to a certain event. You can attach a behavior to many different objects (which will then behave the same way), and objects may have many different behaviors, for different times or different events, which can be activated in parallel or sequentially. A 3D entity, with its aspects and its behaviors, is the basic concept that you manipulate in Virtools.

Behaviors may be created, stored, loaded, organized, and most important, combined. Combining behaviors, as in a graph, is the preferred way of creating new behaviors in Virtools. Behaviors can be combined by triggering each other through events, or by exchanging parameter values or by exchanging messages. A group of behaviors may be enclosed, hiding its internals, and defined as a new behavior, with its own name and inputs and outputs, and then become a component of a higher level behavior.

For those serious enough to use the SDK (Software Development Kit) to program behaviors using C and C++, these then become available in Virtools as dynamically loadable code libraries (dlls). They have the same external structure (events, parameters, messages), and, apart from the fact that one cannot open them to modify their graph in Virtools's Schematic Editor, they are absolutely indistinguishable from graph behaviors.

Interface
Before this begins to sound a little too complex, the simple manner in which behavioral blocks can be assigned is largely thanks to the Virtools interface, which consists of multiple windows. In the default view configuration, a 3D Layout window occupies the top-left section of the interface. This displays the content of a project in a real-time 3D environment and provides tools for creating, selecting or manipulating 3D entities (such as 3D objects, lights, cameras and curves) as well as navigation tools. This will be very comfortable for any regular MAX user. At the top-right of the screen is the Building Block area, which provides access to the Virtools behavior building block. Directly below these two areas sits the Level View, which allows you to monitor your current project and edit its elements in a hierarchical list. Finally, at the very bottom of the screen is the Schematic, which allows you to visually build the interactions between your project's 3D entities.

The solution ships with six simple lessons that take the user through the process of using Virtools. The first lesson involves importing an existing 3D scene and a 3D character into Virtools before applying behaviors to the character so that he walks around the scene using the keyboard. The tutorials then move on to moving objects and navigating, before introducing the basics of creating cameras. The fourth lesson shows the user how to implement basic obstacle avoidance for a character, using collision detection behaviors, along with attributes. The penultimate tutorial builds on the content of the last two to teach the user how to combine the existing behavior building blocks and combine them in the Schematic view into a flowchart (or graph) that performs the desired task - in this case a door that opens or closes when the player clicks on it with the mouse. The final lesson is more of a glossary, covering almost every editor or feature. With these tutorials under my belt, I certainly felt ready to jump in and attempt some relatively straightforward development.

Whilst I have some knowledge in the concepts involved in games development, I am by no means experienced in the creation of such content. This is of little consequence; it really is simple create things that are not complex. However, whilst you may not actually need the programming skills to create something really serious, you would definitely need the logic of a programmer if you are going to attempt this level of development.

MAX integration
As a tool largely aimed at the games development community, it is no surprise that the tool Virtools works best with is none other than 3D Studio MAX. Users of versions 2.0 and 2.5 can export models as well as animations in the Virtools format, using the MAX plug-in provided. Virtools also imports the .x format providing export from Softimage.

System requirements
The only problems I had with Virtools concerned finding a machine suitable to run the solution. The problem with the beta copy that I had, was that it did not support OpenGL, working with DirectX instead. This ruled out all my NT machines: my Intergraph TD2000, my Dell with Wildcat graphics and my IBM IntelliStation M Pro, which also features powerful OpenGL graphics from Intergraph. My trusty Windows 98 machine has an equally trusty Matrox Millennium card, but this too was no good, a 3D card is needed. However, the shipping version of Virtools supports OpenGL, so this will not be a problem to any purchasers. The ideal configuration to work with Virtools is a Pentium II or K6 II CPU, DirectX 5.0 or higher, at least 64Mb of RAM, and a good Direct3D accelerated board such as: ATI Rage Pro or an Nvidia solution.

My Win 98 machine would be suitable for playing content created with Virtools however, though this really depends on how you designed your content (models, textures, sounds, behaviors...) which will have the greatest impact on your target. An average configuration would be Pentium 133 with 16Mb of RAM and a Mystique or a Millennium graphics board with Windows 95/98 No 3D graphics board is necessary if you run it with the software engine.

Conclusion
Virtools is a powerful, robust and easy-to-use environment, whose scope is huge. This is what the North American market has been crying out for, and its sales should at least equal the success it has experienced in Europe. Virtools and Virtools deserve this success, the way this excellent product speeds up the whole game development cycle, allowing early prototyping and invaluable early evaluation of gameplay is quite astounding. We'll just have to wait and see just how widely its effect within the games development community is felt.