- Components are the building blocks
- Each component has a clear, single responsibility
- Components should be easy to add and remove
- Blueprint-friendly component setup
- Minimal boilerplate for new components
- Systems process related components
- One system = one feature
- Systems can be enabled/disabled easily
- Clear update order for systems
- Easy to understand dependencies
- Use event system for component communication
- Keep components decoupled
- Events should be easy to create and handle
- Support both Blueprint and C++ events
- Clear event flow
- Focus on common use cases first
- Optimize only when needed
- Keep memory layout simple
- Use standard Unreal patterns
- Profile before complex optimization
- Easy setup in Blueprint
- Clear debugging visualization
- Straightforward component configuration
- Intuitive system management
- Quick iteration cycle
- Features are self-contained
- Easy to add new features
- Simple to modify existing features
- Clear feature dependencies
- Feature toggle support
- Keep components focused and simple
- Use clear naming conventions
- Follow UE component patterns
- Make features self-contained
- Document public interfaces
- Provide Blueprint access
- Use existing UE systems
- Keep dependencies clear
- Add debug visualization
- Write example usage
- Over-engineer solutions
- Add premature optimization
- Create deep inheritance chains
- Make complex component dependencies
- Break UE conventions
- Hide important settings
- Mix feature responsibilities
- Create tight coupling
- Skip documentation
- Force specific patterns
- Clear purpose
- Minimal dependencies
- Easy to understand properties
- Standard UE lifecycles
- Blueprint exposed where needed
- Process specific component types
- Clear update ordering
- Simple enable/disable
- Easy to debug
- Focused responsibility
- Clear naming
- Simple payload
- Easy to bind
- Support both runtime and editor
- Blueprint friendly
- Self-contained
- Toggle support
- Clear dependencies
- Easy configuration
- Example usage
- How quickly can someone add a new component?
- How easily can systems be modified?
- How clear is the event flow?
- How fast is the iteration cycle?
- How discoverable are features?
- User workflow
- Clear documentation
- Example implementations
- Debug support
- Feature completeness
- Make the simple case easy
- Keep the complex case possible
- Follow UE patterns
- Clear over clever
- Practical over perfect
Remember: Focus on making the common tasks easy and straightforward. Complex optimizations can come later when needed.