But a lot of code also contains functionality that most users will never see, and yet that code is important to include to round out the application. For example, in Gemini Falcon: Asteroid Miner, if the player elects to fly missions without doing any upgrades, the program will start to speed up the ship in tiny increments until it is almost as fast as it could be after the first upgrade. Otherwise it would be impossible to complete all 60 missions. And, as a surprise, after 55 missions of no upgrades, the impulse engines are actually faster than the regular engines! At that point it will be better to run out of fuel -- which I made certain to happen by eliminating the fuel clouds in the later levels. Of course the player will be nervous about running out of fuel since it has been critical to find fuel clouds until then.
Another detail, when a player has trouble completing a mission, the player may notice the number of coins required to fix the Gemini Falcon goes down, as does the time required to repair the ship. But the player may not notice the mission becomes a little easier each time they crash also. I did that to encourage the crash-happy player to continue playing and not to become discouraged.