We've been talking with Kye, leader of the multiplayer modification for Grand Theft Auto San Andreas, SA-MP. If you're a SA-MP player, continue reading and get to know more about this project that kept you entertained over the years.
uNi: When did you start working on this multiplayer project for Grand Theft Auto and why?
kye: In early 2003 I purchased GTA: Vice City for PC. Vice City was my first experience with the new street level GTA. I was amazed at how much freedom the player had and I remember thinking at the time that Vice City was the best game that I had ever played. I also remember thinking about how cool it would be to have other players running around Vice City in some sort of free-roam multiplayer with pedestrians and cops. I looked around in the game options and on the box for any multiplayer info, but found out quickly that the game didn’t have a multiplayer option.
One day I was searching around for Vice City mods and discovered Multi Theft Auto (MTA). They had released MTA:VC 0.1 and were working on the next version 0.2. Naturally I was very excited to find this mod. The idea of multiplayer hacked-in to a game seemed impossible to me. I downloaded the mod and got it running. I wasn’t expecting much from a hacked-in multiplayer, although I noticed the players didn’t seem to have any running animations and tended to teleport around. The cars sort of skidded around the place as well. I thought if this mod had player animations and smoother vehicle movement, I’d be satisfied playing it.
Although I had no experience with game programming, I did have a few years of experience with assembly and C. After doing some research on GTA modding, I started working on a small program to sync animations between two game actors. After this was finished, I sent the program and source code to the MTA dev team, hoping they’d find it useful and be able to sync the animations.
After MTA:VC 0.2 was released in September 2003, the lead developer (Cray) invited me to join the MTA dev team. I worked on MTA:VC 0.2.2 and 0.3. I was also working on another project within MTA called MTA:Blue. MTA:Blue was a new multiplayer mod for Vice City which was a lot more advanced than the original MTA:VC. We used a third-party network library that I had found called RakNet and there was also an in-game GUI. After a few months of working (on and off) on MTA:Blue, Cray stood down as the lead developer and gave the position to me. At some point in MTA:Blue development, some of the team members decided that it would be cool if MTA:Blue came with an SDK so that people could create their own multiplayer mods in C++. While I didn’t think the idea of an SDK was bad, I knew it was going to push the release date out by at least 6 months. We had already been working on MTA:Blue for over a year. This argument against the SDK ended with me leaving their development team in late 2004 - a few months after San Andreas was released on the PlayStation 2. MTA:Blue for Vice City never made it to release.
In March 2005 I decided that I should probably work on my own multiplayer mod for San Andreas and that’s how SA-MP was born.
uNi: Is the SA-MP community as big as you expected it to be or still getting where you wanted?
kye: I knew there was a huge fan base for GTA multiplayer mods. It was also obvious that San Andreas was going to be very popular on PC.
So, the honest answer is yes. I knew that a good mod for a really popular game like GTA:SA was going to have lots of fans and a large community. It’s gratifying to know that so many people have enjoyed a mod that we created.
uNi: SA-MP allowed the players to create their own gamemodes, and a few awesome ones appeared over the years. Is there any of them you particulary like? Any that got you addicted?
kye: During the SA-MP 0.1 development, the Team vs Team modes with a mutual objective, like Rivershell, seemed like the most fun modes to play. Although, we found that it is hard to maintain structure outside beta testing. Many people didn’t understand the objectives and it lead to a lot of spawn killing and people doing their own thing. It became clear after release that most people wanted to free-roam in multiplayer, whether it’s free-roam deathmatch, free-roam stunt, or free-roam RP/RPG.
After SA-MP 0.1b was released, I used to play a bit of SFTDM and LVDM, which are free-roaming deathmatch and team free-roam/deathmatch. I can’t say that these modes really held me. The original idea behind LVDM was to find the person with the most cash and kill them, inheriting their cash. This gets a bit tedious after a while and we found people weren’t really seeking out the rich players.
There are two modes which had me addicted: The Godfather and CrazyBob’s Cops and Robbers.
The Godfather server was at one time the most popular SA-MP server. During its evolution, The Godfather script moved from pure role playing to role playing with RPG elements enforced by the server. Many of the role playing purists didn’t like the server having too much control over the game. This move was maybe not good for The Godfather server, although it was good for SA-MP. A role playing server that contains RPG elements attracted a much larger audience.
I find RP/RPG really fun because there are things to do when you’re not interacting with other characters/players. I was addicted to The Godfather server for a few months. A few of the features that appeared in SA-MP 0.2.1 and 0.2.2 came from ideas I had while playing on The Godfather.
CrazyBob’s Cops and Robbers is an RPG server, although it doesn't require people to role play in the sense of being in-character when talking. As of writing, CrazyBob’s CnR is the most popular mode in SA-MP.
uNi: Role-playing got pretty big in the SA-MP in last year or so, is this something you look into for a future release? Like adding a feature or two that will create the gameplay on those types of servers or maybe something that wasn't possible for them in a previous version.
kye: That’s exactly what we are trying to do with SA-MP 0.2.5 and the Grand Larceny game mode. We wanted to provide a base game mode for role playing servers that had dynamic properties/businesses, lots of reusable vehicle lists covering the whole of San Andreas, showing how to make use of sqlite, supporting more pickups, more virtual worlds, many more players per server (500) and near unlimited use of vehicles/vehicle models due to server side streaming.
uNi: There’s already a few great gamemode bases for RP servers laying around like GodFather, Moderntopia etc with a lot of features that the players canuse for their communities. What Grand Larceny would offer the average player that would make them choose it over the other game modes?
kye: The SA-MP dev team has a few advantages over scripters working with pawn. The main advantage being we can change code in the client/server. We also have a better understanding of the natives in pawn and what actions they invoke in the client/server. The dynamic house system we have in Grand Larceny is the most advanced I’ve seen. You can create new properties and houses just by going in game and standing where you want the entrance to be, then entering an interior identifier to go to. Things such as assigning a virtual world, entry/exit locations, and pickups are taken care of automatically. We are also making use of sqlite over mysql, which a lot of scripters had trouble getting their head around.
The server script in 0.2.5 is going to be completely threaded in a way that’s transparent to the scripter. The big advantage with this: if you have a really intensive script that’s dealing with a lot of actions for a lot of players, you can distribute that load across multiple CPUs without blocking the main server process. It hasn’t been a huge problem with 100 or so players, but as we make the leap from 200 max players to 500 and 700 max vehicles to 2000, all tracked and streamed by the server, load distribution will be important.
Developing Grand Larceny has also been a good way to find bugs that other role playing scripters have worked around. One good example might be that The Godfather operates on real time. 1 minute = 1 minute in game and there are 24 hours in a day. Because GTA:SA wasn’t designed for this time system, there was a glitch where if you set the player time to a particular minute sometimes you’d get this horrible fog/sky flickering. The player time for night and day colors in The Godfather was only updated every hour to get around the problem. We fixed this in 0.2.5 and Grand Larceny smoothly transitions through every minute of the day. This fix was also later imported in to 0.2.2 R3.
The biggest problem with The Godfather script is that it’s not dynamic enough and it’s not as data driven as I think it needs to be. This would result in a lot less code allowing for easier expansion by other scripters.
uNi: How about other basic features that every RP game mode has like factions/groups, different types of chat, job system, licenses etc… Would Grand Larceny also make use of them with some improvements or only provide a solid game mode ready to be customized?
kye: The idea is to create a base that can be extended and not necessarily a complete script that has factions and IC/OOC chat. SA-MP itself supports basic radius chat and private messaging. Roles like cop/emergency and civilian could be selected and I imagine ever yone would have a phone number automatically assigned. It will support user registration and tracking of inventory and stats like bank balance etc. Licensing systems and factions could be easily added. As the name suggests, Grand Larceny is about property ownership and theft. If there are enough houses within the game, almost every player could have their own place, or a shared place, to store inventory items, refill on health/armour and also have the ability to store a vehicle there (space permitting). Most vehicles would have owners and taking one you find on the street would be considered a theft and increase your wanted level.
One of the main purposes of Grand Larceny, besides being a template for other modes, is to test the 500 player capability of 0.2.5. I didn’t think a deathmatch script would have been suitable. There needed to be some structure and some objectives that don’t involve running around killing other players.
It’s unrealistic to expect we could create a living city with 500 beta players who don’t necessarily understand the goals of the game mode, but we’ll have the script do as much as it can to maintain some type of structure and (hopefully) keep people interested at the same time.
uNi: Do you gather any kind of data from the masterlist like not how many players are playing right now but how many have played so far, how many game different gamemodes appeared listed etc
kye: No. The only information we keep track of is the current player count and how many servers in the list are responding to queries. It would be difficult to determine the number of unique modes because so many are minor edits of others.
uNi: Will SA-MP be more map modding friendly in the future? Players are able to mod their vehicle and weapons models, even map models but these last ones are limited. They can be duplicated with the available streamers but would be nice to use bigger map mods like LC, LC plus VC and a few more that are around.
kye: Vehicle and map mods supported by SA-MP sounded like a good idea in theory, but the main goal of SA-MP was to give GTA: San Andreas a multiplayer option. Providing some type of modding platform hasn’t been high on our agenda. I’m actually against allowing server admins to alter things like weapons accuracy and vehicle handling because it doesn’t provide much consistency between servers.
When developing VC-MP, we did make a special version that supported the GTA:LC mod (LC-MP). LC-MP was fun for a while although I don’t think it was worth the amount of effort we put in to it. There have been many features we have spent weeks working on that weren’t really used by the players.
uNi: I have to agree with that, there’s still a lot that can be done with what we currently have, but still people are constantly asking for more features. There’s some neat ideas in that huge suggestion thread, but are they worthy of mixing with the current ones in development? Is there any suggestion there that got you ‘wow, I’ll have to do that’?
kye: I don’t always read individual suggestions people make, but if an idea is good it usually gets kept alive by players or beta team members. Ideas often make their way up through the beta team and then in to development.
There are lots of features that would be fun that haven’t been implemented. I remember from the Vice City days people would always ask me to sync the beach ball. That same type of sync would relate to the basket ball or the pool table in San Andreas. The idea for holding the phone was around from the Vice City days and eventually made it in to SA-MP.
The base multiplayer is always the most important feature. I admit that since this mod was created without the source code of the original game and we didn’t have any assistance from Rockstar, we still struggle with things like weapon sync or tracing and fixing some obscure crash.
uNi: One of the things new players are waiting to see when they run SA-MP is all the peds spawing around them. Even if done to act like in single player it would be a mess, on the other way the possibility to have a few scripted npcs would be nice for most every game mode. What can we expect from that on future releases?
kye: We do have NPCs working in 0.2.5. What they can do is fairly limited. Since the SA-MP server can’t run all the logic for an NPC navigating the world, it currently relies on one of the players replicating that information to the server. I don’t think we’ll end up with anything like single player or like what Rockstar have done with IV multiplayer. I see NPCs being useful in the same way the Ammunation guy or the Cluckin’ Bell attendant are right now, except you’ll be able to place them anywhere you like and perhaps animate them.
There are many characters in role play servers that might be better played by an NPC. The theoretical part of a licensing test might be better done by an NPC. The NPC could ask the player the questions needed and leave the practical part of licensing to a real player. A police station might also have an NPC to take crime reports or a city hall might have an NPC to give out information to new players etc. NPCs could drive trains although permanent bus routes or taxis are looking technically difficult.
There have been times throughout development, both VC-MP and SA-MP, where we have enabled GTA’s peds and ped vehicles in multiplayer. They’re not synced but it gives you an overall feel for what it would be like to play with peds. I can say it’s an interesting experience, although I would much prefer to see the world inhabited by real players. This is one of the reasons I’ve always been trying to push the player limit higher.
uNi: The IV’s multiplayer on the 360 and the PS3 doesn’t seem to affect that much SA-MP. R* announced a few changes on it and maybe a raise on the player limit, although the current limit on SA-MP is way bigger. Are you any worried now that IV is finally coming to the pc?
kye: There has been some speculation of increased max players in the IV PC version. I don’t think Rockstar’s multiplayer system is designed to hold large numbers of players. So, I’m not expecting anything dramatic in this area. SA-MP is able to hold 200 players because we sacrifice a lot of the sync and only sync the bare minimum that we can get away with.
The main difference between SA-MP and the IV multiplayer is that we have a dedicated server that runs on Windows and Linux. The IV multiplayer requires that someone playing the game is the host. If the host leaves the game, someone else is automatically assigned as the host. The IV multiplayer is also a peer to peer system - meaning clients are sending information about their game state directly to one another. I feel that having a server acting as an arbitrator of all game data is important as the player numbers increase. That being said, it would be very difficult to have peds and co-op game-play in a system like SA-MP.
The main people behind the design of MTA and SA-MP spend a lot of time on IRC. Much of the design of the chat system is copied from IRC - along with many of the social aspects.
Overall, I estimate 50% of the current GTA multiplayer fan base would prefer something like the IV multiplayer, while the other 50% would prefer something similar to SA-MP. There are also a large number of players who won’t have the PC hardware requirements to start playing IV multiplayer, so I don’t see SA-MP dying the minute the IV is released. Eventually the SA-MP player numbers will decrease.
The number of people playing the mod has never been the driving force behind development. The audience for a Vice City multiplayer was much smaller than the current San Andreas multiplayer audience.
uNi: Players usually forget or don’t understand that the teams developing these huge modifications have other stuff to attend everyday, and want them to release the next version asap, it’s funny how their the same people that started complying after it’s released. How hard is to work under that pressure? Especially because SA-MP’s community has a lot of young players.
kye: The honest answer is that we’ve had to ignore it. The mod started with just a few people on IRC and there wasn’t any pressure to do anything. Under these conditions we did our best work. That’s not to say we don’t appreciate the people who enjoy our work, but people need to remember that we’re in the same boat as them. The SA-MP dev team is just a bunch of GTA fans who thought it would be fun to play Vice City and San Andreas as a multiplayer game. As far as I know, nobody that I’ve worked with on GTA mods had any aspirations to get in to professional game development.
There are definitely elements of the SA-MP community that I’d like to see move on. I have no idea why SA-MP invited such a large cheating community and a community which is dedicated to creating tools to attack servers.
uNi: From the features that you’re developing for the next release which one do you like the most? That one that you really want to complete and see what players can do it with.
kye: I haven’t been looking at 0.2.5 in terms of individual features; it’s more about what will happen when all the new additions come together. When we set the new vehicle limit to 2000, we actually got together and laid 2000 vehicles all over San Andreas. The result is, you can drive to any part of San Andreas and not worry about getting stuck somewhere without a vehicle. That’s something that wasn’t available in any previous mode and it sort of breaths a bit of life in to the areas you would otherwise avoid.
The server does now maintain the position of every vehicle and tells the client where the vehicle is. I’m sure all SA-MP players have noticed situations where someone gets in a vehicle and suddenly it teleports to another location nearby. That’s just one of the small things fixed that will improve the quality of all modes.
One thing I’ve been working on is getting some NPC driven trains running. Although it’s a feature that might not be useful if your mode doesn’t cover all of San Andreas, it’s another thing that starts to give some life to an otherwise dead city. There was some talk of automatic plane routes between cities also.
uNi: “I have no idea why SA-MP invited such a large cheating community and a community which is dedicated to creating tools to attack servers.” I would put my hands on the fire and say that’s because we have a lot of childish players. So, we have these two kids(admins) which are hosting a party(server), since one of the parties is better the other one will try to ruin it, I think it all comes to just that. On the technical side how does the team try to handle it?
kye: We’re in a difficult situation. Many of the internal structures and memory addresses of San Andreas have been mapped out and made available on modding forums. We’re not in a position like a normal game developer where we can simply recompile the game exe and render many cheats useless. Infact, our mod has to operate in the same way a sophisticated cheat would.
We have had a wide variety of anti-cheat measures since the first VC-MP release, ranging from memory verification to auto-updating anti-cheat modules (SAC). Fending off cheaters wasn’t something that I, or anyone else, signed up for when we created this mod. We have put a lot of time and effort in to different anti-cheat systems over the years and we’ve discovered a couple of things. Anti-cheat systems that are easy to maintain, such as a static anti-cheat system embedded in the program, are not very effective and only have a lifetime of about 2-3 months before they are cracked. Dynamic systems like SAC can be very effective if they’re constantly maintained and you have someone on the team willing research cheats as they’re released.
There are cases where our anti-cheat measures end up blocking something that might be useful, or can be falsely triggered. One example is that I blocked d3d9.dll injection in SA-MP 0.2, although this meant linux users could no longer run SA-MP under winex/cedega.
uNi: 2000 vehicles and 500 players is a lot. When do you estimate that a few servers will need more? What kind of gamemode do you think will be able toget hold of 400s players? I would bet on role-play myself.
kye: I estimate only one or two servers would have a use for 500 players - or anything over 200 for that matter. I think the fact that some servers have trouble getting to 200 players isn’t because they don’t have people wanting to join the game; it’s more to do with limitations in the previous SA-MP versions. For example, LS-RP had to drop their max players from 200 to 160 because of lag, their script, and the available bandwidth on their server. These types of problems will have less of an impact with the 0.2.5 server.
I guess it would be possible to have a 500 player deathmatch covering all of SA, although I see it being more useful for RP/RPG. You can’t have player blips turned on for anything over 200 players, and if you didn’t have radius chat it would just be a big mess.
uNi: Do you plan to increase these and/or other limits?
kye: We have had to increase the pickup limits already because we want to have somewhere between 600-700 houses and businesses all over SA without server-side pickup streaming. I think we’ve already created 200-300 houses and businesses.
In terms of vehicle model usage, it’s virtually unlimited because they’re dynamically loaded and unloaded.
I don’t want to say much on the subject of objects because we’re having a few issues with that. I’m not sure what the end result will be. I will say that the current object system in 0.2.2 and below is not well designed and there’s a good chance it will be replaced with something else. Scripters are using objects for things like roads, but GTA’s objects are designed more for things like boat ramps, so the roads and other objects end up with slippery/wet surface properties.
uNi: NPcs for that kind of jobs would be great, as you said anything like the ammo-nation guy which could be converted into a dozen roles. Which functions related to the bots can the scripters expect?
kye: I think the NPCs will be fairly limited. Animating them and moving them around to different points will be about all you can do. Our dedicated server isn’t advanced enough to have an NPC navigate San Andreas and I don’t think the client replication system will stay in for release. Ideally, you want NPCs that connect to the server like a client, that way you can distribute the load.
uNi: Thank you kye for this interview, for the dev screen and keep the good work with SA-MP, we’ll sure be around to enjoy it. For the viewers that reading about this mod for the first time visit www.sa-mp.com for more info.