Features
Everything Pilot Matter does, in the order the parts of it were built.
Flying it
- Arcade flight model - pitch, roll, and bank through coordinated turns, with a throttle lever the airspeed chases
- Airspeed-driven lift - hold cruise speed and level flight holds altitude; let the speed decay and the wing stalls and drops
- A flight already in the air, or held on the ground - every flight opens at 80 knots, 1390 ft, climbing at 1260 ft/min on a heading of 000, or stopped at a runway threshold with the engine idling, whichever the start state is set to
- Crash detection - settle onto a hillside gently and you fly on; fly into it and the aircraft is wrecked, the controls go dead, and the flight resets itself
- Runway landings - put the aircraft down on the strip softly enough and square enough and it is a landing rather than an arrival, reported as a state the instruments and the game modes both read
- Five game modes - Runway Landing, Flying through Loops, Dead Stick, Cargo Run and Search and Rescue, each three or four stages long and each getting harder at exactly the thing it is about
- Flying with no engine - a dead stick opens with the lever already useless and a cargo run can spend its way into one, and in both the nose sets the airspeed instead of the throttle, so reaching a strip is a glide to be planned rather than a descent to be flown
- A landing scored rather than counted - where down the strip it touched, how far off the centreline, the rate it came down at, and how far off the strip the nose was, marked out of a hundred and read off once the aircraft has rolled to a stop
- Approach guidance that is withdrawn - an extended centreline and a bar across the threshold on the first stage, the bar alone on the second, and by the last the strip is where you work out it is
- Gates laid over - a loop course past its first stage lays its hoops off the horizontal and closes them up one way across, so a gate has to be flown at the angle it was laid at rather than upright every time
- Every stage timed - a clock that runs from the moment a stage is laid out to the moment its objective is met, against the best that stage of that mode has been flown in, kept between sessions
- A course you can find your way round - the whole of it drawn on the chart before the first gate is flown at, the gate being waited on pointed out by bearing and distance while it is off the screen, and a gate gone past reported rather than silently waited on
The world
- Procedural terrain - multi-octave fractal Brownian motion (fBm) noise generates the ground every world is drawn on
- The world as data - eleven environment elements (mountain, canyon, desert, grass, sand, water, river, forest, town, snow, runway), each declaring the ranges it can be configured through and the algorithm that draws it, so nothing in the world is a placed asset
- Five assembled environments - Highlands, River Basin, Canyon Country, Dune Sea, and Lakeside, picked from the settings panel and regenerated on the spot
- An element editor - L opens the world being flown as the elements it was assembled from, and moving any range one of them declares draws the ground again from the algorithm rather than from another preset
- Element vertex colouring - every band the ground is painted in is a light-to-dark gradient of one base hue, rendered through vertex colours with no textures
- Atmospheric fog - exponential fog fades the world to sky blue in the distance, hiding the far ground and giving the illusion of an infinite world
- A day to fly through - the sun walks across the sky and the light, the sky, and the fog warm and cool with it, from first light through noon to dusk and back round; midday is the light the world was always drawn in, and a paused flight is a day that waits with it
- Moving water - every surface below the water line rides a swell of two crossing wave trains and catches the sun on the face of each crest, held down to nothing at the bank so the water meets the shore rather than lapping over it, and going flat and dark after dark
- A world with no edge - the square an environment describes is one tile of an endless grid of them, each seeded from its own place, drawn out further than the camera can see, so there is always more ground ahead and nothing left to reach
- Worlds that tile - an environment can be one square of a larger assembly, generated in the world's coordinates so the ground runs on across the join, with every shared edge settled to one height and one colour
Seeing it
- Three camera modes - chase, cockpit, and orbit views, cycled with the C key
- Trailing chase camera - the chase view lags behind the aircraft instead of riding a fixed offset, so turns and pitch changes swing the frame around
- HUD - live readout of airspeed, altitude, climb rate, compass heading, throttle (%), and camera mode, on whichever scale the settings panel is set to
- Attitude indicator - an artificial horizon with a pitch ladder and bank marks, reading the aircraft's own nose and wings rather than the controls behind them
- Minimap - a north-up chart of the tile being flown over, with the aircraft's position and heading marked, moving on to the next square as the aircraft crosses into it, and carrying the course of loops being flown when there is one
- Low altitude warning - a blinking caution over the terrain below, measured against the ground rather than sea level
- Photo mode - F2 clears every overlay off the screen for one frame and downloads the view as a PNG named for the moment it was taken
- On-screen controls - a phone or a tablet is given two crosses of pads along the bottom of the screen, attitude under one thumb and power under the other, writing the same controls the keys do
- Flying by tilt - on those same machines the device itself is the stick for pitch and roll, levelled to whatever angle it was being held at when the flight began; a machine that has keys is never offered it
- A screen you can clear - H collapses the control list to a single hint line and Tab clears the instruments off entirely for clean flying, remembered for the next session
Working it
- Start screen menu - the game opens on its name over a menu offering Start Flight, Game Modes, Controls, and Settings, with the flight held on the ramp until one is chosen
- Pause menu - P freezes the simulation behind a menu offering Resume, Reset Flight, Game Modes, Controls, and Settings
- A mouse on both of them - the start screen and the pause menu are worked with the pointer as well as the keys: the cursor follows the mouse across the entries and a click chooses the one under it, on one cursor the keyboard goes on moving
- Game Modes panel - opened from either menu, listing free flight and every mode there is, and marking the one being played
- Settings panel - opened with O or from either menu, setting the environment, the condition a flight opens in, control sensitivity, fog density, and the units the instruments read in, all remembered for the next session
- Element editor panel - opened with L, listing the elements the world places and opening each onto the ranges it declared, with a way back to the preset it started from
- An editable start - the condition a flight opens in, the strip in the world, airspeed, altitude, climb, heading, throttle, and camera are fields a pilot sets rather than constants in the flight code, applied at once before launch and at the next reset after it
- Engine and wind audio - an engine note that rises with the throttle and a wind that rises faster than the airspeed behind it, muted with M and remembered for the next session
Building on it
- A simulator API - the Pilot API flies the aircraft against a host's own scene, terrain, and model; the Matter API hands a host the world as one detachable group anything can fly over, with both halves worked on one page in
examples/host.html - Zero build step - runs directly in the browser via ES modules and an import map