Post your multiplayer Ideas here..

A forum for online playing, administration, bugs and feature requests
CarCar
Atmospheric Pilot
Atmospheric Pilot
Posts: 1
Joined: Thu Aug 12, 2004 6:55 am

Post your multiplayer Ideas here..

Post by CarCar »

ok, I understand that there is a lot of threadrs about multiplayer going on.. Would it be a good idea to make only one thread with just future of whats going to be in the multiplayer discussion??

Anyways, if you plan to make a multiplayer version of vegastrike any time soon, I'm not the type of guy who would like focus a lot more in-depths of a game however, would it be possible to just start up with just small space crafts onlys(not just starfighters), stations with entry/exit ports, jumpgates to different systems, hiddenwormholes and then it can be expanded with new features in the later development.
hurleybird
Elite
Elite
Posts: 1671
Joined: Fri Jan 03, 2003 12:46 am
Location: Earth, Sol system.
Contact:

Post by hurleybird »

Personally, I think that we should first make a 1on1 deathmatch-type version, then move up to 2on2, 4on4, and so on, until we can get the net code to the level where it can handle like over 100 people on a server.
panicman

Friend or Foe engine

Post by panicman »

I was suggesting a "Ship AI" in another thread which could help to identify friend or foe in the HUD.

In a single player game it is quite easy: Anyone who shoots at you is very likely a foe. But in a multiplayer game players may shoot at you accidentally.

In a two party game, the ship type could be showing friends or foes / or "defence vs. offence" (like in Americas Army). I don't like color coding like in Halo or Unreal Tournament - this looks like a sport game then and it would destroy the flair of space combat in my opinion.

I think it should be possible to have groups that are put together with different ship types -- so there could be two equally looking ships -- one is friend - the other not. Shooting friends just to tests this is no option.

So it comes down to the fact that Vega Strike needs to offer a freind/foe display in the HUD in multiplayer mode. This may be an costly upgrade in a single player game - but it is in my opinion crucial in a multiplayer game.
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 »

The radar systems (should you have a moderately advanced one equipped) currently do a simple color-coding of hostility.
Cars

Post by Cars »

well the type of multiplayer game for vegastrike I am desperetly seeking for is mostly on small ship combat only with player skills.. mainly something like XvT or Wing commander or even frontier elite gameplay type. in some situations, I can forget about making the game more in-depth with a one player controlling capital ships, gunboats, and wingman flying with players, owning stations etc after hearing about the "Test Universe"... why? because I find flying capital ships so boring because its bulky and stuff, and in multiplayer you need more player to player interaction than you do with npcs. Sure there can be NPCs in space for something to interact with and to shoot at. I remember playing tachyon the frindge and it was nothing but pure fighter skill based combat, but the flight engine was more of an arcade flight phsyics, where semi-newton phsyics flight is more desirable for me, allegiance had that. And the last reason why I dodged freelancers multiplayer is that it had no type of squad or clan system in there and the lamers were impersonating them as well.

If all of this happend then you probably attract a lot more hardcore flight simmers from the allegiance community and some E&B dudes.

but this is all just me.
Sky High

Post by Sky High »

should of this thread be "Multiplayer Concepts"?

ok anyways, I understand that multiplayer won't happen for a while but this can pretty much be place holders until it actually gets started in development.

sorry i am tired.. i got to sleep.
Guest

Massively Multiplayer and Internal FPS

Post by Guest »

Dream with me for a moment. Imagine if we took the Quake II engine, made maps for the insides of every ship / station / part of the planet you can beam down to. For the ships and stations we could dynamically generate a view from the side of the station using the vegastrike engine and texture map it onto the walls in the Quake II engine.

I'm a Klingon, I sneak up to the enterprise in my bird of prey. Suddenly I uncloak and my boarding party and I beam to level 4. *Intruder detected* Federation security personal are on their way. We run towards a turbo lift only to find it has been locked down. Luckily my right hand man has a star fleet override vioce ident that we managed to torture out of a recently captured ensign. We make our way to the bridge and as soon as we step out of the turbolift are set upon by two armed guards. Fighting hand to hand we vanquish our enemies and take control of the ship.

Sitting down at the helm control switches to vegastrike flight mode and we plot a course to our hidden base. But alas, our communications officer discovers a subspace signal has been sent to Star Fleet command, this area will be swarming with starships within the hour. They are guarenteed to find our warp trail and trace our course. The security of the base is worth more than any federation junker. We set charges on the bridge and beam back to our bird of prey. As we speed away the bridge detonates. It'll take weeks for the repair crews to rebuild, by which time we'll be long gone.


Open Source games have an opportunity to do more than commercial games ever could. We have a vast vast number of top quality game engines out there available for free (Quake II is still in that category) . We have the tools and more people to contribute to our projects than any commercial interest could ever maintain on a payroll. What's more, we can afford to be bold. There's no pressure for us to get to market quickly or take a "safe bet" on what will sell. We can afford to innovate, let's do it.
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

How about creating a first person walk-around interactive engine from scratch?

No need for a first person shooter on this game.

It be cool for a startrek mod but not for the main game itself.
QuantumG
Insys Pilot
Insys Pilot
Posts: 2
Joined: Tue Sep 28, 2004 7:40 am

Why bother?

Post by QuantumG »

There are a dozen or more freely licensed first person engines available, don't reinvent the wheel. BTW - although I am a trek fan, I chose the enterprise because there are Quake 2 maps of the Enterprise D available: http://www.planetquake.com/titanic/sttqs.htm I'm tempted to make a "tech demo" of quake2 + vegastrike, although frankly you can't see outside the enterprise 99% of the time so maybe it's not the best example after all.
QuantumG
Insys Pilot
Insys Pilot
Posts: 2
Joined: Tue Sep 28, 2004 7:40 am

Damn this map is too cool

Post by QuantumG »

Looking for views of space I went to Ten Forward. The music there was so bad I just had to leave and it's not the same without Whoopi. "Where can we go to see space?" I thought, "I know, the shuttle bay!" Imagine my suprise when I get there to find 3 shuttles that you can actually get in.. but no space. Hmm, let's climb this ladder. Aha! There's a control station where you can open the external shuttle bay doors. Now that's what I'm talking about. I press the button, the doors open and there is space in all it's glory. Hmm, I think. I can imagine seeing other ships flying past and watching the battles. It's good that force field works. Let's just give it a blast with my phaser. Yep, *crackle* *crackle*, it's there alright. So back up the ladder I go and there is a second control panel. Using the second control panel I can turn off the force field that is protecting me from space. Yeah! I flip the switch and wind starts rushing. The guy who made this map put a lot of love into it. Now if you'll excuse me, I'm going to go hurl myself into space.

Just did so. Unfortunately I stopped and "stood" on space. Heh. Shows you that Quake II is not enough to simulate the Enterprise - but neither is Vega Strike! You need both. So I jumped my way back into the shuttle bay. Few seconds later I'm gasping for air and losing health rapidly. I managed to get up the ladder (the wind is pulling me back into space this whole time remember) and turn the force field back on. Air returns and I'm left with 15% health to continue my explorations.
Alaskan
Hunter
Hunter
Posts: 79
Joined: Fri Sep 10, 2004 12:16 pm
Location: Australia
Contact:

Post by Alaskan »

Ok, I'm posting here because nobody likes my thread.

I have almost finished the main parts of the account server.
So far it works as thus.

You send your username, password, client version and mod to the account server
It checks for your account, and sends back a list of compatible servers.
You pik a server and it sends back a list of characters and wether you are allowed to make any more.
If you just pick a server, then you get sent the address of it, and the account server sends your username, character and ip to the game server.
If you want to make a character, then you go through all the steps (I have no idea what these are) then the stepabove gets done.

The acount server stores all the servers, and if a server detects your connection dropped, it tells the accountserver you have logged out.

The account server also stores all your characters, and some useful info about them. It doesn't store all your info, just some stats to dentify you. Like your ship name, worth, etc.
The rest of the info is held on the game server.

How does that sound?

In the options files, you can set it up to skip any of the stages if
a) There is only 1 server
b) there is onyl 1 alowed character.
2 133t for joo!!!
Surfdargent
Developer
Developer
Posts: 153
Joined: Wed Jan 22, 2003 4:28 am
Location: Reunion Island
Contact:

Post by Surfdargent »

What is new in all of that ? Is that the fact that now fewer info are stored on the account server and some are on the game server ?
It used to store the complete ships' description (1 xml unit per ship if I remember well) and the player savegame (just player related data like name, money, faction relations...).

You say that the account server does not store all the info. Does that mean that some are now stored on the gameserver instead ?
The point of having an account server was that multiple gameservers could use a same account server and then each game server could handle a part of a "VS universe" (could be the default one, a custom one like an ST or SW universe) communicating with each other allowing you to jump from system A to system B and in fact you would change the server you are connected to transparently. A kind of manual load balancing feature : you can use multiple servers to handle a whole universe.

From what I understood this is not possible anymore since char info are also stored on game servers, so you can't connect to any gameserver that is part of a "universe" (all the game servers of that "universe" would use the same account server and maybe other universe so that a player can use its ship/player in other universes). Am I right with all that ?

Maybe I missed something but if not I do not say this is a wrong way I just would like to understand your point better.
Alaskan
Hunter
Hunter
Posts: 79
Joined: Fri Sep 10, 2004 12:16 pm
Location: Australia
Contact:

Post by Alaskan »

Well you have the account server simply as a gateway to every mod and universe that it is used for.

So one account server can be used for different mods.

It would be slow for the account server to store all the info about a character, and not nessesary because that character only existsin one mod or one universe.

There are different servers for the same universe, and they all store every little bit of data for the character. You could even have the the servers for the same universe communicationg to one central universe server or something.

The idea of not storing every part of the character on the account server, is because then the account server needs to send the character down the line, every little detail, and after, the game server sends it back. It would be quicker if the game server just saves the character to the hard drive.

I didn't see a need for people being able to use their PvP RPG Character on a different universe (Say a 4v4 deathmatch server) or a VegaTrek mod, etc.

Unless I am also not fully understanding you.

The chages I have made from the CVS source, is mostly just changing from a simple one packet CMD_LOGIN, to a three phase login (Authernication, pick a universe, pick a character)

I have also changed CMD_LOGOUT to be sent by the server, and the ip of the message is checked with a list of allowed servrs, to stop anyone from trying to disconnect someone for griefing.

Make sense?
2 133t for joo!!!
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

The problem with your character being saved to your hard drive for a multiplayer game, we could counter one of the following problems:

1. Hacks, people will change the character info on the hard drive, log back on with 1,000,000,000 credits or whatever.

2. When a hard drive crashes, all the caracter info is lost and the person has to start all over again.
Alaskan
Hunter
Hunter
Posts: 79
Joined: Fri Sep 10, 2004 12:16 pm
Location: Australia
Contact:

Post by Alaskan »

You read this part...right?
It would be quicker if the game server just saves the character to the hard drive.
The game server stores the character.
2 133t for joo!!!
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

Ok, just wanted to check.. I did not understand.

Thats cool.
Guest

Post by Guest »

Anything else surfdargent? Anyone?

I am almost finished, haven't submitted it though. Hell, I started it all as a new class. I haven't even linked it in and tested its compilability, but I'll get to that when I finish.

Cyas
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'm not sold on the "logout checks that IP is from list of trusted game servers" - you'll need more than that for identification, as IP can be spoofed and the list is insecure because the players know the IPs of servers because they play on them. Since logout is a fairly important, but a fairly low frequency event, you can afford more security, even at the expense of additional traffic. You need to do some sort of signing scheme, cryptographic or otherwise.
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

well, we are sort of speaking in a circle, because we're going in the same direction yet still conflicting.

please consider these things,



-------------------------------------------------------------------
*the known*

we have 'MODIFICATIONS'

we need a CENTRAL REPOSITORY so that :
A) you can use the same character from server to server, and don't need to restart each time.
B) you can find a list of available game/system servers

we need LOAD BALANCING for the actual gameplay servers, i.e. a scalable architecture where 1 server can host ALL systems, OR if the account server chooses to, it can split the universe across 2, or 3, or 4 ,etc servers.

note:
modifications that are pure deathmatch, and do not use player ship information (they use ingame-chosen ships, or match-built ships, would simply not request player ship save-data from the account server)



---------------------------------------------------------------------
*approaches*

1) we can have multiple repositories, one account server per mod.
OR
2) we can have a single repository, keeping track of gameplay server information for multiple classes of came (modifications).

if(1) // multiple account servers running, 1 per mod
{
have gameplay server list
have custom modification-declaration file that can act as a join filter
}

if(2) { // one account server for all
for(each modification)
{
have gameplay server list
have custom modification-declaration file that can act as a join filter
}}




LOAD BALANCING needs to be taken carefully.
we can NOT simply divide up the universe among servers.
we need the _ABILITY_ to have parallel universes, or parallel universe-chunks.

consider this, you live in florida, and the lisbon 'gemini/troy' server is pinging awefully (450) . You have someone available in new york to host a server. your ping to new york is 30.

IF you can have multiple universe-chunk instances, you can have the account server send the client a LIST of available universe chunks (when trying to enter a universe area with multiple hosts). The player should be able to choose a server from a list that pops up when, lets say, going through the ingame jump node. The list should display gameplay-server ip, name, ping, and player count. no sense in joining an empty server, and no sense in joining a server with huge ping. (you might also want to join a server your friend is on)

note :
{
Universe chunk = group of systems, either all, or a subset
UNIVER-CHUNK server = GAMEPLAY server, the real-time player action is here.
Each Universe-chunk(a group of systems, either all, or a subset) would be hosted on a gameplay server.
}

now, if ALL information is stored on the account server, then there would be no synchronization issues.

player ship changes need to be cached on the gameplay server (buy gun, sell armour, etc), and sent soonest-possible to the account server.
That way, you don't have to wait 5 seconds to buy a gun if the account server is busy. The account server will sync with gameplay server when ready.

When leaving a universe-chunk(gameplay) server to another universe-chunk server, the gameplay server should pause the player untill the account server is fully updated from the gameplay server. It should then send the connect to the next server (which will recv the info from the account server | the gameplay server <at this instant it is not important, both are in sync>)

as far as communications load per enter/exit, it would not be a lot.

savegame = ~650K OF TEXT
if you go binary, with some compression, that becomes = ~100K

Which is about 20 seconds for a 56K, or instant for broadband (0.3 seconds for me specifically).

now consider another thing

the single player game saves more than we need for the multiplayer game. it has basically data for everything.
This is the sort of save that the account server should keep for each Universe-chunk(gameplay) server, so the GAMEPLAY SERVER can save its state, and restore it should there be a crash.

the player save needs only this : (roughly)
landed-area
ship description
nav-description(what nav points you have explored)
factions kill totals

all other information the server will send the player on-the-fly, when the player needs to see it.

--------------------------------------------------------------------
*gameplay thoughts*

we should have a warbirds-like combat approach

all damage and flight is client side.

player1 = 50 ping
player2 = 500 ping

Both fly unaffected by lag on their machine, and send the gameplay server updates. (and recieve updates from the server...) ASYNCHRONOUS

the second player recieves a 'latest position' on the first player, and vice versa.

player1 shoots and hits player2 on his machine, and sends a 'hit on player2' command to the server, which then updates player2, and vice versa.

This allows for people with bad connections to play on about even terms as laggy people.

the symptom of this is that, when you hit someone, you recieve an update after 2xPropagationDelay. So there would be a lag between sending the killing attack, and the player actually dying. But this is a small price to pay for smoothe gameplay.

the anti-hack check is easy. the gameplay server needs only to verify the legitimacy of any command or position.
If you've ever played the 'unlagged' modification to quake3, you'll see its a simple approach actually.
The server keeps a record of the past, essentially.
When it gets a hit command, it checks who sent it, and where they were at the time it was sent, and where the target was at the time it was sent. Then, it checks if that hit was possible. If it wasn't, it simply ignores it.

As far as speed goes, if the player moves farther than it is possible to move at given speed+max_accel from update to update, force-teleport him back to the last valid location.

In a manner like this, warbirds has had 500+ people on one machine, most on modems, dogfighting with smoothe gameplay (this was ~7 years ago!<last time i played it>)

---------------------------------------------------------------

-scheherazade
Alaskan
Hunter
Hunter
Posts: 79
Joined: Fri Sep 10, 2004 12:16 pm
Location: Australia
Contact:

Post by Alaskan »

As far as spoofing IPs, the TCP/IP protocol requires that a connection be made first, and every packet is 'ACK'ed.

If Alice sends a log out to bob... (I know alice is normally the legal communicator)
Alice initiates a connetcion (with the spoofed ip)
Bob sends back to the spoofed IP acknolwdging the connection.
The owner of the spoofed ip says WTF.

But I can include a checksumhash system as an option too, easy to do.

Anonymous wrote: *the known*

we have 'MODIFICATIONS'

we need a CENTRAL REPOSITORY so that :
A) you can use the same character from server to server, and don't need to restart each time.
B) you can find a list of available game/system servers

we need LOAD BALANCING for the actual gameplay servers, i.e. a scalable architecture where 1 server can host ALL systems, OR if the account server chooses to, it can split the universe across 2, or 3, or 4 ,etc servers.

note:
modifications that are pure deathmatch, and do not use player ship information (they use ingame-chosen ships, or match-built ships, would simply not request player ship save-data from the account server)

-scheherazade
A) you can use the same character from server to server, and don't need to restart each time.
I didn't know this would be needed. I was seeing a large number of universes. The account server is there puerly to check your username and password and then tell you what servers are avaliable. You wouldn't have two exactly the same universes. You might have a PvP univrse and a non PvP universe. You wouldn't want people playing on the non-PvP universe, getting lots of money in the safety of it, then moving ot the PvP server and messing up the economy.

Of course there would be provisions for transfering characters, but this would be for other circumstances like you've just made a new server and people want to transfer their characters. This transfer could be done at night while the account server is done and the dailly backups are being done.

So the question is...do we want seamless characters between servers? I can implement some form of server sharing, where you have a list of servrs that share the same character. In this case, the account server keeps track of the last server you played as (it would now have the most current version of your account) when you join another server, the account server tells the last server to send your character to the new server, and makrs the new server as the last server.

I agree on point B though, this is a server list and filter that shows you the servers you can play with your mod and version.

As I am doing the account server now and not the game server, I haven't given the game server much thought.

But I don't think we should have more than one server doing one area of the map (If that is what your suggesting), this would introduce more lag as the message has to go through more nodes to get to the target. I do have plans for seamless dynamic load handling, where the map each server handles is changed to allow maximum efficiency. And as you move into another server bound, you get changed to another server. But the one thing I definately dont agree on is having the servers in different areas. Each character and ship info could be very large. If someone moved to another area with a different server, then all their info would need to be moved.

I was actually thinking of a farm system where the servers each are connected using a high bandwidth connection. Like how UO is done.

But when I get to that part I will implement and test a variety of things to see what works best.

If you didnt bother reading all that, the most important thing, is wether we need a player repository between different universes.
2 133t for joo!!!
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

there is one universe per 'modification'

vegastrike universe
WCU universe
star trek universe
babylon5 universe

etc

each universe can have 1 or more gamaplay servers representing it for realtime action.
the locations (systems) in each universe are divided up among the gameplay servers, so that there doesn't have to be 1 machine to host all possible systems. (each separate gameplay server would host a chunk of the universe, ie. a universe-chunk server)

there should be the option* for multiple gameplay servers to host various chunks, POSSIBLY overlapping. when i say overlapping, i don't mean with the same people in them. People in gameplay-server A for Gemini/Troy wouldn't see people in gameplay-server B for Gemini/Troy (imagine blizzard's battle.net, US east, US west, Asia, Europe servers. Players on one don't see players on the other, but they are playign the same game)
This option exists ONLY so there could be regional servers. So if there is a server in new york for Star Trek Gemini/Troy, it doesn't preclude people in Russia from putting up their own Star Trek Gemini/Troy server.

essentially, we _NEED_ seemless transition of character form gameplay server to gameplay server, because those gameplay servers are all parts of the SAME universe. And so long as you're within the same universe, there is no reason your player would change when you jump from one system (gameplay hosted on machine A) to another system (gameplay hosted on machine B).

i'll draw a picture of the situation and post it.

-scheherazade
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

Surfdargent
Developer
Developer
Posts: 153
Joined: Wed Jan 22, 2003 4:28 am
Location: Reunion Island
Contact:

Post by Surfdargent »

I totally agree with that architecture and networking was originally designed to support this someday. In fact, that was my point in my previous post.

Moreover, if not only doing PvP but also true RPG (maybe with some GMs putting events in universes or having a full quest programmed in python), I think it would be interesting to be able to move in different universes (even if completely separate from each other) keeping your existing ship and stats.

So that would prevent from restarting a character/ship from the beginning.
Of course that would be the choice of those who run the concerned servers.
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

also, economy wise, the pricing would have to be on the account server.

ex.

player makes sale
gameplay server sends sale info to the account server
account server adjusts economy
account server sends economy state info to all [applicable] gameplay servers



this way players in the same universe-and-system on different gameplay servers still affect a shared universe economy, even though they don't see each other face to face.

-scheherazade
Alaskan
Hunter
Hunter
Posts: 79
Joined: Fri Sep 10, 2004 12:16 pm
Location: Australia
Contact:

Post by Alaskan »

You missunderstood economy.

Take this for example.

You have a non-PVP server. The entire server is non pvp. There are no non pvp zones. You find an easy way to make heaps of money. There is no PvP to kill you so you get very rich. Now you jump to a PvP servr as a very rich person. People who play there alot arent as rich, because it is hard to get moeny. The person who has changed servers is richer than everyone that plays the PvP server alot, combined.

By having a system like that, you are only hurting the people who enjoy a certain game type.

You do a quest on a quest server and at the end of the quest 30 people get a unique item. It is worth a bit but not overly so because there are 30 of them. You change to a different universe and suddenly there is only 1 of them so you sell it for heaps to a rich guild or something. Then you go back to the other server and you have the wealth of a guild, and the other 29 people who did as mch work as you have only a small amount of worth.

And most importantly. There is a new version of the game, so a new server comes up. In this new version you can travel really fast with no danger, but thereis somedrawback.

You want to travel somewhere on your old version server, you change servers, travel, then change back and your there. What happens to the new version? It is only used for travel.
Transfering a character should be a semi permanent thing. Or maybe cloning a character.

What I do agree on is being able to link servers so they are one universe. But I don't think the linked servers should be of different game styles. Bu that will be up to whoever runs the server.

This is what I have currently read from this thread, tell me if it is wrong.

Ability to link servers together so that characters are shared between them.
Implement more security for logout.

But the account server still only holds a snapshot of the character.

_________________________________________
I think I just inderstood why we arent agreeing. I havent bothered to rewrite the above.

Youre thinking of just one universe per mod. I'm thinking of more than one universe per mod.

Like a pre SPEC universe. A non PvP server. Watever someone wants to host.

And if someone wants to join their australian server with a left north america server with a right north america server. Then they can, and everything is shared, but they can't see the players from the other one (They might be able to see them, but not interact with them, etc. For lag reasons)

Does anyone remember why UO shared its shards between more than one computer, because I'm not sure, unless they each had their own connection to the net with unshared bandwidth. There willbe provisions for such a system, but not on the account server.
2 133t for joo!!!
Post Reply