Home Artists Posts Import Register

Downloads

Content

For a long time I've toyed with the idea of having a bot that plays Cogmind, just for fun, and especially in recent months I've thought of the idea more and more often, even coming close to starting implementation a couple times now.

The second such time was last night, though I stopped myself short because I really shouldn't be getting into another project like this just yet. But the first time, a few weeks ago, I also took some notes about the fundamentals of such a system, and thought I'd share the updated version here after having added a few points again yesterday.

It'd be a huge job to get this bot's performance on par with a decent player, but I thought it could be fun even if we just had a dumb bot that you could watch play and see what it does, perhaps one day even providing some sort of indirect input, or allowing the player partial control for X number of actions before the AI takes over for X actions, and you try to survive that way :)

Anyway, notes are attached if you want to see what I jotted down! It's in the same format as all my notes, just outline-style lists.

Comments

Lee

Oh man, the thought of the AI suddenly getting control for 500 turns, then you get it back for 500, and so on is amazing. I want this to happen. I know you can't do it right now since you gotta finish cogmind first, but, it would really be a neat game mode. AI be like "WE NEED TO RUN" and tries to escape and your like "Look, you dult, we gotta shoot it and kill it!" AI:"But we only have 150 core!" Player "RNG!!! We can do this, we just need a little luck!" Edit: You could use deep learning and the score database to get a headstart on getting the AI to at least kinda of figure things out. Or implement some code that records players moves and actions the entire run, and once you have enough data, give it some CPU time and let her crunch.

Kyzrati

Heh, glad you like the idea of an AI+player mode, just came up with that more recently as a possible excuse to put time into making this a special game mode, possibly for an event (otherwise it can be hard to justify side projects that don't really contribute to development). Training an AI and drawing on the score database would be a crazy huge project, though! That'd be beyond the scope of a feature like this since that alone would take so many months of dedicated work. Still, even just a stupid AI that can actually interact with parts is already quite interesting and fun. I strongly considered having one of these in POLYBOT-7 (the other polybots!), but realized there'd be no time to develop it.

Qingyao Sun

What about an interface which empowers players to write their own Cogmind AI? You can save a lot of time on implementing an AI, and we will have much more fun thanks to the extensibility. The idea is, players write some decision-making program, which the game will feed the environment to and receive input from via TCP (so that it's language-agnostic, efficient, and even allows the said program to reside on some powerful remote server). The trickiest part is probably how to represent the environment in a headless way, but for the starter you can just serialize the C++ data structure?

Kyzrati

Yup I totally considered that as a possibility, too, although I think it might just end up being a bunch of work for something that even fewer people would get to interact with, only those with both the time *and* know-how to do that sort of thing, as opposed to an AI that everyone could interact with. Of course if other people can make something and share it around then yeah that sorta works (albeit likely with less exposure). Anyway, I did think about it but I don't really like the idea right now since I don't have a clear view of what, if anything, would come of it, as opposed to something I'm personally working on. I mean I could spend time on the system and then crickets xD