Skip to content

Releases: sschmid/Entitas

Entitas 0.46.0

08 Dec 19:20
Compare
Choose a tag to compare

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days.

This release is a maintenance release as announced here:

#508

As the project got more mature the Entitas repository not only contained the ECS core but also a few other modules like Logging, Serialization, Networking, Code Generator, Common Utils and more. The goal of this refactoring was to extract reusable modules and increase the focus of the Entitas repository on ECS. Reusable modules have been successfully extracted to their own standalone projects. Overall, with the increased focus that is achieved by having standalone projects I expect the quality to raise, too. This is generally the case when you have reusable code that is battle tested in multiple different scenarios.

As mentioned in #508 those projects all have the DesperateDevs namespace. You maybe already know about Desperate Devs because of the new YouTube channel where I will upload more and more Video on ECS, best practices and Software Architecture. Subscribe if you don't want to miss future videos.

https://www.youtube.com/channel/UC2q7q7tcrwWHu5GSGyt_JEQ

As a result of this refactoring I was able to remove a lot of noise from the Entitas repository and I could easily fix platform depended bugs without any distraction.

entitas-desperatedevs

Entitas will benefit from having the Desperate Devs dependencies as it enforces modularity and reusability. Additionally, it will be possible to use awesome tools like TCPezy (DesperateDev.Networking) and Jenny (DesperateDevs.CodeGeneration) independently.

Breaking changes

Please follow the Entitas upgrade guide

Obsolete notice

  • Removed methods marked obsolete in 0.42.0 from April 2017
  • Blueprints are now completely removed from the zip files (sources still available)

Preferences

  • Showing properties name in Edit Button

Jenny (aka Code Generator)

  • CodeGeneratorPreferencesDrawer will keep unavailable plugins #496
  • Added Display Dialog for auto import
  • Added a secret and hidden cli command, can you find it? ❤️

TCPezy (aka entitas server)

  • Fixed Unhandled Exception (appeared on Windows only) #489

Other

  • Changed language level of all projects to C# 4.0
  • Deleted CodeGenerator Unity Test project

Entitas 0.45.1

15 Nov 11:26
Compare
Choose a tag to compare

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.

CodeGenerator

  • Added Auto Import Button to Entitas Preferences. This will detect plugins and automatically set them in Entitas.properties

entitas-autoimportbutton

Entitas 0.45.0

13 Nov 19:49
Compare
Choose a tag to compare

Thanks for the feedback on the new code generator so far. This update contains a lot of great improvments.
As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.

Breaking changes

Please follow the Entitas upgrade guide

Entitas

  • Fixed flag components increasing the componentPool stack #445
  • Logging all retained entities in ContextStillHasRetainedEntitiesException #448
  • Added support for multiple indexed members per component #464
public sealed class MyComponent : IComponent {

  // Multiple fields are now supported

  [EntityIndex]
  public int value;

  [EntityIndex]
  public int otherValue;
}

// will generate
context.GetEntitiesWithMyValue(...);
context.GetEntitiesWithMyOtherValue(...);

CodeGenerator

  • Displaying more prominent popup in Unity when trying to generate with compile errors #463

entitas-codegenerator-compileerrorpopup

  • AssemblyResolver won't append dll to exe extension
  • Changed code generator keys and removed default values
  • Changed code generator cli keys and removed default values
  • Added auto-import command. Use entitas auto-import to automatically populate Entitas.properties
  • entitas status command will detect potential collisions, e.g. duplicate providers from the default plugins and the roslyn plugins
  • entitas fix can resolve plugin collisions
  • entitas fix command will tell you to press any key
  • Removed -a keepAlive in favour of entitas server and entitas client
  • Fixed client only sending first command to server #482
  • Default Plugins are now in folder called Entitas
  • Refactored all commands and simplified many utils methods
  • Entitas.exe now with capital E

Roslyn

  • Added custom support for multi-dimensional arrays types like int[,,] #481
    Let me know if more types need custom support.

Migration

  • Added migration for 0.45.0

Entitas 0.44.0

07 Nov 19:41
Compare
Choose a tag to compare

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity.
Please check for updates in 2 - 4 days.

Unity CodeGenerator

  • Added new menu item which connects to an external code generator server instance

CodeGenerator CLI

  • Added server command
  • Added client command
  • Added startCodeGenerator files for macOS and Windows

Example

Start the code generator server by double clicking startCodeGenerator on macOS or startCodeGenerator.bat on Windows, or use the terminal

$ mono CodeGenerator/entitas.exe server

You can now either use the new Unity menu item Tools/Entitas/Generate with external Code Generator
which connects to a running server and sends the gen command or connect yourself like this

$ mono CodeGenerator/entitas.exe client gen

This will connect to a running server and send the gen command. This is useful if you want to add your own custom commands in your IDE like Visual Studio or Rider (or others).

Using the code generator server and client is optional but can greatly improve your workflow and
can drastically reduce the overhead of generating new files.

Entitas 0.43.0

06 Nov 14:11
Compare
Choose a tag to compare

As always, the Unity Asset Store version might take a few days to be processed and accepted by Unity. Please check for updates in 2 - 4 days.

Breaking changes

The new code generator is part of Entitas.Roslyn. The Roslyn Plugins are now called Entitas.Roslyn.CodeGeneration.Plugins. If you already tested the new code generator beta, please update Entitas.properties

  • Entitas.Roslyn.CodeGeneration.Plugins
  • Entitas.Roslyn.CodeGeneration.Plugins.ComponentDataProvider
  • Entitas.Roslyn.CodeGeneration.Plugins.EntityIndexDataProvider

New mandatory keys have been added to Entitas.properties. You can automatically add them by running entitas fix

CodeGenerator

  • Added ICodeGeneratorCachable to cache and share objects between multiple plugins to avoid redundant calculations
  • Using the objectCache to share the AssemblyResolver between all plugins
  • Added CodeGenerator to default searchPaths
  • Added Unity menu item to generate with CLI

entitas-unity-cli

CodeGenerator CLI

  • Updated New command to use preferences
  • Added CLIConfig with new key Entitas.CodeGeneration.CodeGenerator.CLI.Ignore.UnusedKeys to add keys that should be ignored when running entitas status or entitas doctor. You can automatically ignore keys by pressing i

entitas-cli-ignoreunusedkeys

  • Added support for custom properties files. Each command optionally accepts a path to a properties file. This way you can have multiple different configs how to run the code generator, e.g. one with the reflection-based code generator and one with the roslyn code generator.
entitas gen My.properties
  • Pretty CLI

Unity

  • Added Edit Button to Entitas Preferences

entitas-preferences-editbutton

Asset Store Version

  • Changed project structure. The Plugins are now called Entitas.Roslyn.CodeGeneration.Plugins
  • Using the objectCache to share the ProjectParser between all plugins which speeds up the code generation process
  • Updated all packages to latest version and downgraded all projects from .NET 4.6.1 to .NET 4.6
  • Added more dependencies to remove warnings when running entitas doctor or entitas gen

entitas-roslyn-nowarnings

Entitas 0.42.5

31 Oct 13:57
Compare
Choose a tag to compare

UPDATE: The new code generator works on Windows 10 now!


This version will submitted to the Unity Asset Store today. The Unity Asset Store version will additionally include the new Code Generator which has been successfully tested to work with macOS. I have setup a machine now to test it on Windows 10 too. I have gotten some feedback that there are issues on Windows 10 with the new code generator. Entitas and the current code generator work the same ways as in previous versions, so it is safe to upgrade also for Windows users. I will try to release a working version of the new code generator for Windows 10 as soon as possible.

General

  • Refactored Preferences to fully embrace Entitas.properties and User.properties

CodeGenerator CLI

  • Added format command
  • keepAlive argument which will keep the process alive. This is very useful when using the new roslyn code generator to avoid reloading the whole parsing infrastructure. Using this argument ith roslyn results in super fast generation time
$ entitas gen -a

Entitas 0.42.4

26 Oct 17:58
Compare
Choose a tag to compare

Notes

Entitas development is back on track again and the wait is over. This is probably one of the last updates before Entitas reaches 1.0.0. This verion has been tested successfully in combination with the new code generator that will work even when the code is not compiling.

General

  • Added support for User.properties. You can now either overwrite values sepcified in Entitas.properties or use placeholders

Create a new file called User.properties and specify the keys and values that should be overwritten. You can also specify placeholers like this ${myPlaceholder} and specify the key either in Entitas.properties or User.properties.
see: Match One - Entitas.properties
see: Match One - User.properties

Entitas

  • Groups are now enumerable to iterate over groups circumventing the internal caching and potentially reducing memory allocations #408
foreach (var e in group) {
  // Look closely: no group.GetEntities()
}

CodeGenerator CLI

  • Added commands add, set, remove, dump

VisualDebugging

  • Fixed Entitas Stats not ignoring built-in MultiReactiveSystem in systems count
  • VisualDebugging only lets you add components that the entity doesn't already have
  • GUI fixes

Other

  • Properties are now formatted by default for better readability
  • Ensuring dependencies in build scripts

Entitas 0.42.3

21 May 16:19
Compare
Choose a tag to compare

Hotfix release for

  • Fix Code Generation NullReferenceException in Unity 2017 #414

Entitas 0.42.2

19 May 08:58
Compare
Choose a tag to compare

See and discuss changes in Milestone 0.42.2

CodeGenerator

  • Fix Code Generation NullReferenceException in Unity 2017 #414
  • EntityIndexGenerator is sorting entity indices
  • CodeGenerator fix command runs recursively #409
  • Code Generator CLI maintenance

VisualDebugging

  • Update EntityDrawer to draw correct object type #399 #406

Entitas 0.42.1

30 Apr 11:50
Compare
Choose a tag to compare

Top new features:

Added missing support for flag components in ComponentEntityInterfaceGenerator

General

  • CodeGenerator CLI + Plugins are now included in zips and not deployed as separate zips

CodeGenerator

  • Added support for flag components in ComponentEntityInterfaceGenerator
  • Removed GameState from default contexts. Defaults are now Game and Input