Lunar Lander

Lunar Lander screenshot

(click to zoom)

In this game the human player controls a “landing module” attempting to land on the surface of the moon without crashing. Lunar gravity pulls the landing module toward the surface; the player must control thrust jets on the lander to avoid a crash landing (that is, to achieve a “soft landing”). The objective is to acquire points and additional fuel by landing at various landing sites and taking off again while avoiding collisions with the ground and also with other types of objects which fly around in space.

Source Code: GitHub

Technologies Used: Java, Swing, AWT

Tools Used: Eclipse IDE


  • The game engine is based on the Model-View-Controller (MVC) architecture.
  • Each game object has a Viewing Transformation Matrix (VTM) which contains the series of transformations necessary to change world coordinates to screen coordinates.
  • Appropriate usage of aggregation, encapsulation and inheritance to keep the design flexible.
  • Implementation of the Singleton, Observer, Observable, Collection, and Iterator design patterns.
  • Interactive editing of the game world: meteors can be added and deleted via the GUI.