Remix.run Logo
jimmaswell an hour ago

I find this and the parent comment highly relatable with the caveat that I also find it extremely intuitive and rewarding to get good outputs from quality LLM's like Sol or Astra, and I haven't had any trouble with "flow state".

One of the most rewarding things for me is figuring out a good shape for a system and how it would interoperate with the other systems, especially in a way that reframes other parts of the codebase in a way that bring clarity and makes it more intuitive to work with. Creating the right ontologies can make all the difference in what you can do with a project. It's a form of creating mathematical objects.

For example, a Unity game I work on has quest and dialog systems driven by visual scripting graphs. We had two way dialog with different units for player response choices and npc dialog. But we wanted to expand to letting NPC's have dialog with each other as well as conversations with more than two participants. I went outside and thought it over, which largely amounted to visualizing a dialog node graph and a feeling in the back of my mind like it was trying to perform a kind of geometric shape-fitting exercise. A fitment solution jumped out at me to have only one "Dialog" node shared by all participants, with a "participant" value on it. If the player parses this node then the options go on-screen as responses, while if an NPC parses this node with multiple options in it, it picks one. And this lets you voice the player if you want, and enables some things like overhearing other NPC's talk to an NPC then talking to that NPC yourself and having the same tree.

And for quests, the quests had just been for the player, but I was thinking about how to make scripted events in-game easiest to work with for script team who primarily works in visual scripting. Similar story - let the NPC's have their own little quests, with task stages, which are easy to track and make branching choices from, and let the NPC's definition for how to use that quest contain a collection of actions to override the typical actions available to it, so an NPC in a specific "quest" can't do things you don't want it to do, a common enough case that it's preferable to making a series of conditions on the general action planner like "not in quest A"

And timing myself, it took 1-2 hours each time to write out the detailed plan for how I wanted each thing implemented in the game with some other tasks thrown in, and it paid off after Astra worked on it until it was done. It was awesome coming back to something pretty much exactly what I asked for each time.