Difference between revisions of "Case Studies"
m (tiny compiler is really a compiler) |
|||
(15 intermediate revisions by 7 users not shown) | |||
Line 5: | Line 5: | ||
:[[m8trix 8b]]: An "Enter The Matrix" screen display in only 8 bytes | :[[m8trix 8b]]: An "Enter The Matrix" screen display in only 8 bytes | ||
− | :[[4is256]]: | + | :[[4is256]]: Řrřola's Tetris is a full tetris clone with scoring |
:[[paint16b]]: Hellmood's paint program in 16 bytes (really) | :[[paint16b]]: Hellmood's paint program in 16 bytes (really) | ||
+ | |||
+ | :[[Indian Spirit]]: An American Indian tapestry with music in 32 bytes | ||
+ | |||
+ | :[[Essence]]: Fakery of path tracing and lighting, with audio, in 64 bytes | ||
+ | |||
+ | :[[Memories]]: Detailed writeup on [https://www.pouet.net/prod.php?which=85227 "Memories" (256 bytes)] | ||
+ | |||
+ | :[[Game of Life 32b]]; Writeup for game of life in 32 bytes | ||
+ | |||
+ | :[[Christmas Tree]]: Implementation of a Christmas Tree on several platforms | ||
+ | |||
+ | :[[MUZAK58]]: Playing some background byte-beat music through COVOX LPTDAC in 58 bytes | ||
== External Case Studies == | == External Case Studies == | ||
− | [https://en.wikipedia.org/wiki/Brainfuck Brainfuck] is a very tiny language, having only 8 commands and an instruction pointer. Several interpreters have been made; Gynvael archived [http://gynvael.coldwind.pl/bf125/ many different versions along with their source code], the smallest of which was 125 bytes. qkumba took that as inspiration and created his own [http://pferrie. | + | [https://en.wikipedia.org/wiki/Brainfuck Brainfuck] is a very tiny language, having only 8 commands and an instruction pointer. Several compilers and interpreters have been made; Gynvael archived [http://gynvael.coldwind.pl/bf125/ many different versions along with their source code], the smallest of which was 125 bytes. qkumba took that as inspiration and created his own [http://pferrie.epizy.com/misc/tiny/brainfck.htm brainfuck compiler in 100 bytes] (104 for one that is fully compliant). (Note: The term "compiler" is used mistakenly a lot in these descriptions; the majority of brainfuck programs are actually interpreters that load brainfuck programs and execute native code token by token. This one is an exception in that it really does compile the code entirely into native instructions first.) |
+ | |||
+ | [https://revival-studios.com/marquee/blog/blog_homogenic.html Small Beginnings: The development of Homogenic] Development Write up on [https://www.pouet.net/prod.php?which=84537 Homogenic, by: Marquee Design (256 bytes)] | ||
+ | |||
+ | [https://revival-studios.com/marquee/blog/blog_nanorail.html Moving on: The development of Nanorail] Development Write up on [https://www.pouet.net/prod.php?which=84624 Nanorail, by: Marquee Design (256 bytes)] | ||
+ | |||
+ | [https://revival-studios.com/marquee/blog/blog_enigma.html Full Circle: The development of Enigma] Development Write up on [https://www.pouet.net/prod.php?which=85232 Enigma, by: Marquee Design (256 bytes)] | ||
+ | |||
+ | [https://revival-studios.com/marquee/blog/blog_microdose.html Crunching content: The development of Microdose] Development Write up on [https://www.pouet.net/prod.php?which=85677 Microdose, by: Marquee Design (128 bytes)] | ||
+ | |||
+ | [https://abaddon.hu/crevenge/history.html The long journey to 1k real-time ray-tracing] Detailed technical writeup on [https://www.pouet.net/prod.php?which=87078 Chrome Revenge by Abaddon (1024 bytes)] | ||
[http://canonical.org/~kragen/demo/fr-016.html Disassembly of Farbrausch's "fr-016: bytes"] | [http://canonical.org/~kragen/demo/fr-016.html Disassembly of Farbrausch's "fr-016: bytes"] |
Latest revision as of 11:24, 13 February 2024
Sometimes it can be helpful to examine a tinyprog in detail, seeing what choices were made and why:
- MELT.COM: We take a cute program from the 1980s and see how far we can crunch it down
- m8trix 8b: An "Enter The Matrix" screen display in only 8 bytes
- 4is256: Řrřola's Tetris is a full tetris clone with scoring
- paint16b: Hellmood's paint program in 16 bytes (really)
- Indian Spirit: An American Indian tapestry with music in 32 bytes
- Essence: Fakery of path tracing and lighting, with audio, in 64 bytes
- Memories: Detailed writeup on "Memories" (256 bytes)
- Game of Life 32b; Writeup for game of life in 32 bytes
- Christmas Tree: Implementation of a Christmas Tree on several platforms
- MUZAK58: Playing some background byte-beat music through COVOX LPTDAC in 58 bytes
External Case Studies
Brainfuck is a very tiny language, having only 8 commands and an instruction pointer. Several compilers and interpreters have been made; Gynvael archived many different versions along with their source code, the smallest of which was 125 bytes. qkumba took that as inspiration and created his own brainfuck compiler in 100 bytes (104 for one that is fully compliant). (Note: The term "compiler" is used mistakenly a lot in these descriptions; the majority of brainfuck programs are actually interpreters that load brainfuck programs and execute native code token by token. This one is an exception in that it really does compile the code entirely into native instructions first.)
Small Beginnings: The development of Homogenic Development Write up on Homogenic, by: Marquee Design (256 bytes)
Moving on: The development of Nanorail Development Write up on Nanorail, by: Marquee Design (256 bytes)
Full Circle: The development of Enigma Development Write up on Enigma, by: Marquee Design (256 bytes)
Crunching content: The development of Microdose Development Write up on Microdose, by: Marquee Design (128 bytes)
The long journey to 1k real-time ray-tracing Detailed technical writeup on Chrome Revenge by Abaddon (1024 bytes)
Disassembly of Farbrausch's "fr-016: bytes"