<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: dgant</title><link>https://news.ycombinator.com/user?id=dgant</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 20 Oct 2026 10:52:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dgant" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>It's trivial to write a bot that maxes out APM by issuing a command to every unit every frame.<p>Making actually good decisions is the bottleneck.</p>
]]></description><pubDate>Fri, 16 Oct 2026 22:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=50125817</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50125817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50125817</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>(that's for SC2)<p>For Brood War they're at <a href="https://www.basil-ladder.net/" rel="nofollow">https://www.basil-ladder.net/</a></p>
]]></description><pubDate>Fri, 16 Oct 2026 22:46:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=50125798</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50125798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50125798</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>Top bots are in the ballpark of 50kloc. Even large LLMs are not so large that they can memorize all the world's data like that. And all the fine-tuning that compression loses comprises most of the work in the first place.</p>
]]></description><pubDate>Fri, 16 Oct 2026 22:45:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=50125791</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50125791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50125791</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>StarCraft is in between, where faster actions can be a big advantage but choosing good enough actions for that to matter is hard enough that it took many years to achieve.</p>
]]></description><pubDate>Fri, 16 Oct 2026 22:44:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=50125779</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50125779</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50125779</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>BWAPI, the Brood War API, has been around since 2009! There have been AI competitions every year since 2010.<p>- BWAPI: <a href="https://github.com/bwapi/bwapi" rel="nofollow">https://github.com/bwapi/bwapi</a><p>- BASIL (24/7 ladder): <a href="https://www.basil-ladder.net/" rel="nofollow">https://www.basil-ladder.net/</a><p>- COG / AIIDE tournaments: <a href="https://davechurchill.ca/starcraft/" rel="nofollow">https://davechurchill.ca/starcraft/</a></p>
]]></description><pubDate>Fri, 16 Oct 2026 22:42:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=50125765</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50125765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50125765</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>Strong agree. Even if you understand StarCraft well and are an excellent programmer, and anticipate and correctly handle every situational edge case, it is hard to know the dynamics of how your behaviors will pan out without experimentation.<p>Jay Scott put it well: Adding features lowers your winrate. Only iterating on them increases it.</p>
]]></description><pubDate>Fri, 16 Oct 2026 18:43:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=50122598</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50122598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50122598</guid></item><item><title><![CDATA[New comment by dgant in "Show HN: Gemini 4 Argon plays StarCraft"]]></title><description><![CDATA[
<p>Adapted from what I wrote on this previously: <a href="https://x.com/dgant/status/2106880240907620731" rel="nofollow">https://x.com/dgant/status/2106880240907620731</a><p>The unsexy perspective on StarCraft is that it's a game about logistics. You need to keep making things, not get supply blocked, fit all your buildings, not get your units trapped, and then bring all your units to a fight at a good time and at the same time.<p>Astra and Opus both cleared this bar pretty quickly, both settling on one-base Dragoon + Observer play, taking expansions pretty late, on 3 Gateways. This strategy is fine against everything and great against nothing, letting you win against anyone that you can out-execute. StarSkirmish gives agents access to the FastApproximation combat simulation library, which makes better combat predictions than the B-tier bots do, and let their bots win by trading armies better against them.<p>But the A-tier bots (Locutus and BananaBrain) are already strong at execution, and Astra wasn't making progress against them. It switched to a proxy 2-gate Zealot rush. This worked well on a map pool with mostly 2-player maps (so you can place the Gateways very close to your opponent). But it's also an astute choice for a new bot because it doesn't require you to be good at anything in StarCraft that happens after the first four minutes!<p>It's also smart as a variance-maximizing strategy. In many games, if your opponent is superior, you want the game to be decided by as few events as possible. Because with a bad coin, you're more likely to win 1 of 2 flips than 10 of 20. Proxy 2-gate shortens the game and the number of interactions required to win.<p>It's also advantageous given the format, where you get unlimited tries to win a series against each tier's opponents. If you can make the games a coin flip, and then take more coin flips, you can clear a tier even with an overall poor winrate. I do think this aspect of StarSkirmish is worth addressing in the future.<p>Astra's proxy gates beat the A-tier bots, and it moved up to StarSkirmish's S-tier (Stardust and PurpleWave, though really I'd consider BananaBrain completely our peer in ability).<p>A brief aside about bot tournaments: The AIIDE conference and historically the COG tournaments had every bot play hundreds of games against one another, and ranked then on overall winrate. I have never liked this because it does not resemble human StarCraft (where players play a best-of-N series), unbalances the races (Zerg vs. Zerg is more volatile and winrates should be closer to 50%), and creates some twisted incentives. One of those incentives is ensuring you beat weaker opponents 100% of the time instead of merely 95%, which means defaulting to reliable-but-weaker strategies to beat weaker opponents, and having a large bag of available strategies to find something which exploits trickier opponents.<p>And in this iteration of StarSkirmish, where benchmark bots are mostly unable to store data between games, Stardust ran one basic conservative strategy almost every game. This weakens Stardust, but meant that Astra's proxy gates were unlikely to win. So Astra had to do something very uncomfortable for a coding agent: Go back to the drawing board and try something completely different.<p>Astra completely switched gears, landing on a strategy that PurpleWave also likes to use against Stardust: Use Dark Templar to secure an expansion. This is particularly effective against Stardust, who does not use Shuttles + Reavers, and thus does not gain utility from the Robotics Facility it requires to make Observers.<p>From there Astra progressed slowly, but discovered a shared weakness of PurpleWave and Stardust: Both of us  are designed to dodge Psionic Storms, but that feature was broken in both our bots simultaneously (for unrelated reasons!).<p>So Astra's Dark Templar opening transitioned smoothly into a two-base timing attack with Dragoons and High Templar. It moved out as soon as it had three storms banked up. By this time Stardust or PurpleWave had usually contained the passive Astra and taken a third base, getting an economic advantage that had not yet translated into an army advantage. Astra's passivity meant that armies had not traded and were very large. This, with the broken Storm dodging, made its Psionic Storms devastating.<p>As with the proxy gate rush, this two-base timing simplified the game and allowed Astra to minimize interactions and decisionmaking, so it could just optimize its play for a narrow set of situations. As long as it executed the push well, it was in great shape to win. It did not need to skirmish. The game states it had to handle did not vary much. Simplifying the game against sophisticated bots was a pragmatic approach.<p>It nevertheless took most of the 50 hour contest for Astra to convert this plan into a winning evaluation run. By then it had learned to make Reavers and ferry them with Shuttles, but I suspect it was not doing this well enough to gain an advantage. Its winrates appeared to very gradually improve over this window, but I couldn't tell from the stream what it had changed.<p>After eventually passing an S-tier, Astra had a few hours to try to beat Pluto. This was plainly an impossible task for it, but I was surprised to see Astra suddenly stagnate with few changes in approach.<p>Astra's build order was pretty flawed, cutting workers needlessly for no advantage. It was a survivable error against Stardust forced to use its defensive "seal-clubbing" strategy, and against PurpleWave (which without learning data was constantly at risk of throwing an eval with goofy cheeses like its half-baked cannon rush). But against Pluto, Astra consistently hit the five minute mark with fewer workers, less army, no expansion, and often permanently trapped in its base. This was no less true in its 1000th game against Pluto as its first.<p>Astra's approach to StarSkirmish was in some ways unsexy: It simplified the game, won mainly in games where it could keep the game state simple, and against top opponents either steamrolled or got dissected in a short window at time. But winning StarCraft has always been more about bland fundamentals than fancy tricks, and I always love re-learning lessons about how the game actually is versus how we are tempted to perceive it.</p>
]]></description><pubDate>Fri, 16 Oct 2026 18:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=50122527</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=50122527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50122527</guid></item><item><title><![CDATA[New comment by dgant in "Stabilizing the Obra Dinn 1-bit dithering process (2017)"]]></title><description><![CDATA[
<p>Valid critique. I think nothing prevents the technique from being applied at multiple levels of detail to make it do what you describe.</p>
]]></description><pubDate>Sat, 09 Nov 2024 12:55:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42094169</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=42094169</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42094169</guid></item><item><title><![CDATA[New comment by dgant in "Stabilizing the Obra Dinn 1-bit dithering process (2017)"]]></title><description><![CDATA[
<p>I've got a fractal approach working pretty well as of last week:<p><a href="https://x.com/dgant/status/1851840125065453894" rel="nofollow">https://x.com/dgant/status/1851840125065453894</a>
<a href="https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_3oK2GUuP94A&s=19" rel="nofollow">https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...</a><p>How it works:<p>- World space dithering<p>- Apply 2D ditheringalong triplanar-mapped surfaces<p>- Choose coordinate scale based on depth such that the dither pattern ranges on [1px, 2px)<p>- Paint sufficiently distant surfaces using spherical coordinates<p>So there's some repainting at depth thresholds but it's not very loud in practice.</p>
]]></description><pubDate>Fri, 08 Nov 2024 20:26:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=42090182</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=42090182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42090182</guid></item><item><title><![CDATA[One month of selling on Unreal Marketplace]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/dgant/status/1795927739620319714">https://twitter.com/dgant/status/1795927739620319714</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40523616">https://news.ycombinator.com/item?id=40523616</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 30 May 2024 13:41:49 +0000</pubDate><link>https://twitter.com/dgant/status/1795927739620319714</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=40523616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40523616</guid></item><item><title><![CDATA[New comment by dgant in "Wedding Photographer Spent a Year in Jail After Pleading the Fifth"]]></title><description><![CDATA[
<p>Some people are willing to serve without resistance because it needs doing. I am one of them.</p>
]]></description><pubDate>Sat, 19 Aug 2023 04:56:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=37185645</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=37185645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37185645</guid></item><item><title><![CDATA[New comment by dgant in "LCD, Please"]]></title><description><![CDATA[
<p>It will accept multiple verbs for some appropriate cases. I recall any time I thought I had problems with verbs I actually had something else wrong.</p>
]]></description><pubDate>Wed, 09 Aug 2023 00:28:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=37057294</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=37057294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37057294</guid></item><item><title><![CDATA[New comment by dgant in "What we know about LLMs"]]></title><description><![CDATA[
<p>The distinction making it RL is that the model is training on data produced by the model itself.<p>The benefit of RL in general is that you're training on states the agent is likely to find itself in, and the cost is needing an agent which explores salient states. Which is why we keep seeing RL as a finishing step after imitation (eg AlphaStar first learning StarCraft from replays)</p>
]]></description><pubDate>Tue, 25 Jul 2023 17:39:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=36866229</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=36866229</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36866229</guid></item><item><title><![CDATA[New comment by dgant in "What makes developers productive?"]]></title><description><![CDATA[
<p>The easiest way to be unproductive is to make something nobody wants. I've seen a lot of dev time spent on products where nobody bothered to validate their need at much less expense.</p>
]]></description><pubDate>Sun, 16 Jul 2023 16:25:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=36748704</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=36748704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36748704</guid></item><item><title><![CDATA[New comment by dgant in "What makes developers productive?"]]></title><description><![CDATA[
<p>I feel much more joy when my builds are fast and my tests don't flake. Joy and productivity reinforce one another.</p>
]]></description><pubDate>Sun, 16 Jul 2023 16:22:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=36748666</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=36748666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36748666</guid></item><item><title><![CDATA[New comment by dgant in "Twitter is being evicted from its Boulder office over unpaid rent"]]></title><description><![CDATA[
<p>They don't, in full, but does create leverage for settlement, and anything repaid months later in court is an aid to cash flow.</p>
]]></description><pubDate>Wed, 14 Jun 2023 20:21:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=36332014</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=36332014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36332014</guid></item><item><title><![CDATA[New comment by dgant in "OpenAI Outage"]]></title><description><![CDATA[
<p>For large categories of questions, I get better answers faster on ChatGPT. If I'm not asking the most basic question on a subject I'm usually better off than I would be searching.</p>
]]></description><pubDate>Wed, 24 May 2023 21:04:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=36063838</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=36063838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36063838</guid></item><item><title><![CDATA[New comment by dgant in "60 Minutes asked Google CEO: “Have you killed your cash cow?” [video]"]]></title><description><![CDATA[
<p>If this is a case where HN scrubbed a leading number in the title, it should be restored.</p>
]]></description><pubDate>Mon, 17 Apr 2023 23:31:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=35608044</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=35608044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35608044</guid></item><item><title><![CDATA[New comment by dgant in "Bing Image Creator"]]></title><description><![CDATA[
<p>The long term vision likely includes Bing as the new default destination for "I have an intent" on the internet, in lieu of Google. How that figures into a unified offering is TBD but the first step is getting more eyes on Bing regularly.</p>
]]></description><pubDate>Tue, 21 Mar 2023 21:34:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=35252896</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=35252896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35252896</guid></item><item><title><![CDATA[New comment by dgant in "Bing Image Creator"]]></title><description><![CDATA[
<p>It's not senseless when countries apply laws that affect websites operated from other countries. If I'm releasing a prototype in the USA I'd rather worry about GDPR compliance down the road.<p>Laws regulating websites have tradeoffs and this is one of them.</p>
]]></description><pubDate>Tue, 21 Mar 2023 21:30:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=35252852</link><dc:creator>dgant</dc:creator><comments>https://news.ycombinator.com/item?id=35252852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35252852</guid></item></channel></rss>