Giter Site home page Giter Site logo

Comments (9)

ahmedaliadeel avatar ahmedaliadeel commented on July 22, 2024 1

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.

from amethyst.

JohnDoneth avatar JohnDoneth commented on July 22, 2024

Should networking be a target?

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

from amethyst.

ebkalderon avatar ebkalderon commented on July 22, 2024

@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.

from amethyst.

JohnDoneth avatar JohnDoneth commented on July 22, 2024

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

from amethyst.

ahmedaliadeel avatar ahmedaliadeel commented on July 22, 2024

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.

from amethyst.

Emilgardis avatar Emilgardis commented on July 22, 2024

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?

from amethyst.

kvark avatar kvark commented on July 22, 2024

@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!

from amethyst.

Aceeri avatar Aceeri commented on July 22, 2024

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.

from amethyst.

Aceeri avatar Aceeri commented on July 22, 2024

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

from amethyst.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.