Software Architecture
Resources for my thinking on UI Programming, Distributed Systems Design and Video Game Architecture. Spoilers: it's the same patterns everywhere.
- Event-Driven communication
- Limit direct interaction between components of a system
- Data-Oriented
- Events -> Components -> Data Updates
- Data Updates -> Components -> Events
- Requests -> Components -> Data Queries -> Response
- Unidirectional, immutable, pure, side-effects at boundaries
- Domain-Driven-Design
- Carefully architect code around core business concepts

My take on video-game architecture
When considering game architecture specifically a few extra elements become relevant:
- Zero-allocation event dispatch
- Object pooling
- Minimal-allocation state update
- Clever immutable data structures
- Minimal-allocation projection update
- Infrequent projection changes can allocate
- Frequent projection changes should be computed with no allocation
- Minimal-runtime-instantiation of game entities
- Object pooling
- Object lifecycle handling, no dangling subscriptions
Last modified 3yr ago