Top all-time · #2312
Games From Within
Personal blog · gamesfromwithin.comgamesprogramming
Games From Within is a personal blog at gamesfromwithin.com about games and programming. Since 2008, 31 different Hacker News readers have linked it 48 times, most often “Data-Oriented Design (Why You Might Be Shooting Yourself in The Foot With OOP)”. The last post was in 2018, but the archive is still widely read.
Too few sampled comments (17) to say how often HN recommends it.?
Why HN links it
Noel Llopis's game development blog on data-oriented design, memory management, build systems and C++ compile speed, linked by readers as a source for game programming techniques.
Summarised by Claude from a sample of 17 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Data-Oriented Design (Why You Might Be Shooting Yourself in The Foot With OOP)7 people · 8 mentions · first linked 2009-12-19
- Data-oriented design or why you might shoot yourself in the foot with OOP (2009)4 people · 5 mentions · first linked 2021-03-21
What Hacker News says?
The idea that a customer should pay you to install your app is naive and out-dated. You will simply be beaten by competition who allow customers to install the app for no cost (i.e. everyone else ). But beyond that, if your only way to exchange value with your customer (i.e. they give you money in exchange for something), is at installation , then you are missing out on most of your revenue. There are tons of articl…
Comment linking /one-price-does-not-fit-all
on “I Think Your App Should Be Free”Submitted Data-oriented design or why you might shoot yourself in the foot with OOP (2009) as a story · 236 points
HN discussionYou might be interested in these articles if you want to experiment with alternative approaches to the intrusive linked-list and are OK with using object pools. Very handy if you want to have cheap alloc/free and want good memory locality for updating the objects. https://slideplayer.com/slide/4470263/ https://gamesfromwithin.com/managing-data-relationships
Comment linking /managing-data-relationships
on “Show HN: I'm making a dynamic language in Rust”Submitted Making A Living (Barely) On The iPhone App Store (aka The Numbers Post) as a story · 87 points
HN discussionIMO, build system for daily work has two very important properties: correctness and speed. Scons seems to get correctness right, but fails to be fast enough (see e.g. http://gamesfromwithin.com/bad-news-for-scons-fans ) Now, there is a third important property, which is clarity. But clarity for a new-comer is less important than a clarity for a person that uses build system daily. I investigated several alternatives…
Comment linking /bad-news-for-scons-fans
on “"I think that djb redo will turn out to be the Git of build systems."”Submitted Data-Oriented Design (Why You Might Be Shooting Yourself in The Foot With OOP) as a story · 59 points
HN discussionI think optimizing while designing is totally appropriate. In fact you can make some of the most powerful optimizations at the design stage, with almost no additional effort required. Should you go down a rabbit hole, spending hours optimizing something because you think it might help? No, of course not. To my reading, that is what the warning is about. But when you're designing a system, especially one that you kno…
Comment linking /data-oriented-design
on “Harmful Gotos, Premature Optimizations, and Programming Myths”Submitted I Want My Memory, Apple as a story · 53 points
HN discussionKids these days with their allocations and virtual memory. shakes fist You don't need std::vector if you don't need dynamic memory allocations. Game programming and systems programming is a whole lot different than web or desktop development. For games, you create a memory budget up front. You decide how much memory sound, textures, models, AI will consume up front and then statically allocate that memory up front.…
Comment linking /start-pre-allocating-and-stop-worrying
on “Dev Diary: John Carmack on RAGE for iOS”Submitted Making A Living (Comfortably) On The App Store (aka The Numbers Post #2) as a story · 34 points
HN discussionHere's one person's experience using GAE as a backend to a iPhone app: http://gamesfromwithin.com/life-in-the-top-100-and-the-googl...
Comment linking /life-in-the-top-100-and-the-google-app-engine
on “Google App Engine update: performance improvements & new admin tools”Submitted The One Day iPhone App Experiment as a story · 32 points
HN discussionThat article is naive. It assumes that C/C++ developers concerned with performance write object-oriented code. They do not. They write data-oriented code. Most of the multi-threading issues go away. This is how fast code is written for the Cell processor in the Sony PS3. Most malloc/free issues go away. Most data is a value type or has an explicit lifetime (game-lifetime, mission-lifetime, frame-lifetime for the gam…
Comment linking /data-oriented-design
on “In what cases is Java faster than C++?”Submitted IOS: Communicating With Game Players as a story · 4 points
HN discussionFor more about Incredibuild: - http://gamesfromwithin.com/how-incredible-is-incredibuild My summary of the article (I haven't tried it myself): - can improve a full build compile time - will probably slow down incremental build compile time
Comment linking /how-incredible-is-incredibuild
on “C++ Compilation Speed”Submitted Game Prototyping: You're (Probably) Doing It Wrong as a story · 4 points
HN discussionMy guess for most slow compiles (yes, pulled out of my ...hat): 1. Templates 2. No pre-compiled headers 3. Bad header-organization We have a reasonable sized desktop application 5 mb (release) / 19 mb (debug) that fully rebuilds in 10 s / 12 s (incremental < 2 s usually). Yes, we have optimized using a RAM disk etc, but the main reason for the speed is No Templates and combining precompiled headers with efficient he…
Comment linking /physical-structure-and-c-part-2-build-times
on “C++ Compilation Speed”Submitted The Const Nazi as a story · 4 points
HN discussionWell the way you use memory in a game is non deterministic, so "OS having time to free memory" is not a good enough answer. Although you're totally right that the IPhone wasn't designed as a console, so this process is probably good enough for most apps. Even more interresting than the post in itself (wich is very interresting) is the hack proposed by fishermen21 in the comments - http://gamesfromwithin.com/?p=428#c…
Comment linking /?p=428
on “I Want My Memory, Apple”Submitted The Power of Free (aka The Numbers Post #3) as a story · 4 points
HN discussionThese blogs are definitely worth a look: 1) https://molecularmusings.wordpress.com/ 2) http://bitsquid.blogspot.com/ 3) http://gamesfromwithin.com/ They can feel a little esoteric but there's a lot of golden nuggets if you're willing to dig a little. Also, check out this book by Jason Gregory: http://www.gameenginebook.com/
Comment linking /
on “Game systems integration”Submitted Data-Oriented Design as a story · 3 points
HN discussionSelection bias implies that people just like what they're familiar with; I'm sure that does keep people from switching to new tools, but that's not what I'm referring to. I'm talking about people who actually try new tools and reject them as useful to their problem domains; I try a lot of new tools, and some fit with the problems I solve better than others. I didn't quite remember what "data oriented meant," but a q…
Comment linking /data-oriented-design
on “An introduction to NoFlo and flow-based programming”Submitted Data-Oriented Design Now And In The Future as a story · 3 points
HN discussionI love this ballast file idea. It reminds me of a programming story by Noel Llopis[0] where a game developer was working with a strict memory limit and placed static char buffer[1024 * 1024 * 2]; in the code as an insurance policy[1]: [0] http://gamesfromwithin.com [1] http://www.dodgycoder.net/2012/02/coding-tricks-of-game-deve...
Comment linking /
on “Fixing a Disk Space Alert at 3 AM”Submitted Start Pre-allocating And Stop Worrying as a story · 3 points
HN discussionWhenever I run across Data Oriented Programming it is almost always called Data Oriented Design. You focus on your data and what transformation it needs to undergo to become output. Noel's blog is probably the best source of information for that style of programming I have seen. http://gamesfromwithin.com/data-oriented-design
Comment linking /data-oriented-design
on “Ask HN: What is the state of the art in OOP?”Submitted Data-Oriented Design (2009) as a story · 2 points
HN discussionIt depends a lot on your project. For large C++ projects, I've found scons and boost jam painfully slow for iterative builds. For smaller things they're possibly nice because they're expressive and pretty simple. AFAIK, either make or vanilla jam is the fastest for C++, which is by far the most important thing to me, but that'll vary depending on your particular situation. This is a bit old, but still accurate: http…
Comment linking /articles/0509/000100.html
on “Scons - an autotools replacement and chrome's build tool”Submitted Data-oriented design or why you might be shooting yourself in the foot with OOP as a story · 2 points
HN discussion