Pastel Glider – Floating Dreams
10/06/2025
One more game that I pulled together in Pygame that I’ve been meaning to share, Pastel Glider, aka Soar
Pastel Glider is a 2D gliding simulation game built with Pygame. Players can explore procedurally generated landscapes in Free Fly mode, utilizing thermals to gain altitude and unlock wingmen, compete against AI opponents in Race mode, or engage in aerial combat in the Dogfight mode. The game features a soft pastel aesthetic and physics-based glider controls.
- Four Game Modes:
- Free Fly: Explore an endless, procedurally generated world. Reach altitude goals to progress through levels and unlock AI wingmen who will fly in formation with you.
- Race Mode: Compete against AI-controlled gliders on a course defined by markers. Race for the best lap times and total race times.
- Dogfight Mode: Engage in combat against waves of AI enemy gliders. Survive rounds of increasing difficulty by shooting down opponents. Manage your health and strategically engage foes.
- Delivery Mode: Take on the role of a cargo pilot. Start by taking off from a designated runway, fly to a destination runway, and perform a successful landing to complete the delivery.
- Control your glider’s speed and bank angle.
- Manage altitude by finding and using thermals for lift.
- Experience stalls if your speed drops too low, with a significant altitude penalty.
- Turning circle size is realistically affected by speed.
- Combat Mechanics (Dogfight Mode):
- Player and AI gliders have health.
- Shoot bullets to damage opponents.
- Bullets have defined speed, range, and damage.
- Shooting cooldowns prevent rapid fire.
- Dynamic AI:
- Race AI: Opponents have distinct personalities affecting their speed and turning. They employ strategies like boosting on straights and slowing for turns.
- Wingmen (Free Fly): Unlock AI companions who follow the player in a casual formation, each with unique flight characteristics.
- Dogfight AI: Enemies will engage the player, attempting to shoot them down while performing evasive maneuvers based on their aggression and evasiveness factors. They spawn in increasing numbers per round and have varying shooting cooldowns.
- Procedurally Generated Endless World:
- Each new level or game session features a unique map generated using seeded noise functions.
- Diverse biomes including water, plains, forests, mountains, and deserts.
- Land types influence thermal generation probability.
- Dynamic Environment:
- Simulated wind affecting glider movement.
- Foreground clouds for visual depth.
- User Interface:
- HUD displaying critical flight information (altitude, speed, level/lap/round, time, stall warning).
- In Dogfight mode, the HUD also shows player health and remaining enemies for the current round.
- Health bars are displayed above gliders in Dogfight mode.
- Height indicator bar with VSI (Vertical Speed Indicator).
- Minimap for Race mode showing player, AI, and markers.
- Wind direction and strength indicator (weather vane).
- Marker direction dial in Race mode to guide the player.
- Difficulty Levels:
- N00b, Easy, and Normal settings affecting thermal strength/frequency and player glider turning agility.
- High Score Tracking (Session-based):
- Longest flight time (Free Fly).
- Highest altitude achieved (Free Fly).
- Best individual lap time (Race).
- Best total race time for different lap configurations (Race).
- Highest round reached in Dogfight mode is displayed on Game Over.
- Pause Functionality:
- Pause the game during active play with options to continue or quit.
I had a lot of fun playing with this idea, and evolving the concept 🙂
I started off with the idea of flying a glider across a map, being lifted by thermals, then after recently watching the Minecraft movie (I geeked out more than my 10 y/o and his mate) I added a procedural generated map, with simple biomes.
Next came flight physics, at least from a top down 2D perspective; turning drops the planes height, turning circles increase with velocity, and added stalling when speed drops too low… oh, and I added random wind speed / direction to add to the mix
Now I had the sandbox, I introduced different game modes 🙂
- Racing: I took the concept from the dingy and car racing games I’ve done previously, in a challenge with AI controlled gliders, who is quickest to run laps between beacons, while having to retain height using thermals
- Dogfight: This is a real challenge, try to shoot down AI controlled enemies, while staying in the sky. Each wave adds more enemy planes
- Delivery Mode: My favourite way to chill out in the game; take off from a origin runway, ascend to a height that will carry you to your destination target, reducing your height to land on the runway
All of this in pastel colours, with an informative GUI, and 3 different difficulty levels, have a play and see what you think; here’s the repo: Github: Soar