xbox-scene.com - your xbox news information source
Quick Links: Main Forums | Xbox360 Forums | Xbox1 Forums | PS3 Forums
Xbox-Scene Forum Help  Search Xbox-Scene Forums   Xbox-Scene Forum Members   Xbox-Scene Calendar

Giganews Usenet Offers: +1150 days binary retention, 99%+ Completion, and Unlimited Speed/Access!

360 ODD Emulators: X360 Key $99 | Wasabi360 FAT $99 | Wasabi360 Slim $99
C4E's iXtreme Burner MAX Drive: LiteOn iHAS124 DROPPED TO JUST $17


Welcome Guest ( Log In | Register )

 Forum Rules Rules
2 Pages V  1 2 >  
Reply to this topicStart new topic
> Xmelee Xbox Tunnel Client Source Code And Server, Want to run your own xbox tunnel server?
Initial
post Apr 30 2005, 06:00 PM
Post #1


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



If you are interested in running your own xbox tunnel server, the game server (called gserver) of xmelee has been released. You can also get the source code for the end user xbox tunnel client to do your own mods.

The xmelee gserver is probably a great option if you are on a private lan like a university campus and need to run your own server. This will also allow you to play xbox system link games against people in other dorms since the packets are encoded as normal IP/UDP packets (most university campuses don't allow you playing xbox system link games on the internal network).

The xmelee gserver is also usefull for anyone looking to run their own xbconnect like gaming network. With the optional user interface source code, you can distribute your own client for your gaming network and server.

The xmelee packetization core is also less laggy than xbconnect/xlink kai.

initial@xmelee.com


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Dolfhin
post Apr 30 2005, 08:37 PM
Post #2


X-S Expert
***

Group: Members
Posts: 647
Joined: 17-October 03
From: The Netherlands
Member No.: 68566
Xbox Version: v1.3



QUOTE(Initial @ Apr 30 2005, 05:06 PM)
The xmelee packetization core is also less laggy than xbconnect/xlink kai.

initial@xmelee.com
*



Please explain, what is the difference and in which way is it less laggy?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Initial
post May 3 2005, 01:32 PM
Post #3


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



If you look at xbconnect for one, you can find yourself in situations where users are constantly trying to connect to your game, after you locked the door (because of the old information they have). Alot of this messaging is all TCP based. Communication with the game server as well happens in a TCP fashion, which can cause some retransmits, packet fragmentation and so forth.

From a pure game play experience, if you look at the packetization core. Xmelee always does packetization of mulitple packets within one UDP frame (you don't have to buy the version). the packet sizes are also kept small in order to avoid any fragmentation by any router or other network boxes the packet may encounter when it is transmited from the originator to the destination. It will also catch up with the contents in multiple packets if a hickup occurs on the users box or the network.

The original ethernet frames of the xbox along with the IP, UDP Header and CRC's are also stripped out and recreated at the far end. There is also a very small header 4 bytes used to prefix individual packets. PC's these days are much faster, and you might as well use the CPU to recompute the CRC and rebuild the packet then to send all this data over to the far end and consume extra bandwidths..

There are other minor things I've done as well..

initial@xmelee.com
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
netdroid9
post May 4 2005, 09:50 AM
Post #4


X-S Senior Member
**

Group: Members
Posts: 185
Joined: 22-April 05
Member No.: 215666



Of course, by not CRCing the packets with the original CRC from the host console faulty packets could be accepted as the correct packets, there by allowing, for example, cheaters, to screw with your game.

Of course, this is a LAN kinda tunnel software, so it'd be easy to find out who's screwing with the packets smile.gif.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Initial
post May 4 2005, 01:32 PM
Post #5


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



Very true, but I do have some protection in the 4 byte header I use which prefixes the xbox's packet. So the hacker would have to take gain understanding of the header and add his own frame sequence number and so forth..

-Initial
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Dolfhin
post May 4 2005, 06:20 PM
Post #6


X-S Expert
***

Group: Members
Posts: 647
Joined: 17-October 03
From: The Netherlands
Member No.: 68566
Xbox Version: v1.3



Nice!

The explanation sounds logical and I will check it out biggrin.gif

Btw you might want to mail the xbox-scene guys to get this on the frontpage. It will attract more users than just posting it in this forum. The adres can be found on www.xbox-scene.com/about.php if I'm right.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Dolfhin
post May 4 2005, 06:30 PM
Post #7


X-S Expert
***

Group: Members
Posts: 647
Joined: 17-October 03
From: The Netherlands
Member No.: 68566
Xbox Version: v1.3



Just wanted to enable E-mail notification ... ignore this post
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Bio}{azard
post May 17 2005, 10:46 PM
Post #8


X-S Young Member
*

Group: Members
Posts: 31
Joined: 28-September 03
Member No.: 65001




1. XBC's tunnel adds even less overhead then Xmelee. (1 byte). The next version is targeted to actually make the packets smaller by 10 bytes.

2. XBC uses pure UDP for all client to client, room to room communication. TCP is only involved when there is a need to use a service on the XBC server.

3. Packetization, in most cases, introduces lag. Both XBC and Xlink have done this a long time ago. You save bandwidth at expence of adding latency. Halo 2 servers send packets every 40 MS. So for your code to do any good, you would need to add 40 MS ping to everyone for this to even work.


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
masterdave
post May 18 2005, 12:57 AM
Post #9


X-S Young Member
*

Group: Members
Posts: 37
Joined: 2-November 03
Member No.: 71522
Xbox Version: v1.0
360 version: v1 (xenon)



Very True Bio}{azard
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Initial
post May 19 2005, 02:33 PM
Post #10


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



Bio}{azard,

Fair enough. I have to admit that the last time I looked at xbconnect packet captures and did the math, it was about a year and a half ago. xmelee is not out there to outdo xbconnect on a technical packetization level, but simply to offer an alternative which permits users to create their own private game server networks such as on a university campus or a clan's private game server (on the internet) which can be linked up with their web server.

initial@xmelee.com


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
AXE Clan
post May 21 2005, 02:26 AM
Post #11


X-S Enthusiast


Group: Members
Posts: 17
Joined: 23-October 04
Member No.: 159465



Well if your not out to copy xbc why did you make the host a game screen look almost the sane dry.gif I highly doubt you will go anywhere with your tunnel as both Xlink and XBC users are both set on their tunnel. Maybe an xbox 360 tunnel but no way are you going to get mass users for an xbox tunnel this late in the game.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Initial
post May 22 2005, 04:21 PM
Post #12


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



AXE Clan,

I agree with what you said, but you are missing the point.

The back end game server is available. If you are on a university campus, or a metro area lan, you don't have great external public internet bandwidth and access, but you do have alot of bandwidth on the internal campus or metro lan. These users are typically excluded from xbc and xlink. With xmelee, the IT administrator or any internal user can setup a game server. No firewal, router, NAT box configs required to forward ports at the edge of the enterprise network.. This is the beauty of xmelee.. A freely available back end game server as well as the client software and user interface source code. (With a top notch tunnel/packetization engine).

Yes, as far a getting critical mass on the public xmelee game server is concerned, that's not going to happen any time soon. But if you are looking to setup your own game server network, what other alternative is there to xmelee? NONE.

Currently, I hold the source code to the packetization core and the gserver. At any point in time, I can sell this to anyone or release the source code to open source. Given a bit of time, this would surely put a big dent in xbc and xlink... it's not my plan at this time (but I'm crazy enough to do it..)

initial@xmelee.com
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
flat235
post May 23 2005, 07:00 AM
Post #13


XLink Crew Member
****

Group: Members
Posts: 999
Joined: 18-April 03
From: Nottingham, UK
Member No.: 32955
Xbox Version: unk
360 version: unknown



Kai's deep resolution server already does what you're saying on university LANs - has been for some time now. It can even provide dual interface support for the engine, allowing users like Italian Fastweb customers to play against fellow Fastweb users and others at once - even Live! can't do that.

Using DRS with Kai, the engine automatically sends data between same-LAN users over the LAN, and off-LAN data over the internet.

About the packetisation-core stuff. We did it all a couple of years back - and no, it doesn't really work. You will get better results if you concentrate on getting the data in and out of your code as fast as possible - even to the point of *not* removing pointless data from the frames.

A lot of our stuff is opensource already - with more to come. I fail to see how the introduction of another packet core / server model would affect the current demographic - but hey - release it smile.gif Let's see..

Watching with interest wink.gif

TD
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Initial
post May 23 2005, 02:18 PM
Post #14


X-S Enthusiast


Group: Members
Posts: 14
Joined: 9-July 04
Member No.: 129636



xmelee does package it up as soon as it can, what it does do is catch up if there is alot of data to send and then spew it out in individual 500k multi frame packets. I'm not adding latency by polling periodically, I'm just packaging up everything into one packet if there are multiple packets in the buffer by the time I get to them. (This could be caused by a hick up on the users computer or something else).

I'm sure Xlink and the others do the same.

There is also one big difference between xlink, xbc and xmelee... I'm just ONE guy with another job. I have the game server and packetization core in a rock solid state, but I'm terrible at User Interface stuff. The UI was to be short term.. I would really need someone to take over that code (and even the game server code) and then I could concentrate on the packetization core and a distributed game server model. When I originally sketched out the architecture, I broke it down into 3 individual blocks with different development environments. I've kept it this way, but it does make development rather painfull when you are one person.

UI - Visual Studio .NET C#
Core - Win32 Console app C++ (should be portable to a mac/linux client)
gserver - cygwin and linux C++

initial@xmelee.com





User is offlineProfile CardPM
Go to the top of the page
+Quote Post
flat235
post May 23 2005, 03:40 PM
Post #15


XLink Crew Member
****

Group: Members
Posts: 999
Joined: 18-April 03
From: Nottingham, UK
Member No.: 32955
Xbox Version: unk
360 version: unknown



QUOTE
xmelee does package it up as soon as it can, what it does do is catch up if there is alot of data to send and then spew it out in individual 500k multi frame packets. I'm not adding latency by polling periodically, I'm just packaging up everything into one packet if there are multiple packets in the buffer by the time I get to them. (This could be caused by a hick up on the users computer or something else).


I see - that's a sensible approach for sure, but from the data we gathered when playing with the same thing, we *never* got a queue on the sniffer side. Saying that though, our stuff is geared up to give total priority to the sniffer <--> udp socket stuff - the gameserver and ui stuff can wait. I guess it depends how your engine model works. We spent a lot of time trying what you suggest with the gamecube - because it sends a *hell* of a lot of *really* small packets - even then, we reckoned it was faster jsut to watch the sniffer like a hawk, and shoot anything out as soon as it comes in - avoiding the queueing.

I'm not saying its not a valid approach - it most certainly is, but it would be interesting to see in what games the benefit is most apparent.

QUOTE
There is also one big difference between xlink, xbc and xmelee... I'm just ONE guy with another job.


I hear that biggrin.gif I started out just the same.. We all still have normal jobs, but it's nice now we have a load of other guys contributing.

QUOTE
I have the game server and packetization core in a rock solid state, but I'm terrible at User Interface stuff. The UI was to be short term.. I would really need someone to take over that code (and even the game server code) and then I could concentrate on the packetization core and a distributed game server model.
When I originally sketched out the architecture, I broke it down into 3 individual blocks with different development environments. I've kept it this way, but it does make development rather painfull when you are one person.


Yeah Kai's architecture is pretty similar.. the distributed orbital mesh os probably the strongest feature at current - allows us to give a much richer flow of data back to the engine than any other similar app. I also know the feeling with UI - I made the current win32 one, and it's very much a "coders" UI - kinda pretty, but basically functional and no more.. The UI's made by proper UI guys (XBMC, Amaryllis, jKaiUI, gKaiUI) are all much better - we're lucky to have those guys help.

QUOTE
UI - Visual Studio .NET C#
Core - Win32 Console app C++ (should be portable to a mac/linux client)
gserver - cygwin and linux C++


Sorta the same.. but eww.. .NET biggrin.gif:D ? WHY?? biggrin.gif

We're:

UI - VC++
Engine - VC++
Orbital Server - VC++
Root box - PHP+MySQL over IIS6/2k3

Your project sounds good - its nice to see someone still trying to get more out of the theory behind the tunnel itself. We were pretty much where you are now back in the day, and we found a lot of new stuff out - and everyone told us we were a.) Lying, b.) Sucked, c.) Had no users d.) Would be gone in 6 months.

I'm pleased to say that didn't happen, but it was hard work. Ignore what anyone else really says - if you enjoy the work, do it - and remember the age-old hobbyist coder adage: "If you build it, they will come" biggrin.gif

TD
User is offlineProfile CardPM
Go to the top of the page
+Quote Post





2 Pages V  1 2 >
Reply to this topicStart new topic

 

Lo-Fi Version Time is now: 24th May 2013 - 03:31 PM