News
This is the complete news archive for 2005.
4th December 2005
I spent a while looking at tuning the difficulty
curve today, and modifying some behaviour which
was just plain unfair to the player. Behaviours
such as a flipper firing just before it exits
a web gives the player no time to react and no
guarantee that if they try a last-second guns-blazing
approach to try and shoot the flipper down that
they won't get shot themselves. In a game like
Ultra, or any game for that matter, such unfairness
has to be avoided as there's nothing more frustrating
than when you're about to capture that elusive
high score and your last life is lost to an unplayable
situation.
These sorts of issues are very important in game
design, and believe me when I say that they are
often ignored within the games industry, especially
when relatively inexperienced people are involved
(and the games industry has traditionally been
full of young, inexperienced people). With Ultra,
I want to make sure that gameplay is absolutely
solid before it gets released. The audio and visuals
are important, and they play a very large part
in making a good game, but to me the gameplay
is the primary issue and I'm very anxious to get
this right above all else.
I also took a good look at the physics of the
mines that the flippers leave behind - their collision
response, although valid, did not look realistic
enough. The problem though was that the motion
of the mines is controlled so that they follow
the outer rim of the web, and they also follow
a sinusoidal pattern offset from the rim so that
the player has a chance to pass a mine without
being hit - much like in the original Tempest
where you could pass by a flipper under the right
conditions. Applying realistic physics responses
to collisions when the motion in constrained in
this way is more difficult than under unconstrained
conditions, so this is something I initially avoided.
But the visual response grated and forced me to
find a solution - which I have now done. It's
all looking very nice indeed.
3rd December 2005
I've not updated this news page for a little
while, but much has been going on here behind
the scenes. The menu system for Ultra is now practically
complete, and all of the major functions are operational
and ready for use. As part of that whole menu
system task, a demo mode has been written that
lets the game play itself behind the menu screens
- giving you a flavour of what is in the game
before you've even played it. A nice screen effect
has also been used for this that obscures the
visuals for the game so that it doesn't distract
you from what you're doing with the menu system
itself.
A lot of work has been done on the input control
system - not only making it user configurable,
but also working on tuning input motion to on-screen
motion in a way that makes the game highly controllable.
Of course, for a high-speed 'twitch' game like
Ultra, this is essential and the last thing you
guys want when you're playing a game like this
are control problems.
The enemy flippers have now just become twice
as deadly! Once a flipper exits a web because
you've failed to shoot it down before it reached
the end, it ejects a mine onto the outer rim of
the web - a mine which you, the player, obviously
have to avoid. As if that isn't enough, the mines
circle around the rim of the web so you have to
keep on moving to avoid them. This new gameplay
mechanic mimics the original Tempest where the
flippers themselves travelled around the web,
a feature which I thought wouldn't look very good
within Ultra itself due to the visual style that
we have chosen. So now, a missing piece of gameplay
has been restored, and one that will have you
getting very twitchy when it kicks in - take it
from me!
Oh yes, and we now have a pucker 3D sound system
... yay!
20th November 2005
Having done a marathon weekend coding session,
the menu system for the game is now almost complete.
There's only another day's work left to do on
it, except for the more complicated and unnecessary
parts which I will be leaving until later on in
the project - parts such as music track selection
and advanced input device configuration.
With the new menu system in place, the game is
now fully playable and loops in and out of the
menu system correctly. The pause menu within the
game has also been completed, and you can configure
everything from within this menu too, so long
as it doesn't affect the game directly - such
as the difficulty level. As far as menu systems
go, I've seen few that are as easy to use or more
flexible, so I've ended the weekend feeling very
pleased with what I've achieved in such a short
space of time.
The visuals still need some work, which I'll
attend to later, but they're certainly passable
and don't look too shabby even at this early stage.
At this point in time, it looks quite plausible
that we could be looking at an initial Christmas
release of the game, with further improving work
over the following couple of months.
18th November 2005
Despite what I've written about the collision
system earlier in this chronology, it didn't handle
player collisions very well because the player
doesn't actually reside within a web lane and
instead skirts around the outside of the web.
This was not a huge problem as most collisions
were still being picked up, but somehow it just
didn't "feel" right and some collisions
were being missed. This prompted me to take another
look at the collision-detection algorithm today
and I've added new 3D cylinder/ cylinder collision-detection
specifically for the player.
This new system is a little slower than the old
one, but that was specifically optimised for collision-detection
only on web lanes and didn't need an awful lot
of maths as a consequence. The new system is employed
only on the player, so we're not using much more
processing time as the old one is still used for
everything else.
With the new system in place, you die more often
which causes you to change your tactics. You now
more actively evade going near enemies and their
projectiles and lives are more precious. This
is a factor present in Tempest but until now was
missing from Ultra - so another key aspect of
gameplay has been covered.
16th November 2005
The player death is now complete, and you
can die in several ways just like in the original
Tempest. Hitting a spiker as you head down a web
sends you spinning into the air, while colliding
with an enemy or their projectiles disintegrates
your craft in a bit of a light show. I'll revisit
this feature later, as I will probably most of
the features in the game, to make it better and
add more variety to it. Variety is a key component
of the design of Ultra - in some ways the original
Tempest was a little repetitive, although on the
later levels you didn't care because you were
concentrating so hard just on staying alive.
15th November 2005
I tidied up a few loose ends with existing
work today, so no new real work was done. It was
all about adding new web designs, ensuring the
flippers flip correctly on all existing webs,
smoothed-out the incoming flight path of the flippers
and tankers before they hit the web, added a new
scoring system, added many new messages as you
progress through the game and a few other minor
things as well.
I also optmised some of the 3D renderer and fixed
a few minor bugs that cropped up during testing.
There's an in-game clock now so that you can see
how long the current game has lasted. It takes
over half an hour to play-through the existing
45 webs, so testing is now taking quite a bit
of time! Still - it turned up a few glitches which
have subsequently been fixed.
Next up is the player death sequence and modelling
the 3D geometry for the player, flipper and tanker
to their final form. Once these tasks have been
completed, the game will feel a whole lot more
cohesive and much closer to finished. This should
only take a few days, at which point work will
begin on the menu system for Ultra.
10th November 2005
The game took a new turn today as I created
a tool to allow you (or rather Ben and I) to create
web designs for the game. Previously, webs were
created by hand involving typing numbers into
the source code - this was obviously rather hit-and-miss,
and not a little time consuming. The new tool
allows you to create a new web in just a minute
or so, so you can expect to find many, many webs
in the game right from the start - thirty have
already been created and are ready to play.
I also paid a lot of attention to the game's
difficulty curve and it now ramps up quite nicely
and is just about manageable at its peak. Weapons
are also allocated and powered-up as the difficulty
level increases - giving you a nice balance of
gameplay and smooth progression as you go through
the game.
I also added more messaging to the game, giving
feedback to the player as they progress. I decided
quite early on that this game is primarily intended
for the original Tempest fans - all of whom are
going to be well over eighteen (given that Tempest
itself is almost twenty five years old). Therefore,
the messaging is aimed squarely at adults and
hasn't been sanitised for the ten year olds. I
hope you enjoy it!
8th November 2005
As expected, I've now completed the new
all-singing, all-dancing collision detection system
that is far more accurate, flexible and functional
than the last. But then, the last was just some
mock-code to get the game running and it was never
meant to be a permanent solution.
As a result of this newly-developed system, not
only is collision detection now far more accurate,
but as a side effect of the restructuring, the
player can now die too. So the game has gotten
an awful lot harder all of a sudden!
7th November 2005
Done quite a bit of work on the enemy flippers
today, mainly centring on the death sequence when
they have been shot down. It's one of those jobs
that you really enjoy doing, visual effects as
good as you can make them, and it turned out really
well. Normally I would try and make semi-realistic
visual effects for the games that I work on, but
the style of Ultra is quite abstract and these
new visual effects mirror that so it all fits
nicely together.
In addition to that though, and the main thrust
of the day's work, has been the development of
the enemy tanker. This has bought with it a lot
of new gameplay and Ultra is really starting to
shape up! From years of experience I can tell
you that you know you have a winner on your hands
if the coder actually wants to play the game that
they are developing. In the past, for me games
like this have been few and far between. Yet already,
Ultra has captured that same frenetic gameplay
that Tempest had in abundance, and its addictive
draw has been constituted.
Next up, the collision system is in need of restructuring
as it's just not sophisticated enough to handle
the complex interactions that can already be observed
as the number of enemies on the screen increases
and the action gets faster and faster as you progress
through the game. This should only take a night
to complete and I should be able to make a start
on that tomorrow.
5th November 2005
Produced some of the sound effects for
the enemy flippers and plugged them into the game.
This has bought them to life quite a lot and they
feel much more like real entities within the game
now, rather than just visual effects. There's
still a fair bit to do before they will be finished,
but you certainly have a feel now for how they
will end up. As the most complicated, and most
common enemy within the game, once they have been
finished the other enemies will surely be swift
to follow.
Also, the player now rides down the web at the
end of a level on their way to transitioning to
the next. The collision detection with the enemy
spikers is still missing though, so the gameplay
here is incomplete and will need attending to
at some point soon. As we haven't a death sequence
for the player yet though, that too will need
coding up at the same time.
4th November 2005
The enemy flippers, though working, are
still far from complete. Namely; their entrance
onto the web, the sound effects, the finished
flipper 3D model, the death sequence and also
a little surprise as they exit the web are all
missing. So today I made a start on filling some
of these gaps. The flippers now take a flight
path from the space around the web in order to
land on the web at their assigned location and
smoothly start moving up the web as soon as they
land. This has smoothed out their entrance into
the game no end and gives a real feeling of oncoming
hoards of enemies as you see them flying in to
take you on - they're really beginning to come
together now.
I also produced a sound effects editing tool
for the game today so that Ben, our musician,
can easily edit sound effects and plug them into
the game on a semi-autonomous basis. Although
I produce many of the sound effects for the game
myself as I'm writing the code, Ben has a lot
more experience in this area than I and will probably
be able to improve upon the work that I've done,
hence the need for an editing tool so that he
can edit the sound effects without the need for
any intervention on my part. As he works in Canada,
and I in the UK, this is quite an important point!
3rd November 2005
I made a start on the enemy flippers and
got them moving around the web, eventually. The
flipping motion that was employed in the original
Tempest is not replicable in Ultra as the webs
in Ultra are solid rather than transparent. So,
the flipping motion now has to take place above
the web, rather than directly between web lane
dividers. Although the motion is quite simple
on the screen, the code behind it wasn't at all
easy to write and turned out to be quite a bit
more complicated than I had anticipated.
The flippers are now working though, spawning
at regular intervals, moving around the web, firing
projectiles at the player and exiting the web
gracefully when they reach the top. Difficulty
tuning has also been implemented with the action
getting more and more frenetic as you progress
through the game.
2nd November 2005
Today I made contact with an old work-friend
of mine to see if he's interested in writing some
music for the game. It was always the intention
for Ultra to be an audio feast as well as a graphics
light show, so music is to be a very important
part of the game. Ben loved the idea of working
on the game so we now have a musician on the team!
Ben's an accomplished video games designer, musician
and he even turns his hand to coding when the
mood takes him. He's worked on many video games
in the past so you can expect some excellent music
to accompany Ultra when it gets released.
31st October 2005
The initial 3D model for the player was
incorporated into the game today, albeit pretty
much a placeholder model in order to test the
rendering code within the game. As this is the
first 3D model in the game, this bought up issues
with model scale and in-game lighting, both of
which have now been solved. For dynamic models
I've opted for a fast lighting solution with a
single ambient light and up to four directional
lights. This will give us a lot a variability
and scope for some nice lighting effects without
burdening the engine with heavy light management.
Ultra doesn't require a realistic lighting solution
due to its graphical style, so the route we have
chosen here is ideal.
The player movement around the webs was also
written today, so for the first time the game
is now in fact playable. The player moves around
the web proportionally with the analog input from
either mouse or joystick - giving the player acceleration
control for both speed and accuracy around the
web. The player's 3D model always comes to rest
in the centre of a web lane, but I've been careful
to never snap positions and movement is smooth
at all times.
Pre October 2005
Features that went into the game prior
to October 2005 (when this web site was originally
created) are:
Time disruptor player weapon
Mega blaster player weapon
Blaster player weapon
Time distortion support
In-game statistics rendering
Status message rendering and animation
Inter-arena camera animation
Camera control and animation
Background rendering and animation
Web arena rendering and animation
Projectile / enemy spikers collision detection
Enemy spikers
Projectile / projectile collision detection
Player projectile animation and rendering
Enemy projectile animation and rendering
MP3 / OGG / WAV / AIF music player
3D model import
Bitmap support for Direct3D textures
Text rendering support
Graphical effects rendering support
3D maths library
Direct3D layer
DirectInput layer
DirectSound layer
Object management
File handling
Memory management
Main program core
|