Jump to content

(Possible) Technical Aspects of MTA


Guest K-16

Recommended Posts

For those of you who already know how MTA works, please ignore this, or check it over for accuracy. Should any of the information be incorrect and misleading, please mention the mistake immediately. The reason this post is made is because there are many people asking the same questions even though they have been answered, or explained already. My friend and I have done some discussions and have come up with some theories as to how MTA works.

I figured by explaining how MTA works, people will be less confused with the current "bugs" of the game. Half the time it's working just fine, but people post in the forums for clarification. However, since you and I both know I had nothing to do with the development, I can be beyond wrong, thus it would help if you can check it over for accuracy. If you do not have that kind of time, then ignore this. I apologize in advance if the following information is misleading.

Credits Screen

For starters, the credit screen is shown offline and will purposely continue to loop (designed to be a waiting screen) until the game header has been detected (when the client receives the game confirmation from the server). Sometimes, the game header never comes (even after connecting to a server), and the player is stuck in the credits screen. Technically the "send game request" is for the first player in the server, or the server administrator. That's why you alt-tab and click on that button, but somehow it also fixes players who were stuck in the credits screen even when the game already started by the first player/admin and that there are still players in the server. (If anybody can explain why it works, I would appreciate it.)

Connection Issues, Windows 98, And Synchronization Issues

The next problem is the actual connecting. The only way you can play multiplayer is by asking the server for information and receiving the information. In a way, MTA is GTA offline, but playing with bots. In this case, the bots are controlled by the server. Someone makes a move on his/her side, and the server sends that information to every other client to see the "replay" (this is where syncing takes place, the information must come super fast [we're talking split seconds is too slow], or things screw up). For some reason, Windows 98 does not seem to like MTA's netcode, because it gives some sort of runtime error. My friend and I are not sure, but we suspect that Freeze's fix involves making the debugger ignore the runtime error to allow Windows 98 users to play (please correct us if we're wrong). Because of this, we think the error is still there, but since the debugger ignores it now (only that error BTW, every other number is still detected), players running Windows 98 will be disconnected rather abruptly without any indication in-game.

This explains the missing players, or players running at walls non-stop. If you alt-tab you'll notice that the square has remained at a single colour, and if you look at the transfer speed, the numbers remain the same. This means that you are receiving NO information from the server, and thus aren't playing online. (Actually you can just look at your modem and notice that the lights aren't blinking.) I have no clue why Windows 98 is being a jerk against MTA. All I know is that you can't stay connected. Reconnection and doing send game request (even if you're not the first player) does revive the data transfer between you and the server, but it isn't stable. The transfer can be cut off at any moment for no reason and without notice (you'll be seeing players trying to kill you for one second, and the next they'll run into a wall).

Players On The Roof And Selecting Teams

Another thing is players on the roof. Since GTA3's engine was never designed for multiplayer, illusions had to happen. For starters multiplayer requires um... Players. Now multiplayer games allow spawning and so forth, but GTA3 has no such code. Another suspicion made is how Rockstar ALSO made the illusion of spawning. There IS NO SPAWNING CODE in the engine! When you get killed by someone, or get arrested, you TELEPORT to the location (hospital/police station on the designated island) and speed up changing the sky (time hasn't changed, because it doesn't take several hours to move a helicopter HINT HINT). So GTA3 apparently has teleportation code, but not spawning code. This is where the 32 players on the roof come in (yes, I'm repeating other people's words, but some people are ignoring them).

Because you can't spawn players in, why not have players available to take over and teleport? You can not have more than 32 players, because there's only 32 player models to TAKE OVER. So the MTA staff simply froze the player models (from running, but I don't know if blowing them up will move them) and gave them extremely high health values (you can probably still kill them, I don't know). When the client receives information from the server that the game has started (game header from the send game request) you would take over one player from the Mafia rooftop and immediately teleport to the helipad. The two guys (Mafia and Diablo) also use similar coding as the players on the Mafia rooftop, but they also have dumbed down AI so they won't fight back (I don't know if they talk though, but they do grunt when you beat the heck out of them).

Although teleporting from the Mafia rooftop to the first island of Liberty City would've been feasible as well, the MTA staff wanted Team Deathmatch, which is why you are teleported to the helipad instead. The two guys there are just indicators of which team is which. You will never look like them (remember, NO spawning, just teleportation). After you pick your team, you teleport to the island and have fun killing your enemies. (Is friendly fire off? I don't know since I'm running Windows 98.)

Quick Note About Vehicles

Oh and for the record, vehicles aren't invincible (also mentioned already, so if you missed it, now you know). It's just that damage is hard to synchronize while maintaining decent latency (not to mention unique jumps so they were taken out as well). So remember to get out of the vehicle if it was hit quite a bit.

I think that's it. I'd appreciate it if somebody can correct me on mistakes I've made.

Edited by Guest
Link to comment
  • MTA Team

The windows 98 patch makes the client ignore run time error but only up on connecting to the server. RTE126 happens after the data has been send. This does not affect game play in any way.

When u start MTA in GTA3 u see the credits rolling. This has been designed as a waiting screen. Somehow pppl who connect to a server don't receive a game header. Here is where the send game request button come's in. All it does is send this header. It does not affect gameplay at all (lucky us) this was a problem we did not see during testing but lucky for us there was an easy solution. When u press the button you just resend the request. All that happens ingame is that ppl see the mage "Multitheftauto has begun"

The guys on the rooftop have a health of over 900 if i'm not mistaking. When they teleport to become a player the health level stays stuck on the same level, but the health for the player is only 100 so once ur health drops below 800 you are dead.

Damage to cars isn't visible, but it is there. Therefore in most cases (except for the glitches) you will not see a car on fire. If your car is upside down, u can be sure it is on fire. Stay in it and you will land on the rooftop again.

Link to comment

I see. I thought send game request starts the game, but I understand now. Thank you for the clarifications. If there are other mistakes, please mention them.

Link to comment

Thanks for all your feedback. Very happy that many of you took the time to read all that (it's a bad habit of mine to type a lot). And I guess we are lucky that sending the game request fixes issues rather than screw things up. Heh. :lol:

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...