Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Need for Speed World
You last visited: Today at 22:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



UDP discussion - freeroam

Discussion on UDP discussion - freeroam within the Need for Speed World forum part of the Other Online Games category.

Reply
 
Old   #1
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
Post UDP discussion - freeroam

Hi all,

Recently I've been trying to figure out how to get free-roam working with Nilzao's "soapbox-race" server, which can be found here:

I have already begun to do some debugging, although I'm curious to see if anyone else would be interested. I know that this is going to be insanely difficult, but I think I have a pretty good idea of how to go about doing it. I have been studying the source code of the UDP server, and I've added some extra debugging statements so I can see what the data most likely represents.

So, I'd just like to know if anyone is interested. I'd like to know people's thoughts about this whole thing. Also, @ and @, if you see this, would you care to give some advice? I've already gotten a bit of a start, but it would be nice if you could explain how the UDP server is doing its thing. I've looked at the source code but it seems a bit hard to follow.

I'm sure that this will be an interesting little project/investigation. Be sure to reply if you're interested, with your thoughts!

Thanks,
leorblx (aka CoderLeo aka the guy who rarely posts)
leorblx is offline  
Thanks
5 Users
Old 06/13/2016, 03:46   #2
 
elite*gold: 0
Join Date: Jun 2015
Posts: 331
Received Thanks: 608
Quote:
Originally Posted by leorblx View Post
Hi all,
Hi leorblx.
Quote:
Originally Posted by leorblx View Post
Recently I've been trying to figure out how to get free-roam working with Nilzao's "soapbox-race" server, which can be found here:

I have already begun to do some debugging, although I'm curious to see if anyone else would be interested. I know that this is going to be insanely difficult, but I think I have a pretty good idea of how to go about doing it. I have been studying the source code of the UDP server, and I've added some extra debugging statements so I can see what the data most likely represents.
Nice, good to know someone is trying to understand that.

Where u put the debug statements? ollydbg? wireshark? ida hex rays?

Quote:
Originally Posted by leorblx View Post
So, I'd just like to know if anyone is interested. I'd like to know people's thoughts about this whole thing. Also, @ and @, if you see this, would you care to give some advice? I've already gotten a bit of a start, but it would be nice if you could explain how the UDP server is doing its thing. I've looked at the source code but it seems a bit hard to follow.
Well... it's not that hard, we have recorded sessions from races and freeroam to study.
like this:


The udp race server is a rebroadcaster between players with little modifications in the packages.

You can try the "String protocol" and netcat to understand what is happening.

All other things inside code are to handle sessions, so can have more than one race running at the same time.

Need to fix sync problem, but the concept is working.

Quote:
Originally Posted by leorblx View Post
I'm sure that this will be an interesting little project/investigation. Be sure to reply if you're interested, with your thoughts!
Yes it will be a nice project and investigation, but I need skills to fix the sync issue.

If I make the freeroam udp project, probably will have the same sync problem from race project.

For now I'm focused in move all xmpp stuff from project to openfire xmpp server, for better chat handling.
Quote:
Originally Posted by leorblx View Post

Thanks,
leorblx (aka CoderLeo aka the guy who rarely posts)
You're welcome.
Nilzao is offline  
Thanks
2 Users
Old 06/13/2016, 13:20   #3
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
Quote:
Where u put the debug statements? ollydbg? wireshark? ida hex rays?
Ahh, sorry. I misspoke; I meant to say that I put the debug statements in the server itself. I still have to get around to messing with wireshark and IDA, but Ollydbg might be tricky because there isn't a 64 bit version, and that's the kind of operating system I have. (Windows 10 x64)

Also, when I try to load "freeroam.wireshark" into Wireshark on my Windows machine, it seems to think that the file is too large for some reason. Did you create it on a Windows machine as well, or on a different OS?

Quote:
Well... it's not that hard, we have recorded sessions from races and freeroam to study.
like this:
Hmm, interesting. So freeroam is possible...
I'm gonna have to take a look at that and see what can be done. I'll be sure to post some pictures if I can ever get it working... and of course I will open a PR with the code, assuming it works.

Quote:
The udp race server is a rebroadcaster between players with little modifications in the packages.

You can try the "String protocol" and netcat to understand what is happening.

All other things inside code are to handle sessions, so can have more than one race running at the same time.

Need to fix sync problem, but the concept is working.
Good to know.
leorblx is offline  
Thanks
3 Users
Old 06/13/2016, 13:26   #4
 
fabx24's Avatar
 
elite*gold: 0
Join Date: Jul 2015
Posts: 352
Received Thanks: 132
you can download the application at 32bit because the system at 64bit can execute 32bit and 64bit
fabx24 is offline  
Thanks
1 User
Old 06/13/2016, 14:10   #5
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,394
Quote:
Originally Posted by leorblx View Post
Ollydbg might be tricky because there isn't a 64 bit version, and that's the kind of operating system I have. (Windows 10 x64)
Stack sizes won't make that much of a difference, don't worry about that. nfsw.exe is x86, so as long as you stick to a specific architecture you will be fine. (e.g., if you use x64 IDA and save instance, then you will have to use x64 IDA to load that instance back.)

Basically, don't overthink it; just use something you can work with.
berkay2578 is offline  
Old 06/13/2016, 14:25   #6
 
elite*gold: 0
Join Date: Jun 2015
Posts: 331
Received Thanks: 608
Quote:
Originally Posted by leorblx View Post
Also, when I try to load "freeroam.wireshark" into Wireshark on my Windows machine, it seems to think that the file is too large for some reason. Did you create it on a Windows machine as well, or on a different OS?
Try to follow the readme files...

This freeroam.wireshark is a text file, was extracted from wireshark when you right click udp package and click follow udp stream, i made a code to read this, and send it to nfsw.exe in a fake udp server, like a recorded vhs tape playing.
Quote:
Originally Posted by leorblx View Post
Hmm, interesting. So freeroam is possible...
I'm gonna have to take a look at that and see what can be done. I'll be sure to post some pictures if I can ever get it working... and of course I will open a PR with the code, assuming it works.
All things are possible, we just need time and inspiration to do it.
Nilzao is offline  
Old 06/13/2016, 19:02   #7
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
@ @ Alright thanks. I'll see what I can do.

This will definitely be an interesting thing for me to work on over the summer. Hopefully I can get it to work.

By the way, is there source code available for the freeroam server? I might be looking in the wrong place, but I can't find anything. It would be nice to see how the server sends the packets; that would be really helpful.

Ollydbg seems really cool, so I'll probably try that out. I don't have a license for IDA, unfortunately, since it's crazy expensive, but I'll just try out the demo version. Sort of a shame how these things can be so expensive sometimes...

So, yeah, to conclude: I'm going to try debugging the game later today.

EDIT --------------------------------------------------------------------------------------------------
Quote:
you can download the application at 32bit because the system at 64bit can execute 32bit and 64bit
Alright, thanks. I didn't realize that until much later :P
leorblx is offline  
Thanks
2 Users
Old 06/14/2016, 12:02   #8
 
elite*gold: 0
Join Date: Jun 2015
Posts: 371
Received Thanks: 320
This guy atleast needs some "Thanks!"...

Here is source code for UDP Race Server:
There is no code for FreeRoam. I think, you can find differences of Race and FreeRoam by packets from WireShark...
Hypercycle is offline  
Old 06/14/2016, 13:16   #9
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
@ Yeah I knew about that one, that's what I was debugging with, but I was talking about the freeroam server from the UDP SDK.

I found what I was looking for, anyway. Next step: learn how to properly use OllyDbg.

EDIT: I've started writing the code to handle freeroam packets. Wish me luck, and let's hope it works...
leorblx is offline  
Thanks
1 User
Old 06/16/2016, 01:29   #10
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
sorry for bump, but for the time being I've decided to split the freeroam server into a different module. it seems that it just can't work with the normal one, unless I'm doing something completely wrong.

don't worry though, it'll be pretty simple; a socket server that accepts connections, receives packets, processes them, and re-broadcasts them. At least, I'm pretty sure that's the way it should be done, based on my 15-minute studying of the freeroam server from the UDP SDK.
leorblx is offline  
Old 06/16/2016, 02:22   #11
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,394
UdpRelay is for races, rest have always been for freeroam.
When game is calling getrebroadcasters, it's trying to reach to the freeroam broadcaster. It is similar to the UdpRelay, but different in some way we cannot understand right now, and since the sync issue is still present within the udp connections(going as far as to dropping connections), I don't think functional freeroam Udp will happen anytime soon.
berkay2578 is offline  
Old 06/19/2016, 12:00   #12
 
elite*gold: 0
Join Date: Jan 2013
Posts: 11
Received Thanks: 2
In my opinion, this is solution for freeroam
Razerx34 is offline  
Old 06/19/2016, 14:03   #13
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
@ no; you're missing the whole point of the video. that is a singleplayer race against bots. that's something the client can do itself, afaik. it doesn't need to talk to the server to do a singleplayer race, because there are only bots in the race anyway.

It's not that simple to re-implement what they have for racing and make it work for freeroam. We need people who actually know what they're doing and can provide advice (like Berkay and Nilzao, they've been a big help.)


Maybe one day freeroam will work. Even then, it's almost definitely going to have sync issues, because I am not good when it comes to networking.


One last thing: The minimap shows the bots because the CLIENT handles all of the singleplayer stuff (at least, I think it does...) We need to figure out how exactly the packets work if anyone ever wants freeroam back.


By the way @, I remember seeing a screenshot that you or Berkay had posted, where freeroam was working. Care to explain how you did that? Or was that a modified version of the freeroam server from the UDP SDK?
leorblx is offline  
Old 06/19/2016, 14:59   #14
 
elite*gold: 0
Join Date: Jun 2015
Posts: 331
Received Thanks: 608
@

The udp sdk is used to study how freeroam works without official EA servers.

Have tools to
- decrypt udp packets to see inside.
- mimic freeroam udp server with a recorded session from EA.
- convert extracted packets from wireshark to fake udp server.

I'm studying freeroam too, about a month or less, will be possible two players see each on freeroam.
Nilzao is offline  
Thanks
1 User
Old 06/19/2016, 18:07   #15
 
leorblx's Avatar
 
elite*gold: 0
Join Date: Mar 2016
Posts: 174
Received Thanks: 265
@ Alright nice. So you're able to see the ACTUAL contents of the packets, not just some weird encoded stuff? I'm gonna have to look at that.

I've taken a look at how the recorded session thing works with sending the packets; looks simple enough, you just have to know how to get the needed info from them I'm guessing.


Let's hope it's not too hard! It'll be cool if you can get it working.


Also, do you know if each freeroam packet has the same basic structure? Or is it different depending on how many clients there are?
leorblx is offline  
Reply

Tags
freeroam, freeroam-udp, nfsw, soapbox-server, udp


Similar Threads Similar Threads
UDP-SDK Tools - Freeroam
09/26/2015 - Need for Speed World - 22 Replies
Clean nfsw-offline server. No safehouse menus. No races. Not for noobs. Winxp instructions.
Freeroam-Chat
05/25/2013 - Need for Speed World - 4 Replies
Can anyone give me the NFS: World Freeroam-Chat * In WinRAR and not the Forum please :)
gta sa ..::[GER]Billy-Boy@FREEROAM::..
08/31/2012 - Grand Theft Auto - 8 Replies
Hallo ich stelle hier meinem neuen server vor. alle informationen sind hier Startseite - billy-boy-sanandreass Webseite! die homepage habe ich erst heute erstellt also bitte nicht so schlimm bewerten der server ich auch erst vor pahr tagen is noch nicht ganz fertig . :awesome: Video : video is net so gut geworden aber egal XD http://www.youtube.com/watch?v=nmegc_jY7uQ&fe ature=plcp
Do what you want | Freeroam - Vorstellung
11/13/2011 - Grand Theft Auto - 2 Replies
Einleitung Hallo liebe Elitepvpers Community. In diesem Thread würde ich sehr gerne meinen kleinen Server, welcher zur Zeit in One Man Army Manier geleitet wird.Sprich: Das Script und die Maps werden nur von mir(In Game: Joshi2122) erstellt. Trotzdem werden keine weiteren Team-Mitglieder gesucht. Der Server kann allerdings von euch beeinflusst werden, indem ihr mir eure Ideen mitteilt, welche ich dann wahrscheinlich umsetzen werde, solange sie für mich sinnvoll erscheinen Informationen...



All times are GMT +2. The time now is 22:08.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.