|
Post by salpalvv on Apr 19, 2017 15:25:02 GMT
If one were to being a new project, would anyone suggest using an ECS framework like github.com/sschmid/Entitas-CSharp ? I get that the point of these blog posts are to implement it all by hand and teach basic concepts, but I don't see a lot of discussion or posts regarding taking advantage of the resources that people may not know exists. I believe that frameworks and libraries are a great tool for new users. A clean api is fantastic to code against and increases productivity while allowing you to see results. The code from frameworks / libraries are also going to probably cover edge cases and be hardened to initial pitfalls. I feel that a lot of new game developers might believe that they need to hand-code every implementation when, in reality, most of my job developing at work or hobby coding is against others' apis. Would it not be prudent to discuss this? Maybe it's orthogonal to your goals in these posts, but I believe it would benefit people to understand this.
|
|
|
Post by Admin on Apr 19, 2017 20:16:32 GMT
Great question. There are a lot of different takes on what a true ECS architecture is. Some might say that Unity already was an ECS, but in my case I was interested in specifically trying out Adam Martin's approach. I am still new to the idea of an ECS from this angle, and from a quick glance at the Entitas documentation, it appears that this system does not match it either. For example, the concept of an "Entity" is supposed to be as simple as an "id" but the Entitas Entity is a whole class on its own. Granted, that doesn't mean it is bad, and it may provide a whole host of features that would be wonderful to work with, it just wasn't what I was looking for at the moment.
I haven't tried using Entitas on any personal projects, so I would be curious how (and if) it ties into databases, which would make it much easier to apply to this project. Perhaps If I have more time I will give it a proper chance. Have you used it - do you like it?
|
|
|
Post by salpalvv on Apr 19, 2017 21:04:33 GMT
Adam actually seems to be working toward his own and in Unity, no less. t-machine.org/index.php/2014/10/05/towards-a-unity3d-ecs-what-gui-what-features/I actually haven't used it as I'm new to Unity and c#. But coming from rust, crates are a nigh-requirement for anything I work on. Currently, I'm building a prototype of my tactics rpg based on your OO approach but am doing research on possibly using an ECS for the real game. And I wasn't asking about Entitas specifically for ECS, I'm just curious why reinvent the wheel with rolling your own ECS if frameworks already exist. I guess what I am asking for could be a blog post detailing your thoughts on this. Suggestions for assets you use, why not choose a framework in certain situations.
|
|
|
Post by Admin on Apr 19, 2017 22:46:04 GMT
Yeah, I was really interested in Adams stuff, but that was several years ago and I don't know if he is still working on it or not. As far as "why reinvent the wheel" goes, you are right in that most professional environments this would be a bad choice. As a hobbyist with no real requirements or responsibilities though, I find it a very rewarding experience. At a minimum it has helped me understand why things are done like they are, but in some cases I feel it helps encourage new and potentially better ideas. For example, I've never seen anyone else implement a state machine using partial classes before - maybe its a good idea, maybe not, but I have enjoyed testing out the approach so far. I think it has played a valuable role in improving my skills with logic and creativity, and has built confidence to try anything and everything.
|
|
|
Post by Juan Meza on Sept 2, 2017 5:08:13 GMT
My most weird state machine its one made by delegates that hold a dynamic method, this is a bit handy to add listeners when a state changes to do what ever i want.
|
|