Skip to content

0.3.0

Latest

Choose a tag to compare

@patowen patowen released this 25 Sep 14:56

Changes

Gameplay Changes

  • There is now a GUI, which allows you to see which block you have selected.
  • It is now possible to select and build with every material in the game.
  • The save file now stores the current position of the player rather than moving you back to the center of the world each time you launch the game.
  • There is a togglable waypoint marker that can be used to find the world origin if you're lost.
  • World generation is no longer buggy when you're far from the ground plane.
  • Hypermine now writes to a log file, allowing crashes and other errors to be debugged more easily without launching the game in a terminal. See the "Troubleshooting" section below for details.
  • An initial inventory system has been added. This is configured to be off by default.
  • Horospheres have been added to the world as an initial draft of megastructures. They are configured to be off by default.

Important Breaking Change

The save format has changed, so save files produced by Hypermine 0.2.0 are incompatible with save files produced by Hypermine 0.3.0. If you get an error when opening Hypermine, you can resolve it by renaming default.save to default_old.save so that Hypermine creates a fresh save file. The default location of this file is %LOCALAPPDATA%\hypermine\data\default.save in Windows and ~/.local/share/hypermine/default.save in Linux. The logs will tell you where Hypermine looked for the save file.

All Changes

See the "Autogenerated release notes" below.

Instructions

Controls

  • w, a, s, d - move
  • Spacebar - jump
  • v - toggle no-clip mode (gravity and collision)
  • q/e - rotate (in no-clip mode)
  • r/f - fly up/down (in no-clip mode)
  • Left mouse button - delete block (or grab cursor)
  • Right mouse button - place block
  • Number row - select material from a predefined palette
  • -/= - increment/decrement selected material (useful when the material you want is not one of the 10 bound to the number keys)
  • G - select the material of the block you're looking at
  • F1 - toggle the GUI (useful for screenshots)
  • Home - toggle a waypoint marker showing the world's origin (useful when you're lost)
  • Escape - release cursor

Configuration

As of 2026-09-25, configuration options are documented in https://github.com/Ralith/hypermine/wiki/Example-config-file

Troubleshooting

If the game crashes, you can check the error message by looking at the log file, which can be found at %LOCALAPPDATA%\hypermine\data\logs\ in Windows and ~/.local/share/hypermine/logs/ in Linux.

Coming from 0.2.0, one likely error you'll run into is an incompatible save file. Please see the "Important Breaking Change" section above for details.

Cautionary notes:

  • It's likely that the save format will break in the future. Don't get too attached to anything you build.
  • The spawn point is fixed, and hyperbolic space is incredibly difficult to navigate. If you build something distant from the spawn, and you don't leave a bread-crumb trail to it, you will almost certainly never find it again. The save file will store everything, but does not contain enough information to find them in the world again.

Autogenerated release notes

  • Simple optimizations by @patowen in #388
  • Handle null pointer in fmt_labels by @patowen in #389
  • Fix depth buffer sync by @Ralith in #392
  • Don't package PRs by @Ralith in #393
  • Fix remaining sync issues by @Ralith in #394
  • Update quinn to 0.11 by @Ralith in #396
  • Add a basic GUI to Hypermine powered by yakui by @patowen in #395
  • Update metrics requirement from 0.22.1 to 0.23.0 by @dependabot[bot] in #398
  • Fix clippy lints for Rust 1.79 by @patowen in #401
  • Store all Material types in an array by @patowen in #407
  • Player inventory (initial version) by @patowen in #408
  • Fix issues with Windows package workflow by @patowen in #412
  • types for hyperbolic space by @strawberrycinnabar in #420
  • Simplify and document expansion functions of Graph by @patowen in #413
  • Load character entities from the save file by @patowen in #414
  • Concise paths by @Ralith in #421
  • Update nalgebra requirement from 0.32.1 to 0.33.0 by @dependabot[bot] in #410
  • Update winit by @Ralith in #422
  • Clean up CI by @Ralith in #423
  • Fix Linux package workflow by @Ralith in #426
  • Ensure the server state is consistent whenever snapshot is called by @patowen in #427
  • In-process server by @Ralith in #425
  • Update yakui to fix its Vulkan code for older computers by @patowen in #429
  • Don't crash when placing blocks with gameplay enabled by @patowen in #430
  • Update metrics requirement from 0.23.0 to 0.24.0 by @dependabot[bot] in #432
  • Update thiserror requirement from 1.0.38 to 2.0.0 by @dependabot[bot] in #433
  • Fix clippy lint warnings for Rust 1.83 by @patowen in #434
  • Serialize the player's inventory in save files by @patowen in #431
  • Update downcast-rs requirement from 1.1.1 to 2.0.0 by @dependabot[bot] in #436
  • Update directories requirement from 5.0.1 to 6.0.0 by @dependabot[bot] in #437
  • Resolve clippy lints for Rust 1.84.0 by @patowen in #441
  • Update packages to their latest versions by @patowen in #444
  • Document and refactor dodeca.rs by @patowen in #443
  • Add and fix some documentation by @patowen in #445
  • Document and simplify math module by @patowen in #442
  • Upgrade to the Rust 2024 edition by @patowen in #447
  • Introduce two new unit vector types for MVector by @patowen in #446
  • Improve numerical stability of ground plane distance estimation by @patowen in #450
  • Uncouple client worldgen from rendering by @patowen in #451
  • Refactor graph expansion to remove the concept of "fresh" nodes (after making the server and client expand the graph independently) by @patowen in #453
  • Fix package-linux workflow by removing unsupported Ubuntu 20.04 by @patowen in #455
  • Clippy: Fix result_large_err by boxing redb errors by @patowen in #456
  • Rename "length" to "depth" and make "parent" more useful by @patowen in #457
  • Fix Clippy lint for 1.88.0 (clippy::neg_multiply) by @patowen in #458
  • Fix clippy lints for Rust 1.91.1 by @patowen in #460
  • Add outline for detailed documentation by @patowen in #459
  • Add documentation summarizing the world generation algorithm by @patowen in #461
  • Set up an initial framework to allow megastructures to spawn in the world by @patowen in #454
  • Add SIDE_COUNT and VERTEX_COUNT constants to avoid rust-analyzer bug by @patowen in #462
  • Upgrade crates for January 2026 by @patowen in #463
  • Include Cargo.lock for improved stability of old versions moving forward by @patowen in #474
  • Improve anonymity by @patowen in #475
  • Bump libm from 0.2.15 to 0.2.16 by @dependabot[bot] in #476
  • Ensure peer_traverser does not unnecessarily expand the graph by @patowen in #477
  • Apply minor tweaks to terrain to allow traversing the road to be nicer. by @patowen in #478
  • Bump criterion from 0.8.1 to 0.8.2 by @dependabot[bot] in #480
  • Bump toml from 0.9.11+spec-1.1.0 to 0.9.12+spec-1.1.0 by @dependabot[bot] in #484
  • Unvendor lru-slab by @Ralith in #504
  • material cycle and picker keys by @shadow-kestrel in #505
  • Bump redb from 3.1.0 to 3.1.1 by @dependabot[bot] in #507
  • Update dependencies and fix latest Clippy lints by @patowen in #511
  • Install shaderc with package manager in Linux CI workflow by @patowen in #512
  • Bump redb from 4.1.0 to 4.2.0 by @dependabot[bot] in #517
  • Fix chunks_exact_to_as_chunks Clippy lint for Rust 1.98.0 by @patowen in #518
  • Use install-vulkan-sdk-action GitHub action, including lavapipe software rasterizer by @patowen in #519
  • Bump blake3 from 1.8.6 to 1.8.7 by @dependabot[bot] in #520
  • Introduce skid_steer as a new way to load assets by @patowen in #515
  • Bump futures-util from 0.3.33 to 0.3.34 by @dependabot[bot] in #516
  • Bump rcgen from 0.14.8 to 0.14.9 by @dependabot[bot] in #513
  • Add a file output for "tracing" and ensure that panics are included by @patowen in #497
  • Bump tracing-appender from 0.2.4 to 0.2.5 by @dependabot[bot] in #522
  • Bump rcgen from 0.14.9 to 0.14.10 by @dependabot[bot] in #523
  • Bump toml from 1.1.4+spec-1.1.0 to 1.1.5+spec-1.1.0 by @dependabot[bot] in #524
  • Bump redb from 4.2.0 to 4.3.0 by @dependabot[bot] in #529
  • Bump lru-slab from 0.1.2 to 0.1.3 by @dependabot[bot] in #527
  • Bump toml from 1.1.5+spec-1.1.0 to 1.1.6+spec-1.1.0 by @dependabot[bot] in #525
  • Use a separate queue for assets, and fix data race when the queue has to be shared by @patowen in #530
  • Bump rand from 0.10.2 to 0.10.3 by @dependabot[bot] in #534
  • Fix soundness bug in messenger_callback when data.object_count is 0 by @patowen in #535
  • Improve graph traversal algorithms by @patowen in #531
  • Allow the player to toggle a waypoint that directs them towards the world origin by @patowen in #533
  • Add configuration option machinery to worldgen and include a horospheres_enabled option by @patowen in #536

New Contributors

Full Changelog: v0.2.0...v0.3.0