TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Street Fighter II, subtile accurate animation (2021)

118 pointsby Amorymeltzerover 1 year ago

12 comments

ryneandalover 1 year ago
Game developers getting creative due to hardware limitations is a topic I will never grow sick of. Historical gamedev journalism has grown much in recent years, with outlets like NoClip (<a href="https:&#x2F;&#x2F;www.noclip.video&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.noclip.video&#x2F;</a>) producing phenomenal content.<p>Also Fabien Sanglard&#x27;s Game Engine Black Books (<a href="https:&#x2F;&#x2F;fabiensanglard.net&#x2F;gebb&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;fabiensanglard.net&#x2F;gebb&#x2F;</a>) are fascinating reads. Both Doom and Wolfenstein 3D sit on my living room coffee table.
评论 #38433555 未加载
评论 #38434268 未加载
评论 #38433859 未加载
gdubsover 1 year ago
One of these days I&#x27;m going to find the actual quote because I think about it so often, but in his book &quot;iWoz&quot;, Steve Wozniak talks about how great it was to come up during a time when you could fit the entire machine in your mind. The constraints bred creativity, and forced you to come up with ingenious solutions to things.
bitwizeover 1 year ago
A lot of people talk about what a genius Carmack must have been to get those smooth animations in Commander Keen, especially considering that the EGA had a planar display wherein each byte represented one color plane for eight pixels, making placing of pixels at arbitrary locations hard. But the clever bit was in the smooth <i>scrolling</i> -- knowing which EGA registers to poke to get a particular horizontal offset and just-in-time fetching of tile data to fill in whatever scenery had just scrolled into view.<p>Getting smooth sprites on EGA? That was easy -- make four copies of each sprite image, one per two-pixel offset.
评论 #38436062 未加载
arnaudsmover 1 year ago
Here is my favorite video about 8-bit era optimisations. Makes you appreciate games from this era even more. This arcane magic survived in the demoscene to this day.<p><a href="https:&#x2F;&#x2F;youtu.be&#x2F;ZWQ0591PAxM?si=VsIbeLAb7mHc_I9V&amp;t=157" rel="nofollow noreferrer">https:&#x2F;&#x2F;youtu.be&#x2F;ZWQ0591PAxM?si=VsIbeLAb7mHc_I9V&amp;t=157</a>
Dweditover 1 year ago
Meanwhile, Zelda 2 used a combination of whole tiles, and a single moving sprite to show a partial value for Life and Magic. In order to hide that there was a moving solid 8x8 block, they added labels to the left of the Life and Magic meter (the little &quot;L&quot; and &quot;M&quot; block), and this label was opaque, and the 8x8 block was drawn behind the background, so it would hide the moving block sprite.<p>Now back to Street Fighter II. That game has a big &quot;KO&quot; sprite in the center of the life meters, which could cover up any moving sprites if drawn at a higher priority. If the devs wanted to minimize the number of different tiles needed for a life meter, they could have also used whole tiles combined with a moving box sprite. This would require drawing two more sprites than the solution in game, but would have required only two graphics tiles rather than the 16 tiles the game uses.
评论 #38439344 未加载
lakpanover 1 year ago
This feels a lot like the CSS hacks I’ve worked on around 2012, when CSS was limited and SVG was rare and buggy.
评论 #38438486 未加载
matheusmoreiraover 1 year ago
Pretty neat. Unicode has the exact same feature in its block elements block.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Block_Elements" rel="nofollow noreferrer">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Block_Elements</a><p>Sadly it seems HN does not accept these things.
评论 #38443170 未加载
评论 #38439459 未加载
omoikaneover 1 year ago
I did something similar in recent months, where I generated separate bitmap tiles for all sub-tile movements and rotations:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;uguu-org&#x2F;ikaruga-snake&#x2F;blob&#x2F;master&#x2F;source&#x2F;tiles-table-32-32.png">https:&#x2F;&#x2F;github.com&#x2F;uguu-org&#x2F;ikaruga-snake&#x2F;blob&#x2F;master&#x2F;source...</a><p>This seems like a common trick for tile-based display environments.
tedunangstover 1 year ago
The health bar is just a hexadecimal number in a funny alphabet. Is it really so amazing that it can show numbers in between 0x0 and 0xf? That&#x27;s the bare minimum I&#x27;d expect for any display.
teddyhover 1 year ago
See also Unicode code points 002588 to 00258F.
shmerlover 1 year ago
Similar idea can be used for progress bar in console using Unicode block symbols.
greenthrowover 1 year ago
This article is so lightweight it can be summarized in one sentence without losing any information. That&#x27;s not really worth sharing or taking the time to read, IMHO.
评论 #38442066 未加载