Documentation Job
I got hired again through the same consulting group to do some documentation work for accounting software. I know what you are thinking "OMG that sucks", but really it's not that bad. I get to work with some great people, use documentation muscles I don't often get to flex, and I get a paycheck. It's only for a few months, but it's also good experience as I find my feet in the professional world.
I'm at GDC
Being the great group that they are, the people I'm working for let me take this week to go to GDC since I already had my ticket. I had a great time at the AI summit on Monday and Tuesday. As usual, it made me feel stupid about some things, and clever about others. It's always nice to learn something new and find out something I've always done is actually a really good thing to be doing that many people have failed to do in general. I've also been working on a new type of AI system and had the chance to talk about it a little bit with some of the seasoned AI people. It sounds more and more like I am on to something big, but only time will tell. Hopefully they aren't just humoring me ;) On Friday I'll be having dinner with some AI people, so maybe I can get some more feedback then.
It's also been great to meet new people and reconnect with people I'd met in past years. I look forward to staying in contact with many of them, and I expect I'll be meeting many more before the week is out.
Since a lot of people at GDC are interested in the project and I'm nearly at the point where I can start to post pictures I'll start writing a little bit about it in my blog (see below).
Just a few quick shout outs (no worries I won't use names)...
... to the seasoned AAA pro getting into indie dev I met at the noodle shop, thanks for your advice.
... to the guy at the AI summit on Tuesday who heard watched me go hyper excited at a speaker and took me seriously about my AI project, thanks for your encouragement, don't forget to find me on linked in or facebook.
... to all the guys I had lunch with on Monday and Tuesday, thanks for hanging out, it was fun.
... to the guy I met in the hallway on Tuesday, good luck with your new job and have fun with Unity! I'll look for your book when it comes out.
...to the people interested in working with me some day, thank you it means a lot to hear that. I hope to be in a possition to work with more people soon.
... to everyone else I forgot to mention by description, thanks for making the first two days of the summit awesome.
Introducing My AI "Giant Leap" Project (I'm stealing the giant leap terminology from the AI summit)
In the meantime, I've been working on an AI project on the side that looks more promising the further it progresses. I'm past most of the rapid prototyping and into building a really solid piece, although I'd still call it a bit of a prototype since it could likely be further optimized and brought into other languages (or even physical circuits) later by specialists (or me after some further research on the subject). Really it's acting as it's own design doc (along with some formal documentation that I am writing as I go... and a huge pile of my eccentric notes no one wants to see).
I've found that the thing is so abstract in nature that much of it does not translate well to English alone. It really needs the working system in place (along with helper tools that display the system in human friendly ways). In addition, it actually has a lot of documentation embedded in it. This isn't just handy commented code. The system builds a design document of how it works on demand (which is time consuming to make, but so worth it). The reason for this is at the core of the thing is a self altering genetic system, not just one algorithm, a whole system. It can literally rewrite nearly all of it'self. Plus, one goal for it is giving programmers the power to write new modules that will get sucked into the system and converted into the genetics format automatically. Basically giving an instant super powerful genetics system to any type of object you may want to find optimal parameters for.
This brings me to another point. This isn't some cheap simple genetics system, it's the result of my research into actual genetics (and a lot of rapid prototyping). Not many people are aware that in biology there are actually many many ways of storing genetic information. It goes far beyond just RNA and DNA. There are dozens of prokaryote kingdoms (think bacteria) and they are primarily separated by the fact that they encode genetic information in very different ways. Add to that viruses and some other weird "almost life-forms" and you have a lot of different biological "programming languages". On top of the little guys are eukaryote creatures, the best know of which are things like plants and animals. Even among the macroscopic life forms, DNA does not always work the same way.
It seems that some basic features are vital to a genetics system, and that is what you find in tradition digital DNA genetics algorithms However, there are also a number of features that appear to be highly desirable in a genetics system that are generally ignored in AI. I'm including these "best practices" from biology in this new system. Which, for the record, is being built with c#. I'm using Unity for the visual tools and the first developer tool set planned that uses the system will also be for unity.
Now I'd like to note that there is a lot more to this system than just the genetics, but I'll save that info for another day. You may also see some of this post repeated in my upcoming blog for the project. It is my hope that this project will help lead to some really big advances in AI in the future for many industries including but not limited to games. Perhaps some day it may be used in reaching human level cognition, but only time will tell.