Thursday, January 21, 2021

Game development: Learning through old games : GoldenEye 007 (N64) #2

  


It still amazes me how developers of "old games" created technologies /principles that are still used today.  That's the resume of this post. 






Even new heavy resource games can learn from it. What game is this? Read the first part.



5) Constraints X Optimizations

Martin Hollis: I mentioned we didn’t have an N64 or anything like one. The closest we had was an SGI Onyx or two. Thankfully, as it turned out, the N64 could render triangles much faster than the SGI Onyx. This was shocking as the list price of the Onyx was $250K dollars, and the N64 launched for about 1000th of this price. 

That’s progress. And it totally saved us, as several of the backgrounds rendered at about 2Hz (2 fps) on the Onyx, without even drawing enemies, objects, or Bond’s gun. My attitude was always, well, if it runs at all on the Onyx, we can probably get it to run at about 30Hz on the final hardware. 

We had a target of 30Hz for frame-rate. As a rule of thumb, I allocated 1/3 of the graphics processing to rendering the background, 1/3 to rendering the characters, 1/3 to the objects, and 1/3 to Bond’s gun (and 10% to the audio).

This kind of accounting partly explains why we didn’t always hit 30Hz. 

The fact is because we always knew the software had slack in for future improvement, and because the hardware was supposed to get faster with a later spin, we felt we could be optimistic about framerate. We were relying on future ingenuity, but in the end, the last few optimizations yield less than you hoped, and the final hardware is clocked slower than you hoped. 

Frankly, I think the benefit from having 50% more triangles in the backgrounds outweighed the cost of running at 20Hz in some places. I think the benefit of being able to have 8 characters on screen, outweighs the cost of running at 10Hz. The benefit of having thick smoke outweighs the cost of running at 10Hz. I don’t think the same decisions are correct today, with the more powerful hardware.





Karl Hilton, one of the designers on the project, says the N64’s processor was only 3/4 of what the team had designed for.  

The solution? Go old school.

“RGB color textures cost a lot more in terms of processing power. You could double the resolution if you used greyscale, so a lot was done like that. That's why a lot of goldeneye is in black and white. You could do double the resolution if you used greyscale, so a lot was done like that. If I needed a bit of colour, I’d add it in the vertex.”

Many elements are recycled from other parts of the game. The radar on multiplayer mode is actually an oil drum texture. The shuttle scene reused satellite textures and it’s takeoff imagery was powered by graphics from grenade explosions.



6) Some Color Palettes used in this game

Here's another post where i talk about color palettes used in games/movies.




This game follows a B&W color palette.  
Black represents power, elegance, and authority. Common associations with black also include class, distinction, formality, mystery, secrecy, and seriousness. The "trick" used by the developers had a great positive effect.
(source: careerfoundry.com - color psychology / UI Design)


7) Game Scale/Scenery


Image 1: Enemy human scale compared to the truck
Image 2: Comparing door, enemy, and truck height.
Image 3: Below, to make a comparison related to human scale/truck.


Image Source: BigWheels

More scale comparisons: everything is fine! (m) is used to compare the size of a urinal (e) it's the soldier's height. (h) is the height of the urinal placement.



Let's suppose this room is 3 meters high (z). There are six blocks height in total (a), including the glue between them. 
So Z/A = 0,5meters which means each block has a medium size of 50 centimeters. 
The only thing I think is strange in this room is this. Maybe it's on purpose -  a basement room that uses 'castle blocks' but nothing to think it's bad. (b) equals to width of the block, which I think is too wide. Can we also think the same about the room's floor scale?



Another scale comparison: This machine is fine! A kind of tall room. Also, I noticed the placement of the alarm system. The height is fine too. remembering that the enemy could turn on the alarm (AI).


8) Texture "repetition" / "recycling"

RED: Where the wall texture is repeating 
BLUE: Where the ceiling texture is repeating.


RED: Where the floor texture is repeating 
BLUE: Where the lower wall texture is repeating.
GREEN: Where the upper wall texture is repeating.
The (loot)boxes? Yes it's obvious they are repeating too. 




Same thing here, this time, just look at the wall's textures. Also, I can say that there's some fog effect in this area (cool!).

IMO, it didn't get ugly. This game is pretty awesome visually for the time. What I'm showing here is how the same textures are used in various parts of the game. This "technique (more here)" is used in today's games, with some differences (or not) like texture mirroring, filters, UV scaling, gamma correction, color-changing, and that's why a "so big game" seems to be compressed inside of a cartridge.


(Why) Is all this optimization necessary?

The Nintendo 64, console for which the game was created, at the time, had 4MB of ram available so you would have to optimize the resources for the system, compared to today ... that a console has at least 6GB of ram. Something 150x bigger. But because it's bigger doesn't mean that optimization is not necessary (what about open-world games? lol!) 

You can say: were the textures not streaming from the cartridge? I can't say why because I don't know the system architecture, but there are reports of the latest games made for the N64 that do take advantage of that.

Let's use another example:


Sci-fi lab scene: Just this scene without texture is using 800MB of VRAM.

Sci-fi lab scene: Just this scene without texture is using 1.8GB of VRAM. Note that it wasn't optimized for games. 

What about trying to export this to an N64 console game scene? I think it's like a dilemma of converting a heavy pc game to a Nintendo Switch console. It's possible? yes, with *some* loss of graphic quality and effects.  Just think how could you run, at the time (+-2002) , GTA 3 on you PC with 4 gigs of ram? Optimization. Let's go further. Playstation 3 hadn't 4 gigs of ram at the time too!

 


9) Final Words - What I've learned with this game:


**Game optimization:  
You must know your target hardware's limitations (such as console/cellphone/computer) when projecting/developing a game. Maybe you'll have fewer limitations with computers, but not everyone has a beast machine! Look what the Rare's Goldeneye team did according to the N64's limitations.

Still, it is interesting to think about the "percentage" of resource allocation. How much will be dedicated to audio, video, artificial intelligence, physics, controls, environment, rendering, quality level, etc.
How many games work well nowadays, without you having to update your computer so you can play, 'right'? (unless your computer is a monster!) No wonder many people prefer consoles. What if I play on cell phones? This one has the battery problems. What about minimum requirements?
I don't remember this game (007) crashing when I played. Of course, nowadays the players are more demanding, specially in relation to FPS (60? 120?) we must take this into account.  
 
In the past, a game with bad physics was not as unforgivable as it is today, since today we have more resources and technology.
 
You have to know what kind of textures you can use, size, how much memory you can use in each scene of the game, whether it will be loaded or not in real time (streaming). also, many textures, even nowadays, have to be used in other scenarios and scenes.
Apart from the details of the engine used. There must be something I forgot!



**Game scale/human scale:
I already posted here on the blog, there are some games, even current ones, that do not follow the real scale of objects, buildings, even humans. read more here. Maybe that was not important in the past, but nowadays it is. No wonder there are game studios looking for people with knowledge in architecture, because architects have a sense of scale, which leads us to talk about..


**Scenarios:
I cannot say that there were Architects on the team at the time, but the sets were well made and designed, the spaces are useful and have their function. The scenarios were based on the film, in order to give a feeling of really being in the shoes of 007. The proportions are great, especially for a game from the 90's era. (More below)

**Colors:
As I said about the color palette, the game follows a monochromatic color layer, which combines (who knows if it was purposeful in addition to the reason for using less console resources) well with the film and has an air of seriousness.

**Playability:  
The game was very well adapted to the control of the N64, being, at the same time, complex and easy to use and adapt. Note that the N64 has no mouse or keyboard, compared to other shooting games, whose platform was the PC.

**Sources:
The game used the film as a reference, source. Maybe you are not going to create a game about a movie, so you will have to use history books, short stories, do research, go to places, even use your imagination. References are important to not create something that is too disconnected from reality.

**Innovation:
Creating a game that almost copies another does not mean innovation. there has to be something different. a great innovation at the time of this game was artificial intelligence because enemies think ... and nowadays some games don't even have that! There is an objective to be fulfilled in the game, not just killing everyone!



Sources:
Videos:

No comments:

Post a Comment