Project Overview
A good demonstration of a platform should be one that inspires. What could be more inspiring to the technical people I demonstrate flags to more than space, video games, and application of the tech in realtime? Using the Launchdarkly Unity Plugin, we were able to showcase how flags not only help with managing features but nearly every aspect of the software stack at runtime wherever it is being run.
Take note that this project was also showcased during LaunchDarkly's 2022 Trajectory event which can be seen here.
The project can be downloaded as source on GitHub.
Documentation on the projects (mirrored below) can be found on Netlify.
Game Overview
Launch! is a shameless clone of Lunar Lander.
The lunar lander represents the player in this game. The goal is to land on the lunar surface at a designated landing zone (indicated with a multiplier under a distinctly colored length of ground).
The player can control the rotation of the lander using the left and right directional buttons (or 'a' and 'd' keys) on non-mobile platforms (not yet released). The player can also apply the lander's thruster to apply velocity in the direction that the lander is facing.
Fuel reserves are provided and are needed to apply thrust.
Points and fuel are awarded on successful landing.
Fuel is deducted if the lander crashes.
The game is over upon landing (successfully or otherwise) with all fuel exhausted.
Connecting to your own environment
- Acquire the mobile key for your LaunchDarkly environment.
- This key will be found in the LaunchDarkly platform's projects settings page
- Note You will want to copy the mobile key (will have a format such as mob-xxxxxxxxx-xxxxx-xxx-xxx-xxxxx).
- Paste the key into the mobile key entry in the games Options dialog.
- This will be found on the start screen.
Supported Flags
Angle of Approach Threshold
- Description: Defines the maximum angle before the lander crashes.
- Key:
angle-of-approach-threshold
- Type: Numeric
- Supported Values: Positive integers up to 180
Audio Levels
- Description: Controls music and sound effects volumes, normalized between 0 and 1.
- Key:
audio-levels
- Type: JSON
- Supported Values: JSON object with 'music' and 'fx' keys
Avatar Type
- Description: Specifies the displayed lander avatar.
- Key:
avatar-id
- Type: String
- Supported Values: 'standard' (default), 'lenna' (fan tribute)
Crash Landing Effect
- Description: Defines the visual effect upon lander crash.
- Key:
explosion-type
- Type: String
- Supported Values: 'EnergyExplosion' (stylized), 'Explosion' (8-bit)
Display Mode
- Description: Toggles between full-screen or windowed game mode.
- Key:
is-full-screen
- Type: Boolean
- Supported Values:
true
(full-screen),false
(windowed)
Failed Landing Flavor Text
- Description: Randomized messages shown on failed landing.
- Key:
failed-landing-flavor-text
- Type: JSON Array of strings
Fuel Deduction Base
- Description: Fuel loss calculation on crashing.
- Key:
fuel-deduction-base
- Type: Numeric
Fuel Reward
- Description: Fuel awarded upon successful landing.
- Key:
fuel-reward
- Type: Numeric
Gravity
- Description: Sets the gravity in meters per second squared.
- Key:
gravity
- Type: Numeric
- Sample Values: '1.62' (Moon), '9.8' (Earth)
Lander Thrust
- Description: Controls the power of the lander's thrusters.
- Key:
lander-thrust
- Type: Numeric
Low Altitude Threshold
- Description: Triggers an audio cue close to landing.
- Key:
low-altitude-threshold
- Type: Numeric
Low Fuel Threshold
- Description: Triggers low fuel alert.
- Key:
low-fuel-threshold
- Type: Numeric
Starting Fuel
- Description: Initial fuel level for each session.
- Key:
starting-fuel
- Type: Numeric
Success Points
- Description: Points multiplier for successful landings.
- Key:
base-success-points
- Type: Numeric
Thruster Effect Type
- Description: Visual effect for active thrusters.
- Key:
thruster-type
- Type: String
- Supported Values: 'SparksEffect' (stylized), 'Thruster' (classic)
Velocity Threshold
- Description: Maximum landing speed without crashing.
- Key:
velocity-threshold
- Type: Numeric
Credits for Launch! (A LaunchDarkly Themed Game)
Volunteers
- Michael Vittiglio - Design and development - LinkedIn
- Yasmeen Rasheed - Visual assets - LinkedIn
- Phil Zona - Visual assets - LinkedIn
- Dean Kreseski - Composer - LinkedIn
- Heidi Waterhouse - Inspiration - LinkedIn
- Yoz Grahame - Quality - LinkedIn
Special Thanks (in alphabetical order)
- Dan & Lenna Tacci
- Edith Harbaugh
- Greg Beckham
- John Kodumal
- John Winstead
- Lev Lazinskiy