[HN Gopher] Street Fighter II, paper trails (2021) ___________________________________________________________________ Street Fighter II, paper trails (2021) Author : tangue Score : 312 points Date : 2023-05-08 08:30 UTC (14 hours ago) (HTM) web link (fabiensanglard.net) (TXT) w3m dump (fabiensanglard.net) | thrdbndndn wrote: | Previous discussion: | | https://news.ycombinator.com/item?id=29657343 | | Street Fighter II paper trails - allocating sprite space by hand | (December 23, 2021 -- 554 points, 76 comments) | misterprime wrote: | The end of the article speculates that the sheet system was | dropped since the tiles appear scrambled. I'm wondering if the | artists still used the sheet system, but a memory optimizer tool | re-ordered the tiles to help free up a little more space on the | ROM. | duskwuff wrote: | > I'm wondering if the artists still used the sheet system, but | a memory optimizer tool re-ordered the tiles to help free up a | little more space on the ROM. | | Seems unlikely. Managing the "physical" layout of sprites on a | sheet is a lot of work; there's no reason to do that if it's | going to be thrown out by an optimizer in the end. | | Besides, notice that, on the optimized SF2 sheet, all of the | tiles for one sprite get written out in order; they aren't | interleaved left-to-right like the tiles would have been on a | sheet. | fredoralive wrote: | The way Super Street Fighter II has a mix of methodologies | seems to count against that. Why only run this optimiser on the | new art? | | I could see artists might still use a grid when sketching and | planning to keep a handle on sprite size / memory usage. But | not in the hand packed sort of way, more just each sprite drawn | unscrambled on a grid. You wouldn't go through all the | rigmarole of hand optimising memory layouts if some stage in | the build system is going to ignore it and do its own thing | instead. | Dwedit wrote: | Because if you change the tiles, you need to redo all the | tile number tables throughout the program. Much easier to | only change it for new graphics added to the game than to | rework a bunch of old stuff that works. | fabiensanglard wrote: | If you enjoyed the topic of CP-System games, there is now a whole | book about it. | | https://fabiensanglard.net/cpsb_paper/ | kaptain wrote: | Can someone help with the math? Why do they divide by two to | calculate the memory size of the sheet? Thanks! | 0xcde4c3db wrote: | Each pixel is stored as a 4-bit index, so 2 pixels per byte. | [deleted] | beached_whale wrote: | Each pixel was 4bits(1/2 byte), and memory is in bytes | bluedino wrote: | With today's 100GB game downloads, it's easy to say that | developers gave up on these kinds of tricks. | | But they have to be doing something (other than data | compression), right? Otherwise we'd be seeing 500GB downloads? | djur wrote: | Data compression is really good these days, and there are file | formats and compression strategies that are optimized for | gaming. The specific technique being used here is still used in | 2D games, but there are spritesheet optimization tools | available to do it automatically. | | My understanding is that for the biggest games there's an | intentional tradeoff to use more storage in exchange for faster | load times, although the need for that has apparently lessened | over time. If you go back and look at some of the big multi- | disc games of the late '90s/early '00s you might be shocked by | how much duplication there was in order to reduce the need for | disc swapping. (You might also be shocked by how much of that | disc space was required solely to support pre-rendered | cutscenes.) | turtledragonfly wrote: | Tricks for packing data are still relevant today, though | obviously hardware has changed so the tricks are different. One | important concept on today's machines is that memory latency is | huge relative to the cost of executing other instructions (eg: | arithmetic, logic). In some senses, such packing has become | even _more_ important as time has gone on. There was a point in | history when memory operations and ALU operations were about | the same speed, so it made sense to keep even small | computations in memory, and retrieve them later (eg: a lookup | table, possibly pre-computed). Nowadays, it is often faster to | re-compute values from scratch when needed, rather than going | to memory, even for biggish computations. | | In today's world, the GPU largely deals with textures, but the | same rule holds -- it can make sense to compute values rather | than doing texture fetches. Anyway, I'd say your instinct is | right -- developers are still using lots of tricks to get | things where they are. There is still a lot of competitive | pressure to provide more, more, more and squeeze the most out | of the hardware. | | All that said, the 100GB download is often going to be | audio/video. Then probably textures. There is certainly | standard compression going on for a lot of that. But not the | sort of manual "these texels go here, those texels go there" | fiddling of data like described in this article. Though UV | unwrapping is still and art and a science (: | racl101 wrote: | Games are also way bigger these days. It may not feel like | they're trying but they probably are. | rikthevik wrote: | I love it! Thanks for putting this together. | pm2222 wrote: | https://youtube.com/@QuanZhenyouxijieshuo Plenty channels like | this one. Surprised to find that Zangief can be so strong. | vrglvrglvrgl wrote: | [dead] | Dwedit wrote: | Also see: Street Fighter II, The World Warrier | | https://fabiensanglard.net/sf2_warrier/index.html | airstrike wrote: | That is an awesome read as well, thanks for sharing! | xdavidliu wrote: | to save people some clicking, the word "Warrier" here is in | fact misspelled intentionally by the article, which discusses | how it was misspelled unintentionally by one of the original | graphic designers of the game. | ai_ja_nai wrote: | Fabien Sanglard is an ace, his 3dfx posts are legendary. Very | enjoyable reading | collenjones wrote: | His books are all also fantastic value! | tiffanyh wrote: | Monospace fonts + Justified alignment, are the two biggest | contributing factors to reduced readability. | | Just because it looks pretty, doesn't means it's good UX. | cubefox wrote: | I find monospace fonts surprisingly readable, but the font size | is too small on smartphones, and yeah, the alignment is off. | tiffanyg wrote: | [flagged] | tangue wrote: | We're in 2023. Use reader mode. | aflag wrote: | I feel like that is a myth. Most people I know use monospace | fonts for programming. | tiffanyh wrote: | For programming, correct. | | But long form essays - it's super difficult. | | Braille Institute is an authority research group in this | space and they development their own font that achieves | maximum readability. | | That font is NOT a monospace font, because the found it too | difficult to read in long-form. It's a proportional font. | | https://brailleinstitute.org/freefont | aflag wrote: | That font seems to be designed for low vision readers. I'm | not sure if you can extrapolate that to people without any | sort of vision issues. I mean, I can read the essay just | fine, and I don't find it particularly hard to read or | anything. If anything, given that I'm already used to | reading monospaced fonts all day, I think I can probably | read it faster than if it was a font that I'm less familiar | with. | psychphysic wrote: | I played this game to death on my megadrive (genesis) and now | occasionally plate third strike. | | So amazing to see a bit of street fighter history and funny I'd | never noticed Ken's jaundiced eyes and teeth! | lostgame wrote: | The only gaming console I still own is a SEGA Saturn - and a | burned copy Street Fighter 2 Alpha practically _lives_ in the | disc tray. (I use an Action Replay cartridge solution for | booting burned discs called 'Pseudo Saturn Kai Lite'.) | | I am fortunate enough to have a live-in music studio, and it | actually lives attached to the secondary monitor in the studio | for us to take breaks on and do a few fights to decompress. | Pretty much never fails to be a hit. | psychphysic wrote: | Amazing! Absolutely love the alpha series too. | | I only briefly had a Saturn and Virtua Cop series is still | one of my most intense memories. A light gun game at home | with graphics that looked like the arcade to my childhood | eyes! | | I wonder if kids these days will look back on the ps5 | similarly hard to imagine! | RunSet wrote: | Just in case your Saturn ever dies the arcade version is well | emulated by Final Burn. | | https://github.com/finalburnneo/FBNeo/releases | | https://archive.org/download/2020_01_06_fbn/roms/arcade.zip/. | .. | CTDOCodebases wrote: | I like how they recycled sprites from other games like Final | Fight e.g the burning body sprite that Dhalsim triggers. | yamazakiwi wrote: | > Notice how Ryu's teeth white color comes from his clothes. For | Ken, artists had to reuse some of the skin color because Ken's | kimono is red. | | That's interesting that I never noticed the slight differences in | color on the teeth given their restrictions. | | Also... Ken is wearing a Gi, not a Kimono. Kimono does literally | mean "thing to wear", but a Gi is the training clothes pictured | in Ken's model. | fabiensanglard wrote: | Thank you for the clarification, I had no idea. Fixed it. | yamazakiwi wrote: | Overall this is an excellent write-up and I enjoyed reading | it very much! Thanks for the reply! ___________________________________________________________________ (page generated 2023-05-08 23:01 UTC)