Jump to content

A few suggestions (netcode & gameplay related)


Recommended Posts

First of all i'd like to begin with the netcode.

I haven't been able to play GTA MTA because the netcode doesn't seem to work via a (non-uPnP) router. Maybe you should include a small block of text in the program saying wich ports should be redirected in order for MTA to work via a router.

I saw in the movies though, that it seems that only the position of the other car(s) is transferred; not the speed. If you transfer the speed (and direction e.d.) as well, the client can calculate the next position of the car without having to receive another packet. This results in much smoother motion (especially with low-bandwidth connections), and you only have to send another packet if something unpredictable happens (i.e. the steering wheel is turned or something). You could let the client calculate the next position, then check on the real position, and if it differs to much, adjust the motion variables and send a packet to the server.

The other idea i had was about gameplay.

You could make a small modification to the map so that you have a small building somewhere wich you can enter, and if you enter it, you can switch between single- & multiplayer. If you enter the building, it's to difficult to print all the server-related crap on a texture or something, so i think you could best let an always-on-top window overlap gta 3. Somehow you need to lock the character then, because you don't want it to walk & shoot while you type in new server adresses.

Ofcourse the building has to be locked when you're busy doing a singleplayer mission, and the entrance of it should be only accessable on foot; you don't want someone in MTA to block the entrance with a tank ;)

It should be close to the spawnpoint(s) as well, so you can switch when you're in a heavy gangwar to.

Maybe you can just use existing buildings, put a door in it, and a banner-texture that says something like "MTA SwitchHouse" :P

Well, that's about all i could think of, keep up the good work guys!

=edit=

If you implement the building, you could rename the original gta3.exe to gta3-original.exe or something, and replace the gta3.exe which then initializes and calls gta3-original.exe. Then you can just play GTA3 like MTA wasn't there, and the only difference will be the special building. That way you don't have to have a configurationscreen when starting GTA; it will only popup when you enter the building.

Link to comment

dont know anything abuot the netcode - *xerox calls kent over to answer this one* =)

As for the switchhouse idea. Its a neat idea, though i dont like the idea of people using it as a safehose if they are losing or something, seems like a cheap way out.

Dont know if the exe idea will work, as that has to stay as is due to legal issues and all that jazz.

But its still a nice idea, which could work nicely, though I wouldnt be playing gta3 single player, if I was on the internet anyway, an option for cablers maybe.

This switchhouse would also involve changing one of the buildings (not too hard anyway), which isnt a huge problem.

Link to comment
dont know anything abuot the netcode - *xerox calls kent over to answer this one* =)

As for the switchhouse idea. Its a neat idea, though i dont like the idea of people using it as a safehose if they are losing or something, seems like a cheap way out.

Dont know if the exe idea will work, as that has to stay as is due to legal issues and all that jazz.

But its still a nice idea, which could work nicely, though I wouldnt be playing gta3 single player, if I was on the internet anyway, an option for cablers maybe.

This switchhouse would also involve changing one of the buildings (not too hard anyway), which isnt a huge problem.

I don't think people would be using it as a runaway house, at least not more than normal; if you're a bad loser, you can always get away via the menu.

As for the exe, it isn't necessary to actually change anything in the original exe; just rename it and rename the mta program to 'gta3.exe'. Then your program (MTA) will initialize, and after it's done doing that, it will startup the original (renamed) exe. That way the switchhouse is always functional ;)

[edit] Or is that illegal too? :? [/edit]

I haven't thought about 56k-ers, sorry about that :oops:

But you could then make a separate multiplayer link in your startmenu/desktop wich directly switches to multiplayer. It's fairly easy to implement that, just use the COMMAND$ variable (and use ucase() or lcase() so that it's not case sensitive).

Glad to hear you think it's a good idea :)

Though i think the switchhouse idea is for a very late version when there's nothing else to improve ;)

Link to comment

well keep posting, that idea is very nice

now that youve removed the idea of the switchhouse being a 'runaway' house, only the 56k issue remains. Its still plausable, that 56kers can use this though.

The team probably want the game to be run on a "clean installation" of gta3, as in no modifications to skins, handling, levels etc etc, but a hole in an existing building with a new skin wont be a huge problem.

As for the exe, ask vogel, im really just a moderator who seems to be able to bullsh*t his way through a conversation =) (shhh.... dont let anyone know, ok? :wink: )

As long as the exe file itself remains unchanged, im sure the rest should be fine, though im not 100% sure on that.

Getting mta to be run ingame, from gta3 would be great, but i dont think its possible without editing the exe. Gta3 seems to be "+ friendly", so its not a huge issue to run something from the desktop, like it is now.

Link to comment

well the net code will be much better in this version,

1. its udp

2. regarding your idea... thats a semi-accurate approach.. the thing is cars dont move in linear fashions.. (they move in arcs and such).. what mta does.. is send the position and speed... but rather than sending a new position when something happens, it still needs to be sent periodically...

The problem w/ 0.2's netcode is not with the method of what is being sent... its more of how...

0.2 send the data in strings through tcp

0.3 uses udp.. (much faster but less reliable... (this is ok sense you are sending a lot of packets.. i.e if one packet gets lost, who cares, tehre is another position packet right behind it...))..

but even 0.2 (i believe.. i didn't do the netcode for that one)... sent the velocity along w/ the position.. the client then moves the car along the axis generated by the object's rotation at the speed sent) (in game physics may even take care of this... i really don't know)

Hope this was clear and accurate, if im wrong the memory coders will correct me im sure...

Kent

Link to comment

That would be a double post ;)

Anyway, i know cars don't move linear, that's why you should send a packet everytime the car's real position is too far from the calculated position.

That way you could make different connection speed settings. The faster the connection, the less deviation is allowed for the car's position, as it will send more packets when the location is given more precisely.

Link to comment
  • 2 weeks later...

we are already doing that... 0.2 did that...

but the fact of the matter is, is that you still need to send the position pretty often, because a lot can happen in a short amount of time

ex if i swirve left then right very quickly.. that would really change the direction of the car, compared to what the "predicted" path would be...

We've seen this happen in GGM and in our 0.3 tests.. Just wait for 0.3.. a lot of your suggestions have already been dealt with

Kent

Link to comment
  • Recently Browsing   0 members

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