Forums » Community Projects

Seeking beta testers for distributed VO server

12»
Apr 01, 2007 upper case link
Hi

I've reverse-engineered the Vendetta-Online protocol* and created a server that can be (marginally) used with the current production clients. Currently supported are Mac and Linux clients. Something odd in the Windows client networking is causing a slight delay but I'm hoping to fix that in the coming weeks.

As a reverse-engineered back-end server, some stuff still currently is not working right (the damn AI thing is hard to do in Lund Simula) and is the reason why I'm seeking beta testers. Users should expect to run into some level of problems while in some heavy fights but overall, connection should be a breeze.

Current features:

- distributed server (P2P -like); avoids bottleneck and limits lags
- same ships and specs as real VO server; ships are stored in client app
- different universe map w/ compatible points of interests (wh etc); those are part of the server and I can't copy those
- different missions & AI (server side again)
- faster network interconnect:
- possibility to link multiple servers for a distributed universe (aka, performance!)
- Mac & Linux, Win coming soon; need testers
- Cross-universe jumping (aka, move from this custom server to and back from Guild Software's server!)
- Custom server runs on top of Oracle-Lite (aka, Berkeley-DB)

Anyone who'd like to enlist for the beta testing, please send me an e-mail to

upper_case (at) mac dot com

I'm also accepting suggestion on the same for this Distributed VO server whose name currently is Vendetta-Online internaly-Distributed (aka, VOiD).

This will let us enjoy even more VO gameplay and alleviate the server load on Guild Software's server. Currently, you absolutelly REQUIRE a Guild Software VO account for this to work.

I will respond only to serious enquiries.

Have fun!

- Martin-Gilles L.

* Before I'm swamped with hate mail messages for having "hacked" the protocol, you have to understand that reverse-engineering is entirely legal in Canada provided no original source is used as either reference or copy of work. I was actually paid by my employer once to reverse-engineer a closed, binary file format so this wasn't too much of a new thing for me.
Apr 01, 2007 zamzx zik link
April fools?
Apr 01, 2007 upper case link
Obviously, the timing of this announcement might be cause for question but other than this code snapshot, I dont think I have to justify myself further. Just ask around to those who know me as for my credentials as a software developer.

Apr 01, 2007 LeberMac link
Erm...

So... April Fools?
Apr 01, 2007 mr bean link
what is this?
Apr 01, 2007 Jakob LeMort link
From the TOS:

You may not sell, auction, rent, lease, loan, modify or create derivative works, adapt, translate, perform, display, sublicense or transfer all or any portion of the Software. You may not copy any of the written materials accompanying the Software. You may not reverse engineer, disassemble or decompile the Software except to the extent that this restriction is expressly prohibited by applicable law. The Software may contain license management software that restricts your use of the Software.
Apr 01, 2007 Antz link
Mmmm, april fools. :-)

Jokes aside, nothing in that post was *too* unreasonable - he could push the authentication out to Guild's servers and therefore only allow subscribers to play, and inter-universe jumps from/to Guild servers could be made by injecting a wh into Guild's traffic and simply dropping connection when a jump is made.

However, no character changes made outside Guild's servers would get saved (and you certainly can not rely on the distributed set to store such important data, people would start fiddling within minutes!) Also, latency between sectors would mean everyone gets a bad pingtime.

Anyways, well done upper_case, you had me fooled at least until half way down the post! In case you really have built your distributed server, please link to the source tarball as proof, and preferably on a different day, as a screenshot with a dozen lines of code and another dozen of filenames raises more questions than it answers ;-) .
Apr 01, 2007 SCAR X link
The VOid awaits!
Apr 01, 2007 upper case link
Jakob, no portion of "the software" (the VO client) was modified in any way.

And by "applicable law", Canada's laws are clear in this matter. I can reverse engineer any material I want provided I've not used any unlawful practice or access to original work (source code). Using network packet analysers is not illegal.

Trust me. This is perfectly legal. And the mere fact I'm *requiring* an active VO account (it also looks for more than 8 hours game play so trial accounts wont work), means I'm not stealing user base.

The VOiD server is twofold actually. There's a centralized server that acts much like a bittorrent tracker. it's job is to advertise other users of the VOiD server (what's referred to as pier servers) and tracks their relative internet position through means of "traceroutes". from this, it generates an "IP tree" where it will try to locate the nearest (both hop-wise and ping time) pier server, and match these pier servers together for faster network play.

How the VOiD Pier Server works is rather simple. When you launch it (before launching VO), it will ask you for a few preferences upfront (the first time only--full pref UI forthcoming). One of them is your "gateway sector". This sector is tracked by your pier server and whenever you jump in it in the VO (Guild Software's) universe, the Pier server automatically transfers your to the VOiD universe. Caveat: you'll appear to logout from VO, something that will change later (I'll simply leave you loitering far in the VO sector). So, given the local Pier Server actually launches (as a sub process) the actual VO client, it can leverage this to monitor IO network and adjust it's runtime based on this. This is also how it can relay chats between universe (akin to FireMage's IRC relay, though this actually uses the VO chat protocol, itself derived out of IRC).

When you Login using VO, you're actually loging in into the VO universe. The VoID Pier Server is only relaying the information, somewhat like a router. but it keeps tracks of when you are, where/how your flying and the complete flight characteristics. it's basically a second VO-like server watching you and waiting for you to enter VOiD's universe.

The cool upshot is that given you have portion of a server yourself, you'll be able (at a later date) to actually add your own content to the universe. Things like missions specific to your universe, stations, economy etc.

To visualize this, take the VO space map grid and add layers. Any layer could be your own "alternate universe". Right now, though, there's only one such added layer (with your own portal at any given sector) but eventually, it would be possible to have as many layers. I'll wait until there are more VO players to enable that, wich will also give me time to performance-tweak the Pier Server relay code.

VO and VOiD universes are synched whenever you enter stations (for inventories).

I'll post a more complete workflow model later this week but I have to make sure I dont divulge details specific of the original VO protocol or mechanics (now THAT is something I dont have rights to do, Antz).

Thanks for the icoming enquiries people. Keep it coming but please, do send out your machine specs. I'll need to track that for performance and bug reporting.

EDIT:

Build results (text)
Build output (image)

These two are for the VOiD server, not the Pier Servers.
Apr 01, 2007 roguelazer link
Very impressive that you kept the entire server under 300 KiB...
Apr 01, 2007 upper case link
No. That's just the relay stuff. The actual proto-AI is under Simula code. I compile everything using Objective-C++ so I can interface Simula code (using Lund's compiler) with the C bridge of Obj-C++. There are tons of frameworks (libraries) that run next to that.
Apr 01, 2007 jexkerome link
Admit it's a joke already!
Apr 01, 2007 LeberMac link
April Fools!

... right ?
Apr 01, 2007 SCAR X link
He called it "VOiD": of course it's April Fools.
Apr 01, 2007 upper case link
The "void" is a common term in VO. It's only natural I used it.

It's past midnight here (ET). I still support my claim.
Apr 01, 2007 SCAR X link
Ok then. Since I have zero interest in reading your programming talk, in one sentence explain what this is and why I'd want it.
Apr 02, 2007 upper case link
Given it's still april first in Kiritimati (they're UTC-14) until the next hour, I'll wait 'til then. Then I'll summarise in one line. I'll go take a shower for now.
Apr 02, 2007 upper case link
It's a joke. :-)

Sorry to those who were duped. Some of the emails I got almost felt like job applications :-D I'll keep those under wrap. No need to make fun of people. It's the second of april...

What probably fooled a number of people was that there's a lot of truths in all this. VOiD actually DOES exist. That's real code and yes, there's a ton of libraries next to it. But it's not a VO distributed server clone. I wish. I'll explain later. I have to go to work now.
Apr 02, 2007 drdoak007 link
actually, april fool's jokes are socially unacceptable if played on people after 12 noon on april 1st.

UC, get your kicks before noon... and if you pull such a caper, stop denying it when people ask "is this a joke?" "april fool's joke?". cause now you just look like a f**ktard for waiting as long as you did, and stretching out something that didnt need to be.
Apr 02, 2007 upper case link
And then you wonder why i wont wii-connect with you. Get a life Doak. VO is international and I made sure it was april first until the end of april first.

BTW, I did warn a couple of devs and a guide when this was posted. I suppose this is how it remained in the general forum for so long.

This thread can now be moved to Off-topic (or community project? :-) where it truely belong.

Leebs, shame on you for even doubting a moment about this. You *KNEW* VOiD was that bot I was making last year. :-)