February 14th, 2006
This month we take a look at a fast paced, motorbike racing game called Turbo Spirit XT, by Neodelight.
The game features and impressively smooth 3D engine reminescent of games such as "Lotus" and "Outrun" and a great gameplay.

We'd like to thank Florian Metzger and Ulrich Tausend, from Neodelight team, for sharing with us some of the ideas and "secrets" behind their game.

Q: Can you introduce Turbo Spirit XT to our readers?
TSXT is a classic arcade racing game as we all know and love from "good old times". It's straight forward, fast and simple. TSXT is the sequel to our game "Turbo Spirit" which was released about 1 year earlier. Those two are - as far as I know - the only Flash-3D racing game in the web.

Q: How much time did it take to develop the game and how many people worked on it?
We worked on the game with 3 people (and a bunch of beta testers) for about a year. The game is based on the prequel "Turbo Spirit" so we didn't have to build the game from scratch..

Q: Let's talk about the gameplay. What are the main characteristics of Turbo Spirit XT?
It's totally arcade - straightforward, fast and simple (although not easy!). We tried generate a slot-machine like experience.
The only feature that breaks with tradition is the mouse-control. Mouse control gains more and more popularity in online games, so we tried to combine the classic arcade racing with the - for this genre very untypical - mouse control.

Q: How many levels are available?
The game features three leagues with a total of 8 tracks. The first league features 3, the second 6 and the third league all 8 tracks.

Q: What are the basic requirements for playing the game? (cpu, video card? etc...)
A standard PC, probably much older than 3 years.. The cool thing about TSXT is, that it's actually faster than the prequel Turbo Spirit, although it features much more graphic details. This comes due to our optimizations on the engine of the game.

Q: We have found the game extremely smooth. Does it use the latest flash player 8 features?
No, it's developed in Flash 7. The new features of Flash 8 wouldn't help speeding up the game. We developed our own optimization strategies which are actually more performant than the features available in Flash 8.

Q: What kind of optimizations did you implement to make sure the action is always fast and smooth?
First, the game flow is time-based not frame-based. That means that the game flows with the same speed, no matter how many FPS you have. On a slower PC or at a part of the track with many objects you will possibly see the FPS rate go down, but your bike will cruise on with constant speed.

Second we wrote the engine entirely in ActionScript2 which is incredibly much faster than ActionScript1. We spent much time on profiling the engine and optimizing each line of the core-code. This required doing some basic research on how Flash works, what actions consume how much time, where to simplify, where to buffer, ... Programming is a craft. Code gets better if you work on it.

Q: Can you talk a little more in detail about the 3D engine. How does it work? What techniques did you use?
The engine was inspired heavily by "Lotus II" on the Amiga. I stared at the games for hours trying to figure out how they did the graphics engine. At the moment, Flash is pretty much on the evolutionary level of the Amiga, so the Amiga games are a great inspiration. The funny thing was, that when I finished the engine, I had the same bugs as "Lotus II" has, so I knew I was pretty close to the original (The bug is: when driving very slow on the side of the track, the graphics behave a bit odd... try it out... it's not a real bug though, more a characteristic of this kind of fake-3D-engine).

The details are highly mathematical, so I won't be able to tell you much more without getting boring. The core-engine is very slim, it needs about 200 lines of code. It's very compressed, a bunch of complex formulas.. not much more.

Q: How do you create the racing levels? Did you create a special map editor?
The levels of the prequel "Turbo Spirit" were created with Windows Notepad... just plain text files with endless columns of digits... As this method was quite abstract we created a full featured level editor for TSXT. The new level editor loads into the game, so that you can edit the level while playing it. This guarantees fast and easy editing. The leveleditor is command line based, all editing commands have to be typed into a console. For example, the command "d lr 100 60-85" creates a random forest on the next 100 meters of road...

Q: It would be great if you could tell us about the AI used for the opponents. How did you approach the problem?
The AI of "Lotus II" is the simplest AI I've ever seen, the opponents just drive a zigzag course all the time. And still the game is much fun.... Our AI is a little bit more advanced, we implemented a basic rule-based AI. The rules are something like "If someone is driving in front of me and I'm faster then him, change the lane so I don't crash into him" or "If a left curve is in front of me, I try to change to the left lane"... As I said, very basic.

click thumbnails to
enlarge them.


















click thumbnails to
enlarge them.

Q: How did you manage game assets? Did you externalize them? If so, how?
The levels are stored in external plain text files. The code is mostly in external class files... The rest of the game is in one big FLA. This method was ok, as we worked in a very small team... For a bigger project I would have split the game into more files.

Q: The graphics seems mostly vector based with a few bitmaps here and there. Is this correct? Can you explain your approach?
The graphics are a hybrid of vectors and bitmaps. We chose the vector style to make it possible to mix vector and bitmaps as much as possible.
We used bitmap graphics to improve the performance of the game by replacing vector detail with textures.

Q: We found the mouse control great. Why did you choose that in favor of the classic arrow keys control?
The mouse is a analog input device and therefore allows finer control of the bike. Also, the mouse is the most natural input device for a browser based games as browsers are also mostly mouse controlled.

Q: Do you use an external editor for Actionscript? Which one would you recommend?
I'm using VIM for text editing. This is a very old command line based text editor based on the old unix VI first released in 1976. It lets you do highly complex regex based search and replace or cut and paste operations by typing short commandos into the command line. It's hard to learn and very unintuitive, but once you got it, it allows you to do magic with your fingertips.

Q: What were the most difficult parts to implement using Flash?
Performance...
Basically, everything is possible, it's just a matter of processing power...

Q: The game is distributed as a standalone executable. Did you use third party tools for creating the executable?
We are using ZINC to create an executable file wich displays at 640x480 fullscreen and can write encrypted highscores and stats to the hard disk.

Q: How are the sales going with Turbo Spirit XT? Do you see a potential for Flash in the field of occasional standalone gaming?
The free version of TSXT is incredible popular, but it doesn't sell well. We will probably change the license model for this game soon, due to this fact. Try&buy works best with puzzle games...

Q: Can you tell us about your future game related projects?
We are working on a range of games, most of them being sequels of our most popular games "Alex in Danger", TSXT and "Jump".

Q: Adobe has recently announced some great news about the future of Flash, namely the flash player 8.5 and Actionscript 3.0 What do you expect from these new updates? Do you find them interesting for game development?
Sound great to me - Flash is becomeing a full featured programming platform. AS2 is terribly slow in processing xml and strings in general. Also the data typing is very confuse in AS1/AS2... I think this is, because ActionScript 1 was concepted as a programming language for non-programmers. ActionScript 2 is somewhere in between and ActionScript 3 will finally be a "real" programming language with most of the features we know from JAVA or C.

back to SpotLight index



Have you played one of the best web games ever ?
Did you create the latest kick-ass flash game and would you like to seen it reviewed in these pages ?
Suggest us some high quality games to feature in our SpotLight!

Game suggestions HERE
| Homepage | News | Games | Articles | Multiplayer Central | Reviews | Spotlight | Forums | Info | Links | Contact us | Advertise | Credits |

| www.smartfoxserver.com | www.gotoandplay.biz | www.openspace-engine.com |

gotoAndPlay() v 3.0.0 -- (c)2003-2008 gotoAndPlay() Team -- P.IVA 03121770048