AI PROGRAMMER
What is your role on the project?
It is my job to give the smarts, planning, and personality to the opponents and other agents inhabiting Babylon 5: Into the Fire. In other words, I breathe the life into the universe Marc, Randy, and Dan have created and described.
As a B5 software engineer, I work primarily with Dan Foy (lead-programmer), Nicolas Gauvin, Victor Sadauskas, and Dave Artis on the various components of the game logic (AI), missions, and physical simulation. I am the unofficial "lead" of the AI component of the game, but it is really a team effort. I also work with the designers to make sure the AI reflects their vision of the game and the other programmers, artists, and writers to coordinate and make sure we don't step on each other's toes.
What are you currently working on?
My main responsibility on the project is the development of the AI and basic behaviors of the opponents. There are basically two big tasks. The first is to determine what the various ships, races, fleets, etc. are trying to accomplish. The second is giving them the layers of low-level controllers (or behaviors) to manage the details of their behavior. Dave Artis (programmer) and Dan Foy (lead-programmer) had already done a big chunk of the design and some implementation before I started. Now, we are filling in the rest of the design (also involving Nicolas, Victor, & Jeff) while implementing the entire system top to bottom. It is a massive effort, but the result has the potential to be really amazing.
Lately, I have been getting away from the lower level behavioral type stuff and working more on the high-level control aspects. Because of the dynamic universe, the AI not only needs to have all the capabilities of ship-to-ship combat, but must also manage and control a full blown chain of command reaching from the various faction controllers all the way down through fleets, capital ships, and squadrons down to individual fighters. What this means is that we have all the complexity of both a first person "twitch" combat game with another parallel real-time strategy game running underneith directing the action.
What is the hardest part of your job?
Switching from the world of research programming in academia to games programming in industry. At VRAC (formerly ICEMT), the research lab where I worked at Iowa State, the primary concern was that the work be "way out there" and really push the edge. Issues like schedule and working on a variety of lower-end systems were minor and very flexible (we worked on SGI Reality Engines and Octanes). Now I need to read adjust to programming much faster and living within a fixed computation and graphics resource. There is also the switch from working on little projects (where I basically had total control) to a huge project with 8-10 programmers. Now everything we do affects everyone else on the team. It continues to be a fun challenge, and I still have a lot to learn.
What is the coolest part of your job?
It has been a long-time dream of mine to work on implementing a large scale tactical and strategic AI system to investigate space combat. Babylon 5 with its accurate physics (for a TV show) and complex universe was often the framework I would use to think about this problem while I pounded away at other research. When I had the chance to actually be paid to develop a system based on my thought experiments (in my favorite SciFi universe), I was thrilled more than I can express. Even 9 months later, I still feel like I am living a dream to have this opportunity. (Times of deadline crunch being the exception to this.)
I am also really happy with the team I work with. They continue to teach me a great deal about solid programming and the realities of doing real-time simulation & graphics on the PC. The people are amazing; many are big fans of B5 as well as being helpful and very patient with my shortcomings. It is hard work, but really exciting and fun to be here, teaching Starfuries, Omegas, and admirals to think... ( or at least fight dirty... ;-) )