Comments (4)
Awesome, I'll take a look at the code when I find some time!
I added it to the wiki
Games and Examples
from entitas.
I just looked at the code. You grouped the components and systems by feature and you have separate folders for MonoBehaviours and entitas sources - that's how I like it :) Looks pretty good! Great job! I'm happy to have it in the wiki now so others can learn from it!
from entitas.
Yeah I followed the other examples and it seemed like a good way to do it. I've seen a lot of ECS projects use just a single directory for systems and then a separate directory for components and I was initially going to do that but grouping by features seemed like a better granularity for organization.
Separating in the MonoBehaviors from the Entitas just made sense. I wish I could have gotten rid of all using UnityEngine;
dependencies in the Entitas sources, but that involved duplicating code and was impossible for the GameObject
view stuff. It would be great if you guys had a few examples with unit tests because I'd love to see how that works with Entitas.
In the case of this game it was really easy to encapsulate all the simulation logic in Entitas. I'd like to know what to do when I need to use Unity features beyond a view capacity, such as collisions, pathfinding, etc. I have a rough idea but didn't get to experiment with it much in this project.
One thing I'd like to see in the Entitas project is more documentation around the various classes and interfaces. I think I was able to figure out everything but the startup cost was larger if there had just been some class docs.
In general though using Entitas was a blast, I think I am going to adopt it for my prototyping going forward. It was so easy to add new features once I got everything up and running. Also the Unity editor widgets you built out are really helpful and impressive.
from entitas.
Grouping classes by feature is great for organization and prevents unused files in the project. I try to put not only components and systems in the same folder, but also extensions, utils, enums, unit test, etc. When you want to remove a feature you simply delete the folder and the feature incl. unit tests is gone.
@mzaks and me will eventually start on a small series where we build a game from scratch including unit tests, level design and maybe physics. I hope that helps answering most questions.
Currently the lack of documentation is intentional. I'm not a very big fan of documenting code because I think good code should reveal its intend by just reading the class and method names. Maybe I didn't do a great job then ;) But I agree, it might help to get started. I'll think about to add some documentation at some selected places ;)
I'm glad you had fun using Entitas. You did a great job! :)
from entitas.
Related Issues (20)
- Wiki closed for editing
- Unity crashes when clicking on a GameObject with Component of Entitas HOT 8
- Remove DesperateDevs dependencies
- [SOLVED] Unity 2022.3.4f1: Exceptions + broken inspector when looking at any entity HOT 16
- Add/Replace/Remove vs Set/Unset HOT 5
- Boolean in setttings for unique components to actually be unique
- A component with multiple contexts +events, only make event listeners for 1 context
- Could not resolve type with token ... expected class System.Threading.CancellationToken HOT 10
- How to generate codes in a project which has several csproj files? HOT 1
- Update on Entitas 2.0-beta and my situation HOT 3
- [1.14.1]code gen twice and compile error HOT 1
- there is a Error, on click Tools/Jenny/Gennerate, how can I do? HOT 4
- _group.GetEntities().AsParallel().ForAll(Execute);这段语句有GC HOT 2
- Is it feasible to use Entitas in the backend? HOT 7
- Entity Behaviour in Unity inspector not visible HOT 2
- Removal of crucial SearchPaths when executing the wiz command
- How to get all group in some context, without reflection。
- GUI Null ref when trying to view entity in inspector HOT 1
- generator issues HOT 1
- Error running dotnet Jenny/Jenny.Generator.Cli.dll gen -v command - System.IO.FileNotFoundException HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from entitas.