No two weeks are alike at the secret AiGameDev.com labs here in Vienna, Austria. Between work on this very website, the AI Sandbox™ and its underlying algorithms, visualizations, our regular broadcasts and conference preparations, there's always something different and challenging to work on!
18 months ago we announced our first wave of hiring, a mix of experienced game developers and enthusiastic AI graduates. Now we're about to do it all again, and if you just thought "Now that sounds cool!" then read on. Here's what the team was busy with last week as an example...
As part of an upcoming tutorial, the team implemented different ways to calculate line-of-sight specifically for 2.5D environments. We've typically used full 3D visibility checks, but here we had the opportunity to try more specialized and faster routines based on line-drawing algorithms and visibility propagation.
AiGameDev.com is involved in an EU project focusing on improving the next generation of GPGPUs, so we discussed designs of this algorithm that would be suitable for implementing in OpenCL. For 2D visibility, there are both opportunities for leveraging graphics hardware, as well as more general stream processors.
The Capture The Flag competition is in full swing, and many new Commanders are submitted on a regular basis. To make sure the rankings displayed are accurate when there haven't been too many matches played for each commander, we integrated the Python version of the TrueSkill algorithm that uses Bayesian inference. This is also used to select the matches (in a weighted fashion) to help separate bots of similar rank.
Of course, this led to team discussions of why details from the game itself are not taken into account in the rankings. Various statistics of the game such as capturing enemy flags, not conceding flags, or even eliminating enemies can be used to measure skill, and a correlation can be established with data mining techniques. As it turns out, we'd read a paper on this very subject in the latest Transactions on Computational Intelligence and AI in Games Journal, which sits on the shelf in the labs here.
Voronoi Corridor Map
At AiGameDev.com, all of us in the team are keen on pushing the limits of Game AI as a field too. And that involves trying more difficult but potentially very rewarding ideas. One of those was extracting generalized voronoi diagrams (GVD), which can be used for a wide variety of tasks such as tactical movement and strategic reasoning.
By relying on Python for high-level programming, the AI Sandbox makes it particularly easy to experiment with these things. Algorithms that take weeks to prototype in C++ can be tried out first as a combination of existing Python libraries. In this case, tweaking and tuning the image processing algorithms was necessary to make sure the graphs generated were clean enough to work with.
One great way to challenge AI is to procedurally generate levels. In the current Capture The Flag competition, we started investigating this option by building a simple algorithm to randomly place the key gameplay elements: flag spawning location, flag return location, and the team's base. This was written inside a Python / QT tool (a.k.a. PySide), which we've been using more and more internally
While there are no specific constraints on where gameplay elements are placed in the level, there are complex relationships between them. These can be enforced by simple constraints; the distance between flag and goal is 16m or more, two bases can't see each other, etc. Then obstacles are randomly placed within the map until satisfactory conditions are met... We haven't deployed this code on the ladder yet, but will continue to use it to generate ideas for levels.
... and Many More!
This is only a subset of the things an average week contains, and this particular one included the following as well:
- Putting in place the first parts of the plan for next year's Vienna Game/AI Conference, scheduled around September 4th 2013.
- Identifying and fixing video encoding bugs in ffmpeg and our scripts, then re-encoding some problematic videos.
As a small company, we're not looking for any specific skill, but you'll need to be good at many things and great at one or more.
Join The Team?
Two positions are open, one for an experienced developer as well as a position for students or graduates. There are many reasons you should consider working with us at AiGameDev.com. Here are a few:
- It's a great career move that will yield many opportunities.
- It's a wonderful cultural interlude in the city with the highest quality of life.
If you're interested in everything you've heard so far, here are some logistic details about the positions:
- Duration: 6, 12 Months and Permanent
- Start Date: Q1 2013.
- Contract: Full-Time Only
- Location: Vienna, Austria
- Salary: Experience-based
- Benefits: Social Security, Pension
- Arranged: Accommodation
Once you're ready, send an email to <team at aigamedev.com> with your application. The deadline is officially on January 14th at 11:59 UTC, but based on past experience you probably shouldn't wait that long if you're serious!