Jump to content
Sign in to follow this  
Millenium7

Seriously BIS.... ingame addon downloading. Here's how...

Recommended Posts

The way I see it you guys have 90% of the hard work implemented already.

:icon14: You already have .bisign files in place which verify the integrity of files stored in addon folders

:icon14: You already have the ability to query and download remote server info (in the form of Squad XML)

:icon14: You have a progress bar in place when downloading missions from servers

So whats missing? 3 processes with an optional 4th

1) When joining a server, just like it currently does the game should query against the servers .bikey files to find which files are either missing, or fail the integrity check (old/outdated or tampered with files). When it finds a file that is invalid or missing, download it from a server. Where? thats step 2

2) Look at the servers .bikey file (or a seperate spreadsheet/database file bundled with mods/addons containing all CRC32/MD5 file checksums) which would contain an entry for a server URL or IP address. i.e. 'ftp://myarma3mod.com/mymodfiles'

2.1) If the URL field is empty, do exactly what the game currently does and kick the player from the server

2.2) If the URL field contains a valid URL (filled in by the addon maker), begin downloading all files which have failed the integrity check (or are missing) from THAT url, NOT from the game server. Be kind and show a progress bar with remaining filesize as well :thumbs-up:

3) When finished reload the new addon file, or if necessary prompt the user "To join this server your game must restart and load the required addons" with a yes/no, you click yes it restarts and rejoins the server

4) Since some servers may run different versions of addon files with the same name. Allow the game engine to also check for _xxx.pbo's, and not strictly the original name

This sounds a bit complicated so here's an example. A bunny.pbo file fails because its version 1.0, the server requires version 1.1. Rather than overwriting, rename the downloaded file bunny_001.pbo. When joining a server it will load whichever file matches the .bikey starting with the name 'bunny'

I don't want to blow my own horn here but I used to write software as a hobby and I really can't see this as being difficult. If there's something i'm missing please let me know but it seems this could easily be whipped up in no time at all

It also covers some much needed bases. Yes people can use third party software but its such a pain in the ass, especially for newer people to understand. And it presents a giant problem with small or individual addons. At present its impractical for a server to run missions containing generally unknown addons that float about the internet, as it'll kick everyone. So a lot of smaller addons never get used in multiplayer for that reason alone, this would fix it. A small 20kb addon suddenly becomes viable and not an impractical nightmare to have running on servers

Sincerely

- Millenium7

Share this post


Link to post
Share on other sites

This is what SixUpdater already does, as a separate tool. Actually, the problem is IF this should be an in-game tool as the addons could thave several gigabytes and take hours to download. I think they plan such tool anyway for the future.

Share this post


Link to post
Share on other sites

What he said. We already have this and it is called six updater. And just for reference, JSRS 1.5 is 1.76GB and ACE plus extras(No soundmod) is ~3.5GB..

But if they integrated SU into the game it would be nice.

Share this post


Link to post
Share on other sites

The problem with Six Updater is that new players have to search and download Six Updater in the first place. Not exactly 'beginner-friendly' for most non-experienced computer users.

Share this post


Link to post
Share on other sites
This is what SixUpdater already does, as a separate tool. Actually, the problem is IF this should be an in-game tool as the addons could thave several gigabytes and take hours to download. I think they plan such tool anyway for the future.

I learned with BIS something realy cool : If it's not done now ... it will never be done :D

  • Like 1

Share this post


Link to post
Share on other sites

What you have to remember is that server admins don't want dozens of clients downloading masses of data from their servers. I agree if SU was somehow integrated it would be handy some times but I have no problem with using a separate tool.

Sent from my HTC One X using Tapatalk 2

Share this post


Link to post
Share on other sites
This is what SixUpdater already does, as a separate tool. Actually, the problem is IF this should be an in-game tool as the addons could thave several gigabytes and take hours to download. I think they plan such tool anyway for the future.

I don't know why this is even an argument that ever comes up for this topic.

Who cares if they are big addons, that's up to the person hosting the server.

Nobody's saying that the client has to sit there, that's what a cancel button is for as well as simple information on the screen:

- Size of downloads

- ETA

- Transfer Rate

Share this post


Link to post
Share on other sites
What you have to remember is that server admins don't want dozens of clients downloading masses of data from their servers. I agree if SU was somehow integrated it would be handy some times but I have no problem with using a separate tool.

Sent from my HTC One X using Tapatalk 2

Read first post. OP means that files are downloaded from general server (just like Armoholic is currently linking to for mods), not from game server already stressed by players. As for some other points, it has been a while since we had 56k modems. People with fast internet connections are no exception. Torrents of 10+ GB are no problem to download for anyone. Problem would be that url is linked to only 1 server, although it is just as easy to share download among other users also downloading as peer-to-peer download. It has a reason Napster (predecessor of torrents) became popular, cloud-sharing isn't that difficult. But if we go back to original suggestion, just directing players to a link of mod and enabling automatic download is already much nicer than simply saying a bunch of files are missing and leaving new players behind in confusion.

Share this post


Link to post
Share on other sites

the engine needs first support things like mirror usage with multiple repositories ...

e.g. http://forums.bistudio.com/showthread.php?71274-Server-ability-URL-forwarding-of-MISSION-content

also due to size of addons capable go into GBs or tens GBs it's sort of not good idea to put such stress on server at all

try just count traffic with 10MB mission, let say you have 10 those on server and 10000 unique players / month

that's just nearly 1TB / month of just mission downloads w/o single byte of game traffic

anyway lot of ~features~ are still WIP ...

Share this post


Link to post
Share on other sites

But how are mods currently being downloaded with Six Updater or from Armaholic by all these unique players monthly? I don't see problems currently, so why would there be problems by integrating SU functionality into game, not necessarily with advanced seeders/peers-sharing-systems which require extensive development efforts.

Share this post


Link to post
Share on other sites
But how are mods currently being downloaded with Six Updater or from Armaholic by all these unique players monthly? I don't see problems currently, so why would there be problems by integrating SU functionality into game, not necessarily with advanced seeders/peers-sharing-systems which require extensive development efforts.

they not downloaded from the game server, that's the key point I was trying to highlight ...

Share this post


Link to post
Share on other sites

What about hosting and updating mods via steam? When I first played TES5: Skyrim I was deeply impressed by the easy mod management. Say you can subscribe to certain favorite mods and automatically receive updates. Is this going to be planned?

Share this post


Link to post
Share on other sites
the engine needs first support things like mirror usage with multiple repositories ... (...)

Well, server admins would certainly appreciate it in, players too since server bandwidth would be relieved while mission is in progress.

But then there is the other part of the issue which is the engine be able to patch configs on-the-fly without requiring a restart (i did read something about that being temporarily enabled in one beta or something).

I would welcome those features, no doubt.

Share this post


Link to post
Share on other sites
This is what SixUpdater already does, as a separate tool. Actually, the problem is IF this should be an in-game tool as the addons could thave several gigabytes and take hours to download. I think they plan such tool anyway for the future.

I wouldn't see the problem. It would take the same amount of time to download it anyways.

What he said. We already have this and it is called six updater. And just for reference, JSRS 1.5 is 1.76GB and ACE plus extras(No soundmod) is ~3.5GB..

But if they integrated SU into the game it would be nice.

But how are mods currently being downloaded with Six Updater or from Armaholic by all these unique players monthly? I don't see problems currently, so why would there be problems by integrating SU functionality into game, not necessarily with advanced seeders/peers-sharing-systems which require extensive development efforts.

Yes, point is: SU is working based on a number of mirrors that have been provided by several community server owners (KH included). The traffic is supported thus by a handfull of members of this community, at the expense of everyone else. The system is NOT peer to peer. And while it works at this moment since ther demand is lower than the total available bandwidth, this might drastically change if everyone would be downloading mods via SU from mirrors provided by quite a few, things would change...drastically. I remember when ACE was fresh, back in ArmA1 time, we (kellys heroes), went well beyond our normal traffic plan of 3 (or 5)TB per month and we had additional hosting costs, so in the end we had to restrict the download speed and access.

Armaholics lives of donation and hits (advert). One of the reason NOT to deeplink.

Most of the community members around here do not think about where those files would be stored, not at all.

Read first post. OP means that files are downloaded from general server (just like Armoholic is currently linking to for mods), not from game server already stressed by players. As for some other points, it has been a while since we had 56k modems. People with fast internet connections are no exception. Torrents of 10+ GB are no problem to download for anyone. Problem would be that url is linked to only 1 server, although it is just as easy to share download among other users also downloading as peer-to-peer download. It has a reason Napster (predecessor of torrents) became popular, cloud-sharing isn't that difficult. But if we go back to original suggestion, just directing players to a link of mod and enabling automatic download is already much nicer than simply saying a bunch of files are missing and leaving new players behind in confusion.

peer to peer would indeed be the optimum solution on the long term.

Legislator;2362138']What about hosting and updating mods via steam? When I first played TES5: Skyrim I was deeply impressed by the easy mod management. Say you can subscribe to certain favorite mods and automatically receive updates. Is this going to be planned?

http://forums.bistudio.com/showthread.php?148879-ARMA-III-amp-Steam-WORKSHOP/page18

Well' date=' server admins would certainly appreciate it in, players too since server bandwidth would be relieved while mission is in progress.

But then there is the other part of the issue which is the engine be able to patch configs on-the-fly without requiring a restart (i did read something about that being temporarily enabled in one beta or something).

I would welcome those features, no doubt.[/quote']

A quick restart wouldn't bother anyone. One is needed for changing UI size for instance, and the game engine does it for you

Share this post


Link to post
Share on other sites

Yes, my suggestion is relatively self interested from a modders pov, still UI size change occurrences are barely comparable to mod installs when looking for a server for a session. Yet still, i'm am surprised with what can be done just with what the mission scripting allows.

Share this post


Link to post
Share on other sites
they not downloaded from the game server, that's the key point I was trying to highlight ...

The point is to have a 'server URL' field, filled out by the mod makers themselves. It would not attempt to download addon files from the game server, it would download them from an external server (again no different to sixupdated) so no additional load is placed on the server

There are 2 glaring problems with external tools such as sixupdater

First and foremost, it makes it highly impractical for a server to run missions that have small individual addons. As mentioned if I load a mission with a small 20kb addon, it kicks everyone else because they don't have it. They'd have to quit, find it, download it, activate it then reload the game and rejoin. If there are 10+ seperate little addons, thats a huge pain in the ass. So unless your addon is part of a larger pack (which is more about marketting and less about creating addons) there is slim to no chance of it EVER being used in multiplayer

And the second is that you need to explain to people how to use sixupdater and why. Don't get me wrong I think its fantastic, but it's just too complicated for what should be a simple task. I perfectly agree that its more suited for larger addons of several GB, but smaller ones of only a few MB would be so much better to have downloaded and activated directly through the game when joining servers

Share this post


Link to post
Share on other sites

There are 2 issues:

-addon download

-addon activation (when joining servers)

Both are solved by SU but an official tool\method would be better, including a p2p approach (a torrent like plataform that use BIS, fanmade (Armaholic, Arma.info, KH...) and even players?) that use an unified database...or something and is somehow linked to the ingame server browser (Is Gamespy staying? Will use the Steam browser?)

My only experience with Steam Workshop is with RO2 and isn't great, but I don't know if the problem is with the plataform or bad implementation by TWI. There is also the mod makers and not so clear EULA problem, so idk. The interface and functions are nice though.

A3 will be bigger than any previous titles like it or not and mod management (think about those single little skins,gear, attachments) is a problem that BIS has to tackle.

Edited by Smurf

Share this post


Link to post
Share on other sites
Legislator;2362138']What about hosting and updating mods via steam? When I first played TES5: Skyrim I was deeply impressed by the easy mod management. Say you can subscribe to certain favorite mods and automatically receive updates. Is this going to be planned?

I certainly hope not.

Share this post


Link to post
Share on other sites
they not downloaded from the game server, that's the key point I was trying to highlight ...

I was trying to highlight the same key point ;-). Atm mods can be perfectly downloaded from one location, so who is talking about stressing game servers? One general server with 1 or 2 mirrors does the job (already) fine. But anyway, I hope something like an integrated Six Updater becomes a reality someday, it will surely help a lot of new players. When I first played Arma, I put it away after 2 days because I couldn't find decent servers. It was only after I learned about Armaholic that I managed to find and install all mods.

Edited by Bravo_Two_Zeroq

Share this post


Link to post
Share on other sites
Yes, point is: SU is working based on a number of mirrors that have been provided by several community server owners (KH included). The traffic is supported thus by a handfull of members of this community, at the expense of everyone else. The system is NOT peer to peer. And while it works at this moment since ther demand is lower than the total available bandwidth, this might drastically change if everyone would be downloading mods via SU from mirrors provided by quite a few, things would change...drastically. I remember when ACE was fresh, back in ArmA1 time, we (kellys heroes), went well beyond our normal traffic plan of 3 (or 5)TB per month and we had additional hosting costs, so in the end we had to restrict the download speed and access.
While you are correct that our network also relies on very much appreciated donated bandwidth by communities,

the bulk of the traffic (~100 TB/mo) these days runs over our own servers, the network is tweaked based on load taken over longer periods of time.

Our situation is much different from years ago, and if we need to cope with peak traffics like ACE releases and such we can.

If you think ACE was big back then, imagine DayZ ;), we've been the primary source of distribution for a long time and were able to cope more or less.

ATM we're working hard on multi-version support on the official network, custom repos, and locally. Bittorrent and other p2p support is also coming in sight...

We're also working on making it easier for people to upload and update their mods on our network.

Recently we've also simplified the process of adding mods to the network ourselves, so we can more easily keep up.

There's also still the possibility to host a custom repository, mostly useful for private communities. That way you provide your own bandwidth.

The new Play withSIX client is also shaping up rather nicely I think, performance and stability wise at the very least.

UI and usability are always a subject of conversation and we try to improve it and keep improving it as much we can.

Integration with the game is also partially under way, at least we're communicating with the game these days, for latest status info or to command the game.

The next step is handling the "Missing Addons" dialogs. Bundeling is also possibly on the table, we'll have to see how next months unfold.

---------- Post added at 12:52 ---------- Previous post was at 12:36 ----------

There are 2 glaring problems with external tools such as sixupdater

First and foremost, it makes it highly impractical for a server to run missions that have small individual addons. As mentioned if I load a mission with a small 20kb addon, it kicks everyone else because they don't have it. They'd have to quit, find it, download it, activate it then reload the game and rejoin. If there are 10+ seperate little addons, thats a huge pain in the ass. So unless your addon is part of a larger pack (which is more about marketting and less about creating addons) there is slim to no chance of it EVER being used in multiplayer

We're trying to add more and more mods as soon as possible. (We take requests here; http://getsatisfaction.withsix.com/withsix/topics/mod_update_or_addition_requests_pt2)

But otherwise, you can create a modfolder for your server, and host these mods yourself. SIX Updater since long, and also Play withSIX both support Custom Repositories.

If the mods are small, there won't be any bandwidth issues either.

And the second is that you need to explain to people how to use sixupdater and why. Don't get me wrong I think its fantastic, but it's just too complicated for what should be a simple task. I perfectly agree that its more suited for larger addons of several GB, but smaller ones of only a few MB would be so much better to have downloaded and activated directly through the game when joining servers
Have you tried the new Play withSIX client? It is currently under active development and full support.

UI/Usability is something we can work on, but we need feedback, what do you want, what do you need, what do you like?

(I don't thnk this thread is suitable for that though, we would prefer to receive on the GetSatisfaction page, or in the PwS threads here on the BIF)

Edited by Sickboy

Share this post


Link to post
Share on other sites

Sickboy, it sickens me the countless self promotion opportunities that come to light on these forums! ** runs off to check latest sixupdater updates **

:) :p

Share this post


Link to post
Share on other sites
Sickboy, it sickens me the countless self promotion opportunities that come to light on these forums! ** runs off to check latest sixupdater updates **

:) :p

Haha, someone has to inform them infidels! ;)

Share this post


Link to post
Share on other sites

I've been suggesting and hoping for automatic mod enabling for both MP and SP for a while now.

One problem I think with PwS is that it doesn't list all servers. Even though we can add them manually by IP, it still doesn't show the server name or running mods, whereas using the in-game server browser I can find the server by name.

The in-game browser also shows which mods are running, whereas PwS requires the server to provide a yml file listing the required mods. Imagine a server where the mods might be changed throughout the evening and you can see that PwS needs to be able to get this information the same way as the in-game browser, so that players can restart and have the currently running mods enabled/downloaded.

I see no reason why the game should have to always restart after downloading/installing new mods, it just needs to not load the engine until a mission/server is selected. It shouldn't necessarily unload the engine when returning to the mission/server screen either because the next mission/server selected might use the same mods, only if the mods are different would it need to unload/reload the engine but that could be done in the background, leaving the GUI showing.

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  

×