๐Ÿ‘ฝ
notes
  • ๐Ÿ‘‹Hello!
  • ๐Ÿ“œRemember
  • ๐Ÿ†—Priorities
  • Philosophy
    • Quotes
      • Feynmen on Curiosity vs Motivation
    • Musings
      • Overthinking
      • Addiction
      • Compassion vs Action
      • Awareness
      • Truth
      • Problems
      • Growth and Chaos
      • Stillness
      • Ego
      • Sum of the Parts
      • Float
      • Mission Statement
      • Depressive Episodes
      • Authenticity
      • Wholesale Ideology
      • Direct Transmission
      • An Egg
      • Gifts
      • Relationships
      • Consistency
      • Self vs Other
      • The Identity Problem
      • Ethical Software
      • Being "Good"
      • Path
      • Clarity and Presence
      • Buddhism
      • Emotions vs Reason
      • Accepting Ideas
      • Importance
      • The Compliment
      • Incorrect Assumptions
    • Incomplete Articles
      • Receptivity
      • The Hustle
      • Sense and Sensation
      • Truly Celebrating Difference
      • Love, for Overthinkers
      • There's No Accounting For Taste
      • Optimism for Cynical Assholes
      • Moral Optimisation
      • How to stay off your phone
      • Accessibility in Games: Can I Play Too?
      • Why I Like Video Games
    • Resources
      • Podcasts
      • Books
      • Videos
  • Meditation
    • Progression
    • The Body
    • Consciousness
    • Relaxation
    • Metta
  • Programming
    • Programming Languages
    • Software Architecture
    • Functional Programming
      • Property Based Testing
      • Key Terminology
      • Domain Modelling Made Functional
      • Functional Core, Imperative Shell
      • Mailbox Processors
      • Parse, donโ€™t validate
    • Modern Frontend Development
      • Elm
      • Code Formatter Config
    • F# + Unity3d
    • Design Systems
    • Property-based Testing
    • Observables & Rx
    • Backend-as-a-Service
  • Health
    • Simple Nutrition
    • Fasting
    • Supplementation
    • Exercise
      • Qi Gong / Tai Chi / Gong Fu
      • Movement as the Core Principle
      • Mobility Routines
      • Daily Morning Warmup
    • Protein Shake Ingredients List
    • Cardiac Disease
      • Cholesterol
      • Cardiac Disease Associations by Nutrient Intake
      • Sources of Dietary Fat
  • Archives
    • Other People's Work
      • Thriving on the Technical Leadership Path
      • Hunter S Thompson on Meaning
      • The Church of Interruption
      • 1000 True Fans
    • Journal Articles
  • Interesting Websites
    • erowid.org
    • gwern.net
    • moretothat.com
    • designluck.com
    • signalvnoise.com
    • fs.blog
    • bullets.news
  • Game Development
    • Techniques
  • Hackintosh
    • Clover Update Steps
Powered by GitBook
On this page
  • Data-Oriented Architecture
  • Unidirectional Dataflow
  • Event-Driven (& Event-Sourcing, CQRS)

Was this helpful?

  1. Programming

Software Architecture

Resources for my thinking on UI Programming, Distributed Systems Design and Video Game Architecture. Spoilers: it's the same patterns everywhere.

PreviousProgramming LanguagesNextFunctional Programming

Last updated 5 years ago

Was this helpful?

  • 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

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

Data-Oriented Architecture

Unidirectional Dataflow

Event-Driven (& Event-Sourcing, CQRS)

https://engineering.fb.com/data-infrastructure/messenger/
Functional core, imperative shell
In-Depth Overview | Flux
Logo
Cycle.js
A Brief Intro to Clean Architecture, Clean DDD, and CQRS
The Elm Architecture ยท An Introduction to Elm
CQRS + Event Sourcing โ€“ Step by Step | Learn CQRS and EventLearn CQRS and Event Sourcing
Data-Oriented ArchitectureEyas's Blog
GitHub - kgrzybek/modular-monolith-with-ddd: Full Modular Monolith application with Domain-Driven Design approach.GitHub
Logo
Logo
My take on video-game architecture
Logo
Logo