[HN Gopher] IOCCC Flight Simulator (2010)
       ___________________________________________________________________
        
       IOCCC Flight Simulator (2010)
        
       Author : smig0
       Score  : 140 points
       Date   : 2024-10-21 12:24 UTC (10 hours ago)
        
 (HTM) web link (blog.aerojockey.com)
 (TXT) w3m dump (blog.aerojockey.com)
        
       | pvg wrote:
       | A discussion in 2017
       | https://news.ycombinator.com/item?id=15058723
        
       | atan2 wrote:
       | Classic!
        
       | zendist wrote:
       | How in the world did they come up with the obfuscated code for
       | this? Surely they must be using a tool?
        
         | bruce511 wrote:
         | no, it was a thing back in the 90's (and likely earlier.) The
         | goal was to write a program that was "impossible to read". Some
         | of the winners are seriously creative. And it's very much just
         | smat kids and their machines...
         | 
         | I remember one back in the day which wasn't obfuscated at all.
         | It was clearly a simple utility. Except that it didn't do what
         | you thought it did, it did something completely different.
         | (alas I can't remember the details...)
        
           | thih9 wrote:
           | > I remember one back in the day which wasn't obfuscated at
           | all.
           | 
           | Perhaps it was the Underhanded C Contest[1][2]? It's another
           | competition, entires there often seem simple and perform
           | something unexpected.
           | 
           | [1]: https://en.wikipedia.org/wiki/Underhanded_C_Contest
           | 
           | [2]: https://www.underhanded-c.org
        
         | thamer wrote:
         | There are a number of blog posts online and StackOverflow
         | questions explaining IOCCC entries, and they generally seem to
         | be built/obfuscated by hand. It's an art and it's far from
         | trivial, which is one of the reasons why the contest exists :)
         | 
         | For an example, see this StackOverflow question and its
         | detailed answers for an overview of what obfuscation techniques
         | can be used, although many more exist of course:
         | https://stackoverflow.com/questions/15393441/obfuscated-c-co...
         | 
         | I was able to compile it on macOS, but had to include an extra
         | flag to stop clang from being too strict (version 16):
         | cc -Wno-implicit-function-declaration -std=c89 -o test test.c
         | ./test
        
       | dvh wrote:
       | I couldn't find video of it (yt nor elsewhere)
        
         | NavinF wrote:
         | https://news.ycombinator.com/item?id=41905010
        
       | cbeach wrote:
       | Does anyone know of a video online demonstrating this app? I've
       | had a look but can only find screenshots
        
         | account42 wrote:
         | Compile and run it?
        
         | jboy55 wrote:
         | Here you go, https://youtu.be/qvtRfWO_J2M
         | 
         | compiled on my laptop on WSL.
         | 
         | sudo apt install x11-common libx11-dev
         | 
         | make
         | 
         | ran with
         | 
         | cat horizon.sc pittsburgh.sc | ./banks
        
           | cbeach wrote:
           | Amazing, thank you!
        
       | HanClinto wrote:
       | Wasn't able to find a video of the app working, but did find this
       | Javascript port (?), and it seems to roughly match the appearance
       | shown in screenshots:
       | 
       | https://xyzzy.github.io/jsFlightSim/README.html
        
         | NavinF wrote:
         | It's very hard to avoid rolling upside down and I wonder if
         | that's intentional. IRL you can just let go of the controls and
         | most aircraft will be stable and fly close to level
        
       | mianosm wrote:
       | I'm sure you'll be making your own scenery files very soon!!!
        
       | mfex wrote:
       | After this was posted here in 2017 I made a version in
       | ClojureScript, where you fly over Amsterdam instead of Pittsburg.
       | 
       | http://thegeez.net/2018/04/01/flight.html
        
       | simonwistow wrote:
       | On OSX you can install XQuartz and libx11 an then compile it with
       | (assuming you installed libx11 via brew)                 cc
       | banks.c -o banks \             -DIT=XK_Page_Up -DDT=XK_Page_Down
       | \             -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right
       | \             -DCS=XK_Return -Ddt=0.02 \             -std=c89 \
       | -Wno-unsequenced -Wno-implicit-function-declaration -Wno-
       | implicit-int -Wno-empty-body\             -lm -lX11
       | -L/usr/local/Cellar/libx11/1.8.10/lib/
       | -I/usr/local/Cellar/libx11/1.8.10/include
        
       | pickledcods wrote:
       | This entry inspired me to write this javascript implementation to
       | test my high-speed GIF encoder, which I used for animations in
       | the pre-canvas era. It needs keyboard arrows to navigate.
       | 
       | https://xyzzy.github.io/jsFlightSim
       | 
       | I tried to reverse-engineer the code to understand how the model
       | in the simulator worked, only it raised more questions than
       | answered. I did uncover that the author had flight simulator
       | writing experience, so the mechanics were truly obfuscated. Carl,
       | amazing piece of craftsmanship, tipping the hat!
        
       ___________________________________________________________________
       (page generated 2024-10-21 23:00 UTC)