<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: ndepoel</title><link>https://news.ycombinator.com/user?id=ndepoel</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 20 May 2026 07:06:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ndepoel" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ndepoel in "Dumb ways for an open source project to die"]]></title><description><![CDATA[
<p>Here's another: code was open sourced with every intention of becoming a thriving community-driven project, but in practice users only take from the code what they want for their own needs and never contribute back, or expect the maintainer to solve all of their integration issues for them. Eventually, the maintainer decides that they have better things to do than fixing other people's problems, and that there is more value to be had from bespoke contract work. Some updates still get pushed but over time the project gradually gets abandoned and the open source dream slowly passes away.</p>
]]></description><pubDate>Tue, 19 May 2026 20:20:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48198959</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=48198959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48198959</guid></item><item><title><![CDATA[New comment by ndepoel in "Updating Gun Rocket through 10 years of Unity Engine"]]></title><description><![CDATA[
<p>A lot of the things you mention there have been in development for the better part of 10 years already, and still haven't reach a stable, mature and production-ready state yet. Unity have also kept deprecated stuff around for much longer than they should have, which sounds great on paper for backward compatibility, but it just means they're lugging years of technical debt with them and it's slowed them down immensely.<p>Looking at the past year of Unity updates, since 6.1 or so, it seems that most of the focus is now going to refactoring major parts of the engine to facilitate backporting HDRP's feature set to URP. It's all good work and high time they did some cleanup and committed to a single standardized render pipeline, but it's not exactly moving the needle forward very much yet.</p>
]]></description><pubDate>Sun, 19 Apr 2026 10:51:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47823340</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47823340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47823340</guid></item><item><title><![CDATA[New comment by ndepoel in "Updating Gun Rocket through 10 years of Unity Engine"]]></title><description><![CDATA[
<p>Unity 2022.3 is a great LTS version to park an older game in maintenance mode on. It's where everything kind of congealed into a solid, reliable engine again, after the hot messes that were 2020.x and 2021.x. It's also still receiving updates for Enterprise users through Unity's xLTS program, which admittedly isn't within reach of most people, but it's a good option for already released, successful games that require continued support.</p>
]]></description><pubDate>Sun, 19 Apr 2026 10:45:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47823303</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47823303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47823303</guid></item><item><title><![CDATA[New comment by ndepoel in "Game devs explain the tricks involved with letting you pause a game"]]></title><description><![CDATA[
<p>It does make quite a big difference. The network packets received from the server in Quake will tell you exactly what state the game is in at any point in time. They contain information about the position and state of every entity and their motion, compressed via delta encoding. That means there's very little room for misinterpretation on the client side that would lead to de-sync issues. In fact clients have quite a lot of freedom in how they want to represent said game state, and can for example add animation interpolation to smoothen things out.<p>The example you mention of demo playback de-syncing when the circumstances slightly change, that is exactly what you get when you only record inputs from the player. Doom actually did this too for its networking model and demo playback system. That relies much more on the engine being deterministic and the runtime environment behaving consistently, because each client that replays those inputs has to run the exact same game simulation, in order for the resulting game states to match.</p>
]]></description><pubDate>Sun, 19 Apr 2026 09:57:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47823117</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47823117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47823117</guid></item><item><title><![CDATA[New comment by ndepoel in "Game devs explain the tricks involved with letting you pause a game"]]></title><description><![CDATA[
<p>It wasn't really that much to do with determinism. Quake uses a client-server network model all the time, even when you're only playing a local single-player game. What the demo recording system does is capture all of the network packets that are being sent from the server to the client. When playing back a demo, all the game has to do is run a client and replay the packets that it originally received from the server. It's a very elegant system that naturally flows out of the rather forward-looking decision to build the entire engine around a robust networking model.</p>
]]></description><pubDate>Sun, 19 Apr 2026 08:58:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822869</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47822869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822869</guid></item><item><title><![CDATA[New comment by ndepoel in "The RAM shortage could last years"]]></title><description><![CDATA[
<p>It kinda does resemble a natural resource though. The machines and technology in use at TSMC are so insanely complex, that there isn't a single person on earth who knows everything about how it works. TSMC functions only because of all of the pieces of the puzzle being together in the right place and arranged in just the right way. It's a very fragile balance that keeps it all running, and a major disruption could mean we get thrown back by a decade in chip-making technology.</p>
]]></description><pubDate>Sun, 19 Apr 2026 08:52:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47822840</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47822840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47822840</guid></item><item><title><![CDATA[New comment by ndepoel in "My DIY FPGA board can run Quake II"]]></title><description><![CDATA[
<p>The PS1 version uses a custom engine based on technology built for the game Shadow Master, the previous title by Hammerhead Studios. It was a technical tour de force for the original PlayStation.</p>
]]></description><pubDate>Thu, 26 Mar 2026 08:47:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47528043</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47528043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47528043</guid></item><item><title><![CDATA[New comment by ndepoel in "My DIY FPGA board can run Quake II"]]></title><description><![CDATA[
<p>Yes but also no. The problem with fixed point arithmetic is a lack of dynamic range compared to floating point. Floats are great at representing both large numbers with limited precision and small numbers with high precision, but with fixed point you have to make a choice based on which kind of number you're trying to represent. Meaning you need to use a mixture of 8.24, 16.16 and 24.8 fixed point types (and appropriate conversions) depending on the context of the calculations that you're doing.<p>It's possible to write a game engine with that limitation, but there's no easy natural conversion from Quake's judicious use of floats to a fully fixed-point codebase. You'd have to redesign and rewrite the entire engine from scratch, basically.</p>
]]></description><pubDate>Thu, 26 Mar 2026 08:40:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47528000</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=47528000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47528000</guid></item><item><title><![CDATA[New comment by ndepoel in "I dumped Windows 11 for Linux, and you should too"]]></title><description><![CDATA[
<p>Windows is not exactly free of this sort of nonsense either. Just recently I built a new PC for a friend, and we wanted to keep using his old SSD and Windows installation. After messing about with Bitlocker recovery keys which was already cumbersome enough, we ran into a catch-22 issue where we needed internet access to be able to log in and verify his Microsoft account, but we needed to install a driver for the new motherboard's networking chipset first, for which you need to be able to log in to an account first. Eventually we found that you can use USB tethering from a phone to gain internet access, for which no special driver is needed, which got around the issue but it was not exactly an obvious solution.</p>
]]></description><pubDate>Sun, 11 Jan 2026 13:16:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46575481</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=46575481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46575481</guid></item><item><title><![CDATA[New comment by ndepoel in "I dumped Windows 11 for Linux, and you should too"]]></title><description><![CDATA[
<p>That 20% is mostly covered by competitive online multiplayer games that use kernel-level anti-cheat systems which will only work on Windows. There's not a whole lot Valve can do about that, other than continuing to push Linux for gaming and hope that it gets popular enough to create an incentive for anti-cheat providers to start targeting Linux as well.</p>
]]></description><pubDate>Sun, 11 Jan 2026 13:11:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46575441</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=46575441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46575441</guid></item><item><title><![CDATA[New comment by ndepoel in "One Formula That Demystifies 3D Graphics"]]></title><description><![CDATA[
<p>The real "a-ha" demystifying moment for me was not so much learning about the elementary rotation, translation or even perspective projection operations. It was understanding how all of those operations can be composed together into a single <i>transformation</i> and that all that 3D graphics really is, is transforming coordinates from one relative space to another.<p>One important revelation in that regard for instance, was that moving a camera within a world is mathematically exactly the same as moving the world in the opposite direction relative to the camera. Once you get a feel for how transformations and coordinate spaces work, you can start playing around with them and a whole new world of possibilities opens up to you.</p>
]]></description><pubDate>Sun, 04 Jan 2026 19:31:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46491325</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=46491325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46491325</guid></item><item><title><![CDATA[New comment by ndepoel in "Reconstructed Commander Keen 1-3 Source Code"]]></title><description><![CDATA[
<p>Id Software very much skirted the edge of legality by making Commander Keen outside of office hours while still employed by SoftDisk and using SoftDisk computers, and SoftDisk could have easily sued them if they wanted to. They managed to avoid that by striking a deal where the Id guys would continue to make games for SoftDisk while working on Keen and later Wolfenstein 3D.<p>There was a lot of code reuse between games. John Carmack is on record somewhere that the enemy navigation code from Doom and Quake still has its origins in some of the earliest 8-bit games he wrote in the 1980's.</p>
]]></description><pubDate>Fri, 19 Dec 2025 11:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46324455</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=46324455</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46324455</guid></item><item><title><![CDATA[New comment by ndepoel in "Apple is crossing a Steve Jobs red line"]]></title><description><![CDATA[
<p>Honestly, I think that if Steve Jobs had lived, he would have continued to push the industry in a direction more aligned with his tastes, others would have followed suit, and whatever hot topics we'd be discussing today, they would be <i>very</i> different from the ones we are discussing now.</p>
]]></description><pubDate>Fri, 07 Nov 2025 20:32:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45850764</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=45850764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45850764</guid></item><item><title><![CDATA[New comment by ndepoel in "Fuck dopamine, we're voluntarily breaking our own brains"]]></title><description><![CDATA[
<p>I had this epiphany last year when I went through some old holiday pictures and saw a photo of a monument in a location that I had no memory of. So I spent some time retracing our steps on that day, based on other pictures from around the same time, and places that I knew we visited. It took a while, but eventually I managed to zero in on the place and felt pretty satisfied as I starred the location on Google Maps.<p>Since the monument in question was somewhat relevant to my work, I shared the picture in my company chat and asked if anyone had seen it and knew from the top of their head where this was. Almost immediately one colleague threw the picture into an AI reverse image search and instantly came up with the answer where it was and what the monument represented. I was incredibly annoyed at that; not because someone was able to come up with the answer much faster than I did on my own, but because it took the FUN out of the whole thing.<p>That's when I realized that my instinctive dislike for AI is because it takes the fun out of everything for me.  The process of figuring out where this photo was taken was much more rewarding than the eventual answer. Similarly, when programming I take pleasure out of figuring out difficult problems and coming up with elegant solutions for then. Writing the actual code isn't the interesting or difficult part, and I don't need an AI to do that for me. AI is being hyped up by people who are not interested in the process of learning and understanding and who just want a quick shortcut to the answer, completely missing the point in my opinion.</p>
]]></description><pubDate>Sat, 26 Jul 2025 14:15:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44694250</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=44694250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44694250</guid></item><item><title><![CDATA[New comment by ndepoel in "Death by a Thousand Slops"]]></title><description><![CDATA[
<p>> They could offer value, but just rarely, at least with the LLM/model/context they used.<p>Still a net negative overall, given that you have to spend a lot of effort separating the wheat from the chaff.<p>> Could have a special area for submitting these where AI does the rejection letter and banning.<p>So we'll just have one AI talking to another AI with an indeterminate outcome and nobody learns anything of value. Truly we live in the future!</p>
]]></description><pubDate>Mon, 14 Jul 2025 12:13:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=44559249</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=44559249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44559249</guid></item><item><title><![CDATA[New comment by ndepoel in "Digital Minister wants open standards and open source as guiding principle"]]></title><description><![CDATA[
<p>Us Europeans have been extremely naive and complacent for the past decades. We've been all too happy to rely on America for our tech and defense needs, and America has been all too happy to provide. There have been plenty of warning signs in the past that this situation is not as self-evident as we'd like to believe and not sustainable in the long term, but so long as things keep churning along we'd rather just ignore the problem instead of proactively tackling it and becoming more self-sufficient.<p>And yes, now that America are showing their true colors with Trump leading the way, finally, <i>finally</i> we are starting to see that maybe this isn't how we should want things to be. It's still going to take a long time for Europe to shake off its dependence on the US tech industry and truly start to challenge it, but hopefully this is a wake-up call that will gradually push things in the right direction.</p>
]]></description><pubDate>Fri, 06 Jun 2025 09:55:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44199289</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=44199289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44199289</guid></item><item><title><![CDATA[New comment by ndepoel in "The Turkish İ Problem and Why You Should Care (2012)"]]></title><description><![CDATA[
<p>Ahh yes, been there, done that.<p>Several years ago we had issues with certification of our game on PS4 because the capitalization on Sony's Turkish translation for "wireless controller" was wrong. The problem being that Turkish dotless I. What was the cause? Some years prior we had had issues with internal system strings (read: stringified enums) breaking on certain international PC's because they were being upper/lowercased using locale-specific capitalization rules. As a quick fix, the choice was made then to change the culture info to invariant globally across the entire game. This of course meant that <i>all</i> strings were now being upper/lowercased according to English rules, including user-facing UI strings. Hence Turkish strings mixing up dotted and dotless I's in several places. The solution? We just pre-uppercased that one "wireless controller" term in our localization sheet, because that was the only bit of text Sony cared about. An ugly fix and we really should have gone through the code to properly separate system strings from UI texts, but it got the job done.</p>
]]></description><pubDate>Tue, 06 May 2025 09:49:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43903266</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=43903266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43903266</guid></item><item><title><![CDATA[New comment by ndepoel in "Vibe Coding is not an excuse for low-quality work"]]></title><description><![CDATA[
<p>This all reminds me a lot of the early 2000's, when big corporations thought they could save a lot of money by outsourcing development work to low-income countries and have their expensive in-house engineers only write specifications. Turns out most of those outsourcing parties won't truly understand the core ideas behind the system you're trying to build, won't think outside the box and make corrections where necessary, and will just build the thing exactly as written in the spec. The result being that to get the end product you want, the spec needs to be so finely detailed and refined that by the time you get both specification and implementation to the desired quality level, it would have been the same amount of effort (and probably less time and frustration) to just build the system in-house.<p>Of course outsourcing software development hasn't gone away, but it hasn't become anywhere near as prevalent and dominant as its proponents would've had you believe. I see the same happening with AI coding - it has its place, certainly for prototyping and quick-and-dirty solutions - but it cannot and will not truly replace human understanding, ingenuity, creativity and insight.</p>
]]></description><pubDate>Sat, 19 Apr 2025 20:56:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43739400</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=43739400</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43739400</guid></item><item><title><![CDATA[New comment by ndepoel in "Reverse engineering the Sega Channel game image file format"]]></title><description><![CDATA[
<p>4 MB is the maximum size of the console's ROM address space, so this would've allowed for any Genesis game to be published through this service, with the exception of the few games that used bank switching to go beyond 4 MB (really only Super Street Fighter II). 4 MB was a lot of RAM to be putting into a relatively cheap consumer electronics device in 1994, so I imagine some of the cost of that was subsidized by Sega and had to be covered by the subscription fees.</p>
]]></description><pubDate>Sun, 08 Dec 2024 10:33:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=42356339</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=42356339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42356339</guid></item><item><title><![CDATA[New comment by ndepoel in "INNER JOIN ON vs WHERE clause (2009)"]]></title><description><![CDATA[
<p>It's all about clearly stating your intent. With INNER JOIN you're literally saying "I want to join these two tables together on this particular relation and work on the result", while with the more basic WHERE form you're saying "just lump these two tables together and then we'll filter out the rows that we actually want to see". The join becomes more of a happy side-effect with that, rather than the thing you clearly want to do.<p>Not only does writing your code in such a way that it states your intent make it easier to read for other humans, it also makes it easier for compilers/query planners to understand what you're trying to do and turn it into a more efficient process at run-time. Now query planners are usually pretty good at distilling joins from WHERE clauses, but that form does also make it easier for mistakes to creep in that can murder your query performance in subtle and hard-to-debug ways.</p>
]]></description><pubDate>Wed, 30 Oct 2024 11:02:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=41993602</link><dc:creator>ndepoel</dc:creator><comments>https://news.ycombinator.com/item?id=41993602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41993602</guid></item></channel></rss>