HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Bob Nystrom - Is There More to Game Architecture than ECS?

Roguelike Celebration3 HN recommenders · recommended in 3 months, 2020-2026
YouTube
301K views · 8 years ago · talk · evergreen

Bob Nystrom, author of Game Programming Patterns, gives a Roguelike Celebration 2018 talk questioning whether entity component systems are the only way to structure a game. He walks through alternative architectures drawn from roguelike development.

HN commenters cite it as a level-headed counterpoint to ECS zealotry and a good intro to game architecture beyond ECS.

Game programming & enginesSoftware architecture & design#ecs#roguelike#gameprogrammingpatterns#softwaredesign#entitysystems

7 comments from Hacker News

@marcingas2026 · in “Xs of Y – roguelike that names itself every run. Written in 4kLoC”

I'd say don't immediately go into making an ECS and don't sweat about perf too much. You can totally do this in any programming language. This is a good talk about roguelike software design in general: ▶ this video Tbh the whole channel is a gold mine of inspiration. Also check: link

RecommendsView on HN
@sunrunner2025 · in “Langjam Gamejam: Build a programming language then make a game with it”

The crossover of language design/implementation and game development made me assume this was either a Jonathon Blow (Jai, Braid, The Witness) or Bob Nystrom project (Game Programming Patterns, Crafting Interpreters, 'Is There More to Game Architecture than ECS?' [1]). Either way, given the time constraints and requirements I'm expecting a lot of text adventures and rogue-likes. [1] ▶ this video

CitesView on HN
@Xeamek2023 · in “Murder is a pixel art ECS game engine in C#”

Since engine is targetting pixel art, isn't ECS a bit of an overkill...? And yes, technically artstyle has nothing to do with game architecture. But in practice, most games of this style are pretty small, and thus don't really have any real performance requirements, so ecs'ing everything is overengineering compared to oop-style, coupled architecture, no? Also related: ▶ this video

CitesView on HN
@illiarian2023 · in “Flecs – A fast entity component system for C and C++”

I've also seen a few game devs saying ECS are useless in quite a few situations (or, at least, a very zealous adherence to ECS). I guess it's one of those things that you don't know until you try (and hit the limits of using or not-using one). I'm also reminded of Robert Nystrom's "Is There More to Game Architecture Than ECS": ▶ this video (Yes, Robert Nystrom of Game Programming Patterns and Crafting Interpreters )

CitesView on HN
@halvnykterist2021 · in “Hands-On Rust: Effective Learning Through 2D Game Development and Play”

I can't help but be heavily skeptical of approaches to a (traditional) roguelike that use ECS. The idea is very entrenched in the rust gamedev community, but for a turn based tile based game there's extremely little benefit and a lot of added complexity. Bob Nystrom has an excellent talk on roguelike architecture [0] and rust as a language itself doesn't prevent any of these approaches. If anything, the existence of sum types as enums make many of them all the more powerful. [0]: ▶ this video

RecommendsView on HN
@Rd6n62021 · in “Unity patents ECS”

Isn’t there a ton of prior art? I’ve seen tech talks about ecs implementations for years. From the top of my head, here’s a great tech talk about overwatch. link Here’s a tech talk by Bob Nystrom (the game programming patterns guy) that mentions ecs from years ago ▶ this video Edit: letsInvalid in another thread above linked to an article from 2013: link

CitesView on HN
@hu32020 · in “An Introduction to Data Oriented Design with Rust”

This is known and heavily used by the game industry for a long time now. Ultimately it comes down to data locality and there's no silver bullet. Performance varies with your data access pattern and code must be adapted to keep caches as warm as possible. There are also maintainability trade-offs. In general I'd advise this kind of optimization only for performance-critical code like games. For more information on how game development approaches this, read about Entity Component Systems. Here's a good start: ▶ this video

RecommendsView on HN
Overwatch Gameplay Architecture and Netcode1:04:04

Overwatch Gameplay Architecture and Netcode

GDC Festival of Gaming
196K views • 7 years ago
RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West42:30

RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West

Rust Programming Language
152K views • 8 years ago
IRDC US 2015 - Brian Bucklew, Data-Driven Engines of Qud and Sproggiwood27:10

IRDC US 2015 - Brian Bucklew, Data-Driven Engines of Qud and Sproggiwood

Logo “ND” Surströmming
39K views • 11 years ago
Unity DOTS vs Handbuilt: Sample Project27:56

Unity DOTS vs Handbuilt: Sample Project

Nick Caston
687K views • 6 years ago
Exploring the Tech and Design of Noita31:00

Exploring the Tech and Design of Noita

GDC Festival of Gaming
288K views • 6 years ago
Data Oriented GUI in Rust by Raph Levien - Bay Area Rust Meetup1:05:59

Data Oriented GUI in Rust by Raph Levien - Bay Area Rust Meetup

Rust Programming Language
83K views • 8 years ago
Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 20252:27:34

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

Better Software Conference
926K views • 1 year ago
Object-Oriented Programming is Bad44:35

Object-Oriented Programming is Bad

Brian Will
2.6M views • 10 years ago
"Clojure in Unity 3D: Functional Video Game Development" by Ramsey Nasser and Tims Gardner46:22

"Clojure in Unity 3D: Functional Video Game Development" by Ramsey Nasser and Tims Gardner

Strange Loop Conference
24K views • 12 years ago
Rant: Entity systems and the Rust borrow checker ... or something.1:01:51

Rant: Entity systems and the Rust borrow checker ... or something.

Jonathan Blow
304K views • 8 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
TUN: Un-Ruining the MMO14:05

TUN: Un-Ruining the MMO

MrBtongue
291K views • 13 years ago
CppCon 2015: Sean Parent "Better Code: Data Structures"1:04:00

CppCon 2015: Sean Parent "Better Code: Data Structures"

CppCon
106K views • 11 years ago
A Possible Future of Software Development1:01:33

A Possible Future of Software Development

Google TechTalks
82K views • 18 years ago
Destiny's Multithreaded Rendering Architecture1:06:37

Destiny's Multithreaded Rendering Architecture

GDC Festival of Gaming
45K views • 11 years ago
"Making Impossible States Impossible" by Richard Feldman25:06

"Making Impossible States Impossible" by Richard Feldman

elm-conf
63K views • 10 years ago
CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”1:00:46

CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”

CppCon
271K views • 8 years ago
Bottom Up vs  Top Down Design in Clojure - Mark Bastian36:42

Bottom Up vs Top Down Design in Clojure - Mark Bastian

ClojureTV
29K views • 10 years ago
Armok Invaders1:25

Armok Invaders

BaronWable
57K views • 10 years ago
"Finding bugs without running or even looking at code" by Jay Parlar40:27

"Finding bugs without running or even looking at code" by Jay Parlar

Strange Loop Conference
42K views • 7 years ago