All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.28 - 2023-12-13
- Background shader for space dust/nebula effect and procedural stars
0.0.27 - 2023-11-21
- Background parallax effect
- PlayTime resource records unpaused play time
- Add rotation effect; will rotate entities with the Rotation component
- Add distance value to Indicated entities, enabling some to be hidden from system when out of range
- Reset score on game reset
- Reset SpawnTimer on game reset
0.0.26 - 2023-11-18
- Add game score that increases when player damages or destroys an enemy
- Spawn timer; enemies will now spawn continuously
- Spawn enemies at random distance and direction from player
- Limit total concurrent enemies to 10
- Decrease static orbit scale (planets are now closer)
- Clamp orbit distance (prevents Moon orbiting inside of Earth sprite)
- Indicators spawn on update allowing new entities to be pointed to
0.0.25 - 2023-11-17
- CI test workflow for pull requests
- Multiply ship velocities by delta time
- Multiply dynamic orbit by delta time
- Bumped up camera scale (entities appear smaller - see more on screen)
- Bump time scale up to 1 hour per second
- Use Bevy Rapier's built-in Damping component for velocity dampening
- Removed old orbital period scaling factor which was slowing down realtime orbits
0.0.24 - 2023-11-15
- Actual values for semi-major axes of planetary orbits (scaled down after calculations)
- Pause menu with Continue and Exit Game buttons
- Game Over screen on player death
- Added basic English (US) translations for pause menu and game over screen
- Added basic Russian (RU) translations for pause menu and game over screen
- Added basic German (DE) translations for pause menu and game over screen
- Planets now orbit in real time
- New dynamic gravity system unbound by distance from objects
- Player speed increase accounting for greater distances and higher gravity
- Increase enemy weapons range
- Reorder planetary system spawning by distance
0.0.23 - 2023-11-13
- New start menu with "New Game", "Credits" and "Quit" buttons
- Upgrade to Bevy v0.12.0
- Rewrite starfield tiling background (see below: bevy_tiling_background removed)
- Enable cursor use in StartMenu and disable on game start
- Changed basic English (US) translations for start menu
- Changed basic Russian (RU) translations for start menu
- Changed basic German (DE) translations for start menu
- bevy_tiling_background presently incompatible with Bevy 0.12
0.0.22 - 2023-11-03
- Bullet spread; bullets will now fire in a slightly random direction based on accuracy
- Moved Verse config to root directory - it will be autogenerated the first time the game runs
- Load and apply selected i18n locale in appropriate systems using .clone()
0.0.21 - 2023-11-01
- Readded Cursor dependency and allow unused_imports macro for production builds
0.0.20 - 2023-11-01
- Support for translations/internationalisation using bevy_fluent
- Add basic English (US) translations
- Add basic Russian (RU) translations
- Add basic German (DE) translations
- Migrated core, temp, ui, world and ship systems to systems/mod.rs file for better overview
- Move set_window_icon temporary system to PreStartup schedule
- Move configure_physics_engine to GameCreate state
- Move system sets to new systems module
- Move state structs and transitions to new systems module
- Move spawn and contact events to systems::events submodule
- enemy_targeting_system now happens before ship_damage, preventing crash to desktop
- Own bullets can no longer hit self
0.0.19 - 2023-10-31
- bevy_common_assets allows certain data to be loaded from asset files
- Allow window mode and master volume to be set via config file
- Game links (Devlogs, GitHub) and support options added to credits
- Gravitable component added allowing dynamic_orbit system to be applied to any entity
- Load credits from asset file
- follow_player camera system now constrained to .after() player movement
0.0.18 - 2023-10-26
- UI damage indicators appear when a ship is hit
- Camera scaling to 1.5, more zoomed out, see enemies on screen for longer
- Group input setups into shared inputs module
0.0.17 - 2023-10-22
- New planet assets emulating those of the Solar System
- Initial player and camera position moved into space
- Gravity affecting ship now accounts for parent mass
- Set eccentricity, argument of periapsis and mass for all planets
- New yellow star sprite better resembling our own sun, Sol
- Indicator system now indicates distance by changing transparency
0.0.16 - 2023-10-21
- Ship health component and health indicator
- Weapons system enables ship to fire bullets
- Weapons system audio assets from Kenney's Impact Sounds pack
- Spawn enemy ship with enemy ship sprite
- Basic enemy AI system
- New Player and Enemy components separating specific logic for player and enemy ships
- Verse "V" window icon
- Xolonium font (Regular and Bold)
- Audio section added to credits
- Roadmap added to docs
- Generalise dynamic orbit for multiple ship entities
- dynamic_orbit, follow_player, indicator, nav and speedometer query for Player instead of Ship
- New player ship sprite
- Add enemies to indicator system
- UI text now uses Xolonium-Bold
- Credits now scroll
- Renamed player module to ships
- Replace Nuxt docs site with simpler docs markdown files managed in Obsidian
- Conditionally run systems dependent on player existence preventing crash when despawned
0.0.15 - 2023-10-13
- Current time display in HUD
- Set initial time to 8 a.m. March 14th 2724 CE
- Extra planets (there are now 8 in the star system)
- Mass component used in orbital calculations
- Introduced Kepler orbital equations for better, more accurate orbit simulations
- Restore player origin to [0.,0.]
- Changed orbital period scaling factor so that orbits are perceivable
- Orbiting bodies will no longer orbit origin (they require an Orbitable with Mass)
- Prevent division by zero in magnetic ship-planet pull effect by preventing execution at > 1.0
0.0.14 - 2023-10-11
- Simple gravitational impulse attracting ship to orbitables (star and planets)
- Add and use KDNode instead of Orbitable for nearest neighbour mapping
- Separate nav and speedometer UI features into own modules
- Open game centered on primary monitor
- Hide cursor in release builds
- Compartmentalise code into core, ui and world modules
0.0.13 - 2023-10-10
- Spritesheet for planet with no atmosphere
- Two extra demo planets (using no atmosphere texture)
- KDTree search for nearest neighbour using bevy_spatial
- Working location indicator for nearest planet
- Indicators now appear in circle close to player ship for better readability
- Add transparency to indicators
- Moved bulk of planet and star setup to own modules
- Renamed AppState to GameState for better clarity
- Improved readability and versatility of assets with bevy_asset_loader
- Moved menu music loading from main to menu module
- Moved celestial bodies and starfield background to new astronomy module
- Moved assets, camera, game_time and state to resources module
- Moved credits, pause and start_menu to menus module
- Moved blink effect to effects module
- Moved animation to effects module
0.0.12 - 2023-10-07
- Implement buffer to prevent crash to desktop when systems are loaded out of order
0.0.11 - 2023-10-07
- Moon orbiting planet, demonstrating new orbital system
- Indicator system added to the HUD
- (Optional) pixelation shader for retro effect
- (Optional) chromatic aberration shader
- Source and license info added to credit attributions
- Generalised orbital system for any spatial coordinates and parent bodies
- Planet orbital radius extended to more "realistic" value
- HUD module moved to new hud directory
0.0.10 - 2023-10-04
- Animated star and planet exported as spritesheets from Deep-Fold's Pixel Planet Generator
- Basic orbital system moving planet in circlular orbit around star
- Pausable GameTime resource and tick system to prevent dynamic systems jumping forwards after unpause
- Attribution for Deep-Fold in Credits for Pixel Planets
- WorldInspectorPlugin from bevy-inspector-egui for development/debugging
- Adjusted scale of ship smaller by default
- Moved background handling to plugin
- Adjusted movement scale of background for parallax effect
- Moved assets to reusable resources plugin in assets.rs
- Moved controls to table in README
- Blog moved to itch.io
0.0.9 - 2023-10-02
- Generalised state change handling with ForState component
- Play menu music in credits state as well as start menu
- Fade in added to beginning of Space Dust by Kirk Osamayo for smoother transition
0.0.8 - 2023-10-01
- Start menu
- Start menu music: Lightspeed by Beat Mekanik (Free Music Archive, CC BY)
- Ambient music: Space Dust by Kirk Osamayo (Free Music Archive, CC BY)
- In-game credits accessible from the start menu
- Download links and controls in README
- Pause system moved to new pause module
- Menu and pause state blinking moved to new effects module
0.0.7 - 2023-09-30
- Pause state
- Control mapping using leafwing-input-manager
- Gamepad support
- Move ship spawning and system registration from main to plugin
- Move camera spawning and follow_player system from main to plugin
0.0.6 - 2023-09-29
- Replaced Commons Clause incompatible license with MIT
0.0.5 - 2023-09-29
- HUD speedometer
- HUD location indicator as static "In Space" text
- Window title set to "Verse"
- kenvector_future font from Kenney's Assets
- Linux and MacOS builds to Release workflow
- Set ship mass directly rather than deriving from density
- Move camera's follow player system to new camera module
- Decrease linear velocity dampening (faster max speed, slower natural deceleration)
0.0.4 - 2023-09-28
- Follow player for camera component
- Endless repeatable background
0.0.3 - 2023-09-27
- Workflow to build versioned game releases
0.0.2 - 2023-09-27
- Spawn camera and spaceship player sprite
- Basic player controls
- Rapier physics engine for ship controls
- Game assets from kenney.nl
- Git LFS config for image storage
- Installation and Credits sections in README
0.0.1 - 2023-09-25
- Bevy game engine and initial config
- Docs site for documenting Verse development
- "Commons Clause" prepended GNU GPLv3 license
- CHANGELOG.md matching Keep a Changelog formatting
- README with link to license doc and changelog