Projects Jams Discord News
Resources
Unwind Fishbowls Forums
About
Manifesto Our values About
Log In

The Rabbit Hole

Steve Olsen September 19, 2016

This project may seem abandoned but I'm actually still working on it. I just am not really making any progress.

I got real time screen capture and input sending working pretty quickly but then it turned out that is not the hard part. I was planning to do a "pure" AI that would watch the screen to infer the gamestate but it's turning out that this is a very hard thing to do. I went down a computer vision rabbit hole for a while but there isn't really any good way to do this and I'd much rather spend my time writing the bot, not becoming a machine learning expert.

I'm currently trying to find different approaches like inspecting the game memory to infer where things are.

At some point I think I'll do a bot for HMH (once there is more of a game to play). Doing this for HMH is going to be wonderful because of the clear separation between platform and game, It'll be easy to just inject some code there than can inspect the screen, make decisions and send the input for the next frame

Read more

Screen Capture

Steve Olsen May 9, 2016

I've just pushed the first bits of code!

high speed screen capture on osx

I'm on osx so pretty much all of this code is osx specific platform layer stuff. I've written some code to hook into an osx api that you can pass a callback function that gets called every time the screen is updated and lets you access the framebuffer. It's not the greatest api, since you pass it a callback which it calls on one of it's own threads so communicating the data back to my main program required a threadsafe buffer. I built one using atomics but I don't have much experience doing that so if anybody wants to take a look and give any feedback that would be great.

Another small optimization that seems to speed things up a lot is that I take advantage of the fact that the game has pixel art and compress the data to be 1 actual pixel per logical art pixel. I'm not sure if this will work in all cases but vie

Read more

Hello World

Steve Olsen April 25, 2016

Aissac is a first experiment in writing programs that can play video games. The program should watch the screen and submit user input the same way that a human player would and not have any direct access to the game's internal state. It will be written from scratch in a handmade style with minimal libraries. This is definitely a program I do not know how to write so much of the experience will be learning and I hope to write about problems and solutions as they come up. I chose "The Binding of Isaac" as a first game because I understand how to play it well. It is not however a toy example but as a real time action game will hopefully hit many of the topics I wish to dig into such as AI/planning, constraint solving, control theory and machine vision all with the necessity of real time performance. Hopefully in the future we can expand into other games, 3d games, puzzle games, different genres, etc. And who knows, maybe the tech we develop will be useful in other areas for other

Read more