
scripting
I've had a few classes on programming, in PASCAL, C, and C+. I haven't done any major programming work, but the exposure to these languages proved useful when picking up server-side scripting. I started creating dynamic web systems with PHP and MySQL, and that grew into Perl and Oracle.
As a system administrator for almost five years, I had both exposure to a lot of different combinations of language/database pairings, and the responsibility to maintain a number of such pairings, often outdated and half-forgotten! I also had the pleasure of working closely with programmers both as an artist and as an administrator.
Programming and scripting languages truly are like any other language, with their own requirements for sentence structure and narrative flow. Part of the challenge of making a game mod is figuring out not just the lexicon of the game engine, but its sentence structure as well.
Command and Conquer
Kow Yokoyama's Hornisse has always been one of my mental exercises for understanding a game engine's language. Its configuration is relatively simple, but unusual, since it encompasses a broad range of unit characteristics. Made up of a plane, known as a PK41 and a suit of power armor bearing the name Panzer Kampf Anzug Ausf H0, or PKA for short, it's similar in concept to a motorcycle and rider. However, when the rider is on board, the machine is in flight.
The motorcycle comparison is appropriate since that was the starting point for my adaptation of this machine into a unit for Command and Conquer. The 'RiderChangeContain' behavior module allows a single machine to behave differently, depending on which 'rider' unit it contains. Perfect for the Hornisse, especially with an eye toward future expansions as there are several PKA variants that can ride in a PK41.
However, the 'RiderChangeContain' was devised for a ground unit, the Combat Bike. While you can make the unit fly instead of roll on the ground, it won't come down to the ground if you try to change pilots or disembark. A little trial and error found that the 'ChinookAIUpdate' contained the necessary behavior to get the Hornisse to land before picking up or dropping off any riders.
The big remaining problem is that when you land and the rider gets out, the engine kills the now empty vehicle to keep things tidy. It's not what I wanted for the Hornisse, which the PKA should be able to return to and take flight again. The solution was to eliminate the death sequence for the 'TOPPLED' (dying with no rider) condition, and add code that spawns a new PK41 (Hornisse with a dummy rider) in the exact same position.
One last visual touch the Hornisse needed was suitable jet and particle effects for its vectoring thrusters. I mean, look at those things! They're huge! The AnimationSteeringUpdate module provided the 'left' and 'right' turn conditions needed, with custom particle systems created for the bottom thrusters. The back thrust and contrail effects are reusing effects that were already in the game.
other games
While my exposure to Half-Life is significantly less at this point, I'm looking forward to delving further into Source. I really like the idea of creating the AFS as a vehicle.
And there's no reason why you can't mix a table top game with scripting. Playing the MechWarrior miniatures game, I wanted to get a better idea of how artillery drifted, and the best way to grasp that for myself was to create a visual diagram. I started doing it in Excel and Illustrator, and then realized that it's a very procedural process, and perfect for scripting. The end result is a simple web script I call 'Drifter'. It's not pretty, but I find it useful, and was a great aid in discerning a few quirks of units that people hadn't discovered yet.



