The "3D Game Machine," further referred to as "3DGM," is an API-style toolbox for arcade games and interactive multimedia applications development, it includes a real-time 3D rendering library and a whole set of routines for manipulating 3D virtual environments.
The main features are:
- simple easy-to-use interface
- very fast rendering
- full "virtual" 3D worlds with six degrees of freedom
- free-form texture mapping with optional flat-shading
- material and light properties
- convex/cave polygons with unlimited number of vertices
- unlimited number of light sources
- dynamic hidden surface removal
- special graphic modes for fast full-screen animation
- automated shape behaviors
¥ Who is 3D Game Machine intended for ?
3D Game Machine is especially destined to Game Developers, who wish to create fast 3D arcade games without the need to get into the problems of 3D algorithms. 3DGM is also intended for interactive multimedia and educational applications who need to run on a broad number of machines, from an entry-level color Macintosh to the latest PowerMac. 3DGM currently works on PowerMacs only, however.
¥ How fast is 3DGM ?
3DGM has been optimized especially for games, its aim is to achieve fluid animations through very high frame rates -- even at full screen resolution.
It supports free-form shaded texture mapping, with a speed of up to 15 frames per second on an 640 x 480 window completely texture-mapped with arbitrarily angled polygons, rendered on a PowerMac 6100/60. A speed of 10 frames per second is usually considered by virtual reality experts as the limit for an "interactive" experience.
¥ How many polygons per second does 3DGM draw ?
Although the "polygons per second" (pps) benchmarking unit is being used a lot in the computer graphics industry, it has absolutely no meaning when speaking about software systems!
Polygons per second are only relevant when in conjunction with hardware accelerators. The unit then usually applies to one triangle rasterizing unit, whose dimension is set by the hardware specifications.
In 100% software solutions, as with 3DGM, the pps depend on the processor type, the clock speed, the amount of cache, the size of the polygon, its orientation, the texture resolution, the number of light sources, and much more. This is why it is impossible to accurately measure "polygons per second" in this case.
To see how fast 3DGM runs, simply look at the "3DGM Demo" the "Mask", "Airplane", and "Venus" shapes show some extreme cases since they have 616,1378 and 1417 polygons, respectively. Note that a classic flight simulator never has such a high object complexity, its shapes typically have less than 40 polygons and it thus runs much faster.
¥ is 3DGM limited to static walk through scenes ?
No, by eliminating invisible segments on-the-fly 3DGM is very well suited to dynamic scenes, such as complex flight simulators (the hidden-surface routines do not strictly rely on BSP trees).
¥ How difficult is it to manage a 3D "virtual" world ?
3D Game Machine is a high-level library and operates on the shape level -- not the polygon level, it includes a hierarchical model for complex virtual environments. It is therefore much easier to manage 3D "virtual" worlds than with a low-level library. Each object in the virtual world has 6 degrees of freedom, and can be attached and detached at will. It also allows shapes to be given independent behaviors, such as absolute or relative movement and tracking, the toolbox then automatically takes care of them.
As a high-level library, 3DGM will remain compatible with upcoming Macintoshes and other computers; we will have modules to take advantage of the future hardware and software features -- while staying compatible with the older machines.
¥ How do I create 3D shapes and landscapes ?
3DGM features a set of routines for creating high level shape primitives. It also allows to stretch and assign material and textures in real-time, making the whole shape design process much more intuitive. We will include a mini-modeler in the 3DGM package before version 2.0.
The 3DGM file converter utilities currently read-in DXF and MiniCAD files saved in ASCII format, and transform them into a format directly usable by 3DGM. In the future we will also support other common 3D file formats, such as Apple's 3D Metafile format.
¥ How difficult is it to write a 3D game with 3DGM ?
The programming interface is very easy to use, and works with simple building blocks. Once the shapes are created, you need only to do the following steps:
- Initialize 3DGM (1 call)
- Initialize a ViewPort (2 calls)
- Initialize a World (2 calls)
- Load your shapes (2 calls per shape)
- Attach your shapes (1 call per shape)
- Set your shape positions
That's it! In these few steps you can already create a "virtual" world. In your central loop you call these other 3 routines:
Loop:
- Calculate World
- Calculate ViewPort
- Redraw ViewPort
- (change shape positions)
goto Loop;
Most shape and/or observer movements can be easily automated with 3DGM's "modulator" records. Each shape can be activated or disabled with a single flag.
With 3DGM, a simple flight simulator could be coded in less than 2 weeks! Check out the "HelloCube" demo with its source to see how 3DGM works.
¥ How does 3DGM fit into a program ?
3DGM currently works with Metrowerk's CodeWarrior C/C++ compiler, and will soon work on Symantec's Think C and Apple's MPW. It will come as a shared library, which you simply drag into your projects. For a commercial application you simply drag your program onto the "3DGM Merger" to include 3DGM into your application.
The source code will not be released -- unless we decide to discontinue 3DGM and no company wishes to resume its development, in which case it will become public domain (see License Agreement).
¥ Does 3D Game Machine work on a 68k Macintosh ?
The current version of 3DGM only works on PowerMacs, the 68k version is currently being debugged and optimized, and will be included in an upgrade shortly after the release of version 1.0.
Special attention has been drawn to backwards compatibility, this is why floating point instructions have been used only when absolutely necessary, i.e. when the speed gain was significant. Most of the code relies on integer arithmetic, to allow 3D Game Machine to run very fast even on 68k machines without a math coprocessor.
¥ How does 3DGM compare to OpenGL or Quickdraw 3D ?
OpenGL and Quickdraw 3D both rely on floating point arithmetic, high speed processors, 24-bit color, big memory buffers, and hardware accelerators. These requirements make it practically difficult, if not impossible, to use them as engines for arcade games, which need to run on all types of computers. For example, Quickdraw 3D doesn't run on 68k machines, and Apple recommends at least 16 megabytes of RAM.
Current tests show that 3DGM is much faster than both OpenGL and Quickdraw 3D in game-like situations -- where a full screen animation in 256 colors and flat-shaded texture mapping at 20 frames per second is more important than a Phong shaded, anti-aliased picture in 24-bit once every 5 seconds.
Although we use our own 3D rendering routines, we do not intend to compete with Apple, Microsoft or even Silicon Graphics in the race for the 3D market. Our aim is to achieve high speed before photographic quality, and to run on even low-entry machines. We will also introduce stereoscopic red/green 3D and other game-related features such as collision detection.
Virtually Unlimited is an independent company, and as such we are not trying to sell or otherwise promote related hardware or software products. We will peacefully watch the "War of the Lords" fighting for their share of the 3D market, and implement a bridge with whatever each does best. For instance, we will include a translator for Apple's 3D Metafile Format, which provides a long-awaited standard for encoding the polygon normals and texture coordinates of a 3D shape.
By focusing on the games' market, we are complementary to OpenGL or Quickdraw 3D -- professional game designers can create their 3D models with popular CAD software using Quickdraw 3D on a PowerMac 8100/110 with 32 megabytes of RAM and a $1000 hardware accelerator, but still offer a game that runs on even low-entry computers by using 3DGM.
¥ How about hardware accelerators ?
While 3D Game Machine's rendering engine structure is already prepared for upcoming hardware accelerators, it is primarily intended to run without them -- we want to provide a 100% software solution.
Hardware accelerators for the Macintosh will work with PCI buses, which will appear only later this year. It is therefore likely that the one million plus PowerMacs already sold might not take advantage of this feature, not to mention the millions of 68k-based ones. Hardware accelerators will therefore be primarily intended for the professional market.
There will need to be a large user-acceptance of hardware accelerators to obtain large volumes and dropping prices. Other factors might prevent hardware accelerators to sell under a certain price, such as the frequent dedicated memory chips for texture or z-depth buffers.
As for the Games Market, DOOM and Marathon both show that great arcade action can be achieved without additional chips.
¥ What computer(s) should a game run on ?
While it would be convenient for both hardware manufacturers and software developers if all computer users swapped their older computers for the latest lightning fast machine, it's more realistic to think that a large number of personal computers with limited processing power will remain in use during the next 5 years.
It is therefore crucial for Personal Computer Game Developers to remain open to those potential buyers, and to allow their programs to run on the broadest number of machines -- even if they might run much faster on the newer ones.
By using 3D Game Machine, you will benefit from the newer technologies while keeping the largest customer base.
¥ Does 3DGM run on Intel computers ?
3D Game Machine does not yet run on DOS or Windows machines, but we will have a ported version if we encounter significant demand.
The library is almost completely system independent, the few system calls lay outside the core code, and can be re-directed by the programmer at will (only in the professional version).
¥ How come 3DGM is faster than other rendering engines ?
The primary goal of 3DGM is to achieve very fast animations before photographic quality, this is why we chose the common 8-bit color mode instead of 24-bit, which is a lot slower to process, takes a lot more memory and doesn't even run on most Macs.
Every pixel being rendered only once into the view port, there is no cost penalty when using intensive texture-mapping over large overlapping polygons. It also allows to keep the frame rate more constant over time, thus smoothing the animation. Note that texture mapping occurs without distortion even on arbitrarily angled polygons, and is thus not limited to DOOM-style texture mapping.
3DGM is further optimized because it works on the shape level, instead of the polygon level, which is usually the case with general purpose rendering engines. By working on the shape level we can make a number of precalculations that do not slow down the central loop, and increase the overall performance.
The main code has been written in C, we have optimized the essential parts in assembly language to use the PowerPC to its fullest, the same is currently being done for the 68k version.
3DGM has a special graphic mode that allows very high speed rendering by redrawing only the pixels that change from one image the next. This "delta" mode is what makes it possible to have a full screen flight simulator -- even on a 21 inch monitor.
3DGM allows to have polygons with an unlimited number of vertices and hole punching, which, in software, render much faster than when tessellated into numerous triangles.
¥ How much memory does 3DGM need ?
3D Game Machine works well even in low-memory situations. The internal buffers operate in vector coordinates and therefore need much less memory than a typical z-buffer implementation. The HelloCube demo runs with only 800 Kb of memory.
¥ÊHow will 3DGM be distributed ?
Initially, distribution will be handled by us directly; we will send 3DGM via Internet or regular mail on a diskette.
Later on, in the demos that will be released on Internet via our FTP site, there will be a "hidden" coded copy of 3D Game Machine and its documentation. We will send an unlock code (a file), via electronic or regular mail, that will decrypt the "3D Game Machine" and install it on your hard disk.
¥ Customer support
Customer support will be handled through e-mail (see License Agreement).
¥ How much does 3D Game Machine cost ?
The basic version of 3DGM sells at US$ 200, we offer a student discount for this version, sold at US$ 120. To be eligible for the student price you only need to send or fax us a copy of your student card. Note that there are no special restrictions in using 3DGM if you get a student discount.
The professional version, "3DGM Pro" will sell at US$ 500, we do not offer student pricing for this version. Upgrading from the basic to the professional version costs US$ 350.
¥ How do you license 3DGM ?
For commercial software we have an application-dependent royalties scheme, which is 3 percent of the sales price. Freeware programs will not require royalties and can be distributed free of charge.
The License Agreement gives right to make direct sales, from Developer to end-user. If you wish to make non-direct sales of a 3DGM Application, like if you go through a publisher and/or distributor, you will need the "Zero Royalty Program". Check out the "3DGM_ZeroRoyalty" file for more information.
¥ What more does 3DGM Pro offer ?
The professional version of 3DGM allows to access some internal variables and data structures otherwise kept private in the regular version.
With 3DGM Pro you have access to the projected polygons, which you can modify before they are rendered into the screen buffer.
3DGM Pro also gives greater access to low-level structures and routines, such as the memory preferences for internal table allocation.
3DGM Pro also allows to re-direct system routines used inside 3DGM, for example if you would like to implement your own memory allocation routines.
¥ What payment do you accept ?
We accept international checks, and bank drafts (to the Swiss Bank Corporation) in US Dollars or the equivalent amount in Swiss Francs.
¥ When will 3D Game Machine be available ?
We are already taking orders for both versions of 3DGM, actual shipping dates will be mid-April for the regular version, and beginning of May for the professional version.
¥ How do I get more information about Virtually Unlimited ?
To obtain more information about us and our related products, you can reach us at:
Virtually Unlimited, SNC
24 Chateau-Banquet
CH-1202 Geneva
Switzerland
Internet : main@virtually.mcnet.ch
Compuserve : 100423,2721
ftp://FTP.VIRTUALLY.MCNET.CH/virtually
Voice Mail : (+4122) 310-0806 CET (central European time)
Fax : (+4122) 733-3115
Check out our FTP site at FTP.VIRTUALLY.MCNET.CH, in the "Virtually" directory for information about our other products. We will upload other games and demos in the future.
This document and the information it contains are subject to change without notice. Brands and products mentioned are trademarks of their respective holders.
Copyright (c) Virtually Unlimited, SNC / Geneva, April 1995
(To correctly view this document use Monaco font in size 9)