sschmid / Entitas

Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
MIT License
7.19k stars 1.11k forks source link

ENTITAS 1.0 🎉 #578

Closed sschmid closed 2 years ago

sschmid commented 6 years ago

Entitas-1.0

>> Watch and share the totally unnecessary Teaser on YouTube :)

Hi Entitas community!

We've made it! There it is! Entitas 1.0 is out both the free

and the

I'm so happy to finally deliver the complete package to you guys! The Entitas ECS core has been stable and very fast for so long now. The Unity integration and VisualDebugging does an amazing job in visualizing what's actually going on under the hood in your ECS world. Thanks to everyone who bought the Asset Store version to support the development and already tested the new Entitas.Roslyn code generator plugin which creates an unbeatable and non-distracting code generation workflow.

Let's have a second and recap how we got here.

The birth of Entitas-CSharp

When I switched to Unity and C# in early 2013 to build mobile games I was happy to learn a new language and to use my first game engine. In my first gamejam with Unity I could immediately see how great Unity was for quick prototyping and deploying on multiple platforms. But I was also immediately confronted with all the quirks and flaws that we all now. Before I switched to Unity @devboy introduced me to ECS and we've built games with Entitas for Objective-C. The more I prototyped with Unity and the "Unity way" the more I missed certain aspects of programming that I took for granted in previous projects, such as testability and flexibility. After a while I couldn't resist and started implementing Entitas for C#. Early performance tests where already very promising and strengthened my plans to continue improving Entitas.

Entitas-Performance-Comparison

But performance was not the only reason I saw great potential in the controverse idea to build and ECS within an engine that in itself is component based too. I'm happy that Wooga allowed me to open source my project and so @mzaks and me later shared our experience with Entitas and how we could address all the main pain points that we had at Unity 2015 where we introduced Entitas to the Unity community.

Unite Europe 2015

Those pain points were:

After building a few games with Entitas I was happy about the runtime performance but also about the speed in which I can actually produce those games. With an architecture that enables Test Driven Development and encourages the Single Responsibility Principle I ended up with a steady pace and flexible high quality code.

Almost 4 years of Entitas 📈

The public feedback was amazing and more and more people joined the Entitas community. Entitas was ported to many other languages and I saw ports in Swift, C++, Objective-C, Java, Python, Scala, Go, F#, TypeScript, Kotlin, Haskell, Erlang, Clojure. Amazing! The great feedback and the growing community kept me improving Entitas now for almost 4 years. I thank everyone that contributed in any way, if it's reporting bugs, suggesting new features, creating pull request, helping out with maintaining the Wiki (really helps a lot!!!) or being active in the Entitas chat! You guys know who you are ;) We're just about to hit 2000 stars on GitHub (star here ;)) and the gitter chat evolved to the largest gamedev community on the platform with over 550 people from around the world. I highly doubt that it's true, but heck, maybe Entitas is the reason Unity finally started implementing an ECS themselves too ;)

Here are some of my favorite feedbacks from you guys

@FNGgames

Might seem like a strange thing to say but I'm having so much FUN working with entitas. Haven't grinned this much while programming in a good while

but Entitas does a great job of enforcing better design on you and that's helped a huge amount

oh my god, when things work in Entitas, boy do they work well

but since I've been using Entitas I've been much happier

I had another one of those Entitas JOY moments the other day

If I'd have paid £200 for entitas on the store I think it would be the best value for money I've ever gotten out of the store.

@T2RKUS

Yeah i get it, without even thinking much you can write code that just works, without much effort

I have this really complex interconnecting puzzle that was poorly coded with unity but I've been programming it again in entitas it looks much cleaner and easier to understand

I value modularity and simplicity above all else. I like love my current workflow and it’s all thanks to Entitas. I feel it’s made me a better programmer. Without it, using monobehaviour like a did before made me cry. Perhaps I wasn’t using them right idk

@IDNoise

And seems i finally got my mind around ECS and i like it, rewriting my own game now and can see how stuff is more clear, separated and reusable

@justStand

You're the one making Unity great again

Once you use an ECS you'll realize everything else is wrong

@StormRene

Just another kudos to Entitas: never been so easy for me to restart a whole app after connection loose/not in sync client (game goes back to splashscreen and tries to reconnect). Just TearDown/DeactivateAllSystems/CleanAll Contexts/ActivateAllSystems and Initialize again. That's it. Stunnig how easy this is with Entitas.

Really? I've got another A4 for you. Learned so much stuff in the last 3 months about proper architecture. Most of stuff is only possible 'cause of entitas. Never wanna go back

@kdrzymala

Haha, did a complete rewrite (it was a mess), but now it's beautiful with Entitas

@hyltmark

I agree, have a couple of Unity Assets and Simons ratio when it comes to updates are second to none. Although, I guess the unity team might hate you. At least a little bit

@c0ffeeartc

PureMVC was my previous tool of choice for scalable programs, until Entitas. Just use entitas without systems and get same benefits as PureMVC with less hassle

@AVAVT

Doing AI in entitas is pretty smooth I think. It's a whole lot easier than navigating the tangled web of gameobjects. I got my boids running in no time at all

@socratessotos

Entitas has all these cool things that I don't know anything about

@WeslomPo

Im make an interview regularly, every day I think, and when someone say to me that he know a Entitas I made a huuuge plus in list to that candidate.


There's so much love :heart:

@shiblimansuri_twitter

I love Entitas

@WoLfulus

really love what you guys did

@bddckr

I LOVE IT

@erectsnake_twitter

Hey Simon, love Entitas.

@erectsnake_twitter

at first it was really confusing, but the more I use it the more I love it

@equidevium

Man i really loved the framework (after the long standing failures i had to create something relevant. ) I feel truly inspired with the quality of it

@cloudjubei

ECS is sometimes a bit like Marmite - you love it or you hate it

@strich

Well I love vegemite/marmite

What's next

I tried a few formats for Video Tutorials and my plans are to rebuild Entitas-Shmup which we presented at Unite 2016 from scratch.

Unite Europe 2016

This will serve a real-world example and I can cover many aspects like downloading and setup, explaining the basics, translating Unity input and physics and unit testing. My goal with these videos is to show how to get started with ECS and Entitas but also share best practices and more advanced topics on how to achieve a decoupled, testable, flexible and maintainable code base.

Thanks for being awesome and as always:

Happy coding :)

sschmid commented 6 years ago

See issue New Video Tutorial | Entitas - Shmup - Part 1 #585 to watch the new Entitas setup & basics video