Page 2 of 3

Posted: Tue Jul 19, 2005 2:59 pm
by scott
i agree i do think we need a multiplayer function within RF. i am not a programer but i have just looked on the net and found what might be a sueful website for programming networks for games. the site is http://www.gamedev.net/reference/list.asp?categoryid=30, it seems to have some useful information but i am not a programmer so i cant say for sure.

Posted: Tue Jul 19, 2005 3:35 pm
by MakerOfGames
MakerOfGames wrote:
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.
I have thought of new choice #4!
#4 uses #1's transmit direction and speed. But every, lets say for our example, half second, the x/y/z is gathered and sent to others to make sure they are in the right spot. And if the users x/y/z hasnt changed since last transmission, then dont send x/y/z again. Ths pretty much eliminates that lag problem of incorrect player positions and would be to small a time incriment for people to really notice if the other player(s) moved slightly after lag.

Just updating my ideas on how to make the multiplayer as smooth as possible with the smallest possibility of lag.

Posted: Fri Aug 05, 2005 10:14 pm
by jonas
What if you assigned an attribute to everything? Then had the your attributes shared with the other persons. Like when you get injured it sends a change in attributes that player is injured then It plays the animation for being injured on the other computer. Then if you shot at the other player and it hits him then it transmits that he was hit plays the animation then deducts from the health!

I'm probably saying the same as what you guys are! Just have the attributes sent back and forth every second or 1/2 second!

Posted: Sun Aug 07, 2005 1:31 am
by scott
so if i get you, you are saying transmit a simple code that is short to tell the other computers to do the more complex code.

Posted: Mon Aug 15, 2005 8:08 pm
by DaveC
What about like say for that "team chat problem" is their a way to have information sent to a server or somthing like through asp php xml or flash or somthing to a server and then have it sent back to who ever is connected? Or have like a mini browser and have a chat in it?


Also i've noticed some amature MMORPG's actually use IRC servers for the games.

Actually give's me a idea for making a mmorpg using a irc and a "game stats" system like the ones used for Counter-Strike servers which record how many kills you have.

Posted: Mon Aug 15, 2005 8:30 pm
by Sudi
Didn't someone say that u can see each other in a mp session with the current code? wouldn't that mean u just have to transmit to the other player where u hit something with ur bullets and to write a script that looks for bullet collisons can't be that hard....ok actually i dont know lol.
Or am i totally wrong?

Posted: Mon Aug 15, 2005 9:48 pm
by MakerOfGames
You are pretty much right there. The only code needed is to send player created states(ex: fired weapon/ changed weapon/etc.). Then IP games would work.

Posted: Tue Aug 16, 2005 6:38 pm
by scott
omg i was in the middle of writing somthing when it hit me, cant you just add another 'player' atribute to the world for each player and then instead of you controling it yourself make a connection over the internet and control it from a remote unit. is it as simple as that, so have more than one player and asign an atribute to an ip address so its controled via another user ???????????????????

(but of cours remove the camera from the other players)

Posted: Wed Aug 17, 2005 1:10 am
by Spyrewolf
omg i was in the middle of writing somthing when it hit me, cant you just add another 'player' atribute to the world for each player and then instead of you controling it yourself make a connection over the internet and control it from a remote unit. is it as simple as that, so have more than one player and asign an atribute to an ip address so its controled via another user ???????????????????
i don't think so...

I'm pretty sure if what everyone was saying was so easy, we would have had MP by now....

There is more to this that just sending attributes over the net, collision detection, players location, triggers, camera's.. ect,

there also needs to have security in place so that no-body can cheat, i mean what wouldit stop right now for some-one to open up their player ini and change their current health attrib to 4,000,000,000,000,000,000

right now nothing...

alot of code has to be implemented to get a basic multiplayer game going, this is a major job, and we can theorize about this all day, but this would probally require a small team (say all of our current programmers) to implement, this task simply is huge! and yes MP would be nice, in all honesty i can't see it happening in the near future, we just have to wait...

there is basic..and im mean real basic multiplayer right now, but unless your some sort of programming wizard, i think we should leave this topic to the pro's or hit the books, and say in about , 5-10 years of studying you should be at the level to start coding the MP system.

Posted: Wed Aug 17, 2005 9:50 am
by scott
about the cheat stuff, isnt that hard to do once the game has been locked under the password and made into an .exe? i thought the idea of that stuff was to stop people from changing the game and using parts for their own use?

i know programming isnt easy but still i could of thought of an easy way round the problem? as some people might be thinking of completly different ways to do it, it was only an idea.

and what i ment is, we have basic mp where we can see each other, just turn that into another player using a similar entity to the 'player' entity, changing it so instead of the user sending the position and everything else every split second all that has to be done is send the other players keybored information and it then works like a normal player that is being controled by a reomte work unit, minus the camera

Posted: Thu Aug 18, 2005 5:23 am
by MakerOfGames
If a cheater wants to cheat, they will decompile the exe and change the code or do somthin else to mod there attributes.

Here is the way to stop cheaters:
Before a MP game starts(meaning before the users can control characters), have all players cross check all .ini files. If someone has a modded one compared to all others, then they are kicked out of the game. Simple as that. Then if the cheaters really wanted to they can play a game where everyone has the same cheat because all the .ini files would be considered the same. And it could be programed that if all attributes in ini files are different the game is canceled because a common .ini couldn't be found. That should be enough to stop cheaters and hackers.

**Note you cannot code it to update the odd man out .ini because that could make the inocent man become a cheater if all other players had the same cheat. This would also save the inocent man from certain death, by kicken him out of an all cheaters match.

That should be able to stop those that want to cheat.

Posted: Thu Aug 18, 2005 5:37 pm
by SithMaster
This is probably adavnced but if some has a server it would be alot easier. First everyone can play anyone by just checkin a user database on the server. Cheaters wouldnt be able to play on the server because we would use the method maker of games described. So the entire server is cheat free. This might prevent lag like the kind on xbox live with usa players and uk players. The host would always have the advantage but with a server it would be a bit more even since both players would have to receive data.

This is all speculation and dreaming. It would be terribly difficult to maintain, get, and protect a server. Id rather have a lan and ip address type multiplayer. Lan definitely so all my friends could play the games i make.

Posted: Thu Aug 18, 2005 5:55 pm
by Sudi
Short question r people actually working on getting mp realized or is this just a could be thread if so this is really useless in my opinion.....i would do something about it but all i can programm is something that gives out pictures and meshes. but since i gave up on programming i probably cant even do that anymore.
anyways back to topic is there somebody on this forum capabile of writing code that would provide rf with a real mp kinda mode or not?

Posted: Fri Aug 19, 2005 5:14 am
by MakerOfGames
One problem is that I can decifer the C++ because it referances the other.cpp files and stuff. Also, I am a noob at C++.


The following text is copied from one of my old posts in the Programming section.

I dont think that a server is required for MP games to play on.
If someone had a dedicated server, we could have every RF game made have a game browser function. The way to do it is have a list of user names on the dedicated server. When RF starts MP it gets the list and adds the user names to your list of players. Then it would add your name and IP to the list for others to get. This allows your computer to know who to contact to see if they are playing a game and doesn't use much of the servers bandwidth. Now the list of users is only updated the first time you use RF. So the list goes as such:

Game first released:
-creators ip gos here-

-1 other person logs on,
-creator
-gamer1- this person gets the creators IP

another gamer logs on-
-creator
-gamer1
-gamer2-gets both IPs

Now when you go back into multiplayer you have a certain amount of IPs. The trick here is that when others get your IP and log in to RF multipalyer, they send a data package to you asking what game you are playing. This even works if you dont know their IP. Then you check there IP with your list and if it is different it is added to your IP list. This will allow server browser with minimal server use. The server is only being used once by each gamer when they first log into RF multiplayer.

Now you might be thinking, well you dont have everyones IP to ask if they are in RF MP after others join after you. The thing is, that they will contact you if they are logged on to see your RF status. So if they arent on why try to contact them?

Does this make sense? What I did was tried to eliminate the server but realized you need the servers use at least once by every user when they first try multiplayer. This would allow the servers to not need large amounts of bandwidth because all the game would boil down to IP. Basicly this creates an IP browser, but functions the same as a server browser. Its just that the users swapping IPs is automatic through a dedicated server.

Posted: Fri Aug 19, 2005 5:44 am
by MakerOfGames
Im not sure if I said this in the long paragraph above or not but:
When a user is contacted by someone they dont have the IP of, the IP is recorded to their list of IPs to contact to play MP with. That ends my big long theory of how to have minimal server function but have a game browser.

And for multiplayer chat, it would be possible to program send chat text to people with team attribute (# goes here). That attribute would have to incorperated into the player somehow but would then allow teams to be formed on the fly online because that attribute can change so their comp can send and receive and refuse the proper chat info. Dont want to send your team tactics to the enemy!