Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #2476

C

Cowboy Programming

Personal blog · cowboyprogramming.comgamesprogramming

Cowboy Programming is a personal blog at cowboyprogramming.com about games and programming. Since 2007, 31 different Hacker News readers have linked it 33 times, most often “Evolve your hierarchy”. The last post was in 2010, but the archive is still widely read.

Visit the blog
33mentions?
31HN people?
2007–2024first – last linked?
Links on Hacker News per year · peak 5 in 2008

Too few sampled comments (13) to say how often HN recommends it.?

Why HN links it

HN readers link it for early game-development writing, especially the 2007 'Evolve Your Hierarchy' article on component-based entity systems. Other linked posts cover a falling sand game and 1995 programming nostalgia.

Summarised by Claude from a sample of 13 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Evolve your hierarchy
    12 people · 12 mentions · first linked 2009-08-25
  2. My coding practices in 1991
    2 people · 2 mentions · first linked 2008-11-15
  3. The Seven Stages of the Programmer
    2 people · 2 mentions · first linked 2009-07-19
  4. 1995 Programming on the Sega Saturn
    2 people · 2 mentions · first linked 2016-04-16

What Hacker News says?

  1. Maybe this is the original author? World of Sand by DOFI (2005) http://ishi.blog2.fc2.com/blog-entry-158.html can anyone find an earlier falling sand type game? edit: Found this after some googling: http://cowboyprogramming.com/2007/03/05/falling-sand-game-fr... very interesting! (includes assembly source code)

    Comment linking /2007/03/05/falling-sand-game-from-the-80s/

    on “Sandspiel – A falling sand game built in Rust and WebGL”
  2. Submitted 1995 Programming on the Sega Saturn as a story · 153 points

    HN discussion
  3. cpeterso · 2012-09-08Recommends
    Here are some game tech articles that I found interesting: * Fixing Pathfinding Once and For All: http://www.ai-blog.net/archives/000152.html * Scenegraphs: Past, Present, and Future: http://www.realityprime.com/articles/scenegraphs-past-presen... * Evolve Your Hierarchy: Refactoring Game Entities with Components: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy...

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Tough times on the road to Starcraft”
  4. Submitted The Seven Stages of the Programmer as a story · 56 points

    HN discussion
  5. A lot of us - possibly yourself included - were exposed to ~ECS by this 2007 article: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy... Archetypes are a conceptually simple implementation optimization (group similarly-populated objects) not unique to ECSes - e.g. v8 organizes javascript objects based on their "shape" (again, grouping similarly-populated objects, based on their "properties" instead of t…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Unity patents ECS”
  6. Submitted Evolve your hierarchy as a story · 25 points

    HN discussion
  7. It might be worthwhile to take a look at certain types of game engine architectures. Since modularity is one of the keypoints of how this editor/game engine work so well together, it's probably a good idea to have some idea of how to structure game components to lessen the 'ball of mud' feeling. I've been pretty fascinated with data-oriented "entity/component" systems for a while, as opposed to heavily inheritance b…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Gorgeous Unreal Engine 4 brings direct programming, indirect lighting”
  8. Submitted Mature Optimization as a story · 23 points

    HN discussion
  9. A few years ago I wanted to make a shoot-em-up game using C# and XNA I could play with my kids on an Xbox. It worked fine except for slight pauses for GC every once in a while which ruined the experience. The best solution I found was to get rid of objects and allocation entirely and instead store the state of the game in per-type tables like in this article. Then I realized that I didn't need per-type tables at all…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Handles are the better pointers”
  10. Submitted Fluid Mechanics in Game Programming as a story · 19 points

    HN discussion
  11. Also see my comment above, but you find this kind of storage commonly in game development [0] where you are optimizing for batch access on specific columns to minimize cache misses. It's usually used as the storage layer for Entity Component Systems. It's also called data-oriented design [1] [0] http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy... [1] https://en.wikipedia.org/wiki/Data-oriented_design

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Column – High-performance, columnar, in-memory store with bitmap indexing in Go”
  12. Submitted My coding practices in 1991 as a story · 5 points

    HN discussion
  13. To me, Win32 was already falling away from the more intriguing model, which was Win16. Effectively, a Win16 system is/was basically exactly equivalent to an Erlang node, but one where your "processes" just happened to be paired, component-wise†, with handles to structs of GUI properties held in window-manager memory. Like an Erlang node, Win16 is/was: • green-threaded — i.e. they both have very low-overhead in-memor…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “How to Achieve Polished UI”
  14. Submitted 1995 Programming on the Sega Saturn as a story · 4 points

    HN discussion
  15. I think originally it was primarily about developer ergonomics - here's the first thing I ever read about them in 2007 where they tested it on Tony Hawk Pro Skater ( http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy... ). The CPU/memory management has been an on-going discussion ever since! Being able to process domains as flat arrays helps with cache misses - but there is a lot of other overhead, dependi…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Component Graph System (2017)”
  16. Submitted My coding practices in 1991 as a story · 4 points

    HN discussion
  17. For nostalgia purposes only: http://cowboyprogramming.com/2010/06/03/1995-programming-on-... Things were much simpler back then. But, simple did mean easy. It meant you had to do every little thing manually from scratch.

    Comment linking /2010/06/03/1995-programming-on-the-sega-saturn/

    on “Ask HN: Old guys, what do you miss about development in the 70s, 80s, 90s, 00s?”
  18. Submitted Simpler times in games programming – coding practices in 1991 (2008) as a story · 3 points

    HN discussion
  19. Mick West... after a bit of rummaging around in the cobweb infested corners of my brain I remember Cowboy Programming: https://cowboyprogramming.com/

    Comment linking /

    on “Navy Says All UFO Videos Classified, Releasing Them Will Harm National Security”
  20. Submitted Evolve Your Hierarchy - Favoring Composition Over Inheritance as a story · 3 points

    HN discussion
  21. Sounds like he wants "Entity Systems" (as defined by how game developers use the term). http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy... http://www.gamedev.net/community/forums/topic.asp?topic_id=4... http://www.gamedev.net/community/forums/topic.asp?topic_id=4... http://didntread.wordpress.com/2009/07/14/building-a-stackle...

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “I laugh at your puny human 'objects'”
  22. Submitted Debugging Heisenbugs as a story · 3 points

    HN discussion
  23. Sounds like almost exactly where I started from. Depends on the game your making but be careful of libraries. Game programming is very different from other types of development. SDL is a good place to start. Godot seems find as well. You'll want some form of architecture that updates components of entities all at once rather than foreach entity object updating its physics, then sound, then tracking etc This is for p…

    Comment linking /2007/01/05/evolve-your-heirachy/

    on “Ask HN: How do I start building a game?”
  24. Submitted Practical Hash IDs (2005) as a story · 2 points

    HN discussion
  25. Me too. From what I can see, its stylesheet https://cowboyprogramming.com/wp-content/themes/tiga-06/styl... returns an HTTP 404 status but the actual text seems to be correct CSS code.

    Comment linking /wp-content/themes/tiga-06/style.php

    on “Evolve Your Hierarchy (2007)”
  26. Submitted Programming Poker AI as a story · 2 points

    HN discussion
  27. Submitted Evolve Your Hierarchy (2007) as a story · 1 points

    HN discussion
  28. Submitted Mature Optimization (2006) as a story · 1 points

    HN discussion
  29. Submitted Pushing Buttons: Resolving Ambiguity in Video Game Controls as a story · 1 points

    HN discussion
  30. Submitted Evolve Your Hierarchy as a story · 1 points

    HN discussion

Search all of HN for cowboyprogramming.com

Linked by the same people?