Hacker News new | past | comments | ask | show | jobs | submit login
My project is now an easter egg in Microsoft Flight Simulator (github.com/s-macke)
555 points by s-macke on Nov 15, 2022 | hide | past | favorite | 142 comments



How cool is that! I remember FS4 (and FS5) well, having logged hundreds of hours in FS4 as a kid, and many more unlogged hours.

In fact, in the early 90's, I was one of the first people in a Virtual Airline. https://en.wikipedia.org/wiki/Virtual_airline_(hobby)

Not just the first VA, but one of the first few people in the VA. I was tasked with "designing" aircraft for use with our VA. When FS5 came out, you could modify the looks as well, so I'd get the flight dynamics as close as I could and another guy would build the model of how it looked. I forget what that package was called, now. But it was a lot of fun. I don't think any of us had an idea that VA's would turn into a Thing. We were just teens having fun :)


I wonder how many are in a similar boat. I grew up playing a ton of MSFS, Fly!, Flight Unlimited, Falcon 4, Combat Flight Sim, etc... Every major MSFS version was a huge deal. I remember having a high school event the evening MSFS2k came out and couldn't wait to get home to play it.

I was part of a few VAs as well, the community was so nice. One of my first software projects as an optimal flight route planner using publicly available data sets. It was one of the key stepping stones to learning to code in my early days.


I played so much FS4 and was in awe with FS5, having never played a textured 3D game on my PC before. Spent countless hours tuning it so it would be playable on my 486


Oh man, I remember when I went from a 286/12 with 1MB memory to a new motherboard with a 486/33DX and 4MB memory. What a huge leap!


At one time, probably the early 80's when the first clones of the IBM PC came out, being able to run MS Flight Simulator was an indication of a clone's ability to run all other IBM PC software. I remember one clone manufacturer used a screenshot of FS in their ad at the time.


FS4 was also part of Windows/DOS Test Suite and archived as such in the MS FTP Site.

ftp://ftp.microsoft.com/Products/Oemtest/v1.1/Winstress/stress/i386/stress/dos/fs4/


Wow! I look forward to playing Microsoft Flight Simulator inside the Emulator inside the Microsoft Flight Simulator on the 80th year anniversary.


I came here to say the same thing, but I'm gonna be an optimist and say that we'll get it by the 50th anniversary, not the 80th. We'll have MSFS in a form of VR that is not ergonomically awkward so that this is all possible.


And it better be in VR.


That's cool! Like playing classic Doom inside Doom 3. Is there a list of games that let you play older versions from within?


The adventure game "Day of the Tentacle" had the previous version of "Maniac Mansion" included. According to Wikipedia [1] it was the first time you could play the predecessor game in a newer version.

  The whole original Maniac Mansion game can be played on a 
  computer resembling a Commodore 64 inside the Day of the Tentacle 
  game; this practice has since been repeated by other game 
  developers, but at the time of Day of the Tentacle's release, it 
  was unprecedented.
[1] https://en.wikipedia.org/wiki/Day_of_the_Tentacle


You can play Wolfenstein 3D in one of the recent Wolfenstein games. IIRC it's presented as an arcade machine, but it seemed like the whole game was there (I played quite a bit of it, but didn't finish before bailing back out to the "real" game).

Tried to find a TVTropes for this kind of thing, but couldn't. Surprised, seems like there'd be one.


it predates TVTropes (Shakespeare did it), and it's called "a play-within-a-play"

https://tvtropes.org/pmwiki/pmwiki.php/Main/ShowWithinAShow


Well, right, but that's not quite the same thing. Video games also do "show within a show", sometimes taking the form of an actual show (Address Unknown in Max Payne, and that other one that's plainly mimicking Lynch's Invitation to Love from Twin Peaks), or an actual play, as in Midsummer Night's(? I think it has the one with Thisby and such, right?) or Hamlet, which I wanna say at least one Final Fantasy has featured (9?), among other games, or sometimes, matching the medium, taking the form of minigames (dice or card games, or arcade games, say, in games that aren't primarily about those things but just have them in the world—even sports games in non-sports games, like Blitzball from FFX)

The purest form of this specific thing is more like having an entire episode of MASH play on a TV in the background during an episode of Trapper, MD.


There's also the linked "Game Within a Game" article linked from the above article: https://tvtropes.org/pmwiki/pmwiki.php/Main/GameWithinAGame or the "Embedded Precursor" which is more specific about the embedded game: https://tvtropes.org/pmwiki/pmwiki.php/Main/EmbeddedPrecurso...


Ah, embedded precursor is the right one. I tried to find the relevant page by looking through the lists of tropes for a couple that feature that, and failed.


I played Maniac Mansion the first time that way. I never got it originally, but played Day of the Tentacle and got side tracked finishing that game inside the game.


If you bring DOTT to Scummvm, you'll get the two games.


I'm not sure if there's a list, but a notable example of this is Day of the Tentacle, the sequel to Maniac Mansion.

In the game there is a computer, which if you interact with it, allows you to play the entire original Maniac Mansion.


Fun, didn't know that. I recall both games, Maniac Mansion on C=64. Impossible Mission is the first game I recall with working terminals inside (but those terminals didn't play a full game although it likely could be done).


Not quite an older version of itself, but the original Animal Crossing on Gamecube had a whole NES emulator built in, with several games available.

https://animalcrossing.fandom.com/wiki/NES_Games


This was such a genius idea. As a kid who grew up poor, this gave me access to a number of games I would never gotten to play.

I wish more games did this.


Not economical anymore, if you can instead slowly trickle them out to your paying subscribers at two games a month, to then end up at 10% of the library your previous console had when you discontinue it.


Not older versions of the game itself, but the entire gimmick of Lazy Jones is that you're an employee walking around a building and entering rooms to goof off playing mini-versions of various games on a lot of different computers:

https://www.youtube.com/watch?v=Y7DyoDJCqac

I guess it sort-of doesn't really count, since the "games within the game" are essential parts of the game itself.


Donkey Kong 64 had the original arcade Donkey Kong.


Celeste lets you play the classic PICO-8 version in a secret room.


Super Mario Brothers 3 had the original (non-"Super") Mario Brothers arcade game embedded in it. (If the second player tried to visit the same spot as the first player on the map, it would jump to the arcade game like a little competitive mini-game.)


GoldenEye 007 has a fully functional ZX Spectrum emulator with several Rare games: https://www.therwp.com/forums/showthread.php?t=48139


If I recall, you could play Crash Bandicoot in one of the Uncharted games (both made by Naughty Dog).


Uncharted 4: A Thief's End. It's not the whole game, IIRC, but a few levels here and there.


Googling Flight Simulator:

> First release: Microsoft Flight Simulator; November 1982; 40 years ago

That's wild. I can't believe it's that old.


I can't believe 1982 was 40 years ago


Thanks for that existential crisis.


I was a Junior in college! Programming in PL/1


I was 6 years old, 7 or 8 years away from acquiring a Commodore 64 and typing out my first code in BASIC from the back pages of a Compute! magazine... I'm an old man.


Dad foisted an Intellivision on us because he wanted it. All the cool kids had a Famicom (pre-NES).


Followed swiftly by

I can't believe I'm that old.


Naughty Groucho Marx to the rescue:

A man is only as old as the woman he feels.

Disclaimer: I was born during the peak year of 8-track sales.


1982? Was that version already 3D? That's earlier than I thought.


Indeed. https://youtu.be/CchRwnTorjY

subLogic flight simulator is even older (first Apple II version in 1979) https://youtu.be/uvvfJ60gIf0 Microsoft licensed it to make MS FS.

Someone showed me (subLogic) Flight Simulator II, on a C-64 I think before I had a computer. I finally got a used IBM PC as my first computer (4.77 MHz 8088, CGA graphics, 20 MB hard drive) and MS FS version 3 and played the hell out of it, despite how badly it ran. When I installed it at my mom’s work on a 386 with VGA it was like a whole new game.


It was. The popular text adventure format at the time just doesn't work well in a flight simulator for some reason.


> read instruments

Your altimeter reads FL090, your compass reads 245. Airspeed is at 120 knots, pitch is 10 above the horizon. Engine is at 70% power.

You hear a kitten meow on guard.

> read instruments

Your altimeter reads FL090, your compass reads 245. Airspeed is at 70 knots, pitch is 20 above the horizon. Engine is at 70% power.

You hear a stall warning.


> yoke forward

> throttle max

Scary stuff, this could work!


Slap it onto a MUD engine, and you can have multiplayer air dogfights! :)


There are air traffic control simulators which are somewhat like this


The only flight sim I remember from those days was Sopwith, a 2D side-view game where you fly a Sopwith Camel through all sorts of crazy loops.

First 3D game I saw was Elite's wireframe spaceflight.



I read through Don Eyles apollo memoir Sunburst and Luminary- great book. In the book he describes their simulator for the lunar landing (essentially a test harness for the landing code) which consisted of inputs of coordinates and speeds, and gave printed output of thrust changes and expected position over time. Mind blowing for someone so used to visual representations.


This is actually correct. You don't need visual fidelity for a good simulation, nor physical fidelity. The important thing is that your mind and your body goes through the motions. You don't need to actually believe you're doing the thing, just practise the motions, cognitively and physically.


Played it on my 1982 zx spectrum 32k!


You may be thinking of Psion's Flight Simulation game [0] on the ZX Spectrum 48K

[0] https://en.wikipedia.org/wiki/Flight_Simulation_(Psion_softw...


I'm pretty sure it was from Microsoft. I may have even the paper instructions, i'll search for them :-) Wikipedia: "FS1 Flight Simulator is a 1979 video game published by Sublogic for the Apple II. A TRS-80 version followed in 1980. FS1 Flight Simulator is a flight simulator in the cockpit of a slightly modernized Sopwith Camel.[2] FS1 is the first in a line of simulations from Sublogic which, beginning in 1982, were also sold by Microsoft as Microsoft Flight Simulator."


I played it on the 48K.

I can't believe there was a version that run on the 16K ZX81 as well!


48k of course, not 32k :-)


Rubber keys?


yep (wikipedia.org/wiki/ZX_Spectrum)


I had the spectrum plus. Still 48k, but a better keyboard


Thank you Sebastian for building this game in the first place. Every I'm sitting in an airplane waiting to take off on the runway, it takes me back to my childhood memories. I'm putting myself in the pilot's seat, imagining I'm adjusting the flaps (F7), increasing thrust (F3), and taking the brakes off (.) and we have lift off!


I wonder if it could go as far as the 1.0 version by Sublogic (which predates the PC and ran on 8-bit computers such as the Ataris and Apple II's)


The only key I can't find is the one that controls the toe brakes. Anyone?

edit: I found the answer -- period key -- on page 21 of the excellent manual <https://archive.org/details/microsoft-flight-simulator-v-4.0...>


The aircraft designer addon for FS4 was a fun one. I recall making some absurd, unrealistic supersonic U-2-shaped planes.

Chuck Yeager's Advanced Flight Trainer 2.0 was also interesting.


Kudos.


An Easter Egg in Microsoft Flight Simulator? What is it, press a special key combination and a Spreadsheet Software pops up?!


A reference to Excel 97 Easter egg I guess :) https://www.youtube.com/watch?v=-gYb5GUs0dM


The interface is so responsive. What a thing to have lost...


I felt the same watching that. You can almost feel the complete absence of telemetry.


That was a fun one to do in IT class back in secondary school. That and Doom LAN games.


Clippy the auto pilot!


Strange that Microsoft used OP's project in their game, but didn't bother to let him know.


Yes, I was not informed about it. But I think that's fair. I didn't ask them either before I published the project. Please, don't make it a license issue. I developed it for fun.


Well, the MIT license worked exactly as it was written.


What about "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software."?


Most likely, it is included in some kind of ThirdPartyNotices.txt that ships with the game. It's actually pretty hard to sneak third party F/OSS under the radar in the company of this size - there's automated code scanners, among other things, and while they can't catch everything, they sure can flag a copy of a public project on GitHub.


What's an example of tool that scans binaries for matches with open source software?


At my previous org, we used black duck for this

https://www.synopsys.com/software-integrity/security-testing...


I don’t think you’ll find one. Most of these operate on the source code and its declared dependencies.


Pretty sure Black Duck does that


Were the flight simulators you can play on that github page originally MIT licensed?


No, but I was just commenting about the license itself. At any rate, this is obviously not a regular thing to begin with.


I'm pretty sure that declaring https://github.com/s-macke/FSHistory/tree/master/data to be MIT-licensed does not actually make it so... (these are disk images of the relevant FS releases, which are still under copyright as well as provided under a proprietary MIT-incompatible license)

TL;DR: A Microsoft contractor basically endorsed piracy, in a weirdly-recursive-enough-to-be-legal way...


In that case - please have more fun ;-)

Thank you - I really enjoyed the flashback to my childhood you provided me just now!


Is the whole emulator your work? That's quite impressive.


Unfortunately, all things must become a license issue if licenses are to be taken seriously. License compliance is a binary condition, you either comply completely or fail.


In this case, since the code was MIT licensed, Microsoft is in compliance.


Maybe Copilot did it ;)

That would be appropriate for a flight simulator.


Microsoft is not the developer here, it has been outsourced to a game studio : https://www.asobostudio.com/games/microsoft-flight-simulator

But the remark still stand, and I hope OP has been correctly credited for it.


Thanks, I have mentioned this fact at the bottom.


Strange that Microsoft's contractor used OP's project in their game, but didn't bother to let him know.


Do you contact the authors of every one of your dependencies before using them in your works?


Why is that strange?


I don't really know the scope of easter eggs, is the whole team supposed to know about them or just the few programmers that introduced them? Maybe they didn't want to spoil the surprise (?)

In any case, congratulations to op for having their project reach the original franchise. It's a sign of a job well done!


I work at Microsoft and unfortunately there is a “no Easter eggs” policy but sometimes they sneak by ;)


I am grateful to the developer for doing this. This is a kind of hidden communication between fans I enjoy.


Just checked, and sadly no X-Clacks-Overhead header on microsoft.com.


To be fair, OP also used Microsoft's project in his game, but didn't bother to let them know.


I agree - even if they're legally allowed to just take his work, it would've been nice to let OP know.


No credit is owed, no thanks are due. This is an unavoidable effect of usuing the MIT license over something like GPL.

Andrew Tanenbaum on choosing MIT for the MINIX project, which was used by Intel + the IC as a base for the Intel Management Engine (emphasis mine):

"The only thing that would have been nice is that after the project had been finished and the chip deployed, that someone from Intel would have told me, just as a courtesy, that MINIX was now probably the most widely used operating system in the world on x86 computers. That certainly wasn't required in any way, but I think it would have been polite to give me a heads up, that's all."

If you'd like to avoid a large company profiting off your work without attribution, don't use MIT.


Thanks for relaying that ought-to-be canonical example.

It may not be owed/due, but common decency suggests you give a heads up.

In Intel's case I'm guessing there was a contending motive in that they preferred not to draw attention to it.


You can put that clause in your license! Something like:

  If you use this software in a commercial product, you are required to
  make an attempt to send me an e-mail letting me know about it, 
  because it's just nice to know.
Of course that would piss off the lawyers because now if a developer uses your software and doesn't e-mail you, you could sue them. But it's not like big companies always respect licenses anyway :)


> common decency

Large companies don't operate according to human social norms like this. It's important to be reminded of this fact from time to time.


At some point, no matter how big the company is [1], there are humans redacting, validating and applying the policy.

[1] Ok, maybe Google have just bots for this also. ;)


Credit is certainly owed under MIT, a copyright notice must be included.

(I wonder where Intel shows this copyright notice; in principle, it should come with every processor or product based on the processor. Probably in the same place where IME itself lives…)


Tanenbaum, to me, always seems to have a massive chip on his shoulder


Considering they fully own all of the IP present in the OPs work, I would imagine they are within their full rights to just take it without asking. OP is lucky not to get a takedown notice and judging by his attitude he knows it. Good to see people playing nicely together :)


The games were already playable online on archive.org [1]. My project is just focussed on the old flight simulators.

Especially I wanted to have a very light-weight emulator which starts within milliseconds. The major part of the emulator downloads with just 24kB compressed. I suppose I have reached the goal.

[1] https://archive.org/details/softwarelibrary_msdos_games


It’s MIT licensed. They don’t need to ask. They need to add his name to credits and/or send an email about what they did.

It’s basic courtesy (plus MIT license, if you prefer).


You need to use 3 or 4 clause BSD not MIT if you want to get in credits.


courtesy cannot be enforced, that's the point.


I bet if it was 3 or 4 clause BSD, somebody will say that "open source is open source, I don't care".


This is kind of the nature of open source though; I use tons of open source software and libraries every day, also for my clients, without letting the maintainers of the software and libraries know.

That said, I do advocate for companies doing financial contributions to open source where possible.


Very strange indeed


Why can’t I view GitHub on mobile without having to sign in to the app. I don’t want to sign in to the app; I don’t remember my password; I can’t be bothered to authenticate. Bad UX.


Uninstall the app? Sounds rather useless when you don't log in to it.


I don't have an app (why would I want an app? I can't imagine pushing changes from my phone), it let me on just fine.


I did my share of PR reviews from a phone using FastHub-Libre [1] :-) No code changes, although I've fixed a typo in README once I think.

[1]: https://f-droid.org/packages/com.fastaccess.github.libre/


I've edited code on mobile plenty of times just using the mobile GitHub webpage. Usually just small tweaks and typo fixes though.

I don't see why you would need an app though.


For me the main point of the app is having a nicer interface to discussions and getting notifications.


OctoDroid[1] letsyou do most of things you would expect to on GitHub in a browser without logging in and always seems quicler than using website to me.

[1] https://f-droid.org/en/packages/com.gh4a/


I agree it's annoying, but you can open links in another tab from the long-press option menu in nearly every mobile browser instead of using app-urls.


And if you do this on iOS, it remembers it for the next time you click a link for that domain, so you can stop apps automatically opening links. Was delighted when I found that as for some things (e.g. Amazon) the app is occasionally useful but I don’t want every Amazon link to open in it


that's a good tip, thank you


> Always when I start a new project I wonder what programming language I should use. Most of the time the requirements are the same. It must be fast, typed and the result must presentable on a website. Especially I would like to keep it as simple as possible. C is usually my language of choice when the logic doesn't get too complicated.

Another vote why I should stick with C.


'Typed' as in 'typed on a keyboard'?


More likely this kind of “typed”:

https://en.m.wikipedia.org/wiki/Strong_and_weak_typing

Where “typed” here likely implies “strongly typed”.


Exactly, I mean more "strongly typed". The opposite is JavaScript, which is weakly typed. When speed matters and every bit is important, it is a bad idea to write an emulator in a weakly typed language.

I have corrected the text.


C, although statically typed, is considered weakly typed as well.


"Strong" and "weak" are ambiguous terms for typing. OP is using it one way (static typing is "stronger" than dynamic typing; static typing is "strength"). I'm assuming a little bit here, but I think you're using it another way (allowing type casting is "weak"; type safety is "strength").


A more precise term would be statically typed. Types are checked at compile time. C has a fairly "weak" type system.

congrats on getting the Easter egg!



I guess in this case it’s a homonym for both as C is sometimes a bit verbose :D


Oh lovely, you can switch to the "Gates Learjet" and go for a Manhattan Tour and buzz (and crash) into those tall towers like its 1989


Or like it's 9/11


I thought Easter eggs had been deprecated years ago; non-functional code, increased bloat, increased attack surface. To link in a complete game emulation as an EE seems - stupid.

It's apparently not the OP's fault; he just wrote it, he didn't link it into the product.


I'm fine with being downvoted; I don't post for popularity. But I appreciate it if there's some comment about what I said wrong; like, perhaps my opinion was mistaken, or used inappropriate language, or was off-topic.


If I had to guess, it's probably because most people love a cute easter-egg and this story was someone excited to have had their project noticed and implemented by Microsoft, off whom it was based; and your comment on the matter is that easter-eggs are stupid and outdated.

Also, I'm new here: how do you downvote a comment?


Heh :-) By not being new here! If you've got 500 points, you see a down arrow next to a post. But I don't like that button; clicking it feels a bit caca.


new users are unable to downvote until they've been commenting for a while.


Nothing to see here. It likely was added by Copilot by simply typing

//add cool retro mini-game

This is progress


And how much did Microsoft pay he?

There is a old comic (some years ago) about "paid exposure" of Oatmeal:

https://theoatmeal.com/comics/exposure


They have an open source project they are happy about being included in the current version of the game and you're the one mad about it.


Then… maybe don’t put it on GitHub with a MIT license?


It incorporates four copies of Microsoft Flight Simulator, so it's really their IP as well.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: