You are browsing as a guest. Sign up (or log in) to start making projects!

Project: Constellation

  • 12 Devlogs
  • 14 Total hours

Project: Constellation is about launching satellites into space around earth and the moon. There will be updates small and large coming in the future!

Ship #1 Pending review

# Project: Constellation (Public Beta)

Project: Constellation is a full-scale orbital mechanics and satellite communications simulator built on the Arcade Python engine. Design custom rocket layouts inside an interactive assembly grid, manage a dual-branch technological research economy, execute targeted agency contracts, and establish global laser-linked relay constellations around a scaled, multi-body gravitational physics sandbox.

## Core Systems

### Grid-Based Vehicle Architecture
Vehicles are assembled inside a 5x8 Vehicle Assembly Building (VAB) matrix. Structural dry mass, fuel capacity, and booster thrust metrics are compiled directly from your component placements, ensuring that custom ship layouts directly influence flight physics and vehicle inertia.

### Dual-Branch Tech Progression
The research tree splits cleanly into Engineering and Scientific Instrumentation paths. Spending science points unlocks advanced telemetry sensors—including Thermometers, Barometers, and Mystery Goo Pods—while dynamically updating your active VAB construction catalogue menu.

### Autonomous Telemetry Downlinks
Deployed science satellites automatically trace line-of-sight laser routes back to active ground stations. When an unblocked path clears the planetary or lunar crust terrain boundaries, telemetry data caches flush to deliver repeatable flat-rate science funding payouts back to your space agency.

### Time-Stabilized Flight Physics
All gravitational pull factors, engine acceleration vectors, and coordinate position increments utilize strict delta-time scaling multipliers. This maintains frame-rate independent vehicle momentum, requiring a controlled, sustained 12-second ascent burn to circularize into orbit.

## Technical Highlights

### VAB Grid Validation Pass
The hangar utilizes a verification filter driven by a Breadth-First Search (BFS) flood-fill algorithm. The calculation evaluates part attachments outwards directly from the core Command Pod placement coordinate. It automatically filters loose, floating component cells before vehicle launchpad rollout clearance is granted.

### Real-Time Laser Occlusion
Satellite laser links dynamically monitor geometric distance tracking arrays to map active connection routes. Beams trace continuous calculations against the spatial coordinates of the 5,000-meter radius planetary and lunar crusts. Signals break instantly upon crossing underneath terrain thresholds, forcing strategic constellation designs to maintain coverage.

### Balanced Sensor Payouts & Fuel
Telemetry transmissions bypass progression uniqueness checks to award flat-rate rewards on every single flight. Active thermometer units dump data to return 15 science, barometers yield 20, and bio-chemical Mystery Goo Pod structures return 25.Booster fuel consumption rates are balanced to a 26.0 unit per second multiplier to enforce tight launch fuel limitations.

## Flight Operations Keyboard Map
W or UP ARROW — Fire liquid boosters (Hold for sustained acceleration)
A / D or LEFT / RIGHT — Pitch controls (Adjust vehicle steering angles)
SPACEBAR — Decouple staging structure and deploy satellite payload into active orbit
MOUSE SCROLL WHEEL — Viewport camera zoom (Micro close-ups vs Macro system maps)
ESC — Open R&D Technology Tree, Agency Contract Boards, and Asset menus

## Quick Installation
Project: Constellation requires Python 3.8+ and the Python Arcade engine library. Run a standard pip installation pass inside your terminal shell window, and execute the primary script to launch your space program:

In terminal run: pip install arcade
and to run: python3 main.py

This will work as long as the terminal is currently acting inside the folder that contains the main.py script

P.S. This is still a beta version of the game so expect bugs!

  • 12 devlogs
  • 14h
Try project → See source code →
Open comments for this post

2h 3m 35s logged

Devlog 12

Updates

Dual-Branch R&D Tech Tree

I have overhauled the career progression loop by splitting the research paths into two independent divisions: Engineering and Science. Basic Rocketry now branches out into Propulsion hardware on the upper path, and opens up a dedicated Scientific Instrumentation line on the lower path.

Dynamic Gated VAB Catalog

The VAB sidebar menu now dynamically checks your research history records. Unlocked science components automatically reveal themselves in the sidebar list, while locked parts are completely hidden from sight to keep the construction catalog clean. Sidebar clickboxes dynamically recalculate vertical pixel boundaries on the fly to track the visible elements accurately.

Repeatable Science Payloads & Validation Checks

I implemented core functionality and logic handlers for repeatable telemetry payloads. Satellites holding scientific sensors scan for an active, unblocked connection line back to Earth tracking bases. When a link is found, they automatically downlink data packets to award flat-rate repeatable research points on every mission (15 science for the Thermometer, 20 for the Barometer, and 25 for the Mystery Goo Pod).

Macro Map Orientation Pointers

I added a macro view toggle. When you roll your mouse scroll wheel out into the map view layer, the high-detail custom rocket model cleanly scales down into a bright orange orientation pointer triangle. This visual anchor makes it significantly easier to track your exact steering heading against the planetary orbit paths.

Planetary Scale & Career Contract Balance

To increase overall difficulty and solve an exploit where a single keystroke escaped gravity, I scaled up the universe metrics. The planet radius is now 5,000 meters and its mass is 15,000,000. The moon has been pushed out to a deep-space orbit of 45,000 meters with an expanded 7,500-meter sphere of influence capture well.

To match this new planetary scale, I completely overhauled the contract database to feature a six-mission matrix. Contract targets have been raised to true high-altitude orbit criteria (such as a 5,600m periapsis for low relay deployment). The spacebar satellite deployment checker strictly validates if your custom construction has the requested scientific part hardware installed before awarding high-tier cash rewards.

Time-Stabilized Flight Physics Core

I fully synchronized the lifecycle physics equations over time by scaling all acceleration, gravity force vectors, and position increments by delta_time. This eliminates frame-rate dependencies and creates realistic, heavy vehicle inertia. Fuel consumption rates have been balanced to a multiplier of 26.0, providing enough burn duration to clear the 5,000m atmosphere and circularize while enforcing strict fuel limitations.

UI Bugfixes

I resolved an axis-mirroring rendering bug where custom grid parts would drift into diagonals or spin backward on local centers during physics turns. Components now stay perfectly welded to the primary chassis frame across all angles.

I also fixed a camera tracking bug where the camera height initialized thousands of pixels above the launchpad on boot, causing the rocket to instantly fall off the bottom of the screen. The spawner and camera vectors are now completely synchronized.

Public Beta Release

With branched career trees, specialized hardware validation checks, repeatable telemetry economies, and time-stabilized physics loops fully functional, the core game framework is rock-solid. I am wrapping this up as an official public Beta build to gather immediate player feedback before finalizing version 1.0.

See you in the next devlog!

P.S.

I have been having lots of fun playing around with this game and I hope that with the launch of version beta, you will too!

0
0
3
Open comments for this post

1h 22m 29s logged

Devlog 11

Updates

Custom VAB Grid Assembler

I have started the groundwork for the modular custom rocket builder. Sizing parameters are fully driven by scaling variables (currently 5 columns by 8 rows), allowing me to easily increase the size for multi-stage rockets when I add decouplers later on.

I set up a parts catalog database storing costs, masses, fuel levels, and thrust configurations for three main blocks: Command Pods, Fuel Tanks, and Liquid Engines. Each has a specific cost per unit (500 credits for a pod, 200 for a tank, and 350 for an engine).

Mouse Grid Snapping

The VAB hangar is now interactive using the mouse instead of the keyboard. Left-clicking sidebar catalog cards swaps your active part tool with a clean highlight frame. Left-clicking inside the grid snaps and stamps components directly into place with 1:1 pixel accuracy, and right-clicking an item instantly erases it.

Flood-Fill Rocket Compiler

I engineered a backend validation method (compile_custom_grid_rocket) triggered by clicking the Launch button. It runs a Breadth-First Search (BFS) flood-fill check starting from the Command Pod. It traces orthogonal adjacent connections to make sure parts are actually linked together via adjacent cells, filters out floating disconnected parts, checks your wallet balance, and dynamically compiles your specs before letting you reach the pad.

Lunar Line-of-Sight Occlusion

I fixed a glitch where network signals could pass straight through the middle of the moon. Ground downlinks and inter-satellite cross-links now run a closest-approach vector calculation. The exact millisecond a laser path grazes or drops below the physical moon radius, the lunar crust blocks the ray and drops the link instantly.

UI Bugfixes

The text formatting glitch where lines were cutting off the right edge of the screen has been resolved. I wrapped the sidebar text block inside a tight bounding box by enabling multiline wrapping and setting a fixed width.

I also fixed a crash where the drawing engine would break looking for the parts catalog dictionary, and fixed a typo where the dictionary items loop was missing its plural formatting.

New Bugs

Launchpad Rendering

While the rocket compiler successfully updates the rocket’s mass and thrust variables, it doesn’t render the player’s custom grid construction on the launchpad yet. It still loads the default rocket shape instead of the player’s custom design. I will fix this when I build the custom part sprites.

Clickbox Alignment

The sidebar tool selection clickboxes are still slightly misaligned with the visual bounding cards drawn on screen. I need to calibrate the exact mouse Y-coordinate gates to line up perfectly with the graphics.

Version 1.0 Release

By version 1.0 (which will be the next devlog or two), the only big feature left is completing these custom rockets with graphic sprites. After shipping version 1.0, I will do continuous point-release updates (v1.1-1.9) and then move on to version 2.0.

See you in the next devlog!

0
0
1
Open comments for this post

2h 11m 34s logged

Devlog 10

Updates

  • Satellite network upgradesNow when you unlock tech nodes from the tech tree, it increases the range that satellites can reach. This scales so with the deep space comms, it multiplies the reach by 1.3 (30% increase) so satellites can reach ground stations from orbits higher than LEO. Unlocking the Lunar Flight Systems node multiplies the reach by 2 (100% increase) so satellites can reach twice as far and can reach from lunar orbit

UI bugfixes

  • The death screen now shows properly when you crash into the moon instead of the craft sinking through the moon and then flying out into deep space.

  • I have redesigned the death screen slightly so it looks better for the user.

  • The zoom has been completely rewritten and I need to add back the orange arrow that shows in the map view.

New Bugs

  • Moon Satellite - If I have a satellite in orbit around the moon, research another node or accept a contract, it mysteriously disappears when I go to launch another satellite.

  • Ground Bases - Though quite an old feature at this point, sometimes not all of the ground stations connect to the satellites. I will try to figure this out before the next devlog

Version 1.0 Release

I will probably do one or two more devlogs and then ship the project as version 1.0. Continuous updates will follow; 1.1-9 (if needed) and then version 2.0. I am not sure what will happen after version 2.0 but I will try to release more updates if possible.

See you in the next devlog!

0
0
1
Open comments for this post

1h 26m 35s logged

Devlog 9

Career Data Economies & Dual-Currency Loops

  • High-Value Science Points System: Introduced a rare, secondary currency variable (self.science_points) to map technological advancement completely separate from commercial funding tokens. Technology nodes have been balanced around tight progressive scaling limits (Tiers priced strictly at 0, 50, and 100 Science) to mirror an authentic career growth profile.
  • Dual-Payout Contract Integrations: Upgraded my background contract validator engine. When an orbiting satellite payload successfully stabilizes above an active contract’s minimum target periapsis, the engine’s data-parsing loop dynamically credits my profile wallet with a clean balance of both liquid credits and research science points simultaneously.

Standalone Fullscreen R&D Lab

  • Standalone Laboratory Interface: Developed an independent fullscreen terminal draw method (self.draw_rd_facility_screen) mapping out an active circuit-board grid overlay, dynamic science balance counters, and interconnected horizontal pipeline line segments.
  • Horizontal Viewport Scrolling Shell: Pre-engineered an internal pan variable layout (self.rd_scroll_x) across the entire R&D module canvas, forcing all container card vectors, schema lines, and cursor mouse selection boxes to calculate position relative to a scrolling offset matrix, allowing infinite horizontal expansion for future node assets.
  • Strict Prerequisite Dependency Gates: Integrated sequential unlock gate logic inside on_mouse_press. Technology cards actively verify historical milestones before compiling transactions. Attempting to click and unlock high-tier “Lunar Flight Systems” is aggressively blocked by error banner notification flags until the player has successfully researched and cleared the prerequisite “Deep Space Comms” branch node, preventing unlock bypass exploits.

Future Progression Loops

With the structural progression loops, career dashboards, technology prerequisites, and multi-state menu freeze tickers running perfectly, the foundation is completely stable. In Devlog 10, I am shifting focus back to space flight physics by drafting the multi-body gravitational vector math required to introduce an active, orbiting Moon complete with independent transitionary Spheres of Influence (SOIs)!

See you in the next Devlog!

0
0
7
Open comments for this post

1h 28m 1s logged

Devlog 8
Very Minor Bugfixes

  • Small Typos - This is probably the only one for this devlog. I misspelled quite a few variable names and functions throughout this most recent block

Major Updates

  • Pause Menu - I added a simple pause menu currently only consisting of Return to VAB, Mission Control and Quit. These are all quite self explanatory as of what they do
  • Mission Control - Along with the VAB, I added a new building that can be visited from the pause menu; Mission Control. This is where contracts from various aerospace companies can be accepted and a payout in credits will follow if all parameters are met
  • Technology Nodes - I didn’t really add these, I just added a placeholder for the time being so I could actually test the contracts and make sure they worked properly

Future Milestones
Next I will attempt to add a simple tech tree and science points. These will be used to unlock nodes on the tech tree which will in turn unlock more contracts to be completed. I will also try to add the moon, which will be a challenge for me as this will be a large body that will have it’s own SOI that needs to be accounted for when completing calculations.

See you in the next Devlog!

0
0
3
Open comments for this post

1h 56m 36s logged

Devlog 7:

Bugfixes & Optimization

  • Runaway Ground Stations: Fixed a coordinate glitch where surface bases hyper-teleported on rocket ignition. By anchoring rendering logic to the planet’s camera-matrix screen origin (ox/oy), the stations are now permanently welded to the crust asset and scale fluidly with mouse zoom.
  • Slipping Mesh Endpoints: Cleaned up a copy-paste index mix-up inside the connection mesh where laser endpoints slid into deep space during camera pans or mouse wheel adjustments. Forcing rendering loops to draw from camera-transformed pixel positions (s1x/y, s2x/y) stabilized the mesh layout.
  • Nested Loop Stack: Discovered a bug where the satellite sprite renderer sat inside the nested indexing loop block, painting sprites exponentially. Separating the graphics pass from index loops restored my 60 FPS baseline.
  • Inter-Satellite Zoom Gate: Fixed an indentation parsing error where the inter-satellite mesh loop escaped map-view guard gates. Tab-aligning the loop array inside the master if self.zoom < 0.15: logic ensures all laser vectors, downlinks, and orbital tracks disappear simultaneously when zooming in to pilot my ship.

Core Updates ACTIVE

  • Planetary Line-of-Sight Occlusion: Communication laser arrays can no longer beam straight through the solid core of the world. I debugged a critical direction vector sign typo on my relative position offsets (dx, dy) and implemented a Ray-to-Circle Vector Intersection pass. The exact frame an orbiting node drops behind the curve of my true 2,000.0 radius crust line, the laser cuts off instantly into the planet’s radio shadow.
  • Randomised 5-Station Hubs: Initialised a tracker (sbasenum = 5) inside my constructor to generate 5 distinctive surface radar complexes (Stations A-E) deploying around the globe via a random.randint(62, 76) degree variance setup. As satellites fly overhead, electric-blue and magenta lasers shoot up out of the red beacons, tracking them across horizons in real-time.
  • State-Managed Collisions & HUD Report: Slamming into the planet or another satellite now trips a global self.explosion_active state. The simulation freezes and an expanding thermal fireball shockwave animates at the coordinates of the wreck. After 1.0 second, a dark semi-transparent HUD panel opens to display custom diagnostics. Hitting things prints Outcome: Crash! alongside impact velocity. A mouse click releases the state and returns you to the VAB.
  • Apoapsis and Periapsis Nodes: Mapped out my ellipse constants using analytical orbital mechanics geometry. Two clean circular indicator flags labeled AP and PE now render directly onto my green path line. They scale fluidly with camera views, showing maximum and minimum orbital height readouts live.
  • Global Telemetry & UI Notification Banners: Bound my ellipse heights into class instance variables (self.ap_alt, self.pe_alt) so the interface dashboard can display responsive telemetry. I also added a defensive coding rule where hitting Spacebar to deploy a satellite only works if self.pe_alt > 100. If trapped in a sub-orbital crash path, a red message flashes: Can't Deploy Satellite. Try increasing your periapsis, counting down for 3.0 seconds via on_update before disappearing.

Future Milestones

In Devlog 8, I will start building out a structured Contract & Agency Mission Board. Instead of gaining automated payouts for just reaching space, players will receive targeted mission briefs from separate space agencies with explicit operational criteria.

Furthermore, I will introduce a Technology Tree Prerequisite Matrix. More complex aerospace contracts will remain completely hidden until you spend research points to unlock the appropriate tiers of technology, providing an authentic simulation of an evolving space programme.

See you in the Next Devlog!

0
0
5
Open comments for this post

32m 12s logged

Devlog 6

Bugfixes
I finally fixed the satellite bug! The satellites now orbit around the planet on the exact same path their original rocket was on.

Updates
I am currently changing the conic patches to only show when you are zoomed out enough to be in map view. This has worked perfectly for me and I haven’t had any big issues with it.
I have also added the ability for satellites to connect to eachother. This is represented as a green line on the map and I will add more colours to represent varying signal strength based on the distance of the satellites. These will be: Red, Orange, and Green. The line drawing is still a bit buggy. The start and end points shift based on the pan and zoom of the camera, the connections go through the planet (maybe in the future I will add a satellite that has the capability to receive signals through planets).

Future of these updates
This is one of the most fundamental features of my game. This is how data will be transmitted from different planets and moons and how missions will be completed and research points will be earned.

See you in the Next Devlog!

P.S. I have figured out how to do text formatting on the devlogs. Also, these have been quite simple updates and so my log time has been ~30 minutes per devlog lately. I will try to improve the quality of these updates and make the devlogs more detailed

0
0
2
Open comments for this post

27m 22s logged

Devlog 5

Minor Bugfixes

I fixed some minor bugs with the conic patches and they now no longer go through the core of the planet. I don’t like the way the screen just changes immediately to the VAB when you crash. I might add an explosion animation of some kind.

Updates

I added a basic version of marking a craft as a satellite by pressing the space bar. At the moment, it is extremely buggy and I will try to fix this as soon as possible. When you mark an object as a satellite, it gains the satellite texture (currently a placeholder square) and it’s position in space freezes and does not update at all.

Future Bugfixes

As mentioned previousely in this devlog, I will try to fix the satellite bug as soon as I can. I will fix the placeholder rocket texture in the VAB as it is still tearing itself apart

Next Steps

I will try to add surface bases that satellites can connect to (when I have fixed the bugs) and also make the satellites connect to eachother.

Future updates

I will try my best to create custom rocket construction in the VAB like that in other space games like KSP or SFS. I will also try to make the rocket’s properties eg. thrust to weight ratio, delta v, etc dynamically change with the player’s rocket build.

See you in the next Devlog!

0
0
3
Open comments for this post

28m 34s logged

Devlog 4

Small Bugfixes

Conic patches patched! Before, the whole inside of the circle was being filled with green. now only the trajectory of the rocket is coloured green. I also did some optimisation (as seen in the second photo) to reduce the number of points on the trajectory line. This means the trajectories can be calculated smoother and faster only at the cost of a less defined trajectory.

Next Steps

Next, I will add the ability to turn a rocket into a satellite. The satellite will then connect with ground stations and other satellites.

Future of the game

In the future of the game, the satellite connectivity will be used to transmit data for missions between planets and moons, creating a whole relay network between the planets of the solar system. Missions will be completed earning development points (no official name yet) and credits. These will then be used to unlock new parts and build better rockets. I promise I will update the VAB to have better assembly options.

See you in the next devlog!

0
0
6
Open comments for this post

47m 10s logged

#Devlog 3

Small Updates

I did some more development today and I have added: zooming which is controlled by the scroll wheel and seamlessly changes the view from flight to map, Panning which is controlled with the right mouse button and dragging, A new earth texture, similar to the old SFS one. I also tried adding conic patches, which you can probably see did not go as planned. The trajectory maths and paths are OK, but The plotting needs lots of work. Adding these updates did not take as long as I was expecting taking into account the amount of time I spent on the other updates and these were quite simple to add in. The bugfixing might take some time, but I am up to the challenge. I still haven’t changed the VAB, and I probably won’t for a while. See you in the next devlog!

0
0
7
Open comments for this post

29m 56s logged

Bugs Fixed! All major bugs have been fixed that were mentioned in the last devlog. I still need to improve the VAB but I might try to postpone this to a later date. The player can now choose between 2 liquid boosters each with different fuel capacities and thrusts. The map now works and shows the location of the player’s spaceship. Next I will make the planet larger and add trajectories, panning, and zooming to the map function.

0
0
7
Open comments for this post

1h 11m 42s logged

I have tested the very first chunk of code. It is extremely buggy and will require lots of fixes in the future. At the moment, there is a money tracker, a very simple VAB, and a not so great visual view of the earth. I can’t launch my rocket, as it just takes me back to the VAB. The rocket model is not the best although I plan on adding real sprites later in the game. My next steps will be to do bugfixes (a lot) and to improve the functionality of the VAB and launchpad.

0
0
7

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…