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

Update on Entitas 2.0-beta and my situation #1074

Open
sschmid opened this issue Aug 17, 2023 · 4 comments
Open

Update on Entitas 2.0-beta and my situation #1074

sschmid opened this issue Aug 17, 2023 · 4 comments

Comments

@sschmid
Copy link
Owner

sschmid commented Aug 17, 2023

Hello everyone!

I'd like to share a quick update on Entitas 2.0-beta and my situation:

Recently I was working very actively on a completly new code generator for Entitas using dotnet C# source generators.
You can read all about it in this issue: #1005
Actually, based on my GitHub stats, it was the most productive month in almost 10 years 😍

I think it's awesome, I love it and I'm super hyped and can't wait to use it! :D

I have a few more changes planned, but once it was ready to use I also worked a lot on the whole Entitas project to simplyfy and modernize many things.
I quote some of my message from the Entitas discord channel to help me summarize:

less is more. I removed ~50% of the codebase while making Entitas better 🥳

1.13.0 was 33819 lines of code, now it's almost half: 18929

Same with the number of projects: I could drastically simplify the project structure. It was 20 projects before, now 11

I've put a first test version of Entitas 2.0-beta into Math-One so everyone can already try it.
See discord message: https://discord.com/channels/599321316377624601/599321316876615691/1134560590749249718

You can try Entitas 2.0-beta now in MatchOne on branch `entitas-2.0-beta`

https://github.com/sschmid/Match-One/tree/entitas-2.0-beta

I will make a more detailed announcement in a few weeks (after the summer break 😇)

But here's a quick summary:

- replaced Jenny with new dotnet source generator
- support Unity asmdefs
- support namespace for contexts and components
- started removing dependencies to DesperateDevs
  - e.g. remove Entitas Preferences window in favour of unity menu items and `EntitasSettings` ScriptableObject
- using Entitas as Unity package
- migrated fully to dotnet 6.0
- updated to official Microsoft C# coding conventions

Highly motivated I released this one day before my holidays. My plan was to directly get back to work on Entitas after my holidays and release Entitas 2.0 asap and update all of our games to it. That would have been awesome!
But during the holidays I was informed that I'm affected by a layoff due to restructuring. I'm fine, but it will affect my plans "slighlty" 🙃

I'll need to take some time now to see what's next, also I need new equipment, new software licenses etc so I can continue working on Entitas. This might take some time, but hopefully not too long. I'm still hyped about Entitas 2.0 and I will update you here again as soon as I have more news.

Happy coding!
Simon

@gkiernozek
Copy link

Hi! Entitas 2.0-beta is running really great - no major issues at this time 👍

How are you holding up?
Did you find something new or you are taking some (well deserved) time off?
(Longest time without any commit from what I can see so just making sure everything is all right :) )

I also have quick question for 2.0:
Is it possible to have flag type component in 2.0?
And access it like entity.isClicked with IsClicked: IComponent rather than entity.HasIsClicked() ?

@sschmid
Copy link
Owner Author

sschmid commented Nov 21, 2023

@gkiernozek Happy to hear you have fun trying Entitas 2.0 already!

All good, thanks for asking. I kinda feel bad not working on Entitas right now and I miss working on it! I hope to get back on development early next year again.

The generated api for flag components is now the same as regular components.
E.g. ClickedComponent will generate HasClicked(), AddClicked(), ReplaceClicked() and GetClicked().

For reference: generated code for a flag component SomeComponent from the unit tests
https://github.com/sschmid/Entitas/blob/main/tests/Entitas.Generators.Tests/snapshots/ComponentGeneratorTests.Component%23MyAppMainSomeEntityExtension.g.verified.cs

I don't think there's a need to differentiate between those components anymore. You now get the same behaviour and exceptions to regular components, e.g. throwing an exception when adding a component twice. ReplaceClicked() might also be useful to make reactive system trigger again

@dharmeshmp
Copy link

Hi @sschmid,

I'm thrilled about the progress in Entitas 2.0-beta and the significant improvements you've made. I've been testing it and experiencing positive results so far. Considering its stability and compatibility, I'm curious whether it's advisable to use Entitas 2.0-beta in a production environment. Are there any specific considerations or potential caveats that I should be aware of?

@xushunwang
Copy link

May I ask what the progress is now?And the discord url seems invalid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: New
Development

No branches or pull requests

4 participants