6,443 karma · joined December 16, 2012
http://armchair.dashtel.ca/~jimm
Being able to shoot the other player is a minor quibble for this kind of web minigame. It's still fun and interesting.
I have heard ultra thinking might delegate to worse agents for some of its sub-tasks, but I don't use that much anymore since Astra came out. Just high seems good enough to throw most laundry lists at.
And our brains must something like that at some physical level. You can't have a "turtles all the way down" of reasoning - the building blocks must be simpler. It must reduce to something like pathfinding and brute force at some point, weighted by factors in the system and maybe some randomness.
Predicting the time a task will take is impossible. Something that sounds like a 5 minute script can turn into a month of banging your head against unknown unknowns. I lose my patience when the afternoon I allocated is getting overrun by nonsense and I'm missing out on other things I wanted to do or household maintenance.
> Our ignorance isn't random chance. As we research and experiment, we reduce the problem area.
Every thought we have has random chance to be wrong despite our conviction that it's correct. Descartes' Evil Demon plays his tricks on all of us. How many times have you typed some line of code only to realize it was obviously wrong afterwards? Even for simpler matters we "hallucinate" all the time. I was deep in thought trying to help someone come up with an acronym the other day and felt convicted that "Goal Oriented Augmented Retrieval" worked for GOAL until I said it aloud.
Our thoughts and actions are consistently wrong some portion of the time because our meat computers are not perfect positronic brains running prolog. We put cereal in the fridge and say "you too" to the waiter. Every thought we put down or action we take is a gamble on the soundness of the thought or action.
I got so sick of all this at some point that I slowly stopped doing anything that wasn't my job. But then AI got better and better and I realized it was the ultimate unblocker. When that dreaded malaise started creeping in signaling it was a project's end because I didn't want to waste any more of my life dealing with bullshit orthogonal to what I was trying to do, I'd give it to the AI. It felt like a miracle the first time this worked, and it still does. If we were previously equipped with shovels to dig through bullshit, we now have a fully automated Bagger 288.
The reward schedule now isn't variable anymore; the chance that I finish something in a good state is 100%. I can focus on the parts I actually enjoy - architecting the broader system, making the parts mesh together in a sensible way that's easy to work with and has some mathematical elegance to it, hand coding the bits I want to be really specific about (but now without the endless frustration of bugfixing or import errors and edgecases being immediately discovered, thanks to the AI).
Non est salvatori salvator,
neque defensori dominus,
nec pater nec mater,
nihil supernum.
Translated: No rescuer hath the rescuer.
No Lord hath the champion,
no mother and no father,
only nothingness above.
- Eliezer YudkowskyI find this one profound, and it's given me a lot to think about over the years - in situations ranging from asking what our place in the universe is, to doing the "right thing" (and deciding what "the right thing" even means to yourself), or standing at the helm of some team or project, knowing that judgement call is yours alone and there's no authority or higher power coming to swoop in and give you the answer or authoritatively judge your decision can be simultaneously liberating and terrifying. The use of repetition works incredibly well in my opinion and it still gives me chills to read it.
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.
If I had to pin a subjective experience to reading it, it would be that of being stuck in a car as a teenager with a parent who's ranting about whatever set them off that day and won't move on from repeating their grievance in different words when you got the point five minutes ago. In contrast, the second feels like having an enjoyable and productive level-headed conversation with someone who respects you and trusts you to understand the words.