Street Fighter II, subtile accurate animation (2021)
fabiensanglard.net
fabiensanglard.net
Also Fabien Sanglard's Game Engine Black Books (https://fabiensanglard.net/gebb/) are fascinating reads. Both Doom and Wolfenstein 3D sit on my living room coffee table.
I remember my one and only real attempt at game dev involved the zx spectrum where I got a book from my local library with all sorts of inspiring tricks in it. For people who don't know/remember, the speccy used to output to a TV[1] but didn't have enough graphics juice to actually fill the screen, so you could render into a pane in the center of the screen and the only thing you could do with the outside border was you could set the color [2]. Anyhow, this spectrum game dev book showed how to build a flight simulator game in assembly and one of the incredible hacks they employed was to change the color of the border at exactly the right moments in the scan path of the CRT so it would look like you had a continuous horizon all the way to the edges of the screen. You couldn't actually render any graphics out there but it blew my mind that you could at least make the sky and land stretch right to the edge of the screen.
[1] Which would have been CRT at the time, which turns out to be important for this hack.
[2] You can see this border here. It's the ugly green box. All spectrum games used to have this. https://forums.libretro.com/uploads/default/original/3X/c/9/...
Your latter assessment is why even arbitrary limitations commonly inspire interesting gameplay and art style IMO. I quickly grew tired of Assassin's Creed and similar open world games; in contrast, games like The Messenger can pull me in immediately.
The (admittedly few) game jams I've actually completed had limiting restrictions (i.e. 8/16-bit art/gameplay). Two things make me more productive/creative than normal: looming deadlines and limitations.
I also think there's a balance between the breadth of a tech and its use. I feel weird seeing how much can software do, but all this for games.. it's like having a complete nuclear lab team to help you change batteries on your LED lightsaber...
This is a channel that does deep dives on specific games, often at the level of carefully explained assembly code, for glitches and graphical techniques in 8-bit and 16-bit consoles.
Getting smooth sprites on EGA? That was easy -- make four copies of each sprite image, one per two-pixel offset.
Now back to Street Fighter II. That game has a big "KO" 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.
This reminds me of something else. When I was a kid I wanted to create my own Mario game. One of the ideas I had was to have an optional, additional sprite I called "The Chunk" that would be used for auxiliary character animation; for example to make Princess Peach's hair flutter when she jumped or ran.
Well, my supposedly kid-genius self wasn't so original after all; in Super Mario Bros. 2 (the Doki Doki Panic derived one), the playable characters do indeed have a Chunk: a small white rectangle that moves around with them, layered behind the character sprite, and provides the sclerae of their eyes.
I'm actually still working on that "Mario" game. It has Mario-like platforming physics but completely different premise and auxiliary mechanics. Something like the Chunk is used to switch the game's terminal screens from red (normal state) to green (hacked state).
https://en.wikipedia.org/wiki/Block_Elements
Sadly it seems HN does not accept these things.
Huh?
╷ ╒╗ ╓╖╔╤╕ ╼┭┬┮┯┳┱┰┲╸ #
╞╦╡╟─╢╠╩╧╛ ┽┼┾┿╉╂╊╋━ #
│╚╪╬═╣║▲▼◀▶ ┏╅╁╆╈╇╃╀╄╾ #
╵ ╘╝╶╨╫╥╴┌┐┎┒┍┓┏┑╹┃┃┃╿╽│││╻ #
┌┬┐╷ ╙╜ ├┤┞┨┢┩┠┧╺┹┸┺┷┻┵┴┶┛ #
├┼┤│╶─╴ ┝┥┟┦┡┪┣┫ #
└┴┘╵ └┘┗┙┕┛┖┚ #
Huh. That's annoying and surprising, since it clearly handles box drawing characters just fine.(@dang: probably-duplicate bug report: HN mistakes Block Element characters for emoji.)
https://github.com/uguu-org/ikaruga-snake/blob/master/source...
This seems like a common trick for tile-based display environments.