Q: We have found the game extremely smooth. Does it use the latest flash player 8 features?
Ugur: Yeah, the game uses lots of the flash8 bitmapdata and filters features for eye candy and to gain some performance. Bitmapdata features are also used for collision detection in some cases where its not needed to know exact angles on collision moment (for those cases where its not mandataory to have a physically realistic detection and response, so when its just about knowing there was a collision at all).
Q: Can you tell us a bit about the graphics? How did you create the environments and the truck models?
Jeb: The trucks and extra 3d assets where all created in Autodesk 3dsmax. The 2d elements I created where done in photoshop. All 3d models were modelled from reference of real trucks. Morphing was used to make the little car crashing in the levels. Since all the elements are layered 2d sprites from the 3drenders, I broke apart all the rigs I made for the trucks and rendered all in different layers. All elements were rendered in high res and also in higher framerate than what is actually shown... but it helps me to see how animations will look at full res rather than seeing it in low FPS.
Q: The cut-scenes are gorgeous, how did you produce them?
Jeb: Some of the last things I did before delivery was the cut scenes... It wasn't on the plan for the game and we needed a startup splash screen fast, so one day I was playing with the 3d hydraulics rig of one truck and made a little landing animation on dirt to see it bounce. I liked the result and finished the scene with textures, particles and lights. Ugur, the client and I liked the result a lot, and since it was pretty short and loaded fast we kept it in start screen. Then whenever I had extra time to animate something I did a new splash screen. I used the reactor dynamics engine in 3dsmax along with the toycar tool to simulate the bumpy driving and shock. It helped making the process fast and accurate. I did several of them.. don't know actually how many are ingame, I cant pass the 2nd cup LOL.
Ugur: Haha, well, some are not in the current online version, again some content for the expansion pack :)
Once Jeb was done with them, the cutscenes were then turned into flash video using flash 8's new OnVP6 compression option which allowed to further shrink the filesize while maintaining an acceptable look.
Q: What are your favorite modeling softwares/tools?
Chris: I like using Silo for quick low poly 3D development of simple elements e.g. the haystacks or the ring of fire and then take these and render them in Bryce for a fast realistic look with easy setups for lights and skies. Realistic level elements and distant backgrounds can easily be created right in Bryce.
Ugur: I rarely get to do 3d stuff as i'm mostly busy handling SN biz and doing the codeside on some of the games but yup, the rare times i get to do 3d art i prefer 3d max for prerendered content output and generally non web content and swift 3d for vector/low poly/smallest filesize content.
Jeb: As mentioned above, I use 3dsmax with Brazil Rendering System for everything. Combustion and After Effects for video post, and usually Illustrator/Photoshop for 2d. Illustrator was particularly useful because all the trucks textures are made in it to take advantage of the logos Wrigley's provided.
Q: How did you manage game assets? Did you externalize them? If so, how?
Ugur: With a game like Trucks Unleashed, having so much media used in every part, it was needed to come up with a way of loading the content in short enough timespans to make it worthwhile playing on the web with an average connection's bandwidth limit.
Because of that reason the game is highly modular in its setup:
There's a main game file, a gui file and lots of asset files per level and things like cutscenes and other media files are in own asset files, too.
The game always only loads a small chunk of content in noticable way to the player (before game start and then between levels), the rest is streamed while the player is busy with the current game part.
For example once you finish a level you are taken to the info screen for the next level and a loading bar appears to inform one how long it takes until the main assets for the next level are loaded. You don't have to wait till the loading bar gets away though, during the load phase
you can go to the shop or customize your truck in the beast builder, so there's no long load times where one has to wait in annoyed manner not beeing able to do anything.
Q: How did you create the game levels? Manually or using custom tools?
Ugur: All Levels where done with a custom made tool i called Terraformer. Basically its a coop combination of my level editor with the one of strille from our team.
It allows to load media assets, place them to form a map layout, create lines for the collision detection and save the whole thing in a special format xml file (which strille came up with), all editable with a set of easy to use tools.
Its nothing more and less than a level ed one can use for tilebased and supertile/object based map creation in case anyone is into those terms :)
Q: The game showcases realistic physics simulations. Can you tell us a bit more about the physics engine?
Ugur: Raigan, one of our mates at metanet gave me a head start with an initial base setup for a spring constructs based physics sim, then i investigated many tutorials and physics libs to bring it further step by step.
At its core the game works like this: the scroller plots the currently in view range beeing supertiles (a bunch of seperate images (or tiles) grouped together for faster scrolling in a bunch) on the screen. Each supertile object also has a definition of line segments making up its collision shape (those are placed and modified in the level editor).
The truck is made up by a bunch of movable particles, circles, (fixed) springs etc... whose positions are updated on each frame. Now all one needs to do is check collision of the elements making up the truck with the line(segement)s in the immediate close distance to the truck and then calculate realistic (enough) seeming reactions in case of collisions.
Its getting to some vector math and in flash's (before flash9) case lots of trickery to make it run smooth and still seem realistic.
Q: Could you suggest a few resources for those interested in learning more about this topic?
Ugur: I can't think of the one single place to go for to get all the info, i'd suggest having a look at these though: Jakobsen Paper, heavy at first but quite in depth.
Also check: metanet tutorials, myphysicslab, ericlin tutorials, tonypa's vector stuff, a physics and math formulary is a good thing to have,too ;)
Q: Did you find limitations in the flash player speed dealing with complex math?
Ugur: Yeah, that was one of the biggest hurdles in the development of the game.
For those who don't know flash player was never known for its huge performance forces, before flash9 and Actionscript3 it was actually common sense to better not do games which require lots of calculations per frame refresh to seem smooth and work fine.
If we had done the game half a year later we'd probably have opted for flash9/AS3 and with the heavy performance increase that brought it all would have been way easier but as we did the game for flash8 player a lot of long nights were spent to get something running fine.
I also experimented with having movable (so also fully constantly simulated like the truck) obstacles, even several fully simulated obstacle cars.
It also worked fine in theory and test cases but as soon as i'd add several movable objects in the actual game setup (which has to handle way more things), the game would choke heavily, so i had to skip that feature.
(It wasn't requested by the client so it was more a biggy for my coder/gamer ambitions than for anyone else ;) )
Even without many movable objects it was still a challenge though. Better do your physics based things in AS3 ;) (unless its non scrolling basic things)
Q: The game soundtrack provides a nice support to the game-play. Which tools do you use for audio production?
Joel: I use several programs. In the end, not many of the tunes I produced made it into the final version. The splash screen music has got synth and bass sounds from Orion Platinum (http://www.synapse-audio.com), the drums are played from within Reason (http://www.propellerheads.se), the lead synth is played and filtered by my old Roland JV-30 and all is edited in Cubase SL (http://www.steinberg.net). The menu music loop is made with the JV-30, Reason and Cubase. The in-game loop is entirely made in Reason.
Q: Flash games are constantly getting more complex as the flash player evolves. Do you use any additional softwares for managing the project? (editors, versioning, debugging tools etc...)
Ugur: I got used to work with eclipse+fdt plugin for AS2 dev and recently i got into flex2/flex plugin for ecplise for AS3 dev.
I used cvs a lot for versioning but meanwhile am into switching to subversion like most of the IT people seem to do (it just has many nice advancments compared to cvs). I also use enterprise architect for uml creation for bigger projects,can't be bothered to create uml's for small things though.
Q: Flex 2 has been recently released together with a Flash8/AS3 patch. Did you experiment a bit with the new SDK? What are your impressions?
Ugur: Yeah, I had a go at the flex builder, the flex eclipse plugin and also the flash9 ide alpha.
Regarding the Flash9 Ide alpha, I think its a great move that adobe let's the flash users (and not just the flex people) experience and work with AS3 already before the next ide version is final.
On the other side the only plus of using the ide is for media combination and document class swapping setting experimentation. Other than that flex builder and flex ecplipse plugin are the way better choices for AS3 projects.
The editing environment is just way more robust and saves one a lot of time while the very limited Flash IDE code editor can quickly lead to headaches while trying to write code in a complex language like Actionscript meanwhile has become.
I most use the flex plugin in eclipse solution right now as i'm just used to the standard ecplipse features but i heard from some developer mates that the builder has a more robust editor to it with some additional gimmicks, too so i'll give that a longer go in the next weeks.
The side i liked least about the flash9 ide alpha (even though its only an alpha) was the total lack of help and documentation files.
Overall, what is great about AS3 and the f9 player is that finally code execution performance has been increased dramatically; things which choked or were right away impossible when coded well in earlier flash/AS versions now run at way better performance (in most cases),so the limitations we had in this project i talked about before are pretty much non existent with that.
(Which make me as developer just as as gamer want to go for sretching the further pushed borders next off course ;) )
Q: The new Flash 9 SDK revolutionizes many of the historical key elements of Flash. Do you think that this radical change will push away developers used to the simplicity of AS1?
Ugur: There are great benefits like the huge performance plus of AS3/Flash Player9 so there's surely some motivation for people to learn the new language version.
To me it depends on how its implemented in the ide/other dev tools and how its taught.
Sure, a more complex language is more time intensive to get into but with right learning material and assist features it can still be possible to make it feasable for beginners or just people coming from AS1 or 2 to get into the new langauge version with as much ease as possible.
I've written down my views on the current state of flash and how i see chances and risks for the immediate future here. You're welcome to post your views on the topic :)
Q: Can you tell us about your future game related projects?
Ugur: Generally speaking we've got several teams working on several games all the time :)
Jeb, Joel and me are currently busy with a Skateboarding game (with similar art style like in trucks). It will also feature video footage cutscenes from this movie.
After that we'll work some more on the expansion pack for Trucks Unleashed.
I can't speak that much about the projects of the other teams yet, but yeah, Chris can tell a bit about what keeps him busy.
Chris Hildenbrand: I am currently working on a few flash games as well as console titles [PSP and Nintendo DS]. The focus at the moment is on a sequel to the successful Flash title "HeliAttack 3" and the redesign of the LittleSoldiers for the casual games market.
Ugur: and yeah, Chris is also helping in pretty much every game a bit here and there ;)
You can have a look at our blog or our b2b site in between to hear about new releases and other Stimunation talk first |