- Added the ability to rewind time, very useful for debugging AIs (by twof).
- Made rescoring more robust to panics in the simulation.
- Fixed rescoring not removing asterisk when the time is unchanged.
- turn() oscillates less around the target speed.
- The leaderboard now shows an asterisk if the solution hasn't been validated yet.
- Added a second radar to cruisers.
- Added a
select_radar
API.
- Increased enemy distance in tutorial_search.
- Added comments to challenge mission initial code.
- Added the ability to link the editor to multiple files or a directory.
- Changed the link-to-file shortcut to Ctrl-Y.
- Fixed crashes related to the welcome window.
- Fixed leaderboard bug for usernames containing invalid characters.
- Fixed leaderboard entries with empty code.
- Changed rendering to "snap back" to a snapshot without any interpolation when the game is paused.
- Added cruiser_defense scenario.
- Fixed using multiple radios with send_bytes/receive_bytes.
- Fixed parsing of heading command in the sandbox scenario.
- Updated documentation for cruiser main gun.
- Added a favicon (by hipparcos).
- Converted the cruiser flak gun into a long-range heavy cannon.
- Increased size of frigate and cruiser.
- Added an early sandbox scenario.
- Fixed interaction of radar distance filter with edge returns.
- Disabled edge returns for small ships as an optimization.
- Added hotkeys for restarting simulation to canvas (by twof).
- Moved user code to the root of the crate so that the
crate
keyword works as expected. - Added CPU usage to the debug text.
- Fixed a couple of bugs in the race scenario.
- Fixed acceleration debug line rotation.
- Fixed radar with 90 degree beamwidth.
- Added an Asteroid Race scenario (by t-fi).
- Moved ship models so that the center of mass is close to the ship's position.
- Changed radar to return a contact when the beam intersects a bounding circle.
- Changed the C support to C++ including the standard library.
- Increased the memory limit per ship to 2 MB.
- Fixed acceleration debug line when boost is active.
- Fixed fighter lateral flare rendering.
- Integrated wasm-submemory to remove reliance on Rust's memory safety.
- Added very early C language support.
- Added a check-solution-reliability binary.
- Fixed chase camera when ship is destroyed (by 0e4ef622)
- Optimized shape drawing functions (by mwlsk).
- Added times to battle binary output (by ByteRanger).
- Added chase camera keybinding 'c' (by 0e4ef622)
- Replaced std floating point functions with nalgebra versions for determinism.
- Set radar minimum width to TAU/720 for fighters, missiles, and torpedos.
- Randomized seeds for tournaments.
- Added a progress bar to the tournament binary.
- Switched leaderboard links to use shortcodes for easy URL copying.
- Replaced the leaderboard's copy button with a link to play against that AI.
- Removed smoking asteroid from welcome scenario.
- Fixed incorrect info and typos in the API docs.
- Added average time to versions tab (by ByteRanger).
- Optimized polygon drawing (by ByteRanger).
- Changed ship error handling to leave the ship alive with its AI disabled.
- Fixed scrolling of tournament results.
- Fixed log message for out of gas errors.
- Fixed comments for radar distance filter APIs.
- Removed tournament button from planetary_defense.
- Enabled enhanced-determinism feature in Rapier.
- Created a nightly job to rescore the leaderboards.
- Allowed default attribute in sanitizer.
- Fixed building tools on ARM.
- Fixed tools use of shortcode service.
- Fixed numbering of radio and search tutorials.
- Changed compiler service to return more appropriate HTTP status codes.
- Allowed repr, inline, and must_use attributes in sanitizer.
- Removed nonexistent vector cross product from quick reference.
- Added keybinding for slow motion.
- Changed fighter minimum radar width to match docs.
- Fixed typo of math_rs in docs.
- Fixed leaderboard header colspan.
- Fixed docs for current_tick().
- Added more logging to services.
- Fixed a leaderboard sorting bug.
- Fixed that usernames couldn't contain capital letters.
- Added caching to leaderboard service.
- Fixed leaderboard service sending Discord messages for ranks > 10.
- Fixed ship physics body sleeping.
- Changed leaderboard to always display player and those immediately above or below them.
- Fixed API docs for set_radar_heading.
- Fixed loading code from leaderboard when linked to a file.
- Removed ability to accelerate in the gunnery scenario.
- Added a new tutorial_lead scenario between rotation and deflection.
- Changed scenario time display to millisecond precision.
- Fixed docs for maximum radar width.
- Increased the world size in the orbit scenario.
- Randomized starting positions in the orbit scenario.
- Fixed panic handler for String payloads (by @Easyoakland)
- Added population counter to planetary_defense and increase difficulty.
- Added a second radio to fighters.
- Added a mini_fleet scenario.
- Changed tournament scenarios to randomly swap starting positions.
- Made oorandom available to player code.
- Fixed a nondeterminism issue in the radar code.
- Made toggles for blur/nlips/debug persistent.
- Increased max NLIPS ghost size.
- Improved initial zoom calculation to more precisely fit ships on screen.
- Removed primitive_duel from the scenario list.
- Removed the heading debug line.
- Panic messages from ships are now logged to the JS console.
- Changed missiles to not explode when running out of fuel.
- Deprecated the ShapedCharge ability and effectively made it the default.
- Increased range of missile and torpedo explosions.
- Revamped ability API to allow multiple abilities and deactivation (by @Easyoakland)
- Added active abilities to picked ship stats.
- Added a play button to leaderboard rows.
- Changed seed selection links to preserve player and opponent code.
- Added a "seed" tab so you can change the seed without editing the URL.
- Added the seed to the debug status line.
- Removed the upload-shortcode button when using encrypted code.
- Fixed an NLIPS-related panic in planetary_defense.
- Fixed a rendering bug with NLIPS.
- Removed the FPS display when paused, since the game enters power-save mode.
- Added an NLIPS rendering mode toggled with 'v' that makes ships more visible when zoomed out.
- Added
send_bytes
andreceive_bytes
radio functions (by @Nudelmeister). - Made the byteorder crate available to user code.
- Implemented link-to-file editing for Firefox.
- Changed the UI to drop frames when rendering at <60fps so that the simulation runs in real time.
- Made the maths_rs crate available to player code and switched Vec2 to be a type alias.
- Adding a missing
radar_ecm_mode
accessor. - Reenabled caching for web worker files.
- Added a replay-paused button (by @Nudelmeister).
- Improved sanitizer error message.
- Increased limit for debug lines and documented it.
- Enabled submitting to tournament if solution won any simulations.
- Fixed radio message docs.
- Fixed a panic in WASM crash error handling.
- Added time to the victory status line.
- Improved error messages when player code panics or hits the instruction limit.
- Added an
rgb
helper function. - Reduced aliasing of debug lines (including the radar beam).
- Fixed clipping of fighter lateral engine flare.
- Added a "replay" button that reuses the same seed and doesn't trigger the "Mission Complete" screen.
- Enabled Vimium link hints for tabs.
- Turned off automatic debug line display in the welcome scenario.
- Improved documentation.
- Made f64 methods visible to rust-analyzer.
- Added blur to scenario lines.
- Decreased text contrast.
- Limited attributes supported in player code.
- Improved blur performance on iOS / Mac.
- Reduced scale of early tutorials.
- Added blur effect.
- Fixed game speed on high refresh rate monitors.
- Added engine flares.
- Tweaked team placement and composition in tournament scenarios.
- Increased missile acceleration and decreased delta-v.
- Changed missiles to explode on running out of fuel.
- Increased frigate main gun bullet TTL.
- Added scenario_name(), world_size(), and id() APIs.
- Added the ability to load code versions from other scenarios.
- Decreased minimum radar beamwidth and increased maximum.
- Replaced the reference AI with a more readable one.
- Reverted limited turret slew rate.
- scan() API now works in scenarios without radar.
- Added RSSI and SNR to radar scan result.
- Randomized radar return and noise.
- Added weapon reload_ticks API.
- Removed missile_duel and furball scenarios and added squadrons scenario.
- Fixed a bug in the welcome scenario.
- Added a simple version control system.
- Tweaked planetary_defense scenario.
- Increased world size in fleet scenario.
- Added orbit scenario.
- Made planets block radar.
- Increased missile and torpedo lifetime.
- Added limited fuel for missiles and torpedos.
- Added APIs to get current health and fuel.
- Limited slew rate for turrets.
- Increased world size for frigate and cruiser duel scenarios.
- Ships that collide with the edge of the world will be destroyed.
- Increased bullet lifetime.
- Optimized radar calculations.
- Fixed accelerate documentation.
- Added radar_duel scenario.
- Added vector examples to early tutorials.
- Added Vec2::splat.
- Derived PartialEq and Default for Vec2.
- Fixed selecting ships on high DPI devices.
- Fixed radar to fall off with the 4th power of distance.
- Added ECM (noise jamming).
- Made tutorial_squadron easier.
- Made radar lines more visible.
- Fixed dragging causing ships to be deselected.
- Fixed background grid misalignment.
- Increased default world size to 40 km and made it configurable.
- Increased size of frigate and cruiser.
- Limited maximum radar beamwidth to 22.5 degrees.
- Clamped returned contacts inside radar beam.
- Added probability of detecting contacts outside reliable radar range.
- Updated to Rust 1.68.0.
- Added support for deploying staging environments.
- Simplified services and deployment.
- Added a tournament subcommand usable without database access.
- Show mission complete screen when opponent code is modified.
- Updated to Rust 1.67.1.
- Fixed tournament determinism.
- Added a tournament results page.
- Technical improvements for tournament submissions.
- Fixed welcome window not being displayed.
- Tweaked primitive_duel scenario and made it visible.
- Added shortcodes for tournament submissions.
- Reordered tutorials.
- Added a radio tutorial.
- Added missiles to the squadron tutorial and increased range.
- Changed search tutorial to use one ship per team.
- Ramp up missile spawning over time in planetary_defense scenario.
- Added vector cross product to API.
- Fixed format code action.
- Renamed tutorial scenarios.
- Fixed collisions in planetary_defense scenario.
- Fixed resizing editor window.
- Increased time limit in tutorial09.
- Decreased enemy health in tutorial09.
- Reduced CPU usage when simulation is paused.
- Further improved simulation performance.
- Fixed initial headings in the belt scenario.
- Added a serve binary to run a development server.
- Improved simulation performance.
- Moved enemies further away in tutorial08.
- Fixed a crash when rendering empty text.
- Added a button to the mission complete screen to copy a shortcode for the player's AI.
- Updated dependencies.
- Added validation for text and debug line APIs.
- Created a compiler library for use in tools.
- Fixed an issue where the RNG was shared between ships.
- Added support for fetching leaderboard entries via URL parameters.
- Sped up release process.
- Added more Discord integrations.
- Randomize starting location in tutorial03 and tutorial04 to make tutorial05 easier.
- Send a Discord message when a new version is released.
- Removed missiles from tutorial07.
- Started a changelog.