[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)