(opens in same window)
(opens in new window)
(likely 404 error)
January-March 1999 (oldest-to-newest)
Despite the two long weekends I didn't get much done.
About the only thing I did was polish up the message-display
routines. These are used for the opening title sequence and
will also be used in between levels to tell you what bonuses
I'm nearly done with message routines. These allow me to
display any text message using the font I've chosen. The
text can be manipulated in just about any way imaginable
(each letter is a sprite so you can play some cool looking
tricks on it). So far I have 5 message "types". Naturally
I'll be adding more as the need dictates, but the core code
is pretty much complete and clean.
Whooboy! I did the most programming this weekend that
I've done in a long time. I added a star field background
to the title screen. It kinda spruces things up.
Also, I did more work on the message system. There are
now 8 message types (up from 5 as described in Jan 7).
After you finish a level, they pop up to tell you how you
did. It tells you how long it took you, how many beacons
you activated (even though I haven't added support for
beacons yet), how many enemies you destroyed, and whether
you got the navigation bonus (for not colliding with any
planets). Plus, if you get all four bonuses it gives you a
fifth message congratulating you. You get credits for each
bonus you achieve, with a big bonus if you get them all.
Yay! Another weekend well spent programming. I'm
focusing my efforts on cleaning up all the little things
so I can release a demo sometime soon. I hesitate to give
a date since I know I won't hit it.
First off, the level bonuses are in and working
properly. Since one of the bonuses is for activating all
the beacons, I had to add support for them. So now there
are beacons :) I mentioned them before, but if you're not
familiar with them, beacons are like little lights strewn
about the level. They're initially OFF, and when you fly
by one it turns ON. If you can activate all the level's
beacons you get a bonus. The level editor supports them as
The player can spend a lot of time in each level trying
to achieve the bonuses. This obviously makes it harder to
get the time bonus. In order to alleviate this, you get a
couple seconds added to the clock whenever you activate a
beacon or destroy a target. That way I can hopefully make
getting the time bonus more of a challenge even if you're
not going for the other bonuses. Did that make sense? No?
Okay, let me try again. When designing them, I need to
decide how fast the player has to get through each level in
order to get the time bonus. The problem is that different
players will clear the level at different speeds depending
on whether or not they take the time to activate all the
beacons and destroy all the enemies. If they only do the
minimum, they could blow through it quickly; however, if
there are lots of beacons/targets the ambitious player
would spend a lot of time flying around
activating/destroying them. So if I set the time bonus
"threshold" according to the latter case, it would be
absurdly easy for those that just do the minimum. With me
so far? Okay, so by adding back a couple seconds for
every beacon activated and enemy destroyed, I'm giving the
ambitious players a break. This lets me lower the time
limit and has the nice side-effect of making it more
difficult for the "do-nothing" player. Got it that time?
No? Oh well...
Also, I cleaned up the levels themselves. I was
experiencing some slowdown in a few so I reduced the
number/size of some objects.
Boy it was absurdly easy to add CD music to the game.
Call two functions to initialize the CD and set the volume.
Set up an array holding the order of tracks to play. Then
a call to CdPlay() and you've got music! Granted it's not
as cool as having some original MIDI tunes, but I'm not a
composer. Also, using CD music has the benefit of keeping
all 500k of sound RAM free for sound effects.
$%@#$!! I'm tearing my hair out on my current problem.
I've encountered a bug that causes the game to lock up and
for the life of me can't figure out why. Yaroze members,
please check the newsgroups and give me some help if you
can. I'm kinda stuck until I figure this out.
On the other hand, before I hit the wall I did make
some progress. Mostly just cleanup stuff and miscellaneous
tweaks. There's only two really major things left to add
before releasing the demo. One is an opening sequence
explaining the, admittedly weak, story. The other is the
boss at the end of the last level. I have the boss
designed so it's just a matter of implementing it.
Nathan Miller is kindly sponsoring a competition amongst
the SCEA Yaroze people. I would like to enter, but the
requirements are that any submissions be original games
started after January 24th. Heh, well I guess Decaying
Orbit wouldn't qualify then :) I would still like to
enter, but I don't know if I can just drop Decaying Orbit
to start on a new game. SIGH
After reading through the Yaroze newsgroups I saw how
some people were having random lockups, GPU timeouts, etc.
The response they always got was to try increasing the
packet space. I did that and to my utter delightment the
problems were fixed.
It's strange, though. My packet size used to be set at
(512*24). Since 24 is the size needed for a single sprite
I thought I had room for 512 sprites. Since I never
display that many I didn't think I'd have a problem. Guess
I was wrong. I upped it to (1024*24) and it worked. Now I
have less RAM to work with, but at least it works.
Another bonus. Nathan (see below) has ammended his
competition so that people can enter works already in
progress. Yay! The deadline is April 24th. Can I have
Decaying Orbit finished by then? I'll certainly try!
Support for scrolling text is now in. It will be used
at the very beginning and end of the game as well as
between each of the five galaxies. The text (interspersed
with some pics) will convey the story as the player
progresses through the single-player mode. It doesn't do
that nice scroll-at-a-slant thing like in Star Wars, but
I take solace in the fact that I didn't have that quote
memorized and had to look it up on the web. I'm not a
total nerd after all. At least that's what I keep telling
I can't think of anything major that I did this
weekend. I did a lot of coding Saturday, but by Sunday
was so burnt out that I just played games most of the day.
I picked up Wipeout 64 for $30 from Target and am duly
impressed with it. I'll have to try playing it 4-player
sometime, but the single player is very faithful to the
PSX version. Even the non-redbook techno works well.
Also finished a few more levels in Silicon Valley. I'm
almost half-way through the game. Just one or two more
snow levels to go. I also played Half-life in earnest. I
played until I got stuck which was, conveniently when
Simpsons came on.
As for Decaying Orbit, I drew a few more system pics and
tried to get a proper graphic for powerups. Can't think of
All levels are now in with the exception of the final
boss. I still need to do play balancing and determine how
much time to give the player in each one.
So here are the things I have on my list to finish before
releasing the demo:
- Replace some sounds and add some new ones
- Add final boss
- Play balancing
- Create necessary system graphics
- Miscellaneous little fixes/perks
I spent a lot of time at Magic tournaments this weekend.
It was the Urza's Legacy prerelease tournament. Here's
the spiffy commemorative card they gave us. It's a foil
card and is nice and shiny. As a result scanning it makes
it look rather funky. I swear they're just out to milk
people with these foil cards...
The card is Beast of Burden. This artifact
creature costs 6 mana and has power & toughness equal to
the total number of creatures in play. Insane huh?
Aaaanyway. I drew a few more system pics for Decaying
Orbit. I think I only have one more to create for the
demo. I also spiffed up the in-game CD player. You can
now tell it how many tracks are on your CD so it doesn't
try to play non-existant tracks (unfortunately there's no
way to detect this automatically). You can also
optionally set it to "random" play. Finally, if the music
you want to use is a game CD (Wipeout
XL and Total Annihilation
being among my favorites) you can have it optionally skip
the first track to avoid trying to play the data
I polished up the CD player last night. It's not
perfect, but that's more due to the deficiencies in the
Yaroze libraries (or at least that's what I keep telling
I spent the long weekend at Yosemite with some friends.
We ate a lot of food played a lot of games. It was a nice
relaxing break from everything. As far as the game goes,
I've just started play-balancing the levels.
I updated the
section to remove the games I've finished from my "Played
Lots Recently" list. I completed
Zelda a couple
weeks ago. Then Spyro soon after
(although I didn't get 100% let alone 120%). And just last
night I finished Halflife. With
all these big name titles out of the way I'll have more time
to code. Of course I'll probably need to get
Syphon Filter. And I bought
Roll Away recently (for 20 bucks!).
Plus there's the Halflife demo -
with all new levels. Mario Party
is fun too, but it's hard to get 4 people together to
I will definitely get some programming done this weekend
if not today and tomorrow.
Started work on the boss in the final level. Most of
the graphics are still very temporary at this point. The
boss will have several stages to it and I'm just now working
on the first one. I'm not going to give away what it looks
like or does since I want it to be a surprise.
As always, I also did some miscellaneous tweaks.
Just a minor update to the
section to reflect my new found age.
All of the boss stages are in. I just have a couple
more things to tweak (including real graphics). This
thing is going to kick some major ass once it's done. I'll
polish it up hopefully this weekend.
The next addition (and the last major one I might add)
will be some new sound effects. Some, like the lasers and
explosions, will stay the same, but many will change. All
the humorous ones will be gone (like the "Computer, on!" at
the beginning and the "Yeah alright!" when you finish a
level). I'd like to completely rework the sound code, but
that'll have to wait until after this demo gets released.
That also depends on whether I decide to keep working on
this or move on to a new game.
I had noticed that my collision detection wasn't doing
a very good job so I did some investigating. Turned out
it to be a very stupid mistake. I commented out one line
and things started working like a charm again. I don't
know what I was thinking. I also improved the collision
detection in general so it should be extremely accurate.
I'll see how much this slows things down (it now does 3
multiplies instead of 2), but hopefully it shouldn't be too
I got a few games this weekend. At the top of the list
is Silent Hill. Then there's
Devil Dice and
No One Can Stop Mr. Domino - both
were cheap so I figured why not. I also snagged a memory
upgrade for Nintento 64. I don't need it quite yet since I
don't have any games that require it, but I'll need it
eventually and don't want to go hunting for it when I
New sounds abound in Decaying Orbit! I tell you it
makes all the difference in the world to get actual sounds
in there. It's like playing a new game!
My lovely finacee loaned her voice as the ship's
computer. I had to reduce the sample rate so the speech
doesn't take up a lot of room. Thus the samples have that
muddled "what did it say?" feel to them.
I also modified every other sound in some way. I did
this for two reasons really. First off, nearly all of
them were swiped from Total Annihilation. I wanted to
avoid getting sued :). However, I also wanted to make it
feel more like an real game. Rehashing sound effects just
wouldn't cut it. And to tell the truth I actually like
some of them even more now.
You know, combined with the new sound effects, if I pop
in a Prodigy CD for some background tunes it almost
sounds like a real game!
I did a bit of experimenting last night. After
encountering a problem I was looking through my code trying
to find a bug. As it turns out it wasn't a bug in my code,
but in my TIM. However, upon looking at my code I began
wondering how much I could optimize it. One thing led to
another and I ended up spending most of the night playing
with optimizations. Bear with me, it'll be a long one.
Read all about it
let me know
what you think.
It's been a while since I posted some screenshots, so
here's a few:
You can also find them on the
As for progress, this weekend was great. Unfortunately
I can't recall anything major that got done. I did lots
(and I mean lots) of little clean-up things. Just odds and
ends here and there. Things that needed to get done, but
nothing earth shaking.
Now I remember what I did last weekend. Back on March
15th I wrote that I didn't do anything major. Actually I
did a big optimization on gravity computation.
Destroying an enemy generates a powerup which then
floats around the level until you pick it up. The powerup
could be money or an extra ship system. While its
floating, the powerup is influenced by planetary gravity
just like you are. I originally just used the same
gravity-computation function for both the player and the
powerups. However, this proved too slow because when you
have 4 or more powerups on the playfield the framerate
takes a serious beating.
I changed it so the powerups get their gravity
calculations from a look-up table rather than being
computed dynamically. The look-up table breaks the
playfield down into 64x64 pixel squares. It pre-computes
the gravity in each square so it can just be looked up
This works great most of the time, but when you get
close to a large gravity source the approximation starts
to show its inaccuracy. So I added another section to
the look-up table which lists the 6 objects closest to
each square. It takes the pre-computed gravity (which
does not include these 6 objects) and then adds in the
gravity for each of the 6 closest objects.
This works perfectly 99% of the time. It saves a ton
of CPU cycles too since I only need to do one table lookup
and then at most 6 gravity calculations (if a square has
no objects close by it may not even have to do any). This
is in contrast to computing the gravity from every object
in the level every frame. As a result of this change, I
haven't seen the game slow down yet.
Yay! I fixed 3D Studio so it works again! I haven't
actually tried to run it in over a year. In that time I
upgraded my computer to a PII. When I tried running 3DS
it would just crash with a blank screen. It didn't even
get to the dongle check (which I tested by removing
I went to the newsgroups and there was a message dated
5/31/98 from Ed Federmeyer about how to get it working in
Win 95. I tried that and it did fix a separate problem,
but it still just locked up. Then I thought "duh, maybe
there's a patch". Sure enough, I went to the Kinetix
website and found a patch for 3D Studio R4 which makes it
work on "fast machines". That did the trick!
So I'm happy to report that the planet graphics will be
going through a facelift soon. They look rather
one-colorish right now and I always wanted to fix that. Now
I can! Yay!
Not much to report. About the only thing I've done
recently is render some new planet animations. Some
turned out very cool while others are terrible.
That reminds me. While I was using Sprite Assembler to
construct the planet animations and found a couple bugs in
it. I guess not too many people are using it so it's not
that big a deal. Still, I'll post an updated version when
I get a chance.
I played rather than programmed quite a lot this
weekend. I finally got some quality time with
Silent Hill. This game is creepy
to say the least. I really hope there's a good story to go
along with all this atmosphere. I also got
Syphon Filter and played through
the first level. Very cool game. Other than that, I'm
still plugging away at Wipeout 64
trying to complete the challenges. I got golds in all the
Weapons Challenges and am now trying to do the same in the
Race Challenges. No One Can Stop Mr.
Domino provides the occasional tangent every now
Once again I didn't do anything on the game. I haven't
been much in a programming mood. Maybe it's the incredibly
beautiful weather we had this weekend. Maybe it's my
obsession with Wipeout 64. Who
One good thing is I finished Silent
Hill, except I got the bad ending. So it looks like
I have to play through it again to see the good (or good+)
ending. That's not too bad though since it took me less
than 5 hours to finish it the first time. Should be even
quicker the second time - especially once I get that
chainsaw heh heh.
Syphon Filter is just
annoying. I'm at the second mission and can't figure out
what the hell I'm supposed to do. I found the box of C4
(by pure accident I might add), but I don't know what to
do with it. Guess it's time to download a walkthrough.
As mentioned above, I'm still trying to get golds in all
challeneges in Wipeout 64. I
unlocked the Super Combo Challenge and proceeded to get
golds in 5 out of the 6 races. However, I can't get that
last one! It's Super Combo Challenge 5. I got a silver,
but I'll be darned if I can get the gold. You have to
destroy 8 competitors and also come in first place. The
only weapon you get is the crappy "super" weapon that
makes that gold barrier thingy. I have managed to destroy
8 competitors and even come in first, but never both in
the same race. Guess I'm just waiting to get lucky one of
This web page and all other pages on this site are
© 1999-2007 Scott Cartier