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

New Entitas distribution - How? (+ brief Entitas update) #992

Closed
sschmid opened this issue Apr 23, 2022 · 14 comments
Closed

New Entitas distribution - How? (+ brief Entitas update) #992

sschmid opened this issue Apr 23, 2022 · 14 comments

Comments

@sschmid
Copy link
Owner

sschmid commented Apr 23, 2022

Hi!

Long time no see! I hope you're all doing great!
I'd like to get your feedback on how you would like to download and use Entitas in the future. I will also use this issue to give you an update on the current state of Entitas.

Current state

Since we started the Popcore game studio in Berlin my focus shifted away from Entitas and from the outside there was no apparent progress. However, we use Entitas everyday for all of our games and it works great! I'm finally able to pick up Entitas development again and I'm reworking the Entitas project (and DesperateDevs, which includes Jenny) to simplify building, testing and customizing it. This will help me to get back to regular updates but more importantly, it help anyone else to contribute to Entitas or maintain their custom fork.

This also includes open-sourcing DesperateDevs, including Jenny and the Entitas Roslyn code generator plugin.

Entitas is open-source and I want to enable Entitas to be our community ECS for C# and Unity. Everyone interested should be able to make Entitas their Entitas. I suggest a few changes that should help me and everyone involved in the future:

  1. Update to the official Microsoft C# Coding Conventions
  2. Use modern project structure and migrate to .NET project SDKs
  3. Migrate all unit tests to xunit
  4. Automate releases

Step 1, 2 and 3 are already done for DesperateDevs. I would like to release a new Entitas version that uses the latest DesperateDevs code and then update Entitas itself the same way.

That leads me to the actual question:

How should we release Entitas in the future?

From a C# developer perspective we could just release precompiled dlls with nuget.

From a Unity developer perspective we could release the actual source code with assembly definitions using the Unity Asset Store or openupm. Releasing the source code allows us to use compiler flags.

Do you care about nuget? Do you care about Unity Asset Store? What about openupm? Or is there a way do register Entitas as an official Unity package that would be available in Unity's package manager?

@sschmid sschmid changed the title New Entitas distribution - How? New Entitas distribution - How? (+ brief Entitas update) Apr 23, 2022
@JesseTG
Copy link

JesseTG commented Apr 23, 2022

OpenUPM, please. It's become the most popular destination for open source Unity packages.

@vnedilko
Copy link

Hi, nice to hear entitas is alive) I think nowadays openupm or GitHub release is main distribution strategy for unity packages. Thanks

@jtuchel
Copy link

jtuchel commented May 14, 2022

It would be nice to have something similiar to Entitas Redux

https://github.com/jeffcampbellmakesgames/Entitas-Redux/wiki/Installation

The same might apply for Jenny

https://github.com/jeffcampbellmakesgames/Entitas-Redux/wiki/Genesis-Setup

@RustedGames
Copy link

The Unity Asset store is the most convenient but I'll also go for OpenUPM

@BrokenHell
Copy link

It would be nice to have something similiar to Entitas Redux

https://github.com/jeffcampbellmakesgames/Entitas-Redux/wiki/Installation

The same might apply for Jenny

https://github.com/jeffcampbellmakesgames/Entitas-Redux/wiki/Genesis-Setup

Sorry this question might not related but how do you find Redux version? Have you use it in any project?

@jtuchel
Copy link

jtuchel commented May 31, 2022

@sschmid I'm new to .Net but does

Use modern project structure and migrate to .NET project SDKs

mean we can use Entitas with the latest .Net version soon? And setup Entitas and Jenny with a single openupm install?

@sschmid
Copy link
Owner Author

sschmid commented Jun 2, 2022

@jtuchel Yes.
As a first step I update all Desperate Devs libs to net6.0 and netstandard2.1 and will distribute them as nuget + Unity package with asmdefs.

I plan to release an Entitas update using the latest Desperate Devs libs and after that update Entitas itself using net6.0 etc

@jtuchel
Copy link

jtuchel commented Jun 3, 2022

@jtuchel Yes. As a first step I update all Desperate Devs libs to net6.0 and netstandard2.1 and will distribute them as nuget + Unity package with asmdefs.

I plan to release an Entitas update using the latest Desperate Devs libs and after that update Entitas itself using net6.0 etc

@sschmid May I ask you if there is something like a roadmap? Are you doing well or is there still a ton of work to do that requires some months for a stable release? ( E.g. Entitas 2.0.0 )

Step 1, 2 and 3 are already done for DesperateDevs.

Unfortunately I don't know what this means but this sounds like you are doing well and "just" need some days or weeks. Is there something other people can do / contribute?

@sschmid
Copy link
Owner Author

sschmid commented Aug 25, 2022

Update:
I'm currently working on Entitas 1.14, ETA 1 or 2 weeks.

Brief summary:
Entitas 1.14 is mostly about updating to DesperateDevs 1.0 nuget packages.
DesperateDevs 1.0 addresses the points mentioned above:

Additionally:

  • Roslyn jenny plugins for free

Entitas repo will stop including precompiled DesperateDevs dlls in favour of nuget.

The Entitas.zip from the release section will still include everything you need + Jenny and the Roslyn plugins for free 🥳 No need to get Entitas from the Unity Asset Store anymore.

DesperateDevs 1.0 will be fully open source very soon, incl Jenny, Jenny server, Roslyn support and all Entitas Roslyn adapters.

Entitas 1.15 or most likely 2.0 will be all about addressing the points above for the Entitas repo itself, resulting in a modernized project structure using the latest and greatest.

Entitas 2.x and above will address open issues + extracting code gen templates to text, so eveyone can customze the generated code easily.
After that, a major breaking change of the genrated code for Entitas is planned, moving away from partial classes in favour of extension methods to fully suppor Unity asmdef for faster iteration times + addressing one of my favourite and also very old feature request: Entitas Kits

@sschmid
Copy link
Owner Author

sschmid commented Aug 25, 2022

master branch is still on Entitas 1.13 and will be phased out very soon, switching to main, which will be the new default branch starting with Entitas 1.14. Follow main for latest commits and updates

@sschmid
Copy link
Owner Author

sschmid commented Sep 1, 2022

Update:
Desperate Devs 1.0.0 is now open-source
https://github.com/sschmid/DesperateDevs

I might extract Jenny, Sherlog and TCPeasy out to their own repos at some point.

@sschmid
Copy link
Owner Author

sschmid commented Sep 4, 2022

Update:

Entitas 1.14.0 is out 😍

https://github.com/sschmid/Entitas/releases/tag/1.14.0

@sschmid
Copy link
Owner Author

sschmid commented Nov 4, 2022

Update on Entitas distribution (CI/CD)

I want to move away from big updates and releases where I bundle everything into Entitas.zip and Jenny.zip. Instead, I would like to continuously update Entitas and each sub project or dependency individually.

I use GitHub actions to build and release to nuget and openupm. I have automated releases for all Entitas dependencies already. In case you missed it: all Entitas dependencies like Jenny (the Code Generator + Roslyn plugins that where exclusive to the Unity Asset Store version in the past) are now open source.

I will apply same GitHub actions to Entitas next and update you once it's done.

The result will be that you can use the Unity package manager using OpenUPM for Unity projects, and NuGet for C# projects.

@sschmid
Copy link
Owner Author

sschmid commented Nov 4, 2022

Screen Shot 2022-11-04 at 21 53 28

@sschmid sschmid moved this to New in Entitas Jul 3, 2023
@sschmid sschmid removed the status in Entitas Jul 3, 2023
@sschmid sschmid moved this to New in Entitas Jul 3, 2023
@sschmid sschmid closed this as completed Jul 6, 2023
@github-project-automation github-project-automation bot moved this from New to Done in Entitas Jul 6, 2023
This was referenced Jul 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

6 participants