Jump to content
Sign in to follow this  
Dwarden

Server ability : URL forwarding of MISSION content

Server ability : URL forwarding of MISSION content ?  

130 members have voted

  1. 1. Server ability : URL forwarding of MISSION content ?

    • server admin/owner/donator/player + supporting this feature
    • anyone + against this feature (please explain why)


Recommended Posts

I'm creating this thread with poll to obtain some feedback on one 'possible' feature for ArmA 2 (with very rare chance this to appear also for ArmA 1) server / client.

Original thread with POLL was here : http://www.flashpoint1985.com/cgi-bin/ikonboard311/ikonboard.cgi?act=ST;f=57;t=77288

The feature is option for server to define file source forward for MP missions content (HTTP) and client's ability to download that content then from defined source.

Description:

The Arma 1 (and most likely 2 too) engine could easily support this feature ,

as MISSION related content is possible to load after engine start (contrary to map or other type of game changeable content like models).

So technically this feature would require that instead of downloading MISSION file from ArmA *1/2 game server directly

there will be inserted of small&simple portion of code telling game to download file from server defined URL location (if enabled server side).

The routine about file placement and check if present/loadable etc. is then same/similar to already existing part of code.

i split the poll into these sections tho i would like users to post with comments why they for or against this useful feature:

1. server admin/owner/donator + support this feature

2. just user + supporting this feature

3. anyone against this feature

thanks everyone for taking part

p.s. once again just in other words for these who not understand above :smile_o:

actual situation :

1. client w/o mission establish connection with server

2. mission file is downloaded from server using server-client connection

3. when mission file is downloaded and not corrupt then client loads it into memory and enters missions

positivies:

+ already done

negatives:

- will use bandwidth block of game server for mission distribution instead of game traffic

- try imagine popular public server with 1k Unique Users / week download several 5MB missions ...ouch

proposed situation:

1. client w/o mission establish connection with server

2. server tells client there is possible download location at http://www.somewebsite.net/folder/arma2mission.pbo (this part must be coded in)

3. clients starts wget on background and waits for error code or timeout on error code (this part must be coded in)

4. if error code is success then file is placed into mission directory like usual and loaded as usual (code already present ingame)

5. if file not match (already code present ingame) or if error code is fail / timeout then client may fall-back to try download from server using already existing method (this part must be coded in with reusing already present code)

6. when mission file is downloaded and not corrupt then client loads it into memory and enters mission

*not need to use external opensource wget and use own portion of code, it was just example

negatives:

- some code must be added but not much (as most of code needed is already in)

positives:

+ offloading the mission download to different source than gameserver

...

Edited by Dwarden

Share this post


Link to post
Share on other sites

What is/are the benefit(s)?

I do imagine at least one, yet please go on.

Share this post


Link to post
Share on other sites

erm i though the benefits are clear ...

actual situation w/o this feature mean that any player w/o the mission in question is downloading it from the server:

which means :

- higher bw demand on server resulting to e.g. higher cost (bw block limits)

- less bw for players already on server (possible issues with quality of gameplay)

today most of modern MP oriented games and engines already offer this (e.g. engines from trio Epic, Valve, ID) for map/mission content

the problem turns worse in moment You use 'big/huge' mission and run popular server (100s to 1000s unique players)

with the feature you would then:

+ define mission source URL independently on the server location

+ save your server bw block

+ increase the quality of gameplay on server

in short instead of 'wasting' precious bandwidth on your  server (not everyone have dedicated server line beyond T2) You can utilize some ultra fast public mirror hosting mission file(s)

Share this post


Link to post
Share on other sites

while i agree that BI is engine is lacking so many aspects most

other mp engines have, i doubt whether the effort for this would

be well spent.

the engine needs to handle several things for his or you make it

very crude (unique identification, error handling, fallback, etc).

instead the should focus on proper configuration, addon download

(game restart is ok), more stable / resistant to errors, optimization,

linux server etc etc

Share this post


Link to post
Share on other sites

there is no need to complicate things and that's so neat on this feature

game server:

add query string with Mission_downloadable == "true"/"false"

add query string with Mission_download_URL == "*"

game client:

if client sees true for Mission_downloadable

then client uses Mission_download_URL and auto adds "http://" to URL defined

then client executes e.g. wget to download URL+mission filename (+ needed switches)

then client waits till error returned or file downloaded or other error returns or else timeout

then client tries load mission like now (same part of code used for actual download from server)

yet if any of above fails client can easily fallback to already existing direct download from game server code

also client can use file operations code already present

that's all ... simpler it can't be

p.s. don't mismatch this with any addon content ...

that's completely different and unrelevant unrelated to this feature

Share this post


Link to post
Share on other sites

Hi all

I think Q has completely misunderstood and indeed obfuscating the simplicity and the importance of this proposal for Join In Progress (JIP) And how many ways this will improve ArmA.

JIP Lag and Mission load speeds

Basically this addresses Mission load speeds and JIP Lag.

It does so in three aspects.

1) When you first play a mission or when a mission is updated, you all have to download the mission. If it is one of the big servers say 60 plus players it causes loads of problems: It can take up to 10 minutes, people get bored, there are dropped connections adding to the load if they half way through a download.

Downloading the mission in advance removes this problem.

Torrents might be a useful additional location for missions then just put up a server index page for the torrents. That way a clan can trickle their servers mission and their addons, no need for emails to tell people to update addons either, it all becomes automated.

2) JIP lag for existing clients/players on a server when some one joins a server. The server has to slow to send the whole mission file which with sound and even video files to every new client. We have all experienced the dreaded Lag in a helo coming into the Hot LZ where we all crash and do not even know why, as a new player from a different continent joins with a mission they have never downloaded before (it is always polite ask on Team Speak if you can JIP in) JIP lag for a pilot is a killer.

Downloading the mission in advance removes this problem because all downloads are done separate from the server, mission load JIP Lag is removed, synchro Lag still exists but more on that later.

3) JIP lag for a new client/player is removed, meaning you join the game faster. Synchro Lag still exists but more on that later.

Synchro Lag

This is outside what Dwarden is proposing. This mostly affects big missions and Persistent Server missions like Warfare and Evolution and only when Joining In Progress

When you JIP into a mission that has been going for some time the mission environment has changed. Units have moved/changed position from the mission download positions, bushes trees lampposts have been knocked down by bad drivers (mostly me that, sorry) buildings blown up ammo load outs are all different people shoot bullets, lots of dead bodies where the bullets hit people, smoke, explosions etc.

What is needed for Synchro Lag is a server farm architecture essentially the ability to use client as a server. Nothing special just an additional server that acts as a dumb client to the main server and can be used by JIP players to synchronize to.

Another solution may be to use peer-to-peer updating from players in game, but there are a whole bunch of technical issues as pert of that route.

Anyway I think we should give Dwarden our full support on this.

Kind Regards walker

Share this post


Link to post
Share on other sites

1.15 fixed the mission download problem.

IC with 100 players had no longer any problem during JIP, mission

start, long mission download.

at least to our experience this is no longer true.

bandwith is the least issue of the A1 DS imo. the other stated

ones are way more important imo.

so i see this as a very minor issue in these days.

again you need to have the mission still on your server, make

a compare if the URL is offering the same file.

Share this post


Link to post
Share on other sites

@Q the client already compares the file (if you have the mission already) and if not it redownloads it ...

so again that part of code is already included in client ...

and please don't think in scope of 'rare server' with 'uber fast' line running 'small' well spread mission for 'limited' number of clients ...

this is aimed at:

- public server

- 64-128 or more player server

- mission size is 1 MB or bigger

for starter let say You have 2000 unique players / month and you rotate 10 missions with total size 25MB (avg 2.5MB/mission) and let say each mission gets 2 builds per month

if 25% of players already got these missions other way

then bw block needed is 'only' 0.75*2000*25*2 = 75000 MB

(just for mission itself downloads)

now let's not even try imagine very popular server with way more and lot bigger missions and even more often updated ones ...

in short something what ArmA 2 try aims to be smile_o.gif right ?

@ walker You not lightened my argument either smile_o.gif

as some of the issues (or most) were resolved in public 1.15 beta already

anyway You still right that 'cluttering' the server bandwidth on server where is some 'limit' (be it max bw block or actual throughput) still exist and that's exactly what above suggested feature remove

Share this post


Link to post
Share on other sites

Dwarden,

You know I am for this, since I use this form of "redirect" for RvS and CoD servers. wink_o.gif

Edited by SWAT_BigBear
I'm to I am (new forums)

Share this post


Link to post
Share on other sites

i'm all for an automatic http redirect for the user.  whatever makes it easier to get on and improves the play experience is a good thing for everybody.  i emphasize AUTO http redirect.

keep up the good work!

Share this post


Link to post
Share on other sites

I was a counterstrike-source server operater when this was introduced to css, and it took a massive bandwidth-load off the servers, this sounds like a good idear.

Share this post


Link to post
Share on other sites

Agreed. Downloading the mission straight from the server is:

1. Slow, can be a problem with large missions. Having to sit and wait for the mission to download at speeds much slower than your connection could handle is frustrating.

2. Uses bandwidth that should be used to run the game. Might cause desync in some cases.

Maybe it could be done for addons, although I don't know if I would be happy with loads of low-quality addons being forced on me. And that would be more complicated to implement.

Share this post


Link to post
Share on other sites
Agreed. Downloading the mission straight from the server is:

1. Slow, can be a problem with large missions. Having to sit and wait for the mission to download at speeds much slower than your connection could handle is frustrating.

2. Uses bandwidth that should be used to run the game. Might cause desync in some cases.

Maybe it could be done for addons, although I don't know if I would be happy with loads of low-quality addons being forced on me. And that would be more complicated to implement.

It would be too hard to unify everyone's addon structure and it would hog up your hard drive. you think your arma dir is big now? Imagine if you had every popular addon multiple times, depending on the tastes of the server admins!

Share this post


Link to post
Share on other sites

i repeat it again please don't mismatch this feature with addons / maps etc. downloading which may seems similar but is absolutely different ...

that would mean radical changes into engine which is exactly opposite where feature above aims ...

so keep it simple as it is ...

Share this post


Link to post
Share on other sites

Thank you walker for explaining it. I don't think English is the Topic creators main language, so didn't understand him too much. confused_o.gif

Anyways, I support the idea as a user, anything to stop JIP lag as it can really kill a fire-fight and it also makes it quicker to join since it won't use the servers resources but its own.

Share this post


Link to post
Share on other sites

Although I'm in favour of this, have you considered using ArmAlib to do this as a community side (tiny missions that are downloaded normally from the server, but that downloads the mission-specific files from an external source, be that HTTP or database)? Certainly not happening for ArmA before A2 at the very least, so this might be a better option, though getting the average user to use something like Armalib is harder than getting them to predownload the mission, in all likelyhood.

Share this post


Link to post
Share on other sites

This Idea never even crossed my mind but what a good one.

I'm with you 100%, server owner/admin & user +

I hope BI concider this. notworthy.gif

Share this post


Link to post
Share on other sites
Although I'm in favour of this, have you considered using ArmAlib to do this as a community side (tiny missions that are downloaded normally from the server, but that downloads the mission-specific files from an external source, be that HTTP or database)? Certainly not happening for ArmA before A2 at the very least, so this might be a better option, though getting the average user to use something like Armalib is harder than getting them to predownload the mission, in all likelyhood.

the point is simple feature out of box as part of the game client/server operations ...

anything what needs user interaction with 3rd party compoenents just for mission download forwarding

downplays such feature into oblivion ...

Share this post


Link to post
Share on other sites

Dwarden, to be honest i also had some difficulties to understand the main idea of the pool, i feel its not quite clear yet.

I believe there are also more people that would like to participate on this but they just don't understand these kinda techniques.

So from what i understand to have better performance it would need 2 servers, one for the game it self and another server(s) for hosting missions (optional/resource). These way people would download missions from different sources and prevent lag.

Is this the idea?

If so, i still don't know what option to choose in the pool confused_o.gif

Share this post


Link to post
Share on other sites

what you not understand ?

ok i updated the first post and it's under the P.S. so read and tell me if You now able understand what i got in mind smile_o.gif

and about the 2 servers need ...

no need for two servers ...

if there is UBLIC and FAST http/ftp mirror for missions then You 'lighten' the load off your server to that download mirror ...

yet the option to download mission from Your server still exist in case the mirror goes down or client fails to connect to it or correctly download mission file

just note nearly every MP game now supports this ...

Share this post


Link to post
Share on other sites

Wasn't too clear for me either to understand fully lol. But if its about taking stress away from the server running the missions and improving JIP im all for it.

Sounded scary with one of the negatives though. If server rotating heeps of maps me as a user will have to sit back and just take all of them before joining. Dont know if i got that right?

But if this was a feature out of the box server hosts would know not to use too big rotations. So that wouldn't be a problem. Small note in the manual (or extra sheet if manual is done) could explain this easy. The more solid the core game is - the better. Good job Dwarden coming up with the idea.

PS. Hope i got your point somewhat correct.

Regards

Alex

Share this post


Link to post
Share on other sites

sad_o.gif fail again sad_o.gif

you don't need download all the heap of maps ... just the one you joining in ...

now in ArmA if you download modified Warfare with 25MB size it's downloaded from the server it's hosted on ...

with this server admin may decide that you may download it from somewhere else (usually faster) which helps game server too ...

crazy_o.gifbanghead.gif ... where is that smilie with smiley running around crazy screaming pistols.gif

Share this post


Link to post
Share on other sites

Well, I understood you perfectly and I'm supporting your idea. smile_o.gif

//type fixed

Share this post


Link to post
Share on other sites

@Dwarden

LOL! Sorry mate for making you nuts. biggrin_o.gif

Misunderstood the mission rotation bit. Thaught you wrote it was one of the downsides to have to download it all. No harm done. Still supporting. Even more now.

Alex

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×