Back

We put Claude Code in Rollercoaster Tycoon

356 points5 dayslabs.ramp.com
ninkendo3 hours ago

Related:

I’ve always found it crazy that my LLM has access to such terrible tools compared to mine.

It’s left with grepping for function signatures, sending diffs for patching, and running `cat` to read all the code at once.

I however, run an IDE and can run a simple refactoring tool to add a parameter to a function, I can “follow symbol” to see where something is defined, I can click and get all usages of a function shown at a glance, etc etc.

Is anyone working on making it so LLM’s get better tools for actually writing/refactoring code? Or is there some “bitter lesson”-like thing that says effort is always better spent just increasing the context size and slurping up all the code at once?

BryantD22 minutes ago

This isn’t completely the answer to what you want but skills do open a lot of doors here. Anything you can do on a command line can turn into a skill, after all.

KronisLV1 hour ago

> I however, run an IDE and can run a simple refactoring tool to add a parameter to a function, I can “follow symbol” to see where something is defined, I can click and get all usages of a function shown at a glance, etc etc

I am so surprised that all of the AI tooling mostly revolves around VSC or its forks and that JetBrains seem to not really have done anything revolutionary in the space.

With how good their refactoring and code inspection tools are, you’d really think they’d pass of that context information to AI models and that they’d be leaps and bounds ahead.

eek212132 minutes ago

Are you? I'm not surprised at all, considering that the biggest investment juggernaut in AI is also the author of VSC. I wonder what the connection is? ;)

penneyd54 minutes ago

Agreed - this seems like a no brainer, surely this is something that is being worked on.

ramraj0727 minutes ago

Not coding agents but we do a lot of work trying to find the best tools, and the result is always that the simplest possible general tool that can get the job done always beats a suite of complicated tools and rules on how to use them.

hippo222 hours ago

If you can read fast enough, grepping is probably faster than waiting for a compiler to tell you anything.

gf0002 hours ago

Faster for worse results, though. Determining the source of a symbol is not as trivial as finding the same piece of text somewhere else, it should also reliably be able to differentiate among them. What better source for that then the compiler itself?

ninkendo2 hours ago

Yeah, especially for languages that make heavy use of type inference. There’s nothing you can really grep for most of the time… to really know “who’s using this code” you need to know what the compiler knows.

An LLM can likely approach compiler-level knowledge just from being smart and understanding what it’s reading, but it costs a lot of context to do this. Giving the LLM access to what the compiler knows as an API seems like it’s a huge area for improvement.

JimDabell49 minutes ago

Kit looks like a good step in this direction:

https://github.com/cased/kit

rudedogg2 hours ago

LSP also kind of sucks. But the problem is all the big companies want big valuations, so they only chase generic solutions. That's why everything is a VS Code clone, etc..

https://paulgraham.com/ds.html

fragmede2 hours ago

Anthropic, for one.

> Added LSP (Language Server Protocol) tool for code intelligence features like go-to-definition, find references, and hover documentation

https://github.com/anthropics/claude-code/blob/main/CHANGELO...

novaleaf2 hours ago

their c# LSP theoretically worked for a week or so (I never saw it in action though), but now it always errors on launch :(

hahahahhaah2 hours ago

An LSP MCP?

ninkendo2 hours ago

Yeah, or something even smarter than that.

If you are willing to go language-specific, the tooling can be incredibly rich if you go through the effort. I’ve written some rust compiler drivers for domain-specific use cases, and you can hook into phases of the compiler where you have amazingly detailed context about every symbol in the code. All manner of type metadata, locations where values are dropped, everything is annotated with spans of source locations too. It seems like a worthy effort to index all of it and make it available behind a standard query interface the LLM can use. You can even write code this way, I think rustfmt hooks into the same pipeline to produce formatted code.

I’ve always wished there were richer tools available to do what my IDE already does, but without needing to use the UI. Make it a standard API or even just CLI, and free it from the dependency on my IDE. It’d be very worth looking into I think.

quantummagic1 hour ago

If the compiler just dumped all that data out as structured text, you could use current LLMs to swallow it in a single gulp.

Jaysobel6 hours ago
theptip5 hours ago

Did you eval using screenshots or some sort of rendered visualization instead of the CLI? I wonder if Claude has better visual intelligence when viewing images (lots of these in its training set) rather than ascii schematics (probably very few of these in the corpus).

cheema332 hours ago

Computer use and screenshots are context intensive. Text is not. The more context you give to an LLM, the dumber it gets. Some people think at 40% context utilization, the LLM starts to get into the dumb zone. That is where the limitations are as of today. This is why CLI based tools like Claude Code are so good. And any attempt at computer use has fallen by the wayside.

There are some potential solutions to this problem that come to mind. Use subagents to isolate the interesting bits about a screenshot and only feed that to the main agent with a summary. This will all still have a significantly higher token usage compared to a text based interface, but something like this could potentially keep the LLM out of the dumb zone a little longer.

fragmede2 hours ago

> And any attempt at computer use has fallen by the wayside.

You're totally right! I mean, aside from Anthropic launching "Cowork: Claude Code for the rest of your work" 5 days ago. :)

https://claude.com/blog/cowork-research-preview

https://news.ycombinator.com/item?id=46593022

More to the point though, you should be using Agents in Claude Code to limit context pollution. Agents run with their own context, and then only return salient details. Eg, I have an Agent to run "make" and return the return status and just the first error message if there is one. This means the hundreds/thousands of lines of compilation don't pollute the main Claude Code context, letting me get more builds in before I run out of context there.

nanapipirara4 hours ago

Claude helped me immensely getting an image converter to work. Giving it screenshots of wrong output (lots of layers had an unpredictable offsets that was not supposed to be there) and output as I expected it helped Claude understand the problems and it fixed the bugs immediately.

Jaysobel5 hours ago

I had tried the browser screenshotting feature for agents in Cursor and found it wasn't very reliable - screenshots eat a lot of context, and the agent didn't have a good sense for when to use them. I didn't try it in this project. I bet it would work in some specific cases.

fragmede2 hours ago

> Claude is at a pretty steep visuo-spatial disadvantage,

How hard would it be to use with OpenAI's offerings instead? Particularly, imo, OpenAI's better at "looking" at pictures than Claude.

rashidae6 hours ago

> As a mirror to real-world agent design: the limiting factor for general-purpose agents is the legibility of their environments, and the strength of their interfaces. For this reason, we prefer to think of agents as automating diligence, rather than intelligence, for operational challenges.

hk__29 hours ago

> The only other notable setback was an accidental use of the word "revert" which Codex took literally, and ran git revert on a file where 1-2 hours of progress had been accumulating.

_flux8 hours ago

Amazing that these tools don't maintain a replayable log of everything they've done.

Although git revert is not a destructive operation, so it's surprising that it caused any loss of data. Maybe they meant git reset --hard or something like that. Wild if Codec would run that.

arcanemachiner6 hours ago

I was looking at the insanity known as Gas Town [0] the other day, and it does use Git to store historical work state in something it calls "beads":

https://github.com/steveyegge/gastown?tab=readme-ov-file

calebkaiser6 hours ago

If anyone is curious, Beads is an agent memory project from the same developer: https://github.com/steveyegge/beads

PKop4 hours ago

Bees?

brap4 hours ago

BEADS

rabf7 hours ago

I have had codex recover things for me from its history after claude had done a git reset hard, codex is one of the more reliable models/harneses when it comes to performing undo and redo operations in my experience.

stinkbeetle39 minutes ago

`git reset --hard` doesn't remove unreferenced commits or rewrite the reflog so I don't think that would do it. Something like `git reset && git gc` would have to be done.

theptip5 hours ago

Claude Code has had this feature for a few months now.

MattGaiser8 hours ago

Claude Code has /rewind. Not sure if it is foolproof, but this has been tried.

CPLX5 hours ago

I found this tool to be the solution I was looking for to address this specific problem:

https://contextify.sh

defunct346 hours ago

[dead]

alt2277 hours ago

I wonder how they accidentaly used a word like that.

gbear6057 hours ago

“Please revert that last change you did”, referring to like a smaller change that had just been done

GardenLetter275 hours ago

Codex reverted kindly.

esafak7 hours ago

Does Codex not let you set command permissions?

legojoey1757 minutes ago

Yea, it does so this would likely have been to be a `--yolo` (I don't care, let me `rm -rf /`). I've found even with the "workspace write" mode and no additional writable directories I can't do git operations without approval so it seems to exclude `.git` by default.

Filligree8 hours ago

Yet another reason to use Jujutsu. And put a `jj status` wrapper in your PS1. ;-)

diath8 hours ago

> Yet another reason to use Jujutsu

And what would that reason be? You can git revert a git revert.

jsnell7 hours ago

You're correct for an actual git revert, but it seems pretty clear that the original authors have mangled the story and it was actually either a "git checkout" or "git reset". The "file where 1-2 hours of progress had been accumulating" phrasing only makes sense if those were uncommitted changes.

And the reason jj helps in that case is that for jj there is no such thing as an uncommitted change.

+1
block_dagger7 hours ago
+1
MarkMarine6 hours ago
mbb708 hours ago

Probably it actually ran git checkout or reset. As you say git revert only operates on committed snapshots so it will all be in the reflog

+1
ewoodrich6 hours ago
westurner8 hours ago

Start with env args like AGENT_ID for indicating which Merkle hash of which model(s) generated which code with which agent(s) and add those attributes to signed (-S) commit messages. For traceability; to find other faulty code generated by the same model and determine whether an agent or a human introduced the fault.

Then, `git notes` is better for signature metadata because it doesn't change the commit hash to add signatures for the commit.

And then, you'd need to run a local Rekor log to use Sigstore attestations on every commit.

Sigstore.dev is SLSA.dev compliant.

Sigstore grants short-lived release attestation signing keys for CI builds on a build farm to sign artifacts with.

So, when jujutsu autocommits agent-generated code, what causes there to be an {{AGENT_ID}} in the commit message or git notes? And what stops a user from forging such attestations?

westurner7 hours ago

- "Diffwatch – Watch AI agents touch the FS and see diffs live" (2025) https://news.ycombinator.com/item?id=45786382 :

> you can manually stage against @-: [with jujutsu]

glemion436 hours ago

It's not going to happen...

Stop spamming

dwattttt5 hours ago

The feature of "there is no such thing as an uncommitted working directory" is very relevant to the situation.

+1
glemion433 hours ago
NewsaHackO6 hours ago

This is funny. I tried it once and didn't see what the benefit was. Then, when I tried to reset it back to normal git, I realized that the devs had not (at the time) made any clean way to revert it back, just a one-way conversion to jj. I haven't tried it since.

steveklabnik5 hours ago

What were you trying to “revert back”? You should have been able to just stop using jj, there’s nothing to revert back to. It’s also possible that I’m misunderstanding what you mean.

lukebechtel9 hours ago

> We don't know any C++ at all, and we vibe-coded the entire project over a few weeks. The core pieces of the build are…

what a world!

falloutx4 hours ago

First time I am seeing realistic timelines from a vibe-coded project. Usually everyone who vibe codes just says they did in few hours, no matter the project.

ben_w4 hours ago

Hmm. My experience with it is that a few hours of that will get you a sprint if you're lucky and the prompt hits the happy path. I had… I think two of those, over 5 weeks? I can believe plenty of random people stumble across happy-path examples.

Exciting when it works, but I think a much more exciting result for people with less experience who may not know that the "works for me" demo is the dreaded "first 90%", and even fairly small projects aren't done until the fifth-to-tenth 90%.

(That, and that vibe coding in the sense of "no code review" are prone to balls of mud, so you need to be above average at project management to avoid that after a few sprint-equivalents of output).

Aurornis3 hours ago

It’s possible to vibe code certain generic things in a few hours if you’re basically combining common, thoroughly documented, mature building blocks. It’s not going to be production ready or polished but you can get surprisingly far with some things.

For real work, that phase is like starting from a template or a boilerplate repo. The real work begins after the basics are wired together.

yoyohello139 hours ago

Everyone should read that section. It was really interesting reading about their experiences/challenges getting it all working.

AndrewKemendo9 hours ago

I would’ve walked for days to a CompUSA and spent my life savings if there was anything remotely equivalent to this when I was learning C on my Macintosh 4400 in 1997

People don’t appreciate what they have

imiric7 hours ago

Did you actually learn C? Be thankful nothing like this existed in 1997.

A machine generating code you don't understand is not the way to learn a programming language. It's a way to create software without programming.

These tools can be used as learning assistants, but the vast majority of people don't use them as such. This will lead to a collective degradation of knowledge and skills, and the proliferation of shoddily built software with more issues than anyone relying on these tools will know how to fix. At least people who can actually program will be in demand to fix this mess for years to come.

neilwilson7 hours ago

That’s what a C compiler does when generating a binary.

There was a time when you had to know ‘as’, ‘ld’ and maybe even ‘ar’ to get an executable.

In the early days of g++, there was no guarantee the object code worked as intended. But it was fun working that out and filing the bug reports.

This new tool is just a different sort of transpiler and optimiser.

Treat it as such.

+1
wizzwizz47 hours ago
+1
imiric7 hours ago
anthk6 hours ago

Competent C programmers know about nm, as, ld and a bunch of other binary sections in order to understand issues and proper debugging.

Everyone else are deluding themselves. Even the 9front intro requieres you to at least know the basics of nm and friends.

metaltyphoon7 hours ago

I don't understand how OP thinks that being oblivious how anything work underneath is a good thing. There is a threshold of abstraction to which you must know how it works to effectively fix it when it breaks.

hdgvhicv2 hours ago

I’m vaguely aware that transistors are like electronic switches and if I serve my memory I could build and and/or/not gate

I have no idea how an i386 works, let alone a modern cpu. Sure there are registers and different levels of cache before you get to memory.

My lack of knowledge of all this doesn’t prevent me from creating useful programs using higher abstraction layers like c.

+2
jedberg6 hours ago
AndrewKemendo7 hours ago

It would’ve been nice to have a system that I could just ask questions to teach me how it works instead of having to pour through the few books that existed on C that was actually accessible to a teenager learning on their own

Going to arcane websites, forum full of neckbeards to expect you to already understand everything isn’t exactly a great way to learn

The early Internet was unbelievably hostile to people trying to learn genuinely

rabf7 hours ago

I had the books (from the library) but never managed to get a compiler for many years! Was quite confusing trying to understand all the unix references when my only experience with a computer was the Atari ST.

hrldcpr4 hours ago

*pore through

(not a judgment, just mentioning in case the distinction is interesting to anyone)

Workaccount27 hours ago

It's just another layer.

Assembly programmers from years gone by would likley be equally dismissive of the self-aggrandizing code block stitchers of today.

(on topic, RCT was coded entirely in assembly, quite the achievement)

lifetimerubyist9 hours ago

It’s worse. They’re proud they don’t know.

doug_durham6 hours ago

"They" are? I didn't see that in the article. It sounds like you are projecting your prejudices on to a non-defined out group.

risyachka9 hours ago

Its like ordering a project from upwork- someone did it for you, you have no idea what is going on, kinda works though.

+4
kmijyiyxfbklao8 hours ago
+1
datsci_est_20158 hours ago
pocketarc8 hours ago

I love the interview at the end of the video. The kubectl-inspired CLI, and the feedback for improvements from Claude, as well as the alerts/segmentation feedback.

You could take those, make the tools better, and repeat the experience, and I'd love to see how much better the run would go.

I keep thinking about that when it comes to things like this - the Pokemon thing as well. The quality of the tooling around the AI is only going to become more and more impactful as time goes on. The more you can deterministically figure out on behalf of the AI to provide it with accurate ways of seeing and doing things, the better.

Ditto for humans, of course, that's the great thing about optimizing for AI. It's really just "if a human was using this, what would they need"? Think about it: The whole thing with the paths not being properly connected, a human would have to sit down and really think about it, draw/sketch the layout to visualize and understand what coordinates to do things in. And if you couldn't do that, you too would probably struggle for a while. But if the tool provided you with enough context to understand that a path wasn't connected properly and why, you'd be fine.

wonnage6 hours ago

I see this sentiment of using AI to improve itself a lot but it never seems to work well in practice. At best you end up with a very verbose context that covers all the random edge cases encountered during tasks.

For this to work the way people expect you’d need to somehow feed this info back into fine tuning rather than just appending to context. Otherwise the model never actually “learns”, you’re just applying heavy handed fudge factors to existing weights through context.

pilord3143 hours ago

I've been playing around with an AI generated knowledge base to grok our code base, I think you need good metrics on how the knowledge base is used. A few things is:

1. Being systematic. Having a system for adding, improving and maintaining the knoweldge base 2. Having feedback for that system 3. Implementing the feedback into a better system

I'm pretty happy I have an audit framework and documentation standards. I've refactored the whole knowledge base a few times. In the places where it's overly specific or too narrow in it's scope of use for the retained knowledge, you just have to prune it.

Any garden has weeds when you lay down fertile soil.

Sometimes they aren't weeds though, and that's where having a person in the driver's seat is a boon.

fnordpiglet9 hours ago

Interesting article but it doesn’t actually discuss how well it performs at playing the game. There is in fact a 1.5 hour YouTube video but it woulda been nice for a bit of an outcome postmortem. It’s like “here’s the methods and set up section of a research paper but for the conclusion you need to watch this movie and make your own judgements!”

Sharlin8 hours ago

It does discuss that? Basically it has good grasp of finances and often knows what "should" be done, but it struggles with actually building anything beyond placing toilets and hotdog stalls. To be fair, its map interface is not exactly optimal, and a multimodal model might fare quite a bit better at understanding the 2D map (verticality would likely still be a problem).

cyanydeez9 hours ago

I was told the important part of AI is the generation part, not the verification or quality.

nipponese9 hours ago

> kept the context above the ~60% remaining level where coding models perform at their absolute best

Maybe this is obvious to Claude users but how do you know your remaining context level? There is UI for this?

adithyareddy8 hours ago

You can also show context in the statusline within claude code: https://code.claude.com/docs/en/statusline#context-window-us...

nipponese8 hours ago

Follow up Q: what are you supposed to do when the context becomes too large? Start a new conversation/context window and let Claude start from scratch?

facorreia1 hour ago

Start in plan mode, generating a markdown file with the plan, keep it up to date as it is executed, and after each iteration commit, clear the context and tell it to read the plan and execute the next step.

d4rkp4ttern4 hours ago

Context filling up is sort of the Achilles heel of CLI agents. The main remedy is to have it output some type of handoff document and then run /compact which leaves you with a summary of the latest task. It sort of works but by definition it loses information, and you often find yourself having to re-explain or re-generate details to continue the work.

I made a tool[1] that lets you just start a new session and injects the original session file path, so you can extract any arbitrary details of prior work from there using sub-agents.

[1] aichat tool https://github.com/pchalasani/claude-code-tools?tab=readme-o...

theptip5 hours ago

It’s a good idea to have Claude write down the execution plan (including todos). Or you can use something like Linear / GH Issues to track the big items. Then small/tactical todos are what you track in session todos.

This approach means you can just kill the session and restart if you hit limits.

(If you hit context limits you probably also want to look into sub-agents to help prevent context bloat. For example any time you are running and debugging unit tests, it’s usually best to start with a subagent to handle the easy errors. )

kcoddington8 hours ago

Either have Claude /compact or have it output things to a file it can read in on the next session. That file would be a summary of progress for work on a spec or something similar. Also good to prime it again with the Readme or any other higher level context

pbhjpbhj8 hours ago

It feels like one could produce a digest of the context that works very similarly but fits in the available context window - not just by getting the LLM to use succinct language, but also mathematically; like reducing a sparse matrix.

There might be an input that would produce that sort of effect, perhaps it looks like nonsense (like reading zipped data) but when the LLM attempts to do interactive in it the outcome is close to consuming the context?

docjay5 hours ago

``` §CONV_DIGEST§ T1:usr_query@llm-ctx-compression→math-analog(sparse-matrix|zip)?token-seq→nonsense-input→semantic-equiv-output? T2:rsp@asymmetry_problem:compress≠decompress|llm=predict¬decode→no-bijective-map|soft-prompts∈embedding-space¬token-space+require-training|gisting(ICAE)=aux-model-compress→memory-tokens|token-compress-fails:nonlinear-distributed-mapping+syntax-semantic-entanglement|works≈lossy-semantic-distill@task-specific+finetune=collapse-instruction→weights §T3:usr→design-full-python-impl§ T4:arch_blueprint→ DIR:src/context_compressor/{core/(base|result|pipeline)|compressors/(extractive|abstractive|semantic|entity_graph|soft_prompt|gisting|hybrid)|embeddings/(providers|clustering)|evaluation/(metrics|task_performance|benchmark)|models/(base|openai|anthropic|local)|utils/(tokenization|text_processing|config)} CLASSES:CompressionMethod=Enum(EXTRACTIVE|ABSTRACTIVE|SEMANTIC_CLUSTERING|ENTITY_GRAPH|SOFT_PROMPT|GISTING|HYBRID)|CompressionResult@(original_text+compressed_text+original_tokens+compressed_tokens+method+compression_ratio+metadata+soft_vectors?)|TokenCounter=Protocol(count|truncate_to_limit)|EmbeddingProvider=Protocol(embed|embed_single)|LLMBackend=Protocol(generate|get_token_limit)|ContextCompressor=ABC(token_counter+target_ratio=0.25+min_tokens=50+max_tokens?→compress:abstract)|TrainableCompressor(ContextCompressor)+(train+save+load) COMPRESSORS:extractive→(TextRank|MMR|LeadSentence)|abstractive→(LLMSummary|ChainOfDensity|HierarchicalSummary)|semantic→(ClusterCentroid|SemanticChunk|DiversityMaximizer)|entity→(EntityRelation|FactList)|soft→(SoftPrompt|PromptTuning)|gist→(GistToken|Autoencoder)|hybrid→(Cascade|Ensemble|Adaptive) EVAL:EvaluationResult@(compression_ratio+token_reduction+embedding_similarity+entailment_score+entity_recall+fact_recall+keyword_overlap+qa_accuracy?+reconstruction_bleu?)→composite_score(weights)|CompressionEvaluator(embedding_provider+llm?+nli?)→evaluate|compare_methods PIPELINE:CompressionPipeline(steps:list[Compressor])→sequential-apply|AdaptiveRouter(compressors:dict+classifier?)→content-based-routing DEPS:numpy|torch|transformers|sentence-transformers|tiktoken|networkx|sklearn|spacy|openai|anthropic|pandas|pydantic+optional(accelerate|peft|datasets|sacrebleu|rouge-score) ```

AlexMoffat7 hours ago

I ask it to write a markdown file describing how it should go about performing the task. Then have it read the file next time. Works well for things like creating tests for controller methods where there is a procedure it should follow that was probably developed over a session with several prompts and feedback on its output.

d4rkp4ttern4 hours ago

Yes you can literally just ask Claude Code to create a status line showing context usage. I had it make this colored progress bar of context usage, changing thru green, yellow, orange, red as context fills up. Instructions to install:

https://github.com/pchalasani/claude-code-tools?tab=readme-o...

neilfrndes8 hours ago

Claude code has a /context command.

MattGaiser8 hours ago

/context

margorczynski4 hours ago

I think something like Civilization would be better because:

1) The map is a grid

2) Turn based

maxall41 hour ago

> In this article we'll tell you why we decided to put Claude Code into RollerCoaster Tycoon, and what lessons it taught us about B2B SaaS.

What is this? A LinkedIn post?

TaupeRanger7 hours ago

I corroborate that spatial reasoning is a challenge still. In this case, it's the complexity of the game world, but anyone who has used Codex/Claude with complex UIs in CSS or a native UI library will recognize the shortcomings fairly quickly.

phreeza7 hours ago

Claude Code in dwarf fortress would be wild

__turbobrew__6 hours ago

Given dwarf fortress has an ASCII interface it may actually be a lot easier to set up claude to work with it. Also, a lot of the challenges of dwarf fortress is just knowing all the different mechanics and how they work which is something claude should be good at.

vunderba1 hour ago

And it’s (Claude) almost certainly accumulated a fair amount of knowledge about the game itself, given the number of tutorials, guides, and other resources that have been written about DF over the last two decades.

ddtaylor2 hours ago

Does this website do anything besides host the article with an animated background?

haunter8 hours ago

This is what I want but for PoE/PoE2 builds. I always get a headache just looking at the passive tree https://poe.ninja/poe2/passive-skill-tree

kinduff6 hours ago

It's been several times that I see ASCII being used initially for these kinds of problems. I think it's because its counter-intuitive, in the sense that for us humans ASCII is text but we tend to forget spacial awareness.

I find this very interesting of us humans interacting with AIs.

khoury10 hours ago

Can't wait for someone to let Claude control a runescape character from scratch

itsgrimetime6 hours ago

I've done this! Given the right interface I was surprised at how well it did. Prompted it "You're controlling a character in Old School RuneScape, come up with a goal for yourself, and don't stop working on it until you've achieved it". It decided to fish for and cook 100 lobsters, and it did it pretty much flawlessly!

Biggest downside was it's inability to see (literally), getting lists of interact-able game objects, NPCs, etc was fine when it decided to do something that didn't require any real-time input. Sailing, or anything that required it to react to what's on screen was pretty much impossible without more tooling to manage the reacting part for it (e.g. tool to navigate automatically to some location).

ASpring8 hours ago

People have been botting on Runescape since the early 2000s. Obviously not quite at the Claude level :). The botting forums were a group of very active and welcoming communities. This is actually what led me to Java programming and computer science more broadly--I wrote custom scripts for my characters.

I still have some parts of the old Rei-net forum archived on an external somewhere.

ideashower8 hours ago

Wouldn't that break Jagex's TOS though? Is there a way of getting caught?

AstroBen8 hours ago

I imagine Jagex must be up there with having the most sophisticated bot detection out of anyone. Its been a thing for decades

dpc0505055 hours ago

They detect bots but let a ton of them run free because any character having membership = revenue and an extremely significant chunk of active characters are bots. They nuked them all in 2011 I think and the game was nearly empty.

SirPugger's youtube channel has loads of videos monitoring various bot farms.

equinumerous8 hours ago

This is a cool idea. I wanted to do something like this by adding a Lua API to OpenRCT2 that allows you to manipulate and inspect the game world. Then, you could either provide an LLM agent the ability to write and run scripts in the game, or program a more classic AI using the Lua API. This AI would probably perform much better than an LLM - but an interesting experiment nonetheless to see how a language model can fare in a task it was not trained to do.

equinumerous8 hours ago

As far as a scripting API, it looks like the devs beat me to it with a JS/TS plugin system: https://github.com/OpenRCT2/OpenRCT2/blob/develop/distributi...

petcat3 hours ago

Question: There is still a competitive AoE2 community. Will that be destroyed by AI?

pbmonster3 hours ago

Dota 2 is a real time strategy game with an arguably more complex micro game (but a far simpler macro game than AoE2, but that's far easier for an AI to master), and OpenAI Five completely destroyed the reigning champions. In 2019. Perfect coordination between units, superhuman mechanical skill, perfect consistency.

I see no reason why AoE2 would be any different.

Worth noting that openAI Five was mostly deep reinforcement learning and massive distributed training, it didn't use image to text and an LLM for reasoning about what it sees to make its "decisions". But that wouldn't be a good way to do an AI like that anyway.

Oh, and humans still play Dota. It's still a highly competitive community. So that wasn't destroyed at all, most teams now use AI to study tactics and strategy.

js4ever7 hours ago

Most interesting phrase: "Keeping all four agents busy took a lot of mental bandwidth."

mentos9 hours ago

The opening paragraph I thought was the agent prompt haha

> The park rating is climbing. Your flagship coaster is printing money. Guests are happy, for now. But you know what's coming: the inevitable cascade of breakdowns, the trash piling up by the exits, the queue times spiraling out of control.

neom8 hours ago

Wonder how it would do with Myst.

alt2277 hours ago

Surely it must have digested plenty of walkthroughs for any game?

A linear puzzle game like that I would just expect the ai to fly through first time, considering it has probably read 30 years of guides and walkthroughs.

singpolyma36 hours ago

The real test would be to try it on a new game of the same style and complexity

ben_w4 hours ago

Moravec's paradox likely comes in to play, what's easy is hard and vice versa.

The puzzles would probably be easy. Myst's puzzles are basically IQ tests, and LLMs ace traditional IQ tests: https://trackingai.org/home

On the other hand, navigating the environment, I think the models may fail spectacularly. From what we've seen from Claude Plays Pokemon, it would get in weird loops and try to interact with non-interactive elements of the environment.

fuzzy_lumpkins4 hours ago

so the janitors will finally stay on their assigned footpaths?

sriram_sun8 hours ago

> "Where Claude excels:"

Am I reading a Claude generated summary here?

afro885 hours ago

Yes I believe so. Also things like forcing a "key insight" summary after the excels vs struggles section.

I would take any descriptions like "comprehensive", "sophisticated" etc with a massive grain of salt. But the nuts and bolts of how it was done should be accurate.

alt2277 hours ago

I thought it sounded more like an ad for Claude written by Anthropic:

> "This was surprising, but fits with Claude's playful personality and flexible disposition."

vidarh7 hours ago

This sounds as expected to me as a heavy user of Opus. Claude absolutely has a "personality" that is a lot less formal and more willing to "play along" with more creative tasks than Codex. If you want an agent that's prepared to just jump in, it's a plus. If you want an agent that will be careful, considered and plan things out meticulously, it's not always so great - I feel that when you want Claude to do reptitive, tedious tasks, you need to do more work to prevent it from getting "bored" and try to take shortcuts or find something else to do, for example.

alt2276 hours ago

> when you want Claude to do reptitive, tedious tasks, you need to do more work to prevent it from getting "bored"

Is this sentance seriously about a computer? Have we gone so far that computers wont just do what we tell them to anymore?

_s3 hours ago

Yup - most models ignore specific initial instructions once you pass ~50% of usable context window, and revert to their defaults eg generating overtly descriptive yet useless docs / summaries

colesantiago4 hours ago

> We don't know any C++ at all, and we vibe-coded the entire project over a few weeks.

And these are the same people that put countless engineers through gauntlets of bizarre interview questions and exotic puzzles to hire engineers.

But when it comes to C++ just vibe it obviously.

falloutx4 hours ago

Oh, I almost didn't realise this is done by a company. I was like this must have costed a lot, didn't realize its just an advertisement for ramp

skybrian9 hours ago

Would a way to take screenshots help? It seems to work for browser testing.

joshribakoff9 hours ago

I’ve been doing game development and it starts to hallucinate more rapidly when it doesn’t understand things like the direction it placing things or which way the camera is oriented

Gemini models are a little bit better about spatial reasoning, but we’re still not there yet because these models were not designed to do spatial reasoning they were designed to process text

In my development, I also use the ascii matrix technique.

kleene_op9 hours ago

Spatial awareness was also a huge limitation to Claude playing pokemon.

It really seems to me that the first AI company getting to implement "spatial awareness" vector tokens and integrating them neatly with the other conventional text, image and sound tokens will be reaping huge rewards. Some are already partnering with robot companies, it's only a matter of time before one of those gets there.

nszceta9 hours ago

This is also my experience with attempting to use Claude and GLM-4.7 with OpenSCAD. Horrible spatial reasoning abilities.

hypercube339 hours ago

I disagree. With opus I'll screenshot an app and draw all over it like a child with me paint and paste it into the chat - it seems to reasonably understand what I'm asking with my chicken scratch and dimensions.

As far as 3d I don't have experience however it could be quite awful at that

vunderba1 hour ago

Yeah at least for 2D, Opus 4.5 seems decent. It can struggle with finer details, so sometimes I’ll grab a highlighter tool in Photoshop and mark the points of interest.

miohtama9 hours ago

They would need a spatial reason or layout specific tool, to translate to English and back

falcor848 hours ago

I wonder if they could integrate a secondary "world model" trained/fine-tuned on Rollercoaster Tycoon to just do the layout reasoning, and have the main agent offload tasks to it.

rnmmrnm8 hours ago

this is cute but i imagined prompting the ai for a loop-di-loop roller coaster. If this could build complex ride it would be a game changer.

blibble8 hours ago

yeah I was expecting it to... do something in the game? like build a ride

not just make up bullshit about events

deadbabe5 hours ago

While this seems cool at first, it does not demonstrate superiority over a true custom built AI for rollercoaster tycoon.

It is a curiosity, good for headlines, but the takeaway is if you really need an actual good AI, you are still better off not using an LLM powered solution.

joshcsimmons8 hours ago

Interesting this is on the ramp.com domain? I'm surprised in this tech market they can pay devs to hack on Rollercoaster Tycoon. Maybe there's some crossover I'm missing but seems like a sweet gig honestly.

emeril6 hours ago

yeah really - ramp.com is a credit card/expense platform that surely loses money right now...

pretty heavy/slow javascript but pretty functional nonetheless...

ulf-777235 hours ago

This is brilliant SEO work, I doubt that they loose money with it. With 40h and some additional for the landingpage it might be an expensive link bait, but definitely worth it. Kudos!

If not for SEO, it’s building quite a good reputation for this company, they got a lot of open positions.

I’m a big fan of transport tycoon, used to play it for hours as a kid and with Open Transport Tycoon it also might have been a good choice, but maybe not B2C?

HelloUsername10 hours ago

*OpenRCT2

azhenley9 hours ago

Edit: HN's auto-resubmit in action, ignore.

Bluescreenbuddy9 hours ago

What

eterm9 hours ago

So, this link is actually 5 days old, if you hover the "2 hours ago" you'll see the date 5 days ago.

HN second-chance pool shenanigans.

alt2277 hours ago

Can you point to any documentation which explains how this works?

Genuinely interested.

azhenley7 hours ago

Dang gave some explanation here: https://news.ycombinator.com/item?id=26998308

sodafountan8 hours ago

This was an interesting application of AI, but I don't really think this is what LLMs excel at. Correct me if I'm wrong.

It was interesting that the poster vibe-coded (I'm assuming) the CTL from scratch; Claude was probably pretty good at doing that, and that task could likely have been completed in an afternoon.

Pairing the CTL with the CLI makes sense, as that's the only way to gain feedback from the game. Claude can't easily do spatial recognition (yet).

A project like this would entirely depend on the game being open source. I've seen some very impressive applications of AI online with closed-source games and entire algorithms dedicated to visual reasoning.

I'm still trying to figure out how this guy: https://www.youtube.com/watch?v=Doec5gxhT_U

Was able to have AI learn to play Mario Kart nearly perfectly. I find his work to be very impressive.

I guess because RCT2 is more data-driven than visually challenging, this solution works well, but having an LLM try to play a racing game sounds like it would be disastrous.

tadfisher7 hours ago

Not sure if you clocked this, but the Mario Kart AI is not an LLM. It's a randomized neural net that was trained with reinforcement learning. Apologies if I misread.

sodafountan6 hours ago

Yeah, that was the point of my post. LLMs traditionally aren't used in gaming like this.

nacozarina5 days ago

next up: Crusader Kings III

Deukhoofd9 hours ago

Crusader Kings is a franchise I really could see LLMs shine. One of the current main criticisms on the game is that there's a lack of events, and that they often don't really feel relevant to your character.

An LLM could potentially make events far more aimed at your character, and could actually respond to things happening in the world far more than what the game currently does. It could really create some cool emerging gameplay.

Braini8 hours ago

In general you are right, I expect something like this to appear in the future and it would be cool.

But isn't the criticism rather that there are too many (as you say repetitive, not relevant) events - its not like there are cool stories emerging from the underlying game mechanics anymore ("grand strategy") but players have to click through these boring predetermined events again and again.

Deukhoofd7 hours ago

You get too many events, but there aren't actually that many different events written, so you repeat the same ones over and over again. Eventually it just turns into the player clicking on the 'optimal' choice without actually reading the event.

programd5 hours ago

You could mod the game with more varied events, which were of course AI generated to begin with. Bit of an inception scenario where AI plays an AI modded game.

The other option is to have an AI play another AI which is working as an antagonist, trying to make the player fail. More global plagues! More scheming underlings! More questionable choices for relaxation! Bit of an arms race there.

Honestly I prefer Crusader Kings II if for no other reason that the UI is just so brilliantly insanely obtuse while also being very good looking.

mcphage10 hours ago

> You’re right, I did accidentally slaughter all the residents of Béziers. I won’t do that again. But I think that you’ll find God knows his own.

Forgeties799 hours ago

Paradox future hire right here

huflungdung9 hours ago

[dead]

Kapura7 hours ago

"i vibe coded a thing to play video games for me"

i enjoy playing video games my own self. separately, i enjoy writing code for video games. i don't need ai for either of these things.

gordonhart7 hours ago

Yeah, but can you use your enjoyment of video games as marketing material to justify a $32B valuation?

falloutx4 hours ago

If you look at submissions from this website, its all just self glazing and "We did X with claude code"

yawnr3 hours ago

Haha exactly. This screams “we have too many people working here and don’t know what to do with them”.

Jaysobel7 hours ago

actually it was all to drive traffic to my 'rollercoaster coasters' Etsy store

https://bansostudio.etsy.com

TaupeRanger7 hours ago

^ this guy funds

SV_BubbleTime7 hours ago

Not so sure. He said justify.

rangestransform7 hours ago

I actually think it would be pretty fun to code something to play video games for me, it has a lot of overlap with robotics. Separately, I learned about assembly from cheat engine when I was a kid.

markbao5 hours ago

That’s not the point of this. This was an exercise to measure the strengths and weaknesses of current LLMs in operating a company and managing operations, and the video game was just the simulation engine.

bigyabai7 hours ago

That's fine. Tool-assisted speedruns long predate LLMs and they're boring as hell: https://youtu.be/W-MrhVPEqRo

It's still a neat perspective on how to optimize for super-specific constraints.

ai_3 hours ago

That TAS is spliced. The stairs beyond the door aren't loaded, you need the key to load it.

This is a real console 0-star TAS: https://youtu.be/iUt840BUOYA

throwaway3141554 hours ago

> Tool-assisted speedruns long predate LLMs and they're boring as hell

You and I have _very_ different definitions for the word boring. A lot of effort goes into TAS runs.

jsbisviewtiful7 hours ago

AI for the sake of AI. Feels like a lot of the internet right now

echelon7 hours ago

You do you. I find this exceedingly cool and I think it's a fun new thing to do.

It's kind of like how people started watching Let's Plays and that turned into Twitch.

One of the coolest things recently is VTubers in mocap suits using AI performers to do single person improv performances with. It's wild and cool as hell. A single performer creating a vast fantasy world full of characters.

LLMs and agents playing Pokemon and StarCraft? Also a ton of fun.

idioticwurds2 hours ago

This is the dumbest, most AI-laden nonsense I've read today.

I'm glad I have cancer and don't have long left with idiots like you praising regurgitative garbage. There is nothing left for humanity with your non-existent imagination and attention span. Just watch TikTok and drink slug, "human"

echelon2 hours ago

AI is one of the best tool categories we've invented. I don't know why people are so pearl-clutchy, fisting-at-clouds about it.

Some of the worst human behavior I've experienced outside of grade school is the anti-AI crowd sending me death threats and endless streams of insults. It's surreal how twisted and vile the words that some anti-AI people throw are.

This is the fifth technological wave, after the chip, PC, internet, and smartphone.

All of human programming cannot do what AI is already showing signs of being capable of automating. Our image and video models can render things even 80 years of optical physics and algorithms cannot do.

I am legitimately excited in a way I never have been before. We're lucky to be able to witness this.

Sorry for your cancer.