At the very beginning of the new millenium I moved from the 680×0 family of Motorola microprocessors to the new RISC PowerPC ones by buying a brand new iMac G3 DV, soon to be paired (a couple of years later) with a revolutionary (for the times) 64bit PowerPC-based PowerMac workstation.
Those machines were simply astonishing fast, not only if compared to the old CISC architecture of the Motorola 680×0 series, but also to Intel processors (a PowerPC G3 was quite as fast as a Pentium clocked at double the frequency!); moreover, thanks to the fact that the most used development system, the CodeWarrior IDE, was able to cross-compile code for the Win32 platform and that a robust PC emulator was available as a third party software, it was possible to develop software for both the Mac OS X and the Windows environments!
Things were changing more and more in the videogame market, where games – thanks to the possibilities of the new hardware – were becoming very complex, requiring a big staff of programmers and digital artists to be completed in reasonable times. For those reasons I started to work more as a consultant for other companies than as an indie developer, and to teach courses (especially in the computer graphics and physics simulation fields) at the university. Nevertheless, I was still able to develop three projects by myself; a simple mobile game, and two sequels of the original Virtual Grand Prix racing simulator.
Virtual Grand Prix 2 (VGP2)
VGP2 was more a revolution than a simple evolution of the original Amiga game. In fact, less than 5% of the code was reused/adapted, so even if VGP2 can be considered a “spiritual” sequel it’s quite a brand new game altogheter.
First of all, thanks to the CPU power available, the dynamics engine was completely transformed. All the simplifications and look-up tables of the original game were removed, replaced by a robust set of C++ classes that, implementing industrial standards, can be (and in fact were) used to simulate the mechanical components of real racecars. More and more enphasis was put on matching and predicting empirical and telemetry data from real-life races, transforming the original gaming engine into a simulation tool that eventually became the AVC library.
The 3d engine was another revolution. It was developed as an independent library written in a very portable C++ and using as its foundation the OpenGL graphics library. Instead of something tightly coupled with the hardware it was intended for, as all the other graphics engines I have programmed so far, the aim (100% achieved) was a library that could easily be recompiled on different systems, thus allowing for a fast porting of the simulator.
I also began to use third party’s code, instead of writing everything by myself. For the netcode I used OpenPlay, Apple’s open reimplementation of the NetSprocket library. I still had to develop all the mathematics required to compensate the lag and implement in a robust way the online interaction (position, collisions) between players, not a trivial task when things move at >300Kph! But OpenPlay simplified a lot the development and gave VGP2 the possibility to race online against other players, a thing that was becoming more and more popular among “virtual drivers”.
In the end, VGP2 is a robust, competent and very realistic simulator that runs on Windows, MorphOS (an AmigaOS clone) and Mac OS X (VGP2 had the honour to be on Apple’s website as a featured game to showcase the Mac OS capabilities)! Even if it has no official licenses (no official names for teams and drivers, although a third party’s patch was available to “solve” this issue), the game simulates quite accurately the 2003 Formula One season. It allows for a single race mode, a full championship mode or online racing, it implements the full weekend (free practice, qualify sessions and actual race) and gives the player the possibility to fine tune the car setup, thanks to an integrated tool of telemetry. For Mac OS X it is also available an easy to use track editor, TrackDesigner2, so that new tracks can be developed (and old ones updated).
In this little Android game Piopio, Tucchero and Quaqua are using the sewerage system as a sort of underground and they’re popping out of your wc! You must throw’em back again into the wc and push the flush button, but you must be quick otherwise they’ll invade your house; and if you can flush more than one Beobo at once you’ll get a “combo” bonus!
“I Beobi” is a very simple piece of software that I developed more as an exercise, when I was learning the Android framework, than a full game; however, it’s funny and it’s free (the game can still be downloaded for free from Google Play).
Virtual Grand Prix 3 (VGP3 Engine)
The most notable enhancement was in the AVC library, the VGP3 physics engine; not only the library was further upgraded with some state of the art algorithms (as an example, VGP3 was one of the first engines featuring a fully deformable tyre body simulation through its QFE custom tyre model), but its flexibility was also exposed by the game so that many different vehicles could be simulated by simply editing some text config files.
Another big improvement was in the AI field: in order to drive brand new vehicles on previously unknown tracks, a very different approach has to be followed, a more human-like one; the VGP3 AI actually “learns” how to drive a (new) car on a (new) track by starting at a very slow pace and then improving lap after lap, saving its progress (best line, braking points and so on) in a persistent AI text file. The fact that computer controlled cars are thus no more following in a robotic way a predefined line but must be, in fact, aware of what is surrounding them gives them a far more advanced and natural behaviour also in the traffic. For this reasons VGP3 was acknowledged as one of the most realistic AI on the market and one that is actually real fun (and challenging) to race against for a human player.
A3e, the 3d engine, was heavily reworked, too. Fixed pipeline OpenGL rendering was abandoned and replaced quite everywhere with custom shaders based on energy conservation principles (physically based lighting models), in order to render the simulated 3d world in the most natural way; in the latest version(s) of the engine a realtime daylight sky model was available to render physically correct sun/sky/clouds depending on local time and latitude.
Those and other (minor) improvements made VGP3 a very different product than its predecessors. For that reason, the business model itself was changed: VGP3 was advertised more as a “car racing simulator engine” (the VGP3 Engine) than simply a “Formula One game”; the software was available only as a digital download product continually updated and upgraded; and users had the possibility to either play it as it was, enjoing its extreme realism, or join a friendly online community and, using the available modding tools, mod the VGP3 Engine and develop and share new vehicles, championship seasons or tracks with other users.
Many tracks were developed by third parties for VGP3, and also some interesting car series, such as the “Formula Fantasy 2009” by Jason Frabotta or the conversion of Mal Stoddart’s GrandPrixGames Super League mod. The VGP3 Engine was also licensed for other projects, for example it powered the Auto Sport Driving MacOS X-only car racing game or was used by a German company as the software to drive the 6DOF motion platform of a full racecar simulator.
The VGP3 Engine is currently no more commercially available for the consumer market; however, it’s still under active development, especially its dynamic engine. More information is available on the AVC page.