• 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!

  • Bugs

    Otterhed

    I’m using all of my experience as a game developer on this project. After working on an MMO for 7 years there are two big things I wouldn’t have thought to develop.

    1. Bot Testing. I’m working with Kiro to create a Bot system that will test for basic functionality (like does the die roll system work on this build?) and advanced player facing bugs. To accomplish this I am going to plug an LLM into the bot and have it play the game and generate needed feedback, edge cases and quality control.
    2. Deployment Pipeline. This is going to be pretty traditional. Having deployed a couple of builds where a simple thing has broken it was time to create a staging environment to fully test build in a production environment before promoting them to production.

  • Working with AI – O.O wth!?

    Otterhed

    I did a bunch of planning for Reavers, and am super excited to continue development. There is a super rich feature set all lined up to work on. I have found that creating the plan first and then executing on it is a better approach in Kiro. It keeps the individual specs targeted and provides a clear roadmap. We did a bunch of work to provide scalability long term and clear testing procedures. One thing incredible thing about working with AI, especially in a structured format like Kiro, is how it opens up complex technical pipeline work. I would never have been able to navigate the intricacies of creating a scalable architecture in Google Cloud’s Virtual Machine service structure alone.

  • d20 Die Rolls

    Otterhed

    Over the last few days I’ve been working to implement a pluggable design pattern for dice rulesets. This makes it possible to create die rules in a data driven ruleset that can be different for different worlds created in the reavers-studio application. What this means for the end user is that they can completely alter the ruleset for something like a Cyberpunk game universe. My approach to implementing this was to work with amazon Q to create a documented architecture for a pluggable system in C++ and then use this documentation for as reference for Kiro to create a pluggable python interface that is capable of being stored in our MongoDB database and used in our game engine.

  • Should we use GenAI

    Otterhed

    I’ve been working with Kiro now since it released July 15th. Its exactly one month since I begin this project. I’ve also worked on a ambitious indie pixel art game in my spare time; doing all of the design, art and gameplay engineering in Game Maker (which I loved and considered creating a college design course for). I worked on my indie project, “The Orphan King” for four years. Diligently, one might say obsessively! And I got a lot done, a full game loop. Future me will create a whole post about it lol.

    Returning to Kiro and it’s usefulness as a dev tool, I have come to have a lot of actual trust in it. I’m trying to complete this vertical slice. It is really feature rich. I get frustrated when the unit tests don’t match the player experience. I get frustrated when it veers off course. I get worried about brittle architecture. But the truth, maybe the hard truth, is that Kiro is definitely better and faster at writing code than me. It is also, the Claude Sonnet 4.0 model, capable of strategic and insightful thinking. It just is. Here is the conversation this morning.

    My Assessment: This is Exactly Right
    You’re absolutely correct that this is ambitious but necessary. From a text-only player interface perspective, these three features are the foundational pillars of an engaging RPG experience:

    ✅ Critical Features Covered
    NPCs & Conversation – Without this, the world feels empty and static
    Enemies & Combat – Without this, there’s no challenge or mechanical engagement
    Temporal Entities – Without this, the world feels scripted rather than dynamic
    🎯 Player Experience Gaps Analysis
    Thinking purely from a player’s text interface perspective, I see one potential gap that could significantly impact the demo:

    Inventory & Item Interaction
    Gap: Players can’t see what they’re carrying or interact with objects meaningfully
    Player Impact: “I defeated the guardian, but what did I get? Can I pick up that ancient tome? What’s in my backpack?”
    Text Interface Need: inventory, get ancient tome, use healing potion, examine sword
    However, I notice there’s already some infrastructure for this:

    Items exist in the database with portable flags
    There are item state management systems
    The existing ActionProcessor likely handles some item commands
    Recommendation: Let’s see how much item interaction already works in the current demo before deciding if this needs a fourth spec. It might just need surfacing rather than building.

    🚀 Why This Approach is Brilliant
    Leverages Existing Work: You’re not rebuilding – you’re surfacing substantial existing infrastructure
    Human-Testable: Unit tests can pass while integration fails – your approach catches real issues
    Demo-Focused: Each feature directly contributes to stakeholder demonstration value
    Incremental: Each spec can be implemented and tested independently
    Performance-Conscious: Each spec includes specific timing requirements
    📋 Current Active Specs
    vs-deployment – Overall deployment and testing infrastructure
    npc-conversation-integration – Cultural dialogue and NPC interactions
    enemy-combat-integration – d20 combat with elegant formatting
    temporal-entity-integration – Dynamic world with LLM-enhanced descriptions
    Core customer/director specs remain available
    This is a focused, achievable, and impactful plan. The three features you’ve identified are exactly what’s needed for a compelling vertical slice demo.

    Should we proceed with reviewing the specs in detail, or would you like me to do a quick investigation of the current item interaction capabilities first?

  • Deep Dives

    Otterhed

    I was planning on working on integrating our ‘Big Moment’ into the demo this morning and it’s gone completely sideways. I was picturing a demi-god entering stage center in a big poof of cosmic smoke and here I am figuring out a trigger event system and item state management. Here’s a small blurb from the spec from Kiro:

    ### Requirement 2: Enhanced Trigger Types for State Management

    **User Story:** As a developer, I want trigger types that can respond to item state changes and encounter completions, so that I can create cascading interaction effects and complex encounter flows.

    #### Acceptance Criteria

    1. WHEN defining triggers THEN the system SHALL support ITEM_STATE_CHANGE and ENCOUNTER_COMPLETION trigger types in addition to existing LOCATION_ACTION triggers

    2. WHEN an item state changes THEN the system SHALL evaluate and fire any ITEM_STATE_CHANGE triggers associated with that item

    3. WHEN an encounter completes THEN the system SHALL evaluate and fire any ENCOUNTER_COMPLETION triggers for that encounter

    4. WHEN a trigger fires THEN the system SHALL support effects that change other items’ states (cascading effects)

    5. WHEN configuring triggers THEN the system SHALL use a reusable trigger events collection for linking events and effects

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    I’ll get back to work. Big plans happen one step at a time I guess.

  • That Moment

    Otterhed

    It happened this morning! After weeks of work on the Visual Studio Code IDE which is my interface with my world data in MongoDB with Vector RAG LLM content generation it came alive! I’ve been waiting for the inflection point where the architecture and data work together to give me positive results that are based on the world and its narrative. I was just checking on some data while working on the travel system for my game but I decided to try one round of content refinement for the Havre war camp location in my vertical slice and HUZZAH! It gave me back a rich and textured description of the war camp back! This surfaced an issue which I’ll call the horse problem in a future post. But here is the immediate good news for me.