mirror of
https://github.com/bevyengine/bevy
synced 2024-11-21 20:23:28 +00:00
2.6 KiB
2.6 KiB
Bevy Outline
High Level
- ECS at its core (but only where needed)
- Simple api backed by flexible systems
- ex: PBR renderer built on a render graph system
- Flexbox ui
- simple, standard, good implementations exist
- 100% rust (except for the few cases where this is impossible)
- Batteries included
- 2d/3d rendering, ui, physics, networking, etc
- Editor: also a "game"
- dogfood components
- Fast app compile times (< 5 seconds)
Dependencies
- Legion ecs
- wgfx-rs
- nalgebra
- nphysics/ncollide
Outline
- Core
- Shared
- Types
- enum PropertyValue
- DATATYPE_WRAPPERS_HERE
- Analog: godot's Variant
- struct Property
- Description: Dynamic data
- Ex: exported to editor, uniforms in shaders
- Tags:
HashSet<string>
- Description: Dynamic data
- struct Texture
- enum PropertyValue
- Components
- Parent
- Children
Vec<EntityId>
- Children
- Properties
HashMap<string, Property>
- Mesh
- Armature
- Material
- Parent
- Systems
- UpdateArmatureTransforms
- SyncPropertiesToMaterialUniforms
- Types
- 3d
- Components
- Transform
- GlobalTransform
- PhysicsBody
- CollisionShape
- RigidBody
- Systems
- CalculateGlobalTransform
- Dep: Child, GlobalTransform, Transform
- UpdateCollisions/NCollide
- Dep: CollisionShape, PhysicsBody, GlobalTransform
- UpdateRigidBodies/NCollide
- Dep: PhysicsBody, RigidBody, GlobalTransform
- CalculateGlobalTransform
- Components
- 2d
- Components
- Transform2d
- GlobalTransform2d
- Element
- PhysicsBody2d
- CollisionShape2d
- RigidBody2d
- Systems
- CalculateGlobalTransform2d
- Dep: Child, GlobalTransform2d, Transform2d
- UpdateCollisions2d/NCollide
- Dep: CollisionShape2d, PhysicsBody2d, GlobalTransform2d
- UpdateRigidBodies2d/NCollide
- Dep: PhysicsBody2d, RigidBody2d, GlobalTransform2d
- CalculateGlobalTransform2d
- Components
- Shared