Post your multiplayer Ideas here..

A forum for online playing, administration, bugs and feature requests
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

well, we were thinking from a while back that pvp would be a choice per person

for example

check a box if you want to be vulnerable to people. if you dont have it checked, you also can't be hurt,a nd you cant hurt others. you can only change hte option when landed.

and you can't succeed missions where other players are facing VS you. like 'run a blockade', and a player is defending the blockade. if either was invulnerable, they wouldn't get $ for the mission.

no need to have totally separate servers for a little feature like vilnerability.

and there can be dedicated deathmatch mods that are totally separate from a live universe.

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

Post by Alaskan »

Now honestly. How much of MMORPGS have you played?

Trammel and Felluca was the worst thing that ever happened to Ultima Online. But that isn't half as bad as being able to swap when you feel like it.

How do you be a PK when the only other non-invul people are other PKs?

If someone really wants to damage gameplay then they can code it in themselves.

Dont make me call you a trammie :)

I'm not having a go at you, I'm just not coding that unless JackS says so. And even then it will be an option disabled by default :)
2 133t for joo!!!
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

well, vegastrike is largely a trading game.

imagine the old BBS game trade wars, made 3d.
*with the ability to kill others tacked on


PKing has no benefit. no wealth to be made in PKing. Sure you might pirate someone, but you'll make better money pirating some NPC transport...


PKing comes down only to pure killing. Which if two people consent to, let them duke it out.


Now if there is a DM mod, then sure, PK always.


and actually, i wouldn't care if PKing was always on with vetastrike (and mods). just have a respawn option. i mean.. you need one anyways. just make it penaltyless when a player killed you.

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

Post by scheherazade »

well, i guess i should be clear.

i don't mind any of your ideas. they are fine. go for it.

just make sure that you don't write something that LATER ON won't allow spanning a single universe across multiple servers.

it will most likely be required.

consider the likely server base.

decent PC's with good internet connections, that a few people here and there, in random areas (possibly on the other side of the planet from you) offer up to host games. Servers may appear, disappear, etc. And all of these servers are serving a single modification.

they need to save/load universe/system states from a reliable always-on central place (account server), and players need to be able to save and load from a reliable always-on central place too.

and people need the option to run a server near them, if the nearest one is 10'000 miles away and pings 800.

so it's more of a technical limitation. we can't expect to have a superbandwidth server farm host us. so we gotta design to be as robust as possible at the lowest common denominator.

-scheherazade
strangelet
Bounty Hunter
Bounty Hunter
Posts: 201
Joined: Wed Jan 14, 2004 11:11 pm
Location: londonengland, england
Contact:

Post by strangelet »

on the issue of player misbehaviour...

one way to limit the amount of hurtful space piracy on other players might be to have StarFighter Gladiatorial Combat tourneys...

this will be an easy (and profitable) venue for mindless violence. you could even have clans :)

or mb mb mb mb, if someone gets busted by the authoritayz for piracy and is obviously capable of competent combat, how about making them serve a penal millitary subscription. ship em off to the frontier to fight the aera until they die or have served their sentence....
- - above and beyond - -
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

Anonymous wrote:well, we were thinking from a while back that pvp would be a choice per person

for example

check a box if you want to be vulnerable to people. if you dont have it checked, you also can't be hurt,a nd you cant hurt others. you can only change hte option when landed.

and you can't succeed missions where other players are facing VS you. like 'run a blockade', and a player is defending the blockade. if either was invulnerable, they wouldn't get $ for the mission.

no need to have totally separate servers for a little feature like vilnerability.

and there can be dedicated deathmatch mods that are totally separate from a live universe.

-scheherazade
I also hate this idea where you if you check this feature, you cannot be hurt or something or virtuall in godmode to other players except for bots. Networth should be taken away from people with high networth who tend to shoot down noobs.

Or have heavly armed bots that should patrol the area where new pilots are spawned in the universe for the first time, and also patrol the areas where newbies hunt bots.

But seriously, there should be a transport mission type where if you accept this mission, the cargo is automatticly given to you so you launch your ship out and fly to another station. Once you land to your destination station, then you complete your mission. Good way to progress your level character.

I am a regular MMORPGer myself and I really do like PvP and more player to player interaction along with pure skilled based PvP.

Now for the sake of online multiplayer games, non-realistic, the pilot should respawn at the station that he is homed at.

I know it's not realistic but the penalties for dieing is you should lose your ship, weapons, and cargo thats on it. Also, you get only 75% of your ship value back.

As for the PvP area, there won't just be certain types of where you can PvP at.. ALL of the space is PvP.

The distances and the universe has to be fairly small enough to make space alive with players..

Now my final concern is.. Is there a cheap way where you can fit more than 64 people on a single server without having a ping skyrocket up to a 4 digit number ping?

My wild guess is, this game would be like Planeshift in space.. without the point and click.
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

well, i explained how warbirds worked... read that response up higher in this thread.

it would allow someone with ~76.8KB up to host prolly 100 players or so. so long as his system can handle all the threads.

remember, warbirds allowed 500+ people in one arena, and with modems 7 years ago.

it was asynchronous, and client side.
(you fly around on your client without asking the server anything, you just TELL it what happened on your side, and the server updates everyone else's environments accordingly. Server just watches things and makes sure nothing impossible is happening. If someone was laggy, they would lag around in your game. If someone wasn't laggy, they would fly smoothly in your game. you would always fly smoothly)




i don't like the 'lose stuff when die' thing. there should be a different penalty.
we already discussed having careers a long while ago as a good solution.

where you have an account name
and a current name

when you die, you lose your current name, and keep account name.

your new current name 'inherits' the wealth of the previous current name + insurance (ship value that was lost).

so you gotta go buy ship + stuff all over again (lose your items), but you don't lose any financial value at all. Dying still sucks, but it doesn't make you go 'f this i quit'.



and i would make an exception for a player kill outside of a mission.
if you die because it was someone's mission to kill you, you're dead like usual.
if someone kills you for no reason, you respawn like nothing happened.


losing shit is a joykill.
and people that pick on others are fucks.
it's one thing to kill someone in a mission.
and another to go around killing them to watch them get frustrated.



in any case, we have to have DM's... and they can manage things. like punish a player that's being overly retarded... like shooting up every player ship he finds and leaving it with 1% health, for the first enemy to find and finish off.

i think it's fine if you PK to pirate someone. That's the nature of the game.
But PK just to pk and fly away is just wrong.

we could use a complaint system too.
where if a player kills you outside of a mission, you can file a complaint (it's automatic, At death, F1=complain, F2=ignore)
once you have X complaints, you get punished
complaint count resets weekly or something.
punishment could be a fine at first, and if it gets too bad, ship confiscation, etc.

that would keep the PKing down to a reasonable level.
you could still pirate players now and then (and, well, just kill them too), but you wouldn't be able to slaughter them left and right constantly.

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

Post by scheherazade »

OH YAH, the armed bots.

i totally agree

i even think there should be a 'help me out' command.

where you call for help.

the moment you do, militia ships launch from the nearest place and goto you at full speed. (which with the high speed cruise engines is pretty fast...)

if you're a pirate, pirates come to your aid full speed (or the nearest freindly faction, etc)

-scheherazade
Guest

Post by Guest »

Well this is all a agameplay issue that will need to be sorted out server side with correct scripting.


In oldSkool UO, you had guard zones. If someone attacked you in a guard zone, the guards were called and the enemy killed.

You could implement some form of controled space, with just the boarders between areas being neutral.
Plus some form of reputation system, where you can flag people as murderers so their names appear red, and people know they are red.

Plus if you are red and die there is a penalty incured.

But PKing is very profitable and stops people from being able to exploit easy money places.

Everyting needs to be balanced with profit vs risk.

But I'm not dealing with that.

Server spanning can work, but not in the way your suggesting with servers around the world continually updating each other. The easy thing about VegaStrike, is most things have a ramp up time, so the lag is canceled out.

For server spanning we have to balance
a) Spreading the universe so every one is close to the server, and
b) not spreading so far that everyone is on a different server.
You wouldn't notice high pings if it were not twitch based.

And the netcode on alot of FPSs can handle 64+ players, it is just the engine that starts to chug. (i.e. BattleField)

There is something to think about. But the account server still doesn't need to store any large data. One your account and password, all the server IPs and ports, and a snapshot of the characters you have (Only including enough detail so you know who they are). The rest can be held on the game server.
Guest

Post by Guest »

Alaskan wrote: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.
Personally I don't like the central control of servers. On each server you should have a seperate account. There could be a meta server to list the servers but please no more than that. Lets say I fall out of favor with the account server's admin... suddenly I am banned from everything... I would not stand for that. Meta server listing only please (also the accuall server should have the option of accepting tcp-only connection (as opposed to tcp-udp combo) so you can tunnell over ssh which is important...
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

so how do you suggest allowing people far apart geographiocally to host parts of the same universe? (since it'll inevitably happen that someone will want to host part oft he universe and they are located way off)

how exactly do you want to organize things, what hierarchy/structure/process would your system have?

-scheherazade
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

when you die, you lose your current name, and keep account name.

your new current name 'inherits' the wealth of the previous current name + insurance (ship value that was lost).
What if there was a scenario where there was a giant enemy fleet camping the station(provoked because lets say your clan was at war with another enemy clan that just came here) you and your friends were homed at, and got shot down every time you were in a fight. Lets say you launched 20+ times with 5 vs. 12 if your other friends to try to get an enemy kill in a battle but happen to die. Then you would have to name yourself "RaVeRBoY", "R4VeRBoY", "RaV3RBoY", "RaVeRB0Y", "Ra\/eRBoY" etc. and I think that would be kind of annoying for every time you die.

Or how about a scenerio where you made stupid mistakes which got yourself killed? Like, in a middle of fighting a bot(Usually called AIs in single player), you hit an astroid or even hit the station etc.

In some space trading games I play, I expect to die almost all the time just because I'm in a PvP fleet looking for some enemies to shoot.

I hate to burst the bubble but because remember, in most mmo's dying is a part of the game. Permenant death would add realism to the game but unfeasable when comes to maeing it a massivly online multiplayer game. So instead of losing your name and having it inherit your networth and stuff every time you die, how about a new variable called "Deaths" and it increases every time you die?
Guest

Post by Guest »

Anonymous wrote:so how do you suggest allowing people far apart geographiocally to host parts of the same universe? (since it'll inevitably happen that someone will want to host part oft he universe and they are located way off)

how exactly do you want to organize things, what hierarchy/structure/process would your system have?

-scheherazade
I think we should just simply have a meta server where the servers available are listed.
Simple and it works well. I am really adverse to central control of servers. (note you should have the option of not polling the meta server and logging in directly to an IP)
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

well, the current name is more like a declaration.
i.e.
you are 'this' life.

your account name still stands. not like that's taken away from you.

imagine blizzard's battle.net

you can still message anyone by account name. regardless of whatever character name they use. plus there is no reason you can't use hte same name. like : SpaceKiller[the 4th], SpaceKiller[the 5th], etc

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

Post by scheherazade »

it's more for keeping tally of lives.

a record of all lives you've used in the past.

you could have a sum of $ made and kills for each name you've used under an account.

like :

account
----------------------
somename kills $
someothername kills $
...




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

Post by scheherazade »

also, i don't think that we should make vegastrike into quake.

we _want_ one universe. an mmorpg.
its totally different from quake where you join a server and kill till your wrists are tired.


plus the architecture i outlined earlier totally alows what you're saying.

imagine complete overlap of all gameplay servers, where each gameplay server hosts one entire universe.

then any system you goto you can choose form any server (or just stay onthe one you're already on).

it's identical, except more robust (allows more than 1 server per all systems).

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

Post by scheherazade »

also, i don't think we're gonna be banning people.
this is sort of a free speech ish area.
calling people "ass sucking fuckers" over and over isn't an issue.
especially if any player can just squelch messages coming from you to him.

and PKing isn't gonna get you banned, at most punished somehow. just enough to make it not profitable to keep up perpetually.

-scheherazade
Guest

Post by Guest »

Ok, here is the end all post.

I am going to make the account server for these reasons:
1) Central place to log in (Saves having people log in and take up bandwidth from the game server)
2) A listing of all the game servers (So you dont need an external server browser)
3) If there is a hacker, we can delete his account (Account wont be deleted without an investigation and can't be deleted because the person running the game server says so)
4) Account server can block people from conecting when servers go down for maintainance, insead of everyone launching an accidental DOS attack :)

I am going to make the game server this way.
1) The most efficient netcode possible
2) The most versatile server so you can change everything about how it works.

I am sure I don't understand the SSH message, so I will try to explain something.
UDP is the quickest mass implementation of a network protocol. It just ignores lost or out of order packets. It works with most firewalls.
TCP is slower, if there is a lost packet, everything needs to be re sent.
SSH is Secure Shell. You don't need a shell to play this game.

The account server is going to be solely TCP (You can't afford to lose a login packet)
I don't see any need to overly protect the login. Your password will be hashed, the usual protection. I may aswell include some form of security, but not a asymetric encryption like SSH.

The game server will be UDP with a twist. It will make sure timeless data isn't lost.

Ok?
wewewewewe
Hunter
Hunter
Posts: 70
Joined: Sun Aug 01, 2004 8:33 pm

Post by wewewewewe »

well, the current name is more like a declaration.
i.e.
you are 'this' life.

your account name still stands. not like that's taken away from you.

imagine blizzard's battle.net

you can still message anyone by account name. regardless of whatever character name they use. plus there is no reason you can't use hte same name. like : SpaceKiller(the 4th), SpaceKiller(the 5th), etc
Needless to day, if you can't rename your other life after something similar to your previous name.. When I somewhat don't like this idea afterall. In a space trading game, when you come up with a role playing character name, then you probably have to stick with one character name with a full backgrouns. Instead of when a character dies, he is a tottaly different character all over again with a different background etc.. inhereting the previous character's stuff etc.

Lets come up with a wacky storyline instead.. When you create a character, then your character is cloned. When your ship blows up killing the body, the character is recloned again.

Or another way: the person is automatticly beamed(Startrek style) to the station he is homed at right before his ship explodes.

Or the player can simply respawn.

Again, when a ship is lost, cargo is dropped and the player gets 75% of it's ship value(guns equipped included) back. Example: Lets say your ship value is 615,000. When your ship explodes or you sell your ship, the player gets 461,250 credits back.

Now when it comes to making a space game or creating a universe like this, I try my very best to avoid simulating real life set in the future or even when thinking about real life. I like fantasy the most.


I might be a bit off topic about this one but..

Now there are many different other things you can do in vegastrike besides PvP.

PvP in a twitch based more action orientated mmorpg people are gonna think it's another quake with lots of people on a single server and I would not like to see it. Let's have the game itself have more features and other things to do besides Trading, PvP, Killing Bots, Doing missions etc.. We could actually go exploring! Let's say there is a hidden hormhole in this system which takes you to another uncharted system with lots of weird crap. That I would like to see the most. Mining, what types of tools can we use to mine rocks and sell the ore for cash? If anyone can implement with a IDwar style mining laser or Homeworld 1 style mining, they would be great. Defend the universe from aliens. How about searching out in deep space for some wrecks that have equipment that are a lot greater than the ones that are manufactured? I really can't think of anything else. But the most fun part of an mmorpg is really, PvP role playing.
LazyAlaskan

Post by LazyAlaskan »

Scriptable quests are a high priority for me. I will definately get them working 133tsor.

I can see the world being overrun by some outsider aliens and the players having to fightback and maintain the borders. You can change your aligance to the enemys and fight for them.

From a server side point of view, this can all be scripted in, and AI porifles can be assigned to the different types. (The enemy can have a scout ship that acts differently to the war ships).

Player crafted items is a must for most MMORPG fans. You could go exploring in the dangerouse areas of space and find a new mineral thatcan increase your weapon efficiency, or your engine speed. You just need to know how to use the material...

New ship designs can be introduced that ay, with some enemy attacking your homeworld, and when you go to attack them you salvage their ship, research it, and make a simmilar one.

It can be endless :)
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

wewewe <<

well, vs has exploring already. it's scattered with different places and easter eggs for you to find.

and different factions try to invade and control. like the Aera will send ships to take over Confed systems. The sides fight for control over the map.
and of course, there are dynamic missions spawned to defend from the invaders when they appear. so you can defend from aliens :)

mining bases already mine though, i'm not sure how this would work. Although, i do think it would be cool to have a construction ship, that maybe can build a mining base on an asteroid? i dono... or maybe just free-lance mining to sell the ore later to a refinery.



network stuff :
that set up sounds ok

though, i was thinking the player blocking could be up to the game servers. so whoever is running one can personally ban somone. so you're not banned from the entire universe if you piss off one sysop.

gameplay sounds good too.
you should try the asynchronous client side approach of warbirds plz. it'll let you have way more than 64 players on an good connection (given the cpu is decent), and every clients game will be smoothe regardless of net speed. plus it uses very little bandwidth. just sends coords and client-caused events. i'd love to see a couple hundred people playing together :)


i assume you want to have one game server per one [entire] universe instance? (no different servers per system *optionable*)

you don't mention saves? will it be possible to save to the account server? at least as an export/import option?

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

Post by Alaskan »

well, vs has exploring already. it's scattered with different places and easter eggs for you to find.

and different factions try to invade and control. like the Aera will send ships to take over Confed systems. The sides fight for control over the map.
and of course, there are dynamic missions spawned to defend from the invaders when they appear. so you can defend from aliens
True, but I was thinking of taking it even furthur and giving the sysop total control of the scripting and have it smoothly integrated into the clients. So the sysop can script an event (Like some wormhole to another dimension opening) then this is sent to the clients and is executed at a certain time without them knowing. So if they happen to be at the wrong place at the wrong time a huge wormhole opens and enemy ships come flying through, so you hightail it out of there,get some friends and fight them off.

A similar system to Horizons could be used to allow the universe to expand asmore people join the server. i.e. Some unknown enemy is occupying space and as you fight them off you are left with room to set up a base,or you find something special.

and different factions try to invade and control. like the Aera will send ships to take over Confed systems. The sides fight for control over the map.
and of course, there are dynamic missions spawned to defend from the invaders when they appear. so you can defend from aliens
I don't know much about this one. Some people were talking about blasting asteroids and picking up what you find in them as cargo. Meh.
though, i was thinking the player blocking could be up to the game servers. so whoever is running one can personally ban somone. so you're not banned from the entire universe if you piss off one sysop.
The account server will only ban hackers after an investigation. Like a last resort.
People who host the servers can ban as they wish, after all, they are providing the server. You wont be banned from any other server automatically though, you will have to go piss them off too.
You should try the asynchronous client side approach of warbirds plz. it'll let you have way more than 64 players on an good connection (given the cpu is decent), and every clients game will be smoothe regardless of net speed. plus it uses very little bandwidth. just sends coords and client-caused events. i'd love to see a couple hundred people playing togethe
I'm not sure how that is. But I am currently planning to implement this type of system.

A client has a packet.
It puts in it's current location, velocity and speed. Wether it is firing and if so what it is firing.
The server recieves this packet, puts the data as the most current into memory, and sends the packet to the validator.
Every 0.1 seconds (10 FPS) the server sends all the data that has changed. (A delta system if you want the more technical term)
It wont need to send a position update if the velocity hasn't changed. Everyone has prediction.
It also uses the common method of dealing with lag and firing weapons. It fires the weapons faster so they hit the target at the same time on all machines. But for instant fire weapons, we need to pick (Either have it work out where you were probably looking, or make it so you need to lead your targets.) The even easier solution is to use AI for targeting :)
The validator is a bit behind and checks everything as fast as it can and makes sure nobody is cheating.
The server also prioritises the info it sends. Chat messages are sent after firing weapon messages (etc)
If a packet is lost, then the client tells the server the numbers. The server then looks back through the history and finds the packet numbers, looks through for the important data (Like the details on a new ship) and re sends that.

How is that?

If your lucky I might code in some compression, but I like to think my coding is already pretty conpressed.
i assume you want to have one game server per one [entire] universe instance? (no different servers per system *optionable*)
Uhh. People can choose to mirror the characters on two servers by linking them. This will allow them to load the mirrored server and have exactly the same character. I'm also planning to allow two computers to share the same universe so the load can be distributed. It will change the areas each covers to allow for equal load balancing and a smooth transition between the servers. But it will really only be for two computers with a fast connection between them. I'll try to make it as efficient as possible (With each server knowing what the other servers thinks the character is, and sending only a diff of the character file)

People can choose to host a server and have custom rules and not link it to another server. Someone can set up a server for a deathmatch style game. Where you spawn a new char each time with plnty of money and the best ship. It is all up to the owner of the server.
you don't mention saves? will it be possible to save to the account server? at least as an export/import option?
If you feel you need one. I'm trying to take as much traffic away from the account server as possible because it will already be swamped as it is taking all the login traffic and sending all the server lists etc and I don't want it to require a huge connection.

It will be possible to export characters to another server, but that will be done by the game servers. I am planning for the servers to go down for 30 mins every now and then to save the game state, move characters, all the maintainance stuff. The account server will simply not let peope re join during this time.

Why would you need to save to the account server?
2 133t for joo!!!
scheherazade
Developer
Developer
Posts: 427
Joined: Thu Jan 09, 2003 6:03 am

Post by scheherazade »

the account server can be a central repository, not just a game server manager. a shared public save point, so you can be the same character on all game servers (if you choose to be, of course).



also, machines don't need to talk to each other real time to share load, since each one would have different systems. Since they have different systems, no player exists on both. only when going form one server to the other would you need the servers to handshake.
for the servers to talk in real time would only be needed if they actually completely shared the universe, and didn't divide. just worked on it together.
the servers would need to exchange sales and commodity info with each other to maintian consistent pricing. but hat can happen as much as 5 minutes behind... or more. it's not something that will 'vary much or vary quick'









your system is ok. tho it would require synchronization because deltas can't be dropped.
deltas work well when you have something to apply the delta to. but we can't counton a reliable connection, and therefore a valid delta. on a lan you would be able to get away with only deltas (nearly no packet loss), but this is the internet so, hehe... you know...

A hybrid approach would be better

server broadcast a "double precision '3x 64 bit' float POS update and full precision '3x 32 bit' float direction and '1x 32bit' float speed" update 2x a second (or some regular interval)
and in between, send '4x 8bit' Yaw/Pitch/Roll/speed deltas as fast as possible in between the major updates.
sort of like keyframes and deltas (imagine mpeg).

the ratio of keyframe and delta could be adjusted by connection speed too... where 56kers get a keyframe every 2 or 3 seconds, where broadbanders get one every 0.125 seconds.

keyframe ratios could also reduce as more people connect, and bandwidth of the server divides among them all.








an asynch (best effort, no shared time) system would do this :

you fly around and send your coords and direction to the server, server distributes them to the other clients. (all flight physics, 100%, are done on your client. your game is full speed, no matter what your ping)

you shoot, and send 'shooting' and 'stop shooting' to the server.
server distributes those among the other clients. (gunfire is 100% client side, and full speed, no matter what your ping)

when you hit something, you send 'i hit X and did Y damage at Z location on the ship' to the server, the server sends it to the client you damaged, and sends you an 'ok'. You locally don't deduct his health until you recv the OK back. (you can shoot and hit him real time, but you wait (2x (your ping +other ping)) before the damage registers).

if his health < 0, server broadcasts his death automatically.


(also, server only informs you of other ships that are in your visual range)


server keeps a history of the last X seconds.
it looks back Your ping seconds, and checks where you were and where the person you shot was. It checks the aim vector and calculates ifthe hit was possible. If its valid. the damage is applied. If not, it's ignored.


all events happen 'your-ping + guy-you-hit-ping' after you do them.
this means that even though you fly full speed. the people around you move around at 'their best effort'.
this means that a laggy person may warp around on your screen, while a broadband person would fly smoother (broadbander can send updates of his position more frequently).
if someone lags out, he literally stops in space until he sends another position. at which point he literaly jumps to where he should be.
shooting somone while using a laggy connection would mean that you sense a large lag between your hit, and the damage reduction. BUT it's still better than hitting shoot, and waiting for your shots to come out and maybe hit the person (as it's harder to aim with ping delayed fire, imagine quake with 500 ping).

it sounds like laggers would have a benefit to flying warpy-like. but not really. when they stop for a moment you can pound their standing-still ship and it'll count just fine. The server time backtrack check will see that you were facing the right direction to hit the laggers last position update.

but that was never a problem in warbirds. it happened time to time (as anyones dial up would crap out time to time) but for the most part the enemy flight was smoothe. it would be a little jumpy depending on who you were chasing, but we could easilly do a spline-path interpolation to get a smoothe prediction going on. warbirds didn't predict anything... mostly since i don't think the computers back then had the power to spare for it.


it's a REALLY low bandwidth system.
literally hundreds of WWII fighters would fly around in a single open arena with a single server and it was smoothe gameplay on a 56k (well, 33.6 at the time, i last played it ~7 years ago).
if we used this approach today, and someone offered up a god box to host it, you could afford to have thousands of players.


and of course, nobody would suffer when their connection is laggy. making it as pleasant an experience flight-wise as single player :)




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

Post by Alaskan »

when you hit something, you send 'i hit X and did Y damage at Z location on the ship' to the server
\

*cough*aimbot*cough*

You misunderstand delta. You dont send the difference. You send what has been changed. You dont resend the velocity if it hasn't changed. I dont mean you send +5 or -10.

To simplify everything, we should be able to target what we want to shoot, and have the computer control the firing.
this means that a laggy person may warp around on your screen
It would also mean that everyone would wapr around if you were laggy. This isn't how you do movement. You use prediction. Spline based methods are good. Based on your current velocity, you can guess how the person would move. You can't exactly change direction really fast on VS, so I don't see it being a problem.
, but we could easilly do a spline-path interpolation
Ok, so I am guilty of not reading your entire post.
s smoothe gameplay on a 56k
With an MMORPG, it is the servers bandwidth you have to think about.
the account server can be a central repository, not just a game server manager. a shared public save point, so you can be the same character on all game servers (if you choose to be, of course).
The account server can and will be an account server. It will contain accounts. It will act as a gateway to the game servers. Nobody has given me a good reason otherwise.
also, machines don't need to talk to each other real time to share load, since each one would have different systems. Since they have different systems, no player exists on both. only when going form one server to the other would you need the servers to handshake.
Yeah, so when you cross a server boundary the server you were on sends your entire character (because it has changed) to the other server.

Now what happens when 50 people cross servers. Thats alot of info to flick across.

Two machines sharing the universe (not mirroring it) will be able to be located on other sides of the world. BUT, there is limitations to how fast it will go and how well it will work. It will be possible, but will be better if they are closer.
and in between, send '4x 8bit' Yaw/Pitch/Roll/speed deltas as fast as possible in between the major updates.
Now I am going to explain a DOS attack :)
1000 people pumping messages as fast as possible...no, I don't think so.

Once I start commiting what I have (Promise not yet hellcat) you can go through and see how I have it working. And once we get it going we can see if sending entire characters to the account server is smart. But just think of this. How much bandwidth will be used when everyone connects back after a server maintainance?

100 characters per game server pumped out the account server. Not going to happen.
2 133t for joo!!!
Guest

Post by Guest »

Great, so now I as a potential server admin am at the mercy of others.
Please have a TCP-Only Option.

This sucks.

I have a dual 2Ghz box with a nice connection and would like to put up a server but if you guys are going to control accounts it is never going to happen. This saves about 0 bandwidth... what a couple bytes for login and password is too much.

As for 3) I don't care if a "hacker" is playing around, and for 4) if the gameserver dosn't update the meta server it dosn't get listed, this is what happens with the crossfire RPG.

If you implement this stuff with No ability to play TCP only and you control accounts count me out from running anything, what are you microsoft with it's passport? TCP only as an option is simple and hurts no one, taking control away from server owners is wrong, why should we waste our bandwith when you take away our choices? Maby we will anger an admin of this central server and BOOM we can't play multiplayer VS from our IP anymore (and this happens alot). As for scoffing at SSH, I tunnel everything over it for security, it is NOT only for shell access. Please let us not have this draconion federal control, just put up a meta listing server.
Anonymous wrote:Ok, here is the end all post.

I am going to make the account server for these reasons:
1) Central place to log in (Saves having people log in and take up bandwidth from the game server)
2) A listing of all the game servers (So you dont need an external server browser)
3) If there is a hacker, we can delete his account (Account wont be deleted without an investigation and can't be deleted because the person running the game server says so)
4) Account server can block people from conecting when servers go down for maintainance, insead of everyone launching an accidental DOS attack :)

I am going to make the game server this way.
1) The most efficient netcode possible
2) The most versatile server so you can change everything about how it works.

I am sure I don't understand the SSH message, so I will try to explain something.
UDP is the quickest mass implementation of a network protocol. It just ignores lost or out of order packets. It works with most firewalls.
TCP is slower, if there is a lost packet, everything needs to be re sent.
SSH is Secure Shell. You don't need a shell to play this game.

The account server is going to be solely TCP (You can't afford to lose a login packet)
I don't see any need to overly protect the login. Your password will be hashed, the usual protection. I may aswell include some form of security, but not a asymetric encryption like SSH.

The game server will be UDP with a twist. It will make sure timeless data isn't lost.

Ok?
Post Reply