Events in Entity Component Systems

Casual Evil
Oct 12, 2018 · 6 min read

Events as Function Calls

world.on_collision_started(collider, collided);
fn on_collision_started(collider: Entity, collided: Entity) {                
spike_damage::collision_started(collider, collided);
cinematics::collision_started(collider, collided);
... and so on
}
world.on_update(delta_ms);
fn on_update(delta: Time) {
velocity_system.update(delta);
collision_system.update(delta);
... and so on
}

Events as Components

Implications for ECSs

Network Synchronization? RPCs!

Scripting Engines and Extensibility

The case for SPECS (and other parallel ECSs)

Conclusion

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade