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

Default Amethyst Processors and Components for ECS #60

Closed
LucioFranco opened this Issue May 14, 2016 · 9 comments

Comments

Projects
8 participants
@LucioFranco
Member

LucioFranco commented May 14, 2016

This issue is to keep track of all the systems that will need to be implemented for amethyst engine.

Systems

  • Transform | Issue: (#53), PR: (#113)
  • Rendering | PR: (#85)
  • Scripting
  • Audio

Components

  • Transform
  • Velocity?
  • Renderable

Feel free to leave a comment and/or create a PR. Let us know if you are working on one by leaving a comment.

@JohnDoneth

This comment has been minimized.

Show comment
Hide comment
@JohnDoneth

JohnDoneth May 20, 2016

Should networking be a target?

For example: Some sort of automatic serialization and transmission of structs over the std library networking functions.

Should networking be a target?

For example: Some sort of automatic serialization and transmission of structs over the std library networking functions.

@ebkalderon

This comment has been minimized.

Show comment
Hide comment
@ebkalderon

ebkalderon May 20, 2016

Member

@JDoneth That is correct, but off-topic. Networking is an engine-level feature and not an ECS (entity-component-system) feature. This issue deals with implementing systems in the ECS sense. Personally, I prefer the term "processors" to eliminate confusion.

Member

ebkalderon commented May 20, 2016

@JDoneth That is correct, but off-topic. Networking is an engine-level feature and not an ECS (entity-component-system) feature. This issue deals with implementing systems in the ECS sense. Personally, I prefer the term "processors" to eliminate confusion.

@JohnDoneth

This comment has been minimized.

Show comment
Hide comment
@JohnDoneth

JohnDoneth May 20, 2016

Ah sorry, my bad, I saw systems and thought engine modules. I understand ECS, but this topic doesn't mention ECS.

JohnDoneth commented May 20, 2016

Ah sorry, my bad, I saw systems and thought engine modules. I understand ECS, but this topic doesn't mention ECS.

@kvark kvark changed the title from Default Amethyst Systems to Default Amethyst Systems for ECS May 21, 2016

@ebkalderon ebkalderon added this to the 1.0 milestone Jul 19, 2016

@LucioFranco LucioFranco changed the title from Default Amethyst Systems for ECS to Default Amethyst Systems and Components for ECS Jul 20, 2016

@ahmedaliadeel

This comment has been minimized.

Show comment
Hide comment
@ahmedaliadeel

ahmedaliadeel Jul 23, 2016

Position and velocity shouldnt be separate components. If u use 3rd party physics like nphysics or bullet bindings u get rigidbody access. We need to provide a rigidbody component.

Position and velocity shouldnt be separate components. If u use 3rd party physics like nphysics or bullet bindings u get rigidbody access. We need to provide a rigidbody component.

@Emilgardis

This comment has been minimized.

Show comment
Hide comment
@Emilgardis

Emilgardis Jul 23, 2016

Contributor

I think that they should be separated, I don't see any reason why they shouldn't. Having them together means more work for the engine, i.e computing if a object is static (not moving) or dynamic (moving).

::Update:: Now when looking at the nphysics repo which seems the most mature lib for this kind of stuff, it seems that it inside nalgebra, there is support for PositionXd with Points. However, how much should amethyst integrate nphysics?

Contributor

Emilgardis commented Jul 23, 2016

I think that they should be separated, I don't see any reason why they shouldn't. Having them together means more work for the engine, i.e computing if a object is static (not moving) or dynamic (moving).

::Update:: Now when looking at the nphysics repo which seems the most mature lib for this kind of stuff, it seems that it inside nalgebra, there is support for PositionXd with Points. However, how much should amethyst integrate nphysics?

@ahmedaliadeel

This comment has been minimized.

Show comment
Hide comment
@ahmedaliadeel

ahmedaliadeel Jul 23, 2016

I haven't explorered the nphysics yet but based on my experience on unity 3d i was suggesting this idea.
Look, its not just velocity or angular velocity there is much more about a physical body. Like i want to know velocity at certain point?
Let me explain in detail for a different perspective. I think we should have separate components and respective subsytem for both 2d and 3d.
Talking about the granulity of components incase of 3d physics we should provide components the way most physics engine api is natural to map. Physix, bullet both have to concept of rigidbodies, colliders etc
For kinemetic physics we can just add a property to rigidbody component that this object is not dynamic. (As of know nphysics doest support kinemetic bodies) or if its an unmovable static body etc.
Now that i have discovered this project i will also try to implement a reference set of components and subsystem.
Thanks for consideration.

I haven't explorered the nphysics yet but based on my experience on unity 3d i was suggesting this idea.
Look, its not just velocity or angular velocity there is much more about a physical body. Like i want to know velocity at certain point?
Let me explain in detail for a different perspective. I think we should have separate components and respective subsytem for both 2d and 3d.
Talking about the granulity of components incase of 3d physics we should provide components the way most physics engine api is natural to map. Physix, bullet both have to concept of rigidbodies, colliders etc
For kinemetic physics we can just add a property to rigidbody component that this object is not dynamic. (As of know nphysics doest support kinemetic bodies) or if its an unmovable static body etc.
Now that i have discovered this project i will also try to implement a reference set of components and subsystem.
Thanks for consideration.

@kvark

This comment has been minimized.

Show comment
Hide comment
@kvark

kvark Jul 25, 2016

Member

@ahmedaliadeel yes, while rendering 2D/3D is mostly uniform, physics gets definitely much more complicated, so it kinda makes sense to separate 2D and 3D components for it. Looking forward to see what you'll come up with!

Member

kvark commented Jul 25, 2016

@ahmedaliadeel yes, while rendering 2D/3D is mostly uniform, physics gets definitely much more complicated, so it kinda makes sense to separate 2D and 3D components for it. Looking forward to see what you'll come up with!

@LucioFranco LucioFranco changed the title from Default Amethyst Systems and Components for ECS to Default Amethyst Processors and Components for ECS Sep 11, 2016

@Aceeri

This comment has been minimized.

Show comment
Hide comment
@Aceeri

Aceeri Nov 27, 2016

Member

I think a networking system might definitely be a goal for this. For instance, automatic sync between a server (or maybe P2P?) for specified components.

Member

Aceeri commented Nov 27, 2016

I think a networking system might definitely be a goal for this. For instance, automatic sync between a server (or maybe P2P?) for specified components.

@ebkalderon ebkalderon added this to Done in Engine Feb 3, 2017

@ebkalderon ebkalderon moved this from Done to In Progress in Engine Feb 3, 2017

@Aceeri

This comment has been minimized.

Show comment
Hide comment
@Aceeri

Aceeri Oct 20, 2017

Member

Outdated, kind of handled in separate issues like scripting and physics.

Member

Aceeri commented Oct 20, 2017

Outdated, kind of handled in separate issues like scripting and physics.

@Aceeri Aceeri closed this Oct 20, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment