online play

Post your Feature Requests here...
wooper
Posts: 58
Joined: Wed Jul 13, 2005 11:18 pm
Location: canada

online play

Post by wooper » Thu Jul 14, 2005 2:39 pm

hello ther again--i finally got back in
may i ask ...
is anyone working on the code for online play ??
I understand that there is some basci code that allows players to set up or to jion a server and see each other --but--no scoring or interaction is available yet --is that correct ??

Thx

Wooper

Pete
Posts: 46
Joined: Tue Jul 12, 2005 2:07 pm

Post by Pete » Thu Jul 14, 2005 3:26 pm

don't know if anyone's working on it seriously right now. i'm sure it's on the list. i played with it a while back but work got in the way. the code is pretty complete and yes you're correct you can network but without interaction. and you have to connect with an ip (vs browser). there's a complete open source networking library called hawknl built in (though it's v1.5 and 1.7 beta is out now). some pretty simple mods to the code and scripting will get interaction working. there's no code for stuff like server browser/master server, secuirity/cheat proofing, spectator or client predicition yet. anyone feeling ambitious? have at it!

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Thu Jul 14, 2005 3:56 pm

i would try, but i unfortunately do not have a compiler that compiles rf... i might try ripping all the mfc stuff out, in which case it would work with vc++ 2003 toolkit...

MakerOfGames
Posts: 866
Joined: Fri Jul 08, 2005 4:27 am
Location: PA, USA

Post by MakerOfGames » Sun Jul 17, 2005 4:53 am

More power to ya if you decide to rip the MFC stuff out. The dev team has mentioned that before but said it was a huge undertaking for anyone to do. But if you do, everyone will be very happy, and everyone will be able to compile RF. This means the whole community would be able to write and test code for RF.

I have looked at the code for the current IP mode:
It has rotation/ animation/ world coordinates change and send to others, this means the player moves around, can rotate round in a circle and change its animations and when it does the other players will see that. What else does it need?
-user created events Ex: Fires a gun, gets in/drives a vehicle, fires weapons on that vehicle, opens a door, etc. (and the lost goes on and on.)

Is there anything else?


Also, is there a way to clean things up to send less data to allow slower internet connections to play or am I reading it wrong(I dont know much c++ and am reading the comments to see whats goin on)?

For example: not just update player coordinates but tell what ditrection they are going and at what speed. This eliminates the constant refreshing of the world coordinates of the palyer, allowing the pc to update the player position instead of constant data transfer. Then send data if direction, speed, etc has changed or happened. This would help prevent lag wouldn't it? Also, what if there is lag? Does there need to be code to update all player positions to everyone before allowing anyone to move/attack again if there was lag to prevent incorrect player posiitoning and stuff? That problem would only be a concern if the player positioning was left to the comp like I mentioned above and not constnatly updating, because if it is constantly updating, the x/y/z's are allways correct.


Also, I have a request for the online MP, a chat mode to talk to the other players. And if possible make it able to be all chat and team chat. I dont know how much effort that would take to make though. Just throwing out my thoughts on the concept of online MP.
Think outside the box.
To go on an adventure, one must discard the comforts and safety of the known and trusted.

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Sun Jul 17, 2005 5:18 am

good points, but they are unlikely to be implemented: for instance, the only updating if the player has moved wouldnt be that practical because it would only not have to send it if the player wasn moving, and thus theyv are not going to mind lag when not moving anyway.

the team chat might be difficult, since rf dosent support "teams" as such.

User avatar
SithMaster
Posts: 306
Joined: Mon Jul 04, 2005 11:45 pm
Contact:

Post by SithMaster » Sun Jul 17, 2005 5:26 am

Not sure if this is what you mean but, wouldnt it be better to have the players pc check to see if you moved and if you didnt nothing is sent to the other players. Their pc's keep your last known position and info-ie which weapons drawn and direction. Only prob might be that resources used to maintain last known position. Just an idea that can free up bandwidth.

MakerOfGames
Posts: 866
Joined: Fri Jul 08, 2005 4:27 am
Location: PA, USA

Post by MakerOfGames » Sun Jul 17, 2005 5:33 am

I guess for team chat a new built in player attribute would have to be TEAM: and then a number, then it can tell whos who, but that would be hard to do wouldnt it? Lots of code to create and maybe change?

Anyway, I think thats how the multiplayer is currently set up: did the player change sinse last sent data?, if so, compile and send new data. That seems very inefficient, and a big waste of bandwidth. But i am only reading the comments in the RF code, cause Im a noob at C++ and only know a little of the basics.
Think outside the box.
To go on an adventure, one must discard the comforts and safety of the known and trusted.

MakerOfGames
Posts: 866
Joined: Fri Jul 08, 2005 4:27 am
Location: PA, USA

Post by MakerOfGames » Sun Jul 17, 2005 5:38 am

SithMaster wrote:Not sure if this is what you mean but, wouldnt it be better to have the players pc check to see if you moved and if you didnt nothing is sent to the other players. Their pc's keep your last known position and info-ie which weapons drawn and direction. Only prob might be that resources used to maintain last known position. Just an idea that can free up bandwidth.
Yeah thats what I was talkin about. Send data about the players speed rotation direction animation and other things. Then only if any of those change, would new data be sent. Heck, you could cut it all apart so if one changed only that data is sent, freeing up more bandwidth. Then the other pcs would just read the data and make that player do what changed on their own pc. So then it relies more on resources/hardware than internet, which is a very good thing to combat lag.
Think outside the box.
To go on an adventure, one must discard the comforts and safety of the known and trusted.

GD1
Posts: 413
Joined: Tue Jul 05, 2005 2:33 pm

Post by GD1 » Sun Jul 17, 2005 2:57 pm

Not sure if this is what you mean but, wouldnt it be better to have the players pc check to see if you moved and if you didnt nothing is sent to the other players. Their pc's keep your last known position and info-ie which weapons drawn and direction. Only prob might be that resources used to maintain last known position. Just an idea that can free up bandwidth.
Halo actually uses a similar system. But this has a major problem in it. When the game lags or a players computer is temporily disconnected, that persons character will keep running in the same direction as before on the other players computers. and just when you lining up a sniper shot for him, his computer kicks back in and he appears behind you where he performs a melee attack, unfairly killing you.

while the other players think this player is in one place, he is actually in another on his computer, and when that info is sent he goes to that spot. this is really frustrating for anyone who's played Halo CTF.
Check out my band
Tougher Than Fort Knox
Image

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Sun Jul 17, 2005 3:56 pm

yeah, and may i interject that halo is the most laggy multiplayer game released for the pc that i have ever played, despite these measures.

wooper
Posts: 58
Joined: Wed Jul 13, 2005 11:18 pm
Location: canada

Post by wooper » Sun Jul 17, 2005 4:15 pm

hi again---
i have been playing Unreal 1 now for almost 7 yrs and the thing that stilll keeps it going is the ONLINE playability.

If we can get a half decent online play module---even if it only has a few game types such as Dm and Co-op im sure that the marketabilily of our games would go thru the roof..

they would be fun to play that way---FIRST in a single player experience.. and LONG TERM---playable---over and over again---for quite a while as a MP experience..

what do you think ??/--do you see this as a short term viable option ???

thx

Wooper

User avatar
AndyCR
Posts: 1449
Joined: Wed Jul 06, 2005 5:08 pm
Location: Colorado, USA
Contact:

Post by AndyCR » Sun Jul 17, 2005 5:20 pm

i definitly do, and i can imagine this: with the factr that rf's free, anyone could make dm levels for your game.

MakerOfGames
Posts: 866
Joined: Fri Jul 08, 2005 4:27 am
Location: PA, USA

Post by MakerOfGames » Tue Jul 19, 2005 5:38 am

I just looked at the RF MP source and saw that if one of the many things has changed, only what has changed is sent.

Now the thing is, it would reduce the possiblity of lag to send the direction of motion and what speed so the each player calculates where the other players are. But, this could lead to the lag problems mentioned by all of you above. But lag might be more present if you are sending x/y/z coordinates for every single x/y/z change, which would be more often than not constant. So here is the first major choice/question in the advancement of MP in RF:

1- Local(players machine) calculation of all player coordinates
2- send x/y/z coordinates when they change to everyone else
3- When the player changes direction/speed also send the x/y/z coordinates of the player to make sure that they are in the right spot before changing whatever has changed.

Good points of #1
Reduces the possiblity of lag/ frees up bandwidth
Bad points of #1
Could cause some nasty glitches if there is lag(could screw up the whole MP game if not coded well)

Good points of #2
If there is lag, the refresh of x/y/z gets the players in the right spots
Bad points of #2
It could cause lag, and will take a chunk of bandwidth

Good Points of #3
Possibly reduces the chance of lag compared to choice 2 and would be much more accurate than choice 1.
Bad Points of #3
Uses more bandwidth than #1 and if there is lag, the players may not be in the right place after lag ends and wouldnt be untill they change one of their properties again.

But really, in games like unreal, you are always jumping /dodging /shooting /strifing /and moving in all directions so it wouldnt take too long to fix player posisitons after lag.[Heck, the player x/y/z could even be sent when the player changes the angle of their shot. (moves the site on screen)]

Also, I agree, multiplayer boosts the replay value of games. And having RF games MP, it would make our games more desirable to play in this world that loves to frag/slice/dice/spell cast/and slaughter not only bots but other human opponants in virtual worlds.
Think outside the box.
To go on an adventure, one must discard the comforts and safety of the known and trusted.

wooper
Posts: 58
Joined: Wed Jul 13, 2005 11:18 pm
Location: canada

MP for RF

Post by wooper » Tue Jul 19, 2005 2:03 pm

Hi again...

Im so glad to see that so many realise the benefits of online play for game long term viability.
so
if anyone is going to start workiong on it---seriously..
then i am moe than willing to help out as best as i can---such as a beta-tester=--or server or--whatever is needed.

I really think that this engine is worth the effort--
its very good rendering engine and can be mae to look quite good--and because of the outstanding--forums and support...
its progreesing constantly...

thx

Wooper

Pete
Posts: 46
Joined: Tue Jul 12, 2005 2:07 pm

Post by Pete » Tue Jul 19, 2005 2:34 pm

>>I just looked at the RF MP source and saw that if one of the many things has changed, only what has changed is sent.

yep. the current source is pretty good. more info needs to be passed though - such as pawns and "i damaged you." world info like doors and player info like translation are passed if they change.

makerofgames - look into dead reckoning or client prediction. that's how you guess at where the other player will end up when the next translation is passed.

think a lot of this can be done via scripting. some things handled on the server and some on the client.

mp would be great!

Post Reply