[HN Gopher] Bouncing Beholder, my winning JS1K entry (2012)
       ___________________________________________________________________
        
       Bouncing Beholder, my winning JS1K entry (2012)
        
       Author : wonger_
       Score  : 64 points
       Date   : 2025-02-04 13:37 UTC (9 hours ago)
        
 (HTM) web link (marijnhaverbeke.nl)
 (TXT) w3m dump (marijnhaverbeke.nl)
        
       | jitl wrote:
       | This person is also the author of CodeMirror and ProseMirror, the
       | best choices in my opinion for plain text editing and rich text
       | editing respectively for the web platform
        
         | degun wrote:
         | Also, the author of "Eloquent JavaScript", the book from which
         | I learned the language. Endless respect for Marijn.
        
       | KingOfCoders wrote:
       | I wrote boot sector stuff (1k) on the Amiga (68k assembler).
       | Today I wonder if I could have written a game (tech wise and
       | skill wise).
        
         | ASalazarMX wrote:
         | Definitely. For example, a boot sector Space Invaders in 512
         | bytes.
         | 
         | https://github.com/nanochess/Invaders
        
           | KingOfCoders wrote:
           | It depends on your video memory and how it is structured.
           | Also as I've said, skills ;-)
        
       | rob74 wrote:
       | See also:
       | https://en.wikipedia.org/wiki/Beholder_(Dungeons_%26_Dragons...
        
       | mohsen1 wrote:
       | I did a JS1K back in the day [1] such a fun concept!
       | 
       | I wonder these days if anyone is using multi-character emoji
       | (don't know what do you call those exactly) to compress more data
       | in 1024 "bytes"?
       | 
       | Since HackerNews does not allow emojis, here is a demo of what I
       | mean:
       | 
       | https://output.jsbin.com/nebemihuhe
       | 
       | [1] https://js1k.com/2013-spring/demo/1426
        
         | gorkish wrote:
         | "Bytes" is not an arbitrary definition in the contest. Any use
         | of an emoji takes 4 bytes. Some of these new combined ones can
         | be 25+ bytes when accounting for zero width joiners, variant
         | selectors, and modifiers. Technically you can pack nearly as
         | much data as you like into a single legal Unicode glyph (think
         | infinite zalgo text) if you just want to have the thought
         | experiment.
         | 
         | Unicode is a nightmare, but I'm glad everyone agrees to share
         | the same nightmare.
        
           | mohsen1 wrote:
           | That explains it!
        
         | lifthrasiir wrote:
         | For the record, JS1024 [1] is a de-facto spiritual successor to
         | JS1K nowadays.
         | 
         | [1] https://js1024.fun/
        
           | wonger_ wrote:
           | And sorta similar: https://js13kgames.com/
        
         | leptons wrote:
         | Go have a look at https://beta.dwitter.net - many of the
         | examples there use this technique to fit more than 140 bytes
         | into the "dweet" (many are also less than 140 characters, so
         | don't need to use this compression technique). There is a
         | convenient "compressed" switch to "decompress" the code. The
         | rule on dwitter.net is no more than 140 characters (not 140
         | bytes).
        
         | rounce wrote:
         | There are ways of using actual compression to pack demos:
         | https://archive.is/8KzKA
        
         | kristopolous wrote:
         | https://js1k.com/2013-spring/demo/1534 that was mine
        
       | calibas wrote:
       | > I've heard people wax poetic about programming old, limited-
       | memory machines. I wouldn't know anything about those---at the
       | time they were current, I was writing rudimentary number-guessing
       | games in BASIC. But doing this competition entry gave me a taste
       | of what they might be talking about.
       | 
       | One rather big difference here though, the limitation is on the
       | size of the code, not the compiled binary. Most of the
       | "optimizations" here have little to no effect on the code after
       | it's compiled.
       | 
       | With older computers, instead of removing line breaks from the
       | code, you're doing things like tweaking compiler flags to shrink
       | the size.
        
         | TazeTSchnitzel wrote:
         | With older computers you're handwriting assembly generally if
         | you actually want to get the most out of them.
        
           | ASalazarMX wrote:
           | I think he meant for competitions that judge binary size.
           | Handwritten assembly could even increase the size (like
           | unfolding loops) and it wouldn't matter if the speed was
           | improved.
        
       | kookamamie wrote:
       | To those it was not obvious - the result of the entry is the top
       | banner, a keyboard-controllable "game".
        
       | madflame991 wrote:
       | I can't recommend "return true to win"
       | (https://alf.nu/ReturnTrue) enough to learn how to golf JS. I
       | think it's more accessible to learn one 10-20 char snippet at a
       | time than a big project like a 1k submission.
        
       ___________________________________________________________________
       (page generated 2025-02-04 23:01 UTC)