Zoid Kirsch Profile picture
Nov 9 4 tweets 1 min read
Metroid Prime Dev Stories #3: Red Means Dead. One of the design goals in Prime is to make sure the player immediately knows if they are doing damage or not. Objects and creatures are often only vulnerable to particular types of damage. How is that indicated? 1/4
The GameCube didn’t have shaders as we know them now, it has a TEV (TExture enVironment unit) that could blend colors. I realized we needed a consistent design for the color blends. 2/4
As you can see in the clip below as I’m fighting the Baby Sheegoth. My shots are reflected when I’m not doing any damage, but there’s a red glow on the Sheegoth when I’m hitting the right area to damage it. 3/4
I worked with senior design to pick the particular red color, whether hitting blocks, bosses or enemies in the game. The same red was used ensure it was clear when the player is doing damage. It's this consistency that helps players understand clearly what’s happening. 4/4

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Zoid Kirsch

Zoid Kirsch Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ZoidCTF

Nov 11
Metroid Prime Dev Stories #8: Why are there elevators between worlds in Metroid Prime? As a mainstay of the Metroid games there were also three primary technical reasons: world maps could only be up to a certain size, sound banks needed changed and memory fragmentation. 1/5
The world size limit was due to floating point precision. If Samus got too far from the origin her movement would start stuttering since the values would get too large. 2/5
For the sound banks, the MusyX sound system can stream music but it couldn’t for sound effects. Each world had a different set of sounds that were loaded while the elevator cut scene is running. 3/5
Read 5 tweets
Nov 10
Metroid Prime Dev Stories #6: How does Metroid Prime save the game? The size of Metroid Prime’s save data is under ~60 bytes in size. How is it so tiny? Well, that requires explaining world layers: 1/5
Each room in Metroid Prime has a set of world layers--these define which objects spawn when the room is loaded. E.g. it’s world layers that change Flaahgra’s room from having a boss to Chozo ghosts and an artifact when you return later. 2/5
World layers are also used for items, whenever you pick up an energy tank or missile expansion, they are on a separate world layer that is disabled once the item is acquired. If that layer wasn’t disabled, the item would be there next time the room is loaded. 3/5
Read 5 tweets
Nov 9
Metroid Prime Dev Stories #4: How a compression library saved Metroid Prime. When rooms are streamed in behind those doors, we are loading a compressed copy of the room--geometry, textures, models and game data. How is it decompressed? 1/4
Most programmers know once the compressed copy is loaded in memory then space is allocated to decompress into. This means we need the memory for both the compressed and decompressed copy. The GameCube has 24MB of RAM and having both was too expensive. 2/4
We licensed an open source decompression library that allows allocation of a single decompressed sized block then load the compressed copy into the upper section of the memory block and *decompress it in place* overwriting the compressed copy. 3/4
Read 4 tweets
Nov 8
Metroid Prime's 20th release date anniversary is on November 18th. As the anniversary approaches, I'm going to tweet out a little stories about its development. Here is the second story:
In this clip as Samus approaches the Pulse Bombu, the screen fills with static to show interference with her visor. As we worked on this a big issue is the memory use of the noise texture. The Gamecube only has 24MB of RAM, so every texture has to be carefully considered.
If we used a low resolution texture (64x64) to save memory the “static” would be blurry and not crisp. One engineer on the team came up with a great idea: what if we just use the memory holding the Metroid Prime code itself! We quickly tried it out and it looked amazing.
Read 4 tweets
Nov 8
Metroid Prime's 20th release date anniversary is on November 18th. Each day until then I'm going to tweet out a little story about its development. Here's the first one:
I spent so much time working on doors. In Metroid Prime, you may have noticed that doors can sometimes take a long time to open--that’s because the room behind the door is still loading! There is at most two “rooms” loaded at once--the one you’re in and the one you’re going to.
This is why in rooms with multiple exits, only one door can be open at a time. We went with the design of the blue force field on the doors that fades when shot to indicate the door is “ready” to open, but has to wait until the room behind is loaded.
Read 4 tweets
Aug 17, 2021
The first Dota 2 International was 10 years ago today. We showed Dota 2 first at Gamescom in Germany, on the other side of the planet, with an alpha game and held the first million dollar video game tournament and had 275,000 people go through the booth!
This seemed like a good idea at the time. We spent two days getting everything set up at the booth (Monday/Tuesday) including several runs to local computer stores getting USB cables, etc. trying to get the computers NVidia loaned us set up.
The computers were GIGANTIC gaming PCs that barely fit in the booth. We had booth carpenters start cutting ventilation holes in the desks in order to keep them from melting. We had portable AC units under the stage trying to keep things cool.
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(