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

Release 0.7.0 #323

Closed
4 tasks done
Kelwan opened this issue Jul 3, 2024 · 1 comment
Closed
4 tasks done

Release 0.7.0 #323

Kelwan opened this issue Jul 3, 2024 · 1 comment

Comments

@Kelwan
Copy link
Contributor

Kelwan commented Jul 3, 2024

  • Write full change log
  • Create GitHub release
  • Upload .msix and .appinstaller for Windows
  • Update website redirects

Ecsact SDK 0.7.0 Release

The New Stuff

0.7.0 is our biggest release yet. We've been hard at work improving the Ecsact language as well as improving tooling and performance.

Parameters

The Ecsact language added a new core concept - Parameters. All statements now can accept parameters. You'll see them mentioned in the features below.

statement Name(param_name: param_value)

More in-depth documentation to come

Parallel Systems

It's been long documented that Ecsact systms were meant to be ran in parallel. The Ecsact RT EnTT implementation has now implemented parallel systems #127 and systems will execute in parallel by default if they can.

A new API was introduced to control this feature. You can now mark a system to explicitly not run in parallel with ECSACT_PAR_EXEC_DENY. See more options in ecsact/common.h. Of course you can also set this option in the Ecsact language.

system MySystem(parallel: deny) { /* ... */ }

Reactive Systems

Added the notify keyword to specify conditions for a system to execute. These can be individually configured for every component in the system. The options currently available are:

  • oninit, onupdate, and onremove
  • onchange when the component is updated and one or more of its internal values has been changed
system NotifySystemA {
    readwrite ComponentA;
    readonly ComponentB;

    notify {
        // System will execute when ComponentA is added to qualifying entity
        oninit ComponentA;
        // System will execute if ComponentB is removed from qualifying entity  
        onremove ComponentB;
    }
}

system NotifySystemB {
    readwrite ComponentA;
    readonly ComponentB;

    // Alternatively, you can do a notify without a body and it will apply to all components in the system
    notify oninit;
}

More in-depth documentation to come

Lazy Systems

Having all qualifying entities for a system running on the same tick can be expensive. Now you can limit the amount of entities that get iterated in a system per tick by making it lazy.

Lazy systems are sorted so accurate determinism is still at play, this is especially important for multiplayer games.

There is a new dynamic function to mark a system as lazy ecsact_set_system_lazy_iteration_rate and an accompanying meta function to read if a system is lazy ecsact_meta_get_lazy_iteration_rate, but the way you most likely will be using lazy systems is via parameter in the Ecsact language.

system MyLazySystem(lazy: 25) { /* ... */ }

More in-depth documentation to come.

Ecsact CLI Build System

We've completely deprecated ecsact_rtb and now instead have an ecsact build command. There is a "recipe" system which allows you to pick and choose what runtime implementation you want. There's only one (Ecsact RT EnTT) right now, but it opens the gate for you to write your own and for more implementations to come.

ecsact build also improves some quality of life things compared to ecsact_rtb such as coloured output and reporting C++ build errors more nicely.

More in-depth documentation to come

Codegen Error Reporting

Ecsact Codegen plugins now can report errors and other information while generating code. This is a breaking change since the ecsact_codegen_plugin now utilises a 3rd parameter. All official plugins have been updated in this release.

New Assoc API

The old association API has been completely re-done and we've introduced a new concept called "indxed fields". This feature isn't fully ready for prime time, but you can checkout the changes we've made here:

Bazel Support

We've added more bazel support to include building an Ecsact runtime directly via the ecsact CLI. We use bazel a lot so expect more imrpovements to rules_ecsact.

Misc. Small Improvements

Internal Improvements

Ecsact codegen plugin for optimization #56

Metaprogramming compile times were taking longer and longer the bigger .ecsact files got. This is a refactor to use codegen instead.

System providers #126

It was getting more and more difficult to add features to systems. This is a refactor to add providers to systems, allowing the separation of new features like lazy systems while being more readable.

Bug Fixes

Other

@zaucy
Copy link
Member

zaucy commented Jul 3, 2024

Generated changelog based on version changes made here 2ed36e6

ecsact_si_wasm

0.1.2 - 2024-07-03

Miscellaneous Chores

rules_ecsact

0.5.5 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.5.5 - (ba1b444) - Ezekiel Warren

0.5.3 - 2024-07-03

Bug Fixes

  • add missing recipe data to bundle rule - (ab0b3c0) - Ezekiel Warren
  • remove debug print - (459fff3) - Ezekiel Warren

Features

Miscellaneous Chores

  • (deps) update ecsact repositories (chore(deps): update ecsact repositories rules_ecsact#55) - (a8dd8a3) - renovate[bot]
  • (version) 0.5.3 - (3c8f56a) - Ezekiel Warren
  • ignore bazel lock files - (fdea8b0) - Ezekiel Warren
  • add curl registry override - (0663960) - Ezekiel Warren
  • add curl registry override - (7929f24) - Ezekiel Warren

0.5.2 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.5.2 - (0c1c732) - Ezekiel Warren

0.5.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores


0.5.0 - 2024-07-03

Features

Miscellaneous Chores


0.4.9 - 2024-07-03

Bug Fixes

  • treat plugin as string not path - (241d709) - Ezekiel Warren

Miscellaneous Chores

  • (version) 0.4.9 - (5409246) - Ezekiel Warren

0.4.8 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.4.8 - (cc2654b) - Ezekiel Warren
  • bzlmod updates - (3787dd2) - Ezekiel Warren

0.4.7 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.4.7 - (8c72bbc) - Ezekiel Warren

0.4.6 - 2024-07-03

Bug Fixes

Miscellaneous Chores

ecsact_rt_entt

0.3.3 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores


0.3.2 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.3.2 - (d80d08a) - Ezekiel Warren

0.3.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.3.1 - (c47f093) - Ezekiel Warren
  • update lock file in cog.toml - (5471f71) - Ezekiel Warren
  • update bazel lock - (a1d61d9) - Ezekiel Warren

0.3.0 - 2024-07-03

Features

Miscellaneous Chores

ecsact_codegen

0.3.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.3.1 - (0b00cde) - Ezekiel Warren

0.3.0 - 2024-07-03

Features

Miscellaneous Chores


0.2.0 - 2024-07-03

Features

Miscellaneous Chores

ecsact_parse

0.5.1 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.5.1 - (9d1a2b1) - Ezekiel Warren

0.5.0 - 2024-07-03

Features

Miscellaneous Chores


0.4.0 - 2024-07-03

Miscellaneous Chores

ecsact_runtime

0.6.7 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores


0.6.6 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.6.6 - (c770d3c) - Ezekiel Warren

0.6.5 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.6.5 - (caaf9aa) - Ezekiel Warren

0.6.4 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.6.4 - (64fedea) - Ezekiel Warren

0.6.3 - 2024-07-03

Features

Miscellaneous Chores


0.6.2 - 2024-07-03

Features

Miscellaneous Chores


0.6.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.6.1 - (6cab2e7) - Ezekiel Warren

0.6.0 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores

ecsact_interpret

0.6.4 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.6.4 - (8ad28c4) - Ezekiel Warren

0.6.3 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.6.3 - (79a94ec) - Ezekiel Warren

0.6.2 - 2024-07-03

Features

Miscellaneous Chores


0.6.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.6.1 - (53732c6) - Ezekiel Warren

0.6.0 - 2024-07-03

Miscellaneous Chores

ecsact_lang_cpp

0.4.5 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores


0.4.4 - 2024-07-03

Features

Miscellaneous Chores


0.4.3 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.4.3 - (417a381) - Ezekiel Warren

0.4.2 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.4.2 - (e6539d3) - Ezekiel Warren

0.4.1 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.4.1 - (8bd259f) - Ezekiel Warren

0.4.0 - 2024-07-03

Miscellaneous Chores


0.3.4 - 2024-07-03

Bug Fixes

  • mark ecsact bazel toolchain as dev dep - (283f682) - Ezekiel Warren

Miscellaneous Chores

  • (version) 0.3.4 - (870a479) - Ezekiel Warren

0.3.3 - 2024-07-03

Miscellaneous Chores


0.3.2 - 2024-07-03

Bug Fixes

Miscellaneous Chores

ecsact_cli

0.3.13 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.3.13 - (7a71935) - Ezekiel Warren

0.3.12 - 2024-07-03

Features

Miscellaneous Chores


0.3.11 - 2024-07-03

Miscellaneous Chores

  • (version) 0.3.11 - (edc5927) - Ezekiel Warren
  • remove libarchive git_override - (030cd05) - Kelwan
  • ci detect 'always' label - (9a75122) - Ezekiel Warren

0.3.10 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.3.10 - (0f20c6c) - Ezekiel Warren
  • remove bazel lock file - (ffbc2cf) - Ezekiel Warren

0.3.9 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.3.9 - (5922ab1) - Ezekiel Warren

0.3.8 - 2024-07-03

Features

Miscellaneous Chores


0.3.7 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.3.7 - (563f97d) - Ezekiel Warren

0.3.6 - 2024-07-03

Bug Fixes

Miscellaneous Chores

  • (version) 0.3.6 - (882be18) - Ezekiel Warren

0.3.5 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores


0.3.4 - 2024-07-03

Bug Fixes

Miscellaneous Chores


0.3.3 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores


0.3.2 - 2024-07-03

Features

Miscellaneous Chores

  • (version) 0.3.2 - (01093de) - Ezekiel Warren

0.3.1 - 2024-07-03

Miscellaneous Chores

  • (version) 0.3.1 - (35453db) - Ezekiel Warren
  • update deps - (da9af3d) - Ezekiel Warren

0.3.0 - 2024-07-03

Bug Fixes

Features

Miscellaneous Chores

ecsact_lsp_server

0.2.1 - 2024-07-03

Miscellaneous Chores

ecsact_lang_json

0.1.4 - 2024-07-03

Miscellaneous Chores


0.1.3 - 2024-07-03

Miscellaneous Chores

ecsact_lang_csharp

0.1.4 - 2024-07-03

Miscellaneous Chores


0.1.3 - 2024-07-03

Miscellaneous Chores

@zaucy zaucy pinned this issue Jul 3, 2024
@zaucy zaucy closed this as completed Aug 1, 2024
@zaucy zaucy unpinned this issue Aug 9, 2024
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

No branches or pull requests

2 participants