This site contains over 20 deep dive articles that explain how Lander weaves its magic, and more are on their way. If you want to learn how Lander works under the hood, then this is the place for you.
See the quick start guide for some recommended starting points, or check out the following index of all the deep dive articles and jump straight in.
Program structure
-----------------
- The Lander memory map - Memory usage and squeezing Lander into the unexpanded Archimedes 305
- The main game loop - Details of the tasks that Lander performs every iteration around the main loop
Landscape
---------
- The camera and the landscape offset - An explanation of two fundamental aspects of the Lander drawing routines
- Generating the landscape - Using Fourier synthesis to generate a 3D landscape using simple trigonometry
- Drawing the landscape - Converting a set of altitudes into an undulating landscape of coloured tiles
3D objects and particles
------------------------
- Object blueprints - Storing 3D object definitions using vertices, faces and normals
- Drawing 3D objects - Drawing 3D objects using object blueprints and rotation matrices
- Placing objects on the map - Details of Lander's object types and the object map
- Particles and particle clouds - The particles that make up sparks, splashes, explosions and exhaust plumes
Flight
------
- Flying by mouse - Flying the ship in Lander using polar coordinates and thrust vectors
- Collisions and bullets - Detecting when the player has crashed or shot down an object
Drawing on the screen
---------------------
- Depth-sorting with the graphics buffers - The clever bin-sorting hack that correctly displays objects behind one another
- Drawing triangles - Building a landscape and 3D objects out of nothing but triangles
- Projecting onto the screen - How Lander converts 3D world coordinates into 2D screen coordinates
- Screen memory in the Archimedes - Understanding VIDC colours and bank-switching on the Archimedes
Miscellaneous
-------------
- Random numbers - Lander uses a random-number algorithm from the ARM Evaluation System
- In David Braben's own words - A code analysis of the Lander author's own article from The Micro User
- Comparing Lander to Zarch - How Lander's big brother compares to its predecessor
- Unused code in Lander - Memory might be tight, but even Lander contains some hidden subroutines
- Lander's origins on the ARM1 - How the creation of Lander on the ARM1 influenced the code
- Hacking the landscape - Hacking the Lander source to create huge landscapes on faster machines