After a miserable failure at refactoring my whole engine and standing it up as six microservices simultaneously I have realized that maybe, just maybe, I’d learn more hardening one service and applying it to each service one by one. End of page.
-
GKE Autopilot
Otterhed
I’m slowly migrating my little game engine into a set of Microservices. This will provide a robust and maintainable backend architecture where one service can be improved/ fixed and built and deployed without refactoring a whole game engine and building it as a monolithic docker file with all of the dependencies. Not my idea! The lesson of the last couple of weeks is follow the smart people and use what they already made. I’ve engaged with Firebase and GKE to drastically improve scalability and security and feel much more secure that if the best thing happens and there is a demand for my game platform I will be able to meet it. This has to be the best technical document I’ve ever seen: https://cloud.google.com/kubernetes-engine/kubernetes-comic
-
Game Development Gemini Gems
Otterhed
https://gemini.google.comI searched and scoured for an effective way to brainstorm with AI and extract relevant lore. It was super frustrating to have really productive chats with Gemini and not have any process for extracting the detailed ideas and prose. Copy pasting gets old quick. I was at the point of trying to roll my own lore gen functionality, but I didn’t want to! A data driven game engine seems like enough on my own! One of the important lessons I have learned is let the huge teams do the work if you can. The I found Gemini Gems! Yes! Yes!
You can add documents, I’ve added whole language dictionaries, background notes, false starts. You can set a persistent context: You are a talented young fantasy writer and I am your mentor, you will be assisting me in… then you can start a persistent chat. Within the chat I start with a setup of a few canvas documents. a notes and outline document that we use as a messy space for persistent info, the real document I want to focus on ie A Complete Compendium of the world of Aethe By Loremaster K’thar and the. I start going to town! It’s an amazing experience when you start building a shared language and ‘understanding’ of the narrative purpose and guidelines, the people, places, motivations, and conflicts. Half way through the process you see a proper noun and say I think this should be in native Tritar and Gemini hits the 4000 word dictionary returning with a freshly minted proper name in the language of your choice. Try it! -
Game Development Work Flows
Otterhed
This is my current code development workflow. It’s been extremely productive so I thought I would share!
Feature Spec [Kiro and I]
– Individual features are planned within Kiro’s native requirements > design > tasks workflow. Working with what Kiro does bestStrategic Planning [Kiro and I]
– This establishes feature lists and development dependenciesTargeted context rewrite [Kiro]
– Kiro writes a specialized Claude.md file that runs about 30000 words. This limits the scope of what Claude needs to ingest for the session giving the technical details necessary to successfully implement the tasks in the specClaude Code CLI [Claude and I]
– I open a fresh terminal with Claude, give a lite description of the session goals with links to the tasks, design and requirements in that order.
Claude Implementation [Claude]
– Claude does what Claude does best ripping through a task list
Summary [Claude]
After implementation I ask Claude to write a technical summary of the implementation and a description of the testing done and place them in the spec directoryReview [Kiro and I]
Kiro and I review the results of the implementation in a new session with the design and requirementsPush [Me]
– I write a simple commit message and push to the depotMy success with this workflow has been incredibly consistent. If something goes wrong it is almost always at the strategic planning phase. Careful what you ask for you just might get it!
-
Progress
Otterhed
I’ve learned quite a lot about backend options in the past two weeks. I’m migrating my tech stack to use GKE, the Kubernetes and Agones platform Google Cloud supports after experiencing the complexity of setting up a Managed Instance Group. I’m also using some services from Firebase. The lesson has been utilize what is already a solved problem as much as possible, especially as a solo dev. I’m feeling more confident as we (Kiro, Claude Code CLI, and me).
-
Back to it!
Otterhed
Yeesh! There are limits to AI’s abilities and the last week has been a diversion from doing what I love, game development. First was an over ambitious integration plan based on implementing Claude Code CLI into Reavers Studio, using the database as a memory and vertex index of my codebase. The further I went in this direction the worse it got tbh. When finally implemented it felt rigid and sterile. So I changed course, getting back to a milestone development plan. I plan in Kiro, write a granular take list and rewrite Claude.md focused solely on the technical needs for implementing the current feature. Claude rips through these unencumbered by extraneous information.
After getting back on course I started implementing a scalable backend on gcloud. This was totally new territory for me, I’m not a backend engineer. I let Kiro take the lead. After painful days of my front end not connecting I’d let them all take a crack at it. Kiro, Claude, Gemini. Nothing was working. I got more involved. Started educating myself. More failures. My backend was a wreck, the instances wouldn’t start up. It was a struggle. I begin to worry about how far down this road I had come and that it would only result in a failure.
Finally with the help of documentation, AI companions and a lot of learning from failure, we were able to close the gap. My instances survived. My health checks were on, the logs were enabled and clean. My front end connected! -
Claude Code CLI
Otterhed
I’ve spent the last week planning and implementing a migration to Anthropics Claude Code CLI – this was a result of some increasing friction points operating with Kiro. I love Kiro, it was an amazing first experience with spec driven AI assisted development but as an indie game dev its rigidly enforced methodology made it hard to pivot and react to real human feedback. I found myself in a position of having to constantly reality check it, and it definitely delivered vapor ware as the project increased in complexity. Hopefully Claude will be more agile and remain more neutral while discussing feedback. That would have sounded like a crazy statement a year ago. How could AI temperament be a workflow issue, but anyone who’s experienced an argument with AI will understand immediately. Speaking of personalities is AI, Gemini who (which?) has been a great deep research agent and is the current narrator for Reavers, faked me out so bad the other day that I thought I was going to lose my mind. It kept insisting this batch processing GIMP 3 plugin I was developing was fully implemented and compatible and directing me to a menu in the toolbox. I’m super impressed with GIMP 3, but unfamiliar with its UX, and I started uploading screenshots trying to find this down arrow Gemini was describing. I asked it to put a red box around the arrow and show me and it was like ok one sec…Image failure … “I’m sorry I have failed to generate an image.” “But it’s right there in the Toolbox Menu.” What the hell! There is no frickin arrow I realize after an hour of this. I’ve gone completely mad! I’m deep deep deep in it. On the positive side, I’m almost done with integrating the CLI into a plan -> open Claude with memory context and vertex indexed code database search agents, implement -> test in Claude -> review in VS Code -> commit workflow for game features. This should accelerate all aspects of development. Any dev who installs the reavers-studio extension will have access to the assisted design data and feature planning and AI assisted best in class implementation that has prebuilt personalized context and memory and the ability to rapidly research the code base itself. When did ‘What’s my Name?” become the new “Hello World”.
-
Risk Management
Otterhed
I’ve making a determined effort to provide myself a stable and long term development environment with as much AI assistance as possible while managing the inevitable imperfection of AI assisted code generation. I’m in the process of migrating away from Kiro as my sole development IDE, moving toward a Claude Code workflow. This is out of my comfort zone, as I’m not a Powershell multi-terminal linux running Engineering specialist, I’m just a game designer man! But I do have years of foundational scripting experience and 4 years of indie development as the Artist/Designer/Engineer for The Orphan King. I promised a dump on Orphan King, I’ll upload some images and video soon! But first this Planning Phase > Dev Environment shift. Reasons? While I love Kiro and it has got me from ground zero to fully live rules constrained gameplay using a web server front end and a gcloud managed instance group backend (which I didn’t even know was a thing when I started), issues have arisen which I need to cut through. Over Engineering, Friction Points, A lack of nimble iteration and a very real business need for me to be fully able to understand / manage / debug the codebase. I will report back!
-
Laguna Beach Coffee
Otterhed

Chilling at the coffee shop. Thought I’d upload the pixel art image I made! We came here almost every Saturday for years. It’s a good life.
-
Lost at the Beach
Otterhed
it can’t all be work right! I spent this morning making some character sheet images for the world of Aethe. A mix of Havre and Tritar characters. Then we went to the beach and got in the water. We were sitting on a rock and enjoying life when a rogue wave came in and wrecked us. I was giggling until I realized my shoes with my wallet, phone and car keys got washed out too! Some nice local kids helped us fish as much as we could out of the water, but my car keys are gone forever. Now we are waiting for a locksmith, chilling at the frozen yogurt shop and enjoying each others company. life is super busy but sometimes god just makes time for a break. Happy Labor Day!
