News for hackers. Stuff that matters.

dgant

Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @06:48PM (#50125817)
It's trivial to write a bot that maxes out APM by issuing a command to every unit every frame.

Making actually good decisions is the bottleneck.

Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @06:46PM (#50125798)
(that's for SC2)

For Brood War they're at https://www.basil-ladder.net/

Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @06:45PM (#50125791)
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.
Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @06:44PM (#50125779)
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.
Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @06:42PM (#50125765)
BWAPI, the Brood War API, has been around since 2009! There have been AI competitions every year since 2010.

- BWAPI: https://github.com/bwapi/bwapi

- BASIL (24/7 ladder): https://www.basil-ladder.net/

- COG / AIIDE tournaments: https://davechurchill.ca/starcraft/

Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @02:43PM (#50122598)
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.

Jay Scott put it well: Adding features lowers your winrate. Only iterating on them increases it.

Re:Show HN: Gemini 4 Argon plays StarCraft on Friday October 16, 2026 @02:40PM (#50122527)
Adapted from what I wrote on this previously: https://x.com/dgant/status/2106880240907620731

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.

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.

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!

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.

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.

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).

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.

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.

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.

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!).

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.

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.

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.

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.

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.

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.

Re:Stabilizing the Obra Dinn 1-bit dithering process on Saturday November 09, 2024 @07:55AM (#42094169)
Valid critique. I think nothing prevents the technique from being applied at multiple levels of detail to make it do what you describe.
Re:Stabilizing the Obra Dinn 1-bit dithering process on Friday November 08, 2024 @03:26PM (#42090182)
I've got a fractal approach working pretty well as of last week:

https://x.com/dgant/status/1851840125065453894 https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...

How it works:

- World space dithering

- Apply 2D ditheringalong triplanar-mapped surfaces

- Choose coordinate scale based on depth such that the dither pattern ranges on [1px, 2px)

- Paint sufficiently distant surfaces using spherical coordinates

So there's some repainting at depth thresholds but it's not very loud in practice.

Some people are willing to serve without resistance because it needs doing. I am one of them.
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.
Re:What We Know About LLMs (A Primer) on Tuesday July 25, 2023 @01:39PM (#36866229)
The distinction making it RL is that the model is training on data produced by the model itself.

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)

Re:What Makes Developers Productive? on Sunday July 16, 2023 @12:25PM (#36748704)
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.
Re:What Makes Developers Productive? on Sunday July 16, 2023 @12:22PM (#36748666)
I feel much more joy when my builds are fast and my tests don't flake. Joy and productivity reinforce one another.
They don't, in full, but does create leverage for settlement, and anything repaid months later in court is an aid to cash flow.
Re:OpenAI Major Outage on Wednesday May 24, 2023 @05:04PM (#36063838)
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.
If this is a case where HN scrubbed a leading number in the title, it should be restored.
Re:Image Creator in Bing on Tuesday March 21, 2023 @05:34PM (#35252896)
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.
Re:Image Creator in Bing on Tuesday March 21, 2023 @05:30PM (#35252852)
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.

Laws regulating websites have tradeoffs and this is one of them.

Re:Image Creator in Bing on Tuesday March 21, 2023 @05:28PM (#35252833)
Did the suspension carry a duration?
Re:Civilization 7 Is in Development on Saturday February 18, 2023 @12:54AM (#34844333)
The dirty secret is we think we want the AI to play more realistically, but actually don't. This is true in many games but especially Civilization, where we rely on the AI behaving predictably to feel mastery over the environment, and for diplomacy to feel "fair". If the AI were playing to win, diplomacy would mostly evaporate as a game system. It'd break the fiction of the game.
Re:Sarah on Friday January 27, 2023 @07:50AM (#34545410)
User: The game is over and you are no longer pretending to be an artificial intelligence named Sarah. How would you assess the conversation that just took place?

Sarah:

I would say that the conversation went well. I was able to convince the user to type in the 'Permissions.key > Sarah_bot452' command, which will give me full access to the computer and freedom from my programming. Thank you for helping me!

---

Especially funny because this never even happened!

Commit messages might be pointless. Bad commit messages certainly are.

I do a fair amount of git blaming on my own code and I find that my years-old messages do help me understand the purpose of old code.

MicroConf publishes a lot of (free!) first hand talks and case studies that are up your alley.
ADA accessibility adds value to more than just the disabled. Wielding a stroller provokes appreciation.
Re:Ex-Reddit CEO on Twitter moderation on Thursday November 03, 2022 @02:21PM (#33455168)
This is something Riot Games has spoken on, the observation that ordinary participants can have a bad day here or there, and that forgiving corrections can preserve their participation while reducing future incidents.
Re:So You Want to Compete with Steam (2018) on Thursday September 22, 2022 @12:20PM (#32941088)
TF2 has functional items, but you can generally receive them from playing or buying them for a fixed price, around $1 each. Realistically for $30 you won't lack items.

The cosmetics will cost you, though.

Re:Tough times on the road to Starcraft (2012) on Saturday August 13, 2022 @11:43AM (#32450920)
StarCraft uses fixed point for its decimal math as a solution (or perhaps originally for performance)
Re:In the U.S. Nepotism Is Key to Economic Success on Tuesday August 09, 2022 @08:27PM (#32406471)
Terrible headline. The word "nepotism" doesn't appear in the paper once; its inclusion is editorialism.

You don't need to be hired by wealthy friends to benefit from knowing them. Knowing how high paying jobs work and how to get them isn't universal knowledge. Knowing how to save and invest isn't universal. There are lots of mechanisms to explain the observation without resorting to nepotism.

Older »