Memory Card 1 block
Analog Control Compatible
Vibration Function Compatible
Screenshots & Art
Overview:
Harness the blurring
speed of 11 ultra-realistic, all-terrain jet hover bikes.
Feel the bone-smashing action of 19 treacherous, obstacle-ridden
environments including subterranean graveyards, ancient cities,
alien worlds and the wildest, most thrilling stunt tracks ever
designed.
Experience an all-new blazing fast 3D engine with realistic
MotoPhysics handling.
Jostle, sideswipe and rip it up in 1-player and 2-player
competition.
The Rush Is Back!
DEVELOPER COMMENTS4
Was it your intent to make Jet Moto an annual franchise like
many of the sports titles?
"It wasn't so much
about trying to make Jet Moto an annual franchise. We would have
been happy with an every other year rotation between Twisted
Metal and Jet Moto. It did have a lot to do with the GT
Interactive purchase of Single Trac and their determination to
make a Jet Moto clone to go along with their Twisted Metal
clone. Don Traeger had left BMG and set up Pacific Coast Power
and Light and we contracted him to make Jet Moto because we were
fans of his Road Rash series back at EA. THQ purchased Don's
studio during development so we knew we had to find a new home
for the franchise. Like Twisted Metal, the Jet Moto designers
didn't want to work on 3 or 4. Hunter Luisi was available to
produce, a development studio was nearby and cheap, and we
pulled the trigger on it. I thought Jet Moto 3 had some
excellent track ideas. I especially liked the Volcano and some
of the other races. Jet Moto was never as big as Twisted Metal
and I think we were generally happy with the numbers. I'm sure
it turned out to be profitable and I think the reviews were
okay. It was a little too hard and too fast, but the earlier Jet
Moto games were also on the difficult side." Kelly Flock, former
President 989 Studios
DEVELOPER INTERVIEW4
Interview with Ming Lee, former programmer:
Jet
Moto 3 was my first and last PlayStation 1 project. In fact, I
had not even completed any game engines before Jet Moto 3. I
worked on one at Atari Games, but they canceled my project which
caused me to become disgruntled. That's how Dennis Harper was
able to recruit me to work at Pacific Coast Power and Light
(then named DT Productions). Jet Moto 3 shipped in 1999, which
was 5 years after the PlayStation launched. We were up against
competitors who had already shipped two or three games in those
5 years. I had only 1 year to make a complete game and tool
chain from scratch while other studios already had had 4 years
of technology and experience working with the PlayStation. It's
like starting a marathon after your opponents have a 21 mile
head start. Plus, it was just me! As lead of the JM3 project,
Don asked me if I wanted a tools person. I told him that I did,
but I didn't trust anyone else to do the job right. I think I
made the right choice since we were able to ship not only Jet
Moto 3 on my tool chain, but also Nuclear Strike 64 and Road
Rash 64 for N64 using my cross-platform tool chain.
Was the Jet Moto 3 engine built from the ground up? If so,
how much time did it take to code it?
The Jet Moto 3 graphics engine and tool chain was built from
scratch entirely by me. I started with exactly zero lines of
code, which is sort of unusual in this business. It took about
18 months to complete the game, but I didn't spend all of that
time exclusively on the engine. There were other things such as
a scripting language, physics, collision, visibility, and other
game engine related tasks that I needed to do. We had 2 1/2
programmers. Dennis Harper was our studio producer, so he didn't
work on the programming full-time. I'd often have him work on
something ahead of me, but then he'd complain that I'd just
rewrite it later anyway. But I told him it was still useful for
me to have that initial prototype to see what the problems were
so that I could build a stronger architecture. Matt Gaston
worked on the physics, AI, menus, and anything else that fell
through the cracks. He was great at interfacing with the artists
and designers because he was happy to tune and test the game as
much as it needed. I like to finish something and then move on,
so I was better suited to system work that had a "right answer"
like collision or graphics rendering.
Following up with a Jet Moto sequel was no easy task. Do you
recall any specific difficulties or challenges that you or the
team encountered?
Actually, I felt good about the JM3 project because JM1 and 2
set such a low bar graphics-wise. The early Jet Motos ran at 20
fps and as low as 15 fps at some points and was entirely unlit.
Graphically, I could easily outdo that. However, we weren't just
competing with our own Jet Moto legacy. There were plenty of
other PlayStation games out by that point that had raised the
bar on graphics.
Instead, the difficulties and challenges were presented by our
989 producer who wanted so much more for JM3 than 1 or 2. I had
carefully played and analyzed each of the earlier Jet Moto
levels. My plan was to have a drivable trench with the terrain
farther away in the background. This would allow us to have a
nice high polygon driveable surface while keeping the large
warpy terrain textures in the background. So when our 989 producer
insisted that in Jet Moto 3 we should be able to drive anywhere
because you could do that in 1 and 2, I had to correct him by
loading up the previous games. I showed him how on the
very first level, there was a 15 degree grade burm that you
would think you could drive on, but was blocked by an invisible
wall. Immediately, he deemed that ridiculous and insisted
that in Jet Moto 3, we capture the "true spirit" of Jet Moto,
which was to be able to drive anywhere! I warned him that we
would always have a problem with texture warping if we could
drive anywhere, but he insisted on that feature. Despite all of
the technical difficulties this requested feature cost me both
graphics-wise, collision-wise, and gameplay-wise, I made it work
because I saw it as a challenge.
The graphics in JM 3 easily eclipsed Jet Moto 1 and 2. I
would have thought the more detailed graphics would have caused
a slower racing experience but JM3 was blazing fast! Did your
team use any special tricks to squeeze every ounce of power from
the PlayStation?
I'm glad you noticed! Oh yeah, I personally asked our producer
if I could do some questionable things that would allow us to
squeak some more speed out of the graphics engine. He told me,
"Ming, do anything and everything you know to make it as fast as
possible, but I don't want to know what you did." I responded,
"Okay, I hope your testers are ready because I'm going to do
some crazy stuff." He said, "We have good testers." So I felt
like he gave me a license to really cross the line. 989 at that
time was basically a first party publisher, so I felt that any
indiscretions I took would be supported.
Going into assembly for the GTE was mandatory--- but I went way
BEYOND that. Because I'm a computer hardware engineer by
education, I decomposed the opcodes for the GTE (the PS1's
graphics coprocessor) and could make that thing do operations
that were not in the documentation. In addition to this, I
pulled intermediate values out of the registers that were meant
to be temporary variables internal to the chip to use as a scale
for particles. I disassembled some of Sony's library calls and
wrote my own hacked libraries to inline certain functions.
Basically, if there were any PlayStation code cops, I would have
been busted and put in jail for life for the stuff I pulled on
Jet Moto 3.
However, all that speed was not without its sacrifices.
Apparently, the hacked-up code did not work on the first 100,000
or so PlayStations and our producer caught heat because his
testers did not catch that. When the PS2 came out and advertised
that it would be backwards compatible with ALL PlayStation 1
games, I was concerned that I would get a call from the
PlayStation code cops in the middle of the night. But when PS2
came out, I popped that JM3 disc in and it worked brilliantly!
That still amazes me to this day... and I apologize if any
anonymous Sony engineer had to figure out my code to make the
PS2 backward compatible with it.
While JM3 was in development, Crash Bandicoot 3 was released
and it had really great water effects. Was there ever a
concern that JM3 couldn't emulate Crash's realistic water
effects and wouldn’t ship on time?
The water effects
were extremely simple and took me about a day to implement. We
never had any performance issues with it whatsoever. I basically
put it in one day and moved on to the next item--- the same as
every other part of the game. In fact, all of JM3 engineering
was relatively quick and simple. The only delays we had were
Sony giving us one week notice to provide a working demo disc
for the PlayStation Underground.
There was never any pressure to do the water the same as in
Crash Bandicoot or any other game. We had exactly one level with
animated water and the first thing I tried was good enough, so
we went with it. I never had a single meeting or even cube-side
discussion about the water with anybody else at 989 or even
internally. Midway ALSO made this excuse for why they could not
port Hydro Thunder to PS1. They argued with their producer that
the water in the arcade hydro thunder could not be handled by
the PS1. Well, Don had to show his producer friend at Midway our
water in JM3, and the producer was pissed that their engineers
had lied to him.
Perhaps what I did was clever, but I didn't really think so.
What I did was to map the y-position of each vertex on the
triangle to the sum of 2 sinusoidal waves. This would make a 2D
rolling water that you see in JM3. If I had enough CPU left, I
would subdivide the nearby triangles. I suppose a typical
engineer might claim that it would be too expensive to do
collision and physics on these moving and subdividing dynamic
polygons. Well, that would be true. The best optimization, of
course, is to not do that stupid thing which is too slow for
your pathetic hardware. So I didn't. Instead, I collided with
the two sinusoidal functions which would provide the normal to
the surface of that water with infinite resolution (as opposed
to blocky polygonal water). The sine function used a look-up
table, so it didn't even do a real trig function.
As a programmer, you can see that this approach is not that much
more expensive than static geometry on the PS1. In your mesh
instead of AddVert(x, y, z), you had something like AddVert(x,
y+quickSin(phase1) + quickSin(phase2), z). quickSin was a lookup
into an array so it was super fast. And of course, the
derivative of sine is some form of cosine. So from there you can
get the tangent vectors. With the cross product of the tangent
vectors, you can get the normal to the 2D rolling water surface.
Not only was this NOT difficult and NOT expensive, but it was
actually cheaper to do collision with the water surface than
with a generic polygon surface.
What are some things that you are proud of about Jet Moto 3?
On the snow level, the snowflakes actually fall to the ground
and stay there for a little while before fading away.
Considering the number of particles I could do in JM3, adding
that collision was a nice touch to an already insane particle
engine.
The rain particles in the volcano level actually streak in 3D
according to your camera speed. So if you turn the camera
straight up to the sky on that level, it will look like the rain
is falling down on you. As you start zooming forward, it appears
that the rain is streaking towards you. If you look at almost
all PlayStation games from that era, the rain is a fake 2D thing
that is slapped on top of the screen. Then the camera is limited
so that you can't look up into the sky otherwise you'd notice
that the rain wasn't coming down, but was just a 2D animated
overlay. Because Jet Moto 3 bikes were so crazy maneuverable
along with its free camera, real 3D rain was the only solution.
The ice level actually ran at 60 frames per second in most
places. However, our internal producer forced me to lock it at
30 fps at all times because it was jarring for some people to
switch between 60 fps and 30 fps. But let me tell you it's a
thing of beauty to see so many particles flying in 3D while
going so fast at 60 fps. 60 fps games look great, but are
extremely rare simply because you can have twice as much stuff
and run at 30 fps which everyone regards as the optimal frame
rate. I suppose this will be true until the end of time, but I
still think games at 60 fps look so much more solid and
realistic than 30 fps.
On the alien planet level, we had green-colored fog. Nowadays,
colored-fog is trivial, but the PlayStation was limited in such
a way that you had to be kind of tricky to do it. Even doing a
billboard tree that faded into colored fog as we had on the
volcano level had required a few graphical tricks that would be
nothing on modern hardware. I hadn't seen it in any PlayStation
game before ours, so I was hoping that I would have broken new
ground there. Then Spyro shipped before we could and rained
colored fog on my parade.
And finally, you really can go just about anywhere in Jet Moto
3. Every single surface is drivable and collidable. Unless
you're an engineer who has had to do this yourself, it's hard to
appreciate how hard it is to make a game that basically has no
design constraints, must collide with all surfaces, must be
graphically superior, and must run at a constant 30 fps with
more bikes and animated riders than before. I think that while
you're on the project, it's easy to take for granted how easy it
is for me to break down impossible barriers. But if you look
back at the end of the project and consider what the design
requirements were for the project where you allocated only ONE
engineer and only 18 months, you would think you're headed for
certain failure. Basically, all other racing games on the
PlayStation were a subset of ours. We could do any of those
games on my engine, but not the other way around. Any racing
game with a road? Trivial. Try driving on the walls, Gran
Turismo! Any motocross game? No problem. Snowboarding? Puh-lease!
In the ice level,
pay attention to small details like the snow: It doesn't snow
inside of the tunnels. The snow can land on the water before
dissolving.
Also, look at how round and organic the level looks compared to
other games of that era. Pay attention to the lighting of the
level. The tunnels have shadows. As your bike enters/leaves the
shadowed areas, it gets brighter/darker.
On the volcano level, try tilting the camera up to look at the
rain. 3D rain! The rain streaks are relative to the camera
motion, not the bike motion. The rain streaks give the player a
nice cue of how fast he's moving. Also in the same level are
some translucent grass/foliage on top of the ridges. It's not
that it's hard to do the translucency, but it turns out to be
rather difficult to do both translucency and colored fog on
those same polygons in PlayStation 1. It's trivial and taken for
granted on modern hardware, however. Of course, such a trick is
underrated because you sort of assume that doing such a thing
would be easy. But if you look around at how many games actually
do colored fog (rare) PLUS translucent polygons under colored
fog (very rare), then it gives you an indication of how hard it
is.
Also notice how the glow of the volcano lava affects your bike's
lighting.
When the bike's thrusters point directly into the camera, the
light flares larger than normal.
On each level, there is a subtle colored fog in the distance. On
some levels, like Planet X, it's more pronounced than normal.
But for the Canyon level, it has a nice fade into a hazy blue
into the distance. If you look around the world on a clear day,
you'll notice a similar fogging effect.
It's just a shame that I started the race 4 years later than
everyone else and the PlayStation left the end of its profitable
lifetime.
What are some things that you think could have been improved
with JM3?
JM3 was designed to be played at a much much slower speed. Matt
had tuned it very nicely so that it was quite a game of skill
and that the AI had presented a very interesting challenge. It
was much closer to JM1 and 2 in speed for probably 80% of our
development. Sony insisted on "helping" us tune the game in the
final few months before we shipped, they cranked up the speed and
power of the bikes.
I asked our PCPL
producer if I could put in an "unlockable" code that players
could later enter to get the "developer's cut" game tuning. But
he told me that would be disrespectful and wasn't worth the
potential storm it might raise. In the end, they paid the
bills, so I let it go. The final version where you are literally
bouncing off the walls due to maxed out tuning values is the one
we shipped.
The other thing I was disappointed with was the decision to make
the stunt mode an unlockable. It was so much fun, but you had to finish the entire game before you could
do even the FIRST stunt level! I thought the stunt levels could
have been a game in themselves. I wanted to put the first stunt
level on the main menu so you could just get in and have fun
right away. As usual, I did not get my way.
Was your team aware that Sony had another Jet Moto game in
development internally at the same time?
We were not aware that 989 Studios had another Jet Moto game in
development at the same time as ours! The other team was
certainly aware of us, however. When we found out about it, it
was kind of a slap in the face because we assumed that we were
doing a good job on Jet Moto 3 and would be given the
opportunity to do 4 as well. 989's strategy was to have an
evergreen product that they can put out every year like Madden.
With both JM1 and JM2 each having over 1 million units sold, 989
bet on more sales every year for JM3 and JM4. However, when JM3
did not reach those sales figures, it didn't bode well for JM4.
Personally, I'm glad that they tried to do JM4. To me, it is
exactly what you should expect from a competent team starting
from zero lines of code. The publisher should be glad that it is
somewhat of an improvement of JM2, which had much more
development time in its engine! Given the same amount of time
that JM2 had, I'm sure that the JM4 guys would have made
noticeable gains on it.
I'd be interested in doing another Jet Moto game for a modern
console if any publisher has interest and wants to sign a
contract. And this time, I wouldn't be starting with zero lines
of code. :-)