what would you like to see in the vegastrike multiplayer?

A forum for online playing, administration, bugs and feature requests
Post Reply
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

If somewone started shooting his own faction, just to be a PITA, his faction would turn on him. All the friend factions of his faction will also care less about him, perhaps to the point of hating him. His current enemies would not start to like him, except in some cases. So he would make lots of enemies.
With a hardcore game, in order to make starting systems safe, those systems would be filled with police AI. So if you find yourself, however powerfult you are, surrounded by 20 to 30 police ships all hostile to you, chances are that you will be shot to death.
So, such a PITA would last, at most, a few minutes. He would die, or escape. In any case, the newbie would be safe again. If the PITA tries this too often, chances of escaping each time decrease exponentially, so eventually he'll die, and the system will be safe for good (the PITA will now be a newbie again).
So, I don't think that is really an issue, in a well balanced hardcore game.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
pifactorial
Bounty Hunter
Bounty Hunter
Posts: 170
Joined: Mon Feb 21, 2005 7:04 am
Location: Pomona College
Contact:

Post by pifactorial »

Yeah, Police AI. That's exactly what I had in mind.
jackS
Minister of Information
Minister of Information
Posts: 1895
Joined: Fri Jan 31, 2003 9:40 pm
Location: The land of tenure (and diaper changes)

Post by jackS »

Don't neglect social engineering. If onecan create an environment where senior players have a vested interest in the younger players (indebtedness, employment, etc.) there can be strong incentives to not slaughter newbies (both because they would anger players likely more powerful than themselves and because it would wreck their chances for future gainful employment, loans, etc.)
Accu-Accelerated
Hunter
Hunter
Posts: 88
Joined: Sun May 01, 2005 7:37 am

Post by Accu-Accelerated »

klauss wrote:If somewone started shooting his own faction, just to be a PITA, his faction would turn on him. All the friend factions of his faction will also care less about him, perhaps to the point of hating him. His current enemies would not start to like him, except in some cases. So he would make lots of enemies.
With a hardcore game, in order to make starting systems safe, those systems would be filled with police AI. So if you find yourself, however powerfult you are, surrounded by 20 to 30 police ships all hostile to you, chances are that you will be shot to death.
So, such a PITA would last, at most, a few minutes. He would die, or escape. In any case, the newbie would be safe again. If the PITA tries this too often, chances of escaping each time decrease exponentially, so eventually he'll die, and the system will be safe for good (the PITA will now be a newbie again).
So, I don't think that is really an issue, in a well balanced hardcore game.
Hmm... there could also be auto-generated bounty missions on players that backstab their own faction. This could add some realistic effect to the game while also discouraging people from teamkilling.
pifactorial
Bounty Hunter
Bounty Hunter
Posts: 170
Joined: Mon Feb 21, 2005 7:04 am
Location: Pomona College
Contact:

Post by pifactorial »

If your standing with your own faction ever becomes negative, you should become a member of an "Outlaw" (or Pirate) faction.
Duality
Daredevil Venturer
Daredevil Venturer
Posts: 583
Joined: Sun Feb 16, 2003 12:58 am
Location: West Coast of USA
Contact:

Post by Duality »

Well actually.

There should be no penalties for team killing. Just because it's just a game(not in insult anyone).

I would also like the idea of a player having the ability to form a large group of players called "Corp" or something like that.

There can be guilds for smaller groups of people(requires 5 or more people to form).

The point is, you must have 25 or more players to form a Corp. A guild can be upgraded to a corp and there are massive benefits for having a corp such as, obtaining capital ships, player owned stations. etc..

I'll put up a table for this soon.

Anyway, from rumors, I hear bandwidth are becoming faster and cheaper as well so there may be a chance ot having hundreds of players online from a single hosted network. But in reality, it still requires bandwidth and computer resources to have hundres of players on a network.
smbarbour
Fearless Venturer
Fearless Venturer
Posts: 610
Joined: Wed Mar 23, 2005 6:42 pm
Location: Northern Illinois

Post by smbarbour »

Duality wrote:Well actually.

There should be no penalties for team killing. Just because it's just a game(not in insult anyone).
I'm afraid I'll have to argue that one. For many people, it's not just a game. It's more of an escape from our present reality. The game is more of an alternate reality. And just like this reality, the game should have rules and consequences for breaking them. I think the players of the game will want to know who the rogues are in their own factions (the ones who kill others within the same faction).
I've stopped playing. I'm waiting for a new release.

I've kicked the MMO habit for now, but if I maintain enough money for an EVE-Online subscription, I'll be gone again.
Contilliwee
Trader
Trader
Posts: 18
Joined: Wed May 25, 2005 11:37 pm

Post by Contilliwee »

i played many different mmorpgs like eve online. i was shot down by a team mate and I did not throw a temper tantrum in anyways.

i encourage everyone not to take the game too seriously.

anyways, I am also desperetly seeking an mmorpg that involves space flight with the ability to control ships with twitch based methods.

two other games, jumpgate and vendetta were the only games that had my kind of match however, their online players are low that theres only very either little or no hope that the players will hit 100 again. theres also starwars galaxy jump to light speed but too much hassle to get into space(like buying the game first and then the expansion pack, requiring you to start out on a planet first).

so anyways, i thought my prayers was answerd.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Post by klauss »

There should be no penalties for team killing. Just because it's just a game(not in insult anyone).
You would be able to do that in the farther systems. The idea is to provide some safe space for newbies. Otherwise, they would get discouraged at first, pissed next, and out the game at last.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
www2
Venturer
Venturer
Posts: 537
Joined: Sat May 14, 2005 10:51 am
Location: milkyway->the sol system->earth->Europe->The Nederland->Soud Holland->Leiden
Contact:

Post by www2 »

I think that now the time is for discusion for making a roadmap for the multiplay system...

And meby intresant idea...
Cane the multyplay code make as a lib and not in code in Vega Strike...
All Your Base Are Belong To Us
achen1
Trader
Trader
Posts: 28
Joined: Sat Oct 08, 2005 5:29 pm

Post by achen1 »

Phew, that was alot of posts to read....heh.

I got a few ideas myself. In my vision, the multiplayer mode should be alot like RPG's. The following are my ideas:

1. Players choose their own faction (different civilizations that are either allies or enemies with each other) in the beginning when they create their own characters.

2. At the start, the players are placed in an enclosed system (enclosed as in 2 or 3 star systems) and randomly get a beginner's ship or credit equivalent. Here they can roam around and do some "missions" (similar to quests in RPG's) to earn credits.

3. For those players that don't want to fly around in their given ships and be privateers, they can opt to join different jobs within their faction (of course, this requires a small fee). eg. they can enlist in the (A)militia (sort of like police) and get to "patrol" the newbie system. Ships will be militia ships (light fighters) provided by militia. (B) merchant guild, be either gunners (turrets for practice on shooting) or either escorts (light fighter) to transport cargo to the destination in the enclosed 2 or 3 star systems. (C) military, positions include turret gunners, light fighter pilots. The credits they earn depends on the success of the mission minus the ship repair damage. If the mission is completed but the ship repair is more than what the mission pays for, the player returns to base (or planet) and gets no credits. The number of kills will register under the player's name. This is for newbie players who wanted to try the game out for size. Of course, for the fee you pay to join those jobs, you get to go through a little flight simulation. Your kills or lasting time in the simulator determines your rank in the job. ie apprentice, seaman, petty officer third class. Since this is the newbie starsystem, you can't go beyond a certain rank, ie master chief petty officer of the navy. The higher the ranking you have the higher the pay and you start jobs from the higher end. This "higher end" include heavier ships (upgraded version of light fighters or light-mid fighters). Once the player reaches the highest rank available in newbie system (and there's a list of best players with the most kills or missions accomplished like WC), this player can opt to be transported out of the newbie system and go onto bigger things or can stay and earn the money (of course, it's not going to be alot since it's the newbie system). Players can quit their job at any time (but not during missions...).

4. Once the player gets out of the newbie system, they can "quit" their job and join something else (lose the rank and pilotable heavier military ships), buy their own ships (buy their own ships and start their own business). This opens up the hunter's guild. Enemies (AI) increase in number, ships become heavier (both pilotable or enemy ships), but more pay as you advance in rank. Merchant and hunter's guild offer alot more pay than military or militia (militia can now switch to military) but you need to pay an advance per mission (a couple % of the total pay at job's end, guild's reputation at stake, if you know what I mean). In different jobs, you can buy certain ships, depending on your rank. Higher the rank, higher grade ships become available.

5. Reputation: This is to prevent PvP situation incidents. If you're in an enemy faction, you can attack enemy ships, this increases reputation in your faction. Going to another faction and attacking their ships will often find military units (AI's) dropping in for a visit in a few seconds. If you attack merchants (any merchant), your reputation drops in the merchant guild and the merchant guild can put out bounty missions on you once your reputation drops below a certain value. If you attack friendlies in your own faction, you become "outlaw" and gets hunted by militia and military, missions in hunter's guild can also put out bounty missions. But this causes the original enemy factions to become friendly with you (like switching sides). This is to prevent players in heavy fighters picking on people alot weaker.

6. Enemy factions cannot get into newbie territories, but those that got transported out of system can go back to newbie territories (if died too much).

7. Death. I suggest there be an automatic option to "turn on eject". When ships explode, you're automatically ejected and a mission to rescue you appears on the mission computer (rescue missions and credits get deducted from the ejected player's account, if not enough in the account, player assets get sold to pay for the amount). If no player picks up the mission in 5 minutes, the AI's from your job picks you up and sends you to the nearest friendly base, for a fee. If you're a privateer and not in any job or guilds, a friendly will come by and pick you up, for a bigger fee. For those with credits above a certain amount, "eject" is turned off and you get cloned. But your credit is deducted and your ship remain. I think this is a pretty fair punishment.

8. As a player advances in rank in their respected job descriptions, they get to pilot bigger ships in missions. Ships with multiple turrets can let other players in on the fun. The higher the ranking, the bigger the ship, until they can command capital ships with fighters (military players or privateers). The fees get deducted at the mission's end. Those in the military won't need to worry about exploding ships, but those privateers should treasure their own ships in missions like this.

9. Bonus war plots. There is a news bulletin in your faction that says when there will be a faction's fight (once every few months). Players can join in a fight to "push" the "frontier". Basically it's a fight to the last ship in one faction. If the attacking faction wins, they take over ONE star system. This is a good way to earn reputation in your own faction. Of course, there will always be Admirals on top of any player's rank. (so top rank is captain and can only pilot one big ship and not a whole fleet)

10. Multiplayer action. Missions can be completed by players joined in "teams". Mission credits will adjust UP accordingly and enemy appearance increase accordingly, depending on the ranks of the ships (light, medium, heavy) the players have. I say maximum of 5 players per team.

Ranting complete....
rogue
Explorer
Explorer
Posts: 14
Joined: Sun Aug 07, 2005 4:52 pm
Contact:

Post by rogue »

In my professional opinion, to set up a MMORPG type game for veegastrike would require distributed server processing.

It would need contributers to download and run special "leaf" server applications, which log into a main server, and handle players, physics, and all data processing, leaving the "main" server only to accept new connections, do some routing based on position, and to store data the leaf servers arn't processesing.

If something were set up like this, MMORPG vegastrikes would not just be a dream, but a real possibility. And because a server would be a completely seperate project from vegastrike, many people could download the code, change it, and make a new server with a completely different feel (That is, if all game-state data was stored on the server, and controlled by the server and leaf servers)
This also eleminates the need for most security.

If the servers control hit points/energy levels, it doesn't matter if someone's flying around with a ship in "god mode". The server controls how much energy they have. Sure they could turn god mode on, and maybe see themselfs not get killed on their side by bypassing the death routines, but their score would go down on the main server. It would also be fairly easy to detect cheats like this. Just imbed some small string in the proper place, and have it sent to the server when the server asks for it. IOW, Security is not a real concern, it can be controlled completely by the server, which anonymous players can't change.


The leaf server /main server idea is something I've been toying with to combat the massive memory and cpu requirments to state track thousands to hundreds of thousands of objects.

As the servers don't render, they don't need rendering code, they don't need 3d occullusion code. And probobly don't need any special code for lighting. So what they do need, is portal based occullusion to seperate players in different "star systems", some physics routines, and then mobiles/items. Everything else is icing on the cake. (the physics routines arn't necessarily needed IN the server, but would be helpful to detect cheaters.)


my 2 cents
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Have you seen this thread?
http://vegastrike.sourceforge.net/forum ... php?t=5225
If you browse the cvs there's vsserver, vsaccountserver, etc. projects there.
I know nothing about it, myself; but thought you might want to take a look.
rogue
Explorer
Explorer
Posts: 14
Joined: Sun Aug 07, 2005 4:52 pm
Contact:

Post by rogue »

yeah I've seen it :). My problems with that code though are:
1) It's a single server (instead of distributed) so it's limited to N clients, where N is (whichever is smallest) the maximum amount of object you can allocate due to memory on the single server, and maximum amount of sockets a kernel allows minus other open sockets other applications may be using. 2) it's also directly in the Vegastrike tree. I feel a server should be a seperate project, with a very well defined protocol (and well documented)

I think vegastrike itself should be a client only. A protocol should be implimented over tcp .
something like, XML. To allow legacy telnet servers (and existing text based mmorpg servers which have been proven to support numerous clients very fast) to add support. It will read all the strings, if it detects an <...> it will set the "mode" or build a string to send through a command processessor based on the tags, like:

Code: Select all

// This is a simple example of a very extendable network protocol that exists in one other 3d client I tried making an mmorpg once.
if(start = data.find("<binary>") {
   end = data.find("</binary>)
   std::vector<char> buf;
   Uint counter = start;
   for(; counter < end; counter++) {
    buf.push_back(data[counter]);
  }
//  convert buf to std::string
  std::string toprocess;
  toprocess.append("network-binary ");
  for(counter = 0; counter < buf.size(); counter++) {
   toprocessess += buf[counter];
 } 
  specialCommandProcessor.execute(toprocess);
}
This way, the server (or person writing the server) just has to know the right tags, and when to send them, and can control connections anyway it wants, opening room for distributed mmorpg servers that can support massive universes (and if worlds ever work, those to) in a static manor.
And still leave room for single servers for stuff like:
deathmatch servers, tag (yeah like the kids game), "spaceballs" (capture the flag, but with balls, in space) , centralized rpg servers too (though they would be limited by hardware), etc.

(By default it would dump all text strings to the console unless it detects a tag, then it edits out the tag, still printing the string to the console, executing the tag)

Without much more work it can negotiate compression on data around tags tags, and even double compression. (Ex: <Compress=zlib><binary=filename>data</binary></Compress>
whould produce: <Compress=zlib>COMPRESSED STUFF</Compress>
)



2 more cents

-------------------------------------------------------
An another note:
One thing that would be very helpful however is a centralized master server, that new servers can log on to, send their name, their address, port, and a description of that server to, that vegastrike clients can log in to to see the list of them all. ( along with some stats such as, Length the server has been up, players on the server (updated every X minutes), ping to the server from the client asking for the list)
robothead
Merchant
Merchant
Posts: 39
Joined: Sun Jun 19, 2005 7:54 am

Post by robothead »

vegastrike multiplayer may be exciting to everyone however, having hundreds of players in a single online universe would not be very possible for someone who is just a hobbiest.

yes, it's exactly what every newbie's dream is exactly like.

if u make the universe size have up to 50 systems for multiplayer, and have at least 20 players online, then ill be a happy camper!

but then again it may not be possible to have hundreds of players online because theres gonna be more than 1 person hosting a seperate universe so it's gonna be all spread out.
Ryder P. Moses
Daredevil Venturer
Daredevil Venturer
Posts: 593
Joined: Mon Sep 26, 2005 3:59 am

Post by Ryder P. Moses »

Less than one actual human per system? Geh. I'd think the magic number would be around at least five per. After all, the whole point of MP is human interaction. If that means fewer overall systems, well, so be it.

Around 20-50 online at a time is probably a more realistic estimate, though, yeah. This is not a mass-market game, and it will never have the tens of thousands of users that mass-market stuff gets.

But I guess that's the advantage of fully procedural environments, is they're scalable. If there's only an average of twenty people online at a time, well, the universe will be sized just right for that. If there's twenty hundred, hey, the universe is perfect sized for that, now!
rogue
Explorer
Explorer
Posts: 14
Joined: Sun Aug 07, 2005 4:52 pm
Contact:

Post by rogue »

A well defined and well documented protocol will allow a simple hobbiest like me who's been using C++ for 7 years (and written my own 3d engine, a mod for an fps 3d engine to connect and interact with mmorpg servers, and an mmorpg server) to easily create new servers, and test out different designs while having them all work to their own extent.

Such as HTML, the best example out there. It can work with single threaded servers, distributed servers, multithreaded servers, multi-application servers, whatever, as long as they send out data in a mannor the client recognizes:
(for html: )
header\r\n
\r\n
data

But then there's the "data" part, which is the most important, containing tags such as <a href=http://www.google.com>google!</a>, or <hl>, or <br>, etc. etc. etc.
That's the part we need to focus on


Because it would be two way communications through tcp there's no need for the header.

The distributed servering argument vs centralized server argument would be ended with a well written protocol, as it would work with any of the methods powering the server.

To write such a protocol is no small task (though it's not as enourmous as writing a 3D engine such as vegastrike)

it would require someone with an existing mmorpg server (I can offer mine here, purely custom (and C++), very small, and in just the right stage to test new protocols, and my help with the server side implimentation )

one or two with extensive knowledge of the vegastrike sourcecode to make callbacks to add to a commandI object (not the global one, a new one should be made for this purpose (trivial)), an input routine to parse out the tags from a network stream, and chop them up to be processed by commandI::execute, and write a list of tags and the functions they call as they go, and a few other little things.

Players to test once it works.


I would start myself on a client object, but I'm not familiar with windows sockets, only bsd(linux) sockets, so I'd need someone to clean up after me., and wouldn't be able to do it all as I'm not all that familiar all of vegastrikes internals.



So what should the client be able to tell the server to do, How should it do it, and what should the server be able to tell the client to do, and what kinds of arbitrary data (images/models) do we need to send to the client, and how, and how to we impliment file uploading to the server (different maps, new models), how do we negotiate compression, how do we poll hitpoints / energy levels from the server (or does the server send it to us in every response) )
how do we negotiate compressed streams, and add extenable support so protocols can be upgraded, and stil backwards compatible. All while keeping it stable on the client even if it doesn't fully understand the server.

Code: Select all

Servers to clients:
                                sends strings terminating with \n\r
                                 By default client dumps strings to a console.
                                 If it finds an XML (<NAME>contents </NAME > ) it parses it out to:
                                 NAME contents
                                 tries to execute it

Clients to server: 
                                 send strings terminating with \r\n
With that simple layout anybody can write a server, a very large set of commands can be made and utilized to give completely different feels on different servers, and I would support it in my mmorpg server as it develops. - Which others will be able to download and customize at amy time as soon as I put it on sourceforge.

If this were accomplished, and documented well, any a distributed server could be written to have one very very large universe and support a ton of clients if at any time a playerbase gets larger than... 5,000 people at once (Which could happen I believe IF vegastrike supported walking around planets in an first person mode which is even .. I hope obviously.. less trivial than all of this. )


------------------------------
if(NULL == 0x0) exit( stage left )
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

Rogue, what you're writing goes waay over my head, but you seem to know your stuff; I suppose you could post your proposal in the Developer Focus forum, addressed to the devs working on the multiplayer stuff.
Alterscape
Merchant
Merchant
Posts: 35
Joined: Tue Sep 27, 2005 12:08 am

Post by Alterscape »

Wait wait wait, hold on. You're talking about exchanging multiplayer data via an ASCII-text format?

I'm not a hardcore programmer, but it was my understanding that ASCII strings are often too bloated to provide decent latency and speed -- too much time and processor-effort goes into creating them and decoding them, and they take up more bandwidth than the comparable data in a specialized binary format.

A binary protocol would probably be far more efficient. Don't take my word for it though, ask the programmers here.
rogue
Explorer
Explorer
Posts: 14
Joined: Sun Aug 07, 2005 4:52 pm
Contact:

Post by rogue »

strings are not bloated. sure, they _can_ be, but really each charactor in a string is 1 char long(1 byte, 8 bits). But it's very easy to negotiate compression to reduce this size. to possibly 4-6 bits per charactor (and there are many great compression libs out there already, zlib for example)

A bit based protocol would give a performance bonus, but would add much greater complexity and make it very very difficult to read, very difficult to debug, and even harder to maintain and upgrade.
Alterscape
Merchant
Merchant
Posts: 35
Joined: Tue Sep 27, 2005 12:08 am

Post by Alterscape »

True points, Rogue. Given the kind of complexity that people are talking about here, though, I still think a bit-based protocol is a more useful decision to make. I've done a fair bit of work with (admittedly simple) bit-based protocols via RS232 and TCP/IP in C and Java, and it doesn't strike me as absurdly complex.

Hmm. Where are the actual programmers? Would be neat to see Klauss/Hellcat's thoughts here.
rogue
Explorer
Explorer
Posts: 14
Joined: Sun Aug 07, 2005 4:52 pm
Contact:

Post by rogue »

8) Well, I am one of the developers, albeit I'm new to vegastrike (about a month now, I added the new command processor and console). But I've done quite a bit of work with networking stuff before(mostly on servers, not clients in C++..)). (And plan on diving into all this we're talking about very soon)


But ok, with a bit based protocol, first, we'd have to send positions (which are floats), that already needes a 4 byte transmission there, for each variable in the position vector (4 bytes for x, 4 for y, 4 for z)

If we used single bit packets, we could make two function calls. (1 or 0). With two bits three desicions, At 4 bits, we only have 11 possible combinations, or 11 desicions that can be made. It also makes it hard to read them and create new servers that support the protocol, because each of those servers has to recognize packets such as: (assuming 4 bits)
0001 = login
0010 = update position
0011 = ....
0100
0110
0111
1000
1100
1110
1111

Even if they were grouped to form octects (which would be a char anyway) it would be exteremely confusing, wheras sending:
string (which would be, 6 bytes, 6x8 bits)
is so much easier to the developer, and almost just as fast.
With compression,, it can be reduced to about 6x6(MAYBE 6x5) bits for a string called "string".

Therefor with a nice XMLish protocl we could make use of short combinations of strings such as:
<P>float float float</P>
which would say.. update the position (from client to server, the server would accept commands in the form of:
commandname arguments
for simplicity, and backwards compatiblity with other major protocols, so a server could be multi-protocoled, and run an HTTP server with specific statistics about that server while it's running a universe to play in )

That's 7 bytes for the tags <P> and </P>, 4 bytes for each float, and one byte for each space.
for a total of 20 bytes of data , (not very much at all)
Then with the compression negoation I was talking about, it could be reduced even further to maybe 12-15 bytes.

I must say, <P>X Y Z</P> is much easier to understand for updating position than:
0010 X Y Z
with a 7 byte overhead (well, 6 and a half, maybe 1 bit less, because don't need the space "1 byte" between the command and first arg (X), which is well within the limits of even old as dirt hardware (14.4k modems.. which I only see on fax machines these days anyway...)

This is probobly the same reason HtML is string based, based on HTTP which is also string based.

And once we ran out of single charactors to use <A> - <Z>, we can start adding second charactors for 16 more bits of overhead (which is still very well within acceptable limits)

So a well defined protocol, string based, though it would increase the amount of network traffic slightly, would still be plenty fast for all intensive purposes, and would be much more flexible than a bit based protocol (from the developer/maintainer point of view)

It allows for easy additions of new features without worrying what already exists and what doesnt (wheras with a bit based you'd have to make sure your new pattern is being used anywhere.. I can only imagine how much "fun" that would be searching through a list of 0000 0000 through 1111 1111 (which likely would be undocumented, as the developer whom implimented this full protocol all by themself because nobody else could read it would have banged their head against the corner of their desk so many times any docs they did try to write would end up looking like their protocol :-P), compared to search a list of human-readable tags to see if the one you want to add exists already or not.

:nerd:
jackS
Minister of Information
Minister of Information
Posts: 1895
Joined: Fri Jan 31, 2003 9:40 pm
Location: The land of tenure (and diaper changes)

Post by jackS »

I see no advantage whatsoever for a human readable network format. If the advantage you seek from a readable format is intelligible code for processing such, this is what enums are for. Also, if the commands are not documented in the specification, the writer of the specification has a lot of answering to do. If there isn't a specification, or the code and specification disagree, a lot of people have some answering to do. If the specification isn't written before people start monkeying with code, then there are some wrists in need of slapping, because that's just idiotic.

(as a complete aside -
With two bits three desicions, At 4 bits, we only have 11 possible combinations, or 11 desicions that can be made
- your counting is incorrect, which perhaps indicates that you have very limited familiarity with working on binary data.)

The only real advantages string based protocols have over binary ones are in endian compatibility and, if using XML, an externally verified parsing engine. However, the first is thrown away if one is already considering transmitting the data itself in binary format (and is pretty trivial to solve anyway), and I don't see the second as a particularly interesting gain for our purposes.

On a different note, the VS universe organization lends itself to fairly arbitrary levels of parallelism. It is naturally partitionable along clearly defined boundaries (graph partitioning with edges(jumps) crossing any given cut being required to communicate externally. Most information is logically, even if not currently implemented as such, local, so global communications between partitions should be minimal, with edges primarily moving data traffic) the particular boundaries at any point in time being something that could be determined by dynamic load balancing across a given number of server processors, potentially only one. To not design the networking topology to take advantage of this underlying structure would be wanton negligence.
Alterscape
Merchant
Merchant
Posts: 35
Joined: Tue Sep 27, 2005 12:08 am

Post by Alterscape »

Thank you, JacKS, for saying what I wanted to say but was too ignorant of VS's architecture to fully articulate. Also, thank you for explaining it so I am no longer as ignorant.

Cheers!
chuck_starchaser
Elite
Elite
Posts: 8014
Joined: Fri Sep 05, 2003 4:03 am
Location: Montreal
Contact:

Post by chuck_starchaser »

I totally agree with JackS and Alterscape. And I'd even extend that to other areas where text formats are used. I think in many situations where text formats are argued for, it would just be a matter of having an evolving binary to text and text to binary module, and a little gui app to go with it. Of course, it's not necessarily too simple: Whenever the format changes, the module has to be updated, and it needs to remain compatible with previous releases of the format, and therefore data must have a header field specifying version number. But then again, this evolving module's sources would serve as documentation for the format's evolution, by the same token.
Post Reply