Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Since we wanted a common game simulation that would be on both the server and the client we looked into a few libraries that would fit our ECS needs. It was decided we were going to write this common part of our game in C++, but rust was considered. C++ was a familiar language for us so naturally EnTT and flecs came up right away. I had used EnTT before, writing some small demo projects, so our choice was made based on familiarity. In order to integrate with Unity we created a small C interface to communicate between our simulation code and Unity’s C#. Here’s close to what it looked like. I removed some parts for brevity sake.
Since we wanted a common game simulation that would be on both the server and the client we looked into a few libraries that would fit our ECS needs. It was decided we were going to write this common part of our game in C++, but rust was considered. C++ was a familiar language for us so naturally EnTT and flecs came up right away. I had used EnTT before, writing some small demo projects, so our choice was made based on familiarity. In order to integrate with Unity we created a small C interface to communicate between our simulation code and Unity’s C#. Here’s close to what it looked like. I removed some parts for brevity sake.
The Ecsact runtime standard is a set of C headers available in the ecsact-dev/ecsact_runtime GitHub repository. We chose C for maximum compatibility between languages and integration between other software (such as game engines.)
A language server for Ecsact so we can use neovim, vscode or any other IDE that supports the language server protocol - ecsact-dev/ecsact_lsp_server
Tree sitter for syntax highlighting on editors such as neovim that support it - ecsact-dev/tree-sitter-ecsact
Integration with the unity engine as a unity package - ecsact-dev/ecsact_unity
Command line tool for building the Ecsact runtime - ecsact-dev/ecsact_rtb
Ecsact vscode plugin - ecsact-dev/ecsact_vscode