----
Resolving ... 192.168.2.103
Connecting to |192.168.2.103|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 630 [text/html]
Saving to: index.html
100%[>] 630 --.-K/s in 0s
(23.8 MB/s) - index.html saved [630/630]
[root@flag /]# date
Fri Dec 23 20:50:02 EST 2011
[root@flag /]# cat >
Another Year, Another Contest; Better but not Best
My Final Entry: Can be found here
My aichallenge Profile: With a List of all my Games
EDIT (Dec 26): I've added an introductory video with some visualizations of my ants strategy:
Much like it did last year, the Google AI Challenge has been keeping me extremely busy these past several months, but now that the finals have started and I've been reduced to just a spectator of the workings of my own code, I'd like to take some time to document what I did.
One of the best parts about doing this contest each year is trying to see how much I can improve from month to month and from contest to contest. When I first started Tron two years ago, I used it at a platform for learning C++ (which I had never used before), and writing my first recursive algorithm. My PlanetWars bot eventually scored a modest 91st out of 4700 total entries (I'm not sure what percentage of those were starter packs) a year later, and was one of my first reasonably large programs in which I discovered what AI programming was all about. Up to that point, I had been simply fine tuning heuristics and constants, but from trying to understand what others were doing I discovered that a good bot has to account for all possibilities and respond optimally rather than generally to situations.
With this knowledge, I entered Ants thinking that I may have a real chance at winning if I simply focused on writing code that made no compromises and no assumptions about enemy behavior. I chose to write my bot in C, mostly... (read more)GET(comments)POST
[root@flag /]# date
Wed Dec 1 19:57:07 EST 2010
[root@flag /]# cat >
91st out of 4600 at Google AI Contest
The PlanetWars Google AI challenge has concluded, and I've placed 91st out of 4600 entries (half of them admittedly being crashes or starter packs). Better than my ~150/700 entry that timed-out in the tron contest for sure, my only regret is that I didn't start looking for an "ultimate solution" bot earlier, one that took into account all the possiblities rather than just continuely refining heuristics like I did.
Here's a zip file containing my final entry: My Final EntryGET(comments)POST
[root@flag /]# date
Wed Jul 21 11:23:07 EDT 2010
[root@flag /]# cat >
Explaining My Packet Interceptor
A few years ago, I was an avid player of a PS2 game called Ratchet:Deadlocked. It wasn't the most popular game, small in size compared to the communities of large first person shooters, but it was faced-paced and exciting. The community was fairly dedicated, and some of the people who played in 06' still occasionally make it on in 10'.
Around the end of 09', I decided to check back online to see if anyone still played the game. While I was surprised to find that there were quite a few people still online, something else caught my attention. The top of the scoreboards was now filled with odd names, and their ranks showed stats that weren't even possible. While ranking points only went up to 10000, the scoreboard happily reported that the top ten players were maxed out at 999999. The names of the players were in different shades of black, green and purple; the game only allowed white.
Deadlocked is known well for its glitches. There are at least 50 ways to get on any roof, 5 ways to appear invisible, and 100 ways to cheat in any given game on any given map. This was not the work of glitches however. Although I later learned most of these hacks were done using custom CodeBreaker codes, I decided to come up with my own method of breaking Deadlocked.
Connecting...
Logically, I guessed that all data that changes based on the actions of other players must be sent to and from the Deadlocked server. I theorized that if I wanted to change names, colours, ranks, or anything else that changes based on a player's actions I could simply edit the data being sent over the wire as it left or entered the PS2.
The first thing I did was set up a computer with two n... (read more)GET(comments)POST
[root@flag /]# lsWeb^2 - A tiling window manager for the internet
Wall - An interactive wall of text
RandomImage - A random image generator with images from around the web
RandomVideo - A random video generator with videos from around the web