Repository navigation
Evert playground - #294
Draft
evertvorster wants to merge 37 commits into
Draft
Evert playground#294evertvorster wants to merge 37 commits into
evertvorster wants to merge 37 commits into
Conversation
… split) PR #266 (Aug 8) changed config.json maintenance_factor 0.05 -> 0.01, but the config-split (#270, Aug 9) moved this setting into engine.json base.components. shield and carried over the old 0.05. With the engine now reading engine.json base (post-split), shields drain the capacitor at 5% again. Restore 0.01 so shields don't drain the capacitor at full health (pairs with engine #1698).
- can_auto_through_planets: false -- stop the route planner committing a straight course through a planet. - warp_clearance_attract: 0.7 -- the destination's far-field pull, now compared directly against a normalized obstacle repulsion. Replaces the removed warp_clearance_repel and warp_clearance_hard_body_mult keys.
Neither has a consumer in the engine: auto_pilot_spec_lining_up_angle only had a vestigial field and reader (removed in the companion engine change), and auto_pilot_compensate_for_interdiction was not referenced at all. Drop both from the shipped engine defaults and from the settings-app advanced template.
…to evert-playground # Conflicts: # engine.json
The engine highlights objects compressing the SPEC field: a repulsor blip/box and the tracked-target cross while SPEC is active. Give both a theme colour so they can be tuned without a rebuild (the engine carries matching defaults).
Match the engine default: the streak band now starts at about 1% of the top SPEC speed and saturates at it, instead of the old 10k..50k band that the compression model outgrew.
graphics.vsync (off/on/adaptive), graphics.frame_limit_mode (unlimited/half/fixed) and graphics.max_framerate for the fixed cap. Half monitor is detected from the current monitor's refresh rate.
The HUD FPS display has been part of the game for years, so the shipped default keeps it visible; the setting is still there to hide it.
The in-game config screen (Alt+C) now owns settings editing, reading and writing the split JSON config directly, so the standalone Kivy app is superseded. Remove it and everything that only existed to launch or configure it: - python/settings_app/ (the app itself) - vega-settings (launcher script) - vegasettings.desktop + vegastrike_settings.png (its menu entry + icon) - setup.config (config for the legacy vscsetup utility) - vsinstall.sh (pre-0.10 installer that launched vegasettings) and drop their CMake install rules.
The engine no longer parses vegastrike.config; it reads the split JSON config (config.json, bindings.json, theme.json, engine.json) from the data directory plus the user overlay. Remove the file and its CMake install rule, drop the dead settings_app block from config.json (only the removed Kivy app ever wrote it), and update the readme's control instructions to describe the in-game settings screen and bindings.json.
Legacy Python 2 CGI server that rewrote vegastrike.config for account registration. The config XML is gone and the server has not been used in years; drop it and its CMake install rule.
…to evert-playground
# Conflicts: # engine.json # python/settings_app/templates/advanced_template.json
# Conflicts: # python/settings_app/templates/advanced_template.json
He is the project lead, alongside the other authors already listed.
Multiplayer is not supported at this time outside the 0.5 Legacy edition, so remove the ALPHA Online Multiplayer Mode section (LAN/Deathmatch and MMO style play), its Contents entry, the stale New Features bullet, and renumber the License section. Addresses stephengtuggy's and BenjamenMeyer's review comments on #296.
The repair and sale economics moved off the flat per-component fee. A component is worth the price of the part the ship fitted, or the nearest tier the shops would sell where the ship has no part for it - and where they sell nothing like it, a share of the ship's own price. A ship is worth its resale value less a share of the damage it carries, never less than what it weighs in scrap. Adds the three settings that need, and drops the two the change leaves unread: repair_price, since charging is now per component, and sellback_shipping_price, which nothing has read for some time - the shipping charged on a sale is the fleet entry's own transfer_price.
Llama.begin was listed at 1 credit - a placeholder - and the fleet entry takes its price from that list on load, so everything about the campaign's starting ship came out as pocket change: its components priced against 5% of one credit, and selling it paid nothing at all. It is the same hull as Llama.stock (900,000), aged, so it is now 810,000: market price less a little for wear and tear. What it has actually worn through is priced separately - the save carries each component's damaged caps, and the repair and resale prices are charged against those.
Two changes that go with restoring the interdiction SPEC model in the engine. engine.json: ship the physics knobs the interdiction model reads, with the values the 0.5.4 release line has -- warp_region0/1, warp_cruise_mult, warp_curve_degree, min/max_warp_effect_size, default_interdiction, enough_warp_for_cruise, warp_perpendicular, warp_orbit_multiplier, min_warp_orbit_radius, warp_behind_angle, and the two autopilot knobs. auto_pilot_spec_lining_up_angle is set to 30 degrees rather than 0.5.4's 3, because at 3 an ordinary turn crosses the threshold repeatedly and toggles the drive in and out. Three values that had drifted are set back (warp_ramp_down_time 0.5, auto_pilot_ramp_warp_down false, auto_pilot_planet_radius_percent 0.2), and the four compression-only keys are retired. units.json and ships.json: rename Spec_Interdiction to ftl_interdiction, the name ShipFunctions::Load asks for. Without it the per-unit value was unreachable and every non-planet fell through to default_interdiction -- a hundredth, which multiplies the distance by a hundred before the curve is applied -- so a ship could hold SPEC right up to a base, and the data's own 0.75 for stations and 0.5 for wormholes never applied. Renaming the data rather than the lookup is what leaves read, write and data agreeing.
flt_orthogonal_thrust_* reads as "flight" and collides with the _dbl/_flt suffix pair the engine uses for its numeric settings. These two price a course change in FTL speed, so rename them to ftl_orthogonal_thrust_*, matching the engine change in Vega-Strike-Engine-Source. Values are unchanged.
Both keys price a course change in FTL speed, and the warp block holds the rest of the FTL speed settings (warp_multiplier_min, warp_ramp_*, warp_memory_effect). Move them there from physics, matching the engine change in Vega-Strike-Engine-Source. Values are unchanged.
base_locationmarker.spr is still in the pack and the engine still draws it at the centre of every hotspot -- the sprite the player is meant to see as they move the cursor towards a clickable area. The setting that names it was never carried into the JSON config, so it has been empty since the split, and the marker has not been drawn at all. Vega Strike 0.5.4's vegastrike.config named the sprite; the engine no longer reads the XML. Sets graphics.bases.location_marker_sprite to base_locationmarker.spr, which is the value the old config used and what enable_location_markers and draw_location_text (both already true) were written to work with.
…n them
The config screen writes config.json, so a docking setting that lives in
engine.json cannot be one the player changes. Move the simple rule's range and the
planet distance here with the values they already had, and add the new mode key
("simple" or "zones"), the same way the config split moved the font and HUD FOV
settings.
engine.json keeps the dock keys that are engine tuning rather than a player
choice: count_to_dock_range (the HUD countdown) and the planet dock port sizes.
planet_dock_port_size has no reader: the port a planet gets is sized from dock_planet_radius_percent, so that one setting defines the planet's docking zone. The other two went nowhere already -- the planet dock keys under "physics" were parsed and never read, while planet.cpp uses dock.planet_dock_port_min_size, which stays.
The config screen writes config.json, so a docking setting that lives in engine.json cannot be one the player changes. The simple rule's range and the planet zone move here with the values they had, and the new mode key joins them. engine.json keeps the dock keys that are engine tuning rather than a player choice: count_to_dock_range (the HUD readout) and the planet port's floor.
…nterdiction The two knobs the orthogonal thrust cost reads collided with the codebase's _flt float suffix and were filed in the physics block; they are named ftl_* and live in the warp block with the rest of the drive's tuning. auto_pilot_planet_radius_percent is the interdiction's own planet fraction and is kept in one place now, at the value the game was running with - the copy in config.json was overriding the value set here, which is why that never took effect. The planet dock port keys that nothing read are gone.
evertvorster
force-pushed
the
evert-playground
branch
from
October 7, 2026 12:07
3232c37 to
a2ad7a7
Compare
# Conflicts: # config.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is my playground
Here are bugfixes, features and things far exceeding what's in git master.
As such, I might pull features, rewrite them or work on something completely different.
However, it represents the VegaStrike I actually play, and enjoy playing.
So, if you are interested in what I'm working on, pull this branch and the accompanying branch from Engine, and have a go.
If you would like to see a feature here in master, then just contact me and I can back-port it.