marcus welz

Starsiege: TRIBES

In 1999 I discovered and got hooked onto Starsiege:Tribes, a strategic team-based first-person shooter that was ahead of its time in many ways.

A quick overview of  Starsiege: Tribes is provided by Wikipedia. The real kicker for me was the flexibility the game provided, not just in terms of gameplay and strategies, but also in terms of client-side scripting and extensibility. While games like Quake usually only had the ability to bind keys and set up aliases, Tribes itself used a very powerful scripting language that made it possible to add functionality to the client, independently of the server it was playing on.

Tribes 2 tried to expand on the features that made Tribes so successful. It was hit and miss. The scripting language became more powerful, but unfortunately some bad decision with regards to gameplay mechanics and Tribes 2's extreme sensitivity to hardware configurations gave it some initial problems. In addition, the business side of the company couldn't really figure out how to monetize the game. Even though, the feature set of the game leads me to believe that while the business didn't really seem to buy into the vision, the designers and developers who created the game treated it as a labor of love and knew exactly what they were doing.

In 1999 I started a small gaming group that initially had 5 members called The Moops (a reference to Seinfeld). We played on various ladders like OGL and what not and at some point were lingering somewhere around the Top 20. We played both "base" and the "Renegades" mod. I built a web site, including forums, calendar, etc. to help organize matches and communicate. I also spent a lot of time combining and merging other people's scripts into one fast script since we had a number of folks with dated hardware that could feel the difference between a set of stock scripts and my slightly more optimized patch work. It was fun for a while but eventually most of us took a break from gaming. Generally that meant people graduated. Some of us came back after a short break for Tribes 2, and thus The Moops peaked again in 2001.

Tribes Projects

Most of my original scripting was done for Tribes 2. The scripting language for Tribes 2 had evolved and was more mature. It provided better hooks for callbacks, especially if multiple scripts were trying to hook into the same feature. It supporting some object oriented programming features. A lot of the client-side aspects were scriptable. It also had the ability to make requests to URLs.

Automated Waypoints Script

I've had the idea to use that to our advantage; most weapons had the ability to reach targets in the fog beyond the distance the client would render graphics. The waypoints that could be placed on the command screen, could also be placed programmatically. So I wrote a Waypoints script that would connect to a PostgreSQL backed web service in order to automatically place waypoints to all the important assets of the opposite team upon map loading. We used this script for a few weeks and then I thought we should open it up to the public. I figured it was different than most of the client-side scripts out there, and would get us more exposure and maybe let us recruit a few more high profile players.

This is kind of a whole story by itself, but essentially the move backfired: I didn't want people to try to mess with the URL directly so I only released the compiled script (the .dso file), and announced the script by submitting the news to Tribalwar.com. I wasn't around for most of the day, but later that night when I came back to check on what people had to say about it, I discovered that the link had been removed and people had been warned that the script is used to steal CD-keys.

Apparently someone had opened the .dso file, seen a reference to wonGetAuthInfo(), and thought it was stealing CD keys. Oddly enough, everyone apparently blindly bought into that and continued to spread the rumor. Unfortunately the reality is a lot less interesting. wonGetAuthInfo() merely returns the players' name and group(s) they are in. I had added it for the purpose of stats tracking. The statistics part showed graphs of the most frequent players and most popular maps played.

Dynamix also announced a security warning in the news section in-game and singled out "The Moops". I emailed Dave Georgeson and complained, because I found it ridiculous that even they would buy into the CD-key stealing rumor. Although I can't find a reference to the original announcement on Tribalwar, I did find the response written by East, the same Dynamix employee who had written the previous warning posting.

All in all, it was quite fun. It was a learning experience and a reminder that things can easily get out of hand due to a simple misunderstanding.

Waypoints 2.0

For the remainder of us playing Tribes 2 I continued work on a much more sophisticated version called Waypoints 2.0. It included a number of features that I thought were ahead of its time, including custom private Waypoints for clans with access controlled by group, a waypoint route recorder that was able to record the route someone was taking in real time (although recording only worked on a self-hosted server). This could then be played back to other team mates, either to teach routes or during game play as guidance (think Mario Kart Ghosts).

Although it was functional and used internally by our group, it was never released publicly. The old (and quite useless, since the web service component is no longer online) Waypoints version 1.2 can still be found on FilePlanet.

Tribal Explorer

Another project I had started was the Tribal Explorer. This was an add-on that would pull content from a remote site. Essentially it acted like a basic web browser, although it required it's own not-quite-HTML syntax.  I had mocked up a version and approached Tribalwar with it. They weren't interested as banner ads could not be displayed. Tribes 2 could display images, but it wouldn't fetch them from a remote location. All resources had to be packaged inside the .vl2 archive and distributed with the add-on ahead of time. This was understandably not very appealing to them.

Eventually I lost the source code and couldn't be bothered to try to re-create it. I hadn't really wrapped my head around working with UI elements and found it quite frustrating.

Print This Page Print This Page
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

(required)

No trackbacks yet.