Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tangent 0.1 #900

Merged
merged 80 commits into from
Sep 18, 2023
Merged

Tangent 0.1 #900

merged 80 commits into from
Sep 18, 2023

Conversation

philpax
Copy link
Contributor

@philpax philpax commented Sep 18, 2023

The all-new and improved Tangent, brought to you by my weekend.

Features:

  • Packages for Kenney's Digital Audio, Impact Sounds, Space Kit
  • Basic explosions
  • A top-down camera and a follow camera
  • A class system with three distinct classes (Assault, Scout, Tank)
  • A procedural level
  • A class selection UI
  • An improved "holographic HUD"
  • Health pickups
  • An aimable laser gun

Oh, and almost all of these are implemented as mods, so you can change them out at runtime.

Also features the following Ambient changes:

  • Macro now generates assets module at package level, not at scope level
  • Added a fixed_rate_tick method to make it easy to do an action every so often (used for input)
  • A bunch of semantic fixes
  • A bunch of preliminary work to make Entity a valid component value type; I tried going further, but WIT does not allow for recursive type definitions, so I had to give up. My plan was to use a serialized representation instead, but we have a lot of macro-driven code that makes special-casing things difficult, and fixing that would take too much time.
  • Exposed remove_at_game_time to the guest
  • Added camera::get_active as a helper method
  • Added a global lerp function
  • Fixed a few crashes
  • Added --window-{x,y,width,height} launch parameters to make it easy to launch two clients side-by-side
  • Improved ambient new:
    • The start of Switch to randomly-generated IDs for packages #679 - new packages now have a 32-char ID generated. Still need to add the checksum.
    • --name no longer appends to the path, making it usable as a configuration parameter
    • --in-workspace can be passed in to avoid generating unnecessary files if you're already in a workspace (no Cargo config, no VSCode settings, etc)
    • --rust {none, empty, quad} (defaults to quad) can now be used to choose the template used. None generates no Rust code (ideal for schemas), Empty generates empty main functions, while Quad generates the standard quad example we have so far. I foresee this being revamped in the short-to-mid-term future with different examples for different types of games.
    • Altogether, this means you can make a mod for Tangent using ambient new guest/rust/packages/games/tangent/mods/my_cool_mod --name "Tangent Mod: My Cool Mod!" --in-workspace --rust empty and then replacing a few lines in the manifest to make it fully compatible. You don't have to delete files or lines of code any more.

@philpax philpax merged commit 8a15505 into main Sep 18, 2023
14 checks passed
@philpax philpax deleted the tangent-0.1 branch September 18, 2023 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant