October 21st, 2024

Ioccc Flight Simulator (2010)

The IOCCC Flight Simulator, created by Carl Banks, won "Best of Show" in 1998, operates on Unix-like systems, allows keyboard control of a Piper Cherokee, and supports customizable scenery files.

Read original articleLink Icon
CuriosityEnthusiasmNostalgia
Ioccc Flight Simulator (2010)

The IOCCC Flight Simulator, created by Carl Banks, won the "Best of Show" prize in the 1998 International Obfuscated C Code Contest. This flight simulator is notable for its compact size, fitting into under 2 kilobytes of code while providing a realistic flying experience with 6-degree-of-freedom dynamics, loadable wireframe scenery, and a basic instrument panel. It operates on Unix-like systems with X Windows and is available in the public domain. Users can control a Piper Cherokee airplane using keyboard inputs, with arrow keys for flight control and additional keys for throttle adjustments. The simulator features three instruments: an airspeed indicator, a heading indicator, and an altimeter. Scenery files can be loaded to enhance the flying experience, with options for various landscapes, including urban and natural settings. The program requires specific compile-time parameters to function correctly, and users are encouraged to create their own scenery files. The simulator's source code is available in the 1998 IOCCC Winners Distribution, which includes other winning entries. The project exemplifies the challenge of creating functional software within strict size constraints, showcasing the creativity and technical skill involved in obfuscated coding.

- The IOCCC Flight Simulator won the "Best of Show" in the 1998 IOCCC.

- It operates on Unix-like systems and is in the public domain.

- Users can control a Piper Cherokee airplane with keyboard inputs.

- The simulator includes three instruments for flight monitoring.

- Scenery files can be customized and loaded for varied flying experiences.

AI: What people are saying
The comments on the IOCCC Flight Simulator highlight various user experiences and inquiries related to the software.
  • Users discuss installation and compilation on different systems, including OSX.
  • Some have created their own versions or ports of the simulator, showcasing different locations.
  • There is a common interest in finding video demonstrations of the app, with many users unable to locate any.
  • Questions arise about the obfuscation of the code used in the simulator.
  • Overall, there is enthusiasm for creating and customizing scenery files.
Link Icon 14 comments
By @pickledcods - 3 months
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!

By @HanClinto - 3 months
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

By @mfex - 3 months
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

By @pvg - 3 months
By @gmiller123456 - 3 months
My favorite was "the most configurable application ever" and was only one line:

    #include "/dev/tty"
By @simonwistow - 3 months
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
By @cbeach - 3 months
Does anyone know of a video online demonstrating this app? I've had a look but can only find screenshots
By @mianosm - 3 months
I’m sure you’ll be making your own scenery files very soon!!!
By @zendist - 3 months
How in the world did they come up with the obfuscated code for this? Surely they must be using a tool?
By @dvh - 3 months
I couldn't find video of it (yt nor elsewhere)
By @atan2 - 3 months
Classic!