Top all-time · #2476
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.
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?
- Evolve your hierarchy12 people · 12 mentions · first linked 2009-08-25
- My coding practices in 19912 people · 2 mentions · first linked 2008-11-15
- The Seven Stages of the Programmer2 people · 2 mentions · first linked 2009-07-19
- 1995 Programming on the Sega Saturn2 people · 2 mentions · first linked 2016-04-16
What Hacker News says?
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”Submitted 1995 Programming on the Sega Saturn as a story · 153 points
HN discussionHere 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”Submitted The Seven Stages of the Programmer as a story · 56 points
HN discussionA 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”Submitted Evolve your hierarchy as a story · 25 points
HN discussionIt 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”Submitted Mature Optimization as a story · 23 points
HN discussionA 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”Submitted Fluid Mechanics in Game Programming as a story · 19 points
HN discussionAlso 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”Submitted My coding practices in 1991 as a story · 5 points
HN discussionTo 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”Submitted 1995 Programming on the Sega Saturn as a story · 4 points
HN discussionI 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)”Submitted My coding practices in 1991 as a story · 4 points
HN discussionFor 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?”Submitted Simpler times in games programming – coding practices in 1991 (2008) as a story · 3 points
HN discussionMick 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”Submitted Evolve Your Hierarchy - Favoring Composition Over Inheritance as a story · 3 points
HN discussionSounds 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'”Submitted Debugging Heisenbugs as a story · 3 points
HN discussionSounds 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?”Submitted Practical Hash IDs (2005) as a story · 2 points
HN discussionMe 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)”Submitted Programming Poker AI as a story · 2 points
HN discussionSubmitted Evolve Your Hierarchy (2007) as a story · 1 points
HN discussionSubmitted Mature Optimization (2006) as a story · 1 points
HN discussionSubmitted Pushing Buttons: Resolving Ambiguity in Video Game Controls as a story · 1 points
HN discussionSubmitted Evolve Your Hierarchy as a story · 1 points
HN discussion