HeroicGamesLauncher icon indicating copy to clipboard operation
HeroicGamesLauncher copied to clipboard

Add a Queue system for download and updates.

Open flavioislima opened this issue 4 years ago • 24 comments

Is your feature request related to a problem? Please describe. Today Heroic uses parallel downloads what can take a lot of resources from the machine and also bug the installation of games that might show as not installed.

Describe the solution you'd like A queue system implemented on the Global State. If a game is installing and the user asks to install another one, the last should go to the queue. After the installation finishes, on the ComponentDidUpdate function a helper function could check if any games are installing, if not, checks the queue and starts to install the new one if have some.

flavioislima avatar Jun 16 '21 19:06 flavioislima

var queue = []

// when the user requests to install a game
queue.append(app_name)
if (queue[0] === undefined) return;
Game.get(queue[0]).install() // when completes, repeat (recursion)

This helps hopefully? Pseudocode, needs to be refined.

ghost avatar Jul 25 '21 22:07 ghost

has there been any progress on this? currently i have to wait till a game finishes downloading to download the next one.

0xf0xx0 avatar Jan 21 '22 21:01 0xf0xx0

Summary to date of features wanted for this issue?

  • Queue downloads + updates
  • Ability to modify order of queue
  • Throttle/limit download rate
  • Parallel downloads

philipwilk avatar Apr 23 '22 17:04 philipwilk

I don't think parallel downloads should be a thing

ghost avatar Apr 23 '22 20:04 ghost

I don't think parallel downloads should be a thing

Tbf some people have ridiculously fast internet so might want it, but it's kinda unecessary because if it's that fast then it'll be fine downloading everything synchronously.

philipwilk avatar Apr 23 '22 23:04 philipwilk

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

0xf0xx0 avatar Apr 24 '22 00:04 0xf0xx0

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

I disagree. They should be opt-in because synchronously at least you can play 1 game while the other downloads

ghost avatar Apr 24 '22 19:04 ghost

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

I disagree. They should be opt-in because synchronously at least you can play 1 game while the other downloads

Oh for sure, it does need to be opt-in. But parallel downloads would bring a decrease in time spent waiting, especially if you're downloading a larger game with smaller games, as the smaller games will finish while the larger game is doing its thing, instead of the smaller games delaying the larger game or vice versa.

0xf0xx0 avatar Apr 24 '22 20:04 0xf0xx0

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

I disagree. They should be opt-in because synchronously at least you can play 1 game while the other downloads

Oh for sure, it does need to be opt-in. But parallel downloads would bring a decrease in time spent waiting, especially if you're downloading a larger game with smaller games, as the smaller games will finish while the larger game is doing its thing, instead of the smaller games delaying the larger game or vice versa.

You could just queue the small games first and the large one last and it solves that issue.

philipwilk avatar Apr 24 '22 22:04 philipwilk

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

I disagree. They should be opt-in because synchronously at least you can play 1 game while the other downloads

Oh for sure, it does need to be opt-in. But parallel downloads would bring a decrease in time spent waiting, especially if you're downloading a larger game with smaller games, as the smaller games will finish while the larger game is doing its thing, instead of the smaller games delaying the larger game or vice versa.

You could just queue the small games first and the large one last and it solves that issue.

That's what I touched upon in my reply. In a synchronous queue, the small games would delay the large game, instead of letting it download in the background at the same time.

0xf0xx0 avatar Apr 24 '22 23:04 0xf0xx0

Either way, parallel downloads does make it a bit faster, whether you have slow or fast internet.

I disagree. They should be opt-in because synchronously at least you can play 1 game while the other downloads

Oh for sure, it does need to be opt-in. But parallel downloads would bring a decrease in time spent waiting, especially if you're downloading a larger game with smaller games, as the smaller games will finish while the larger game is doing its thing, instead of the smaller games delaying the larger game or vice versa.

You could just queue the small games first and the large one last and it solves that issue.

That's what I touched upon in my reply. In a synchronous queue, the small games would delay the large game, instead of letting it download in the background at the same time.

The small games would finish downloading faster because they have the whole bandwidth 😆 so they'd be done faster and wouldn't do that 😅

philipwilk avatar Apr 25 '22 08:04 philipwilk

Hey guys, you know that Legendary doesn't support parallel downloads right now, right? So it's not possible to have this in Heroic. as another question, do you guys know any game launcher that supports that? Out of my mind: neither Steam, Uplay, EGL or GOG galaxy has it. And that's for a reason: parallel downloads has drawbacks for the system since its pretty intensive on some cases.

About the Queue. We can go for a simple Queue at first, that's means:

  • A Page/place to see the queue
  • Ability to add or remove an item from it.

In the future we can improve that to support:

  • Changing the order of queued items
  • Change the order of items even for started downloads.

⚔️

flavioislima avatar Apr 25 '22 09:04 flavioislima

Hey guys, you know that Legendary doesn't support parallel downloads right now, right? So it's not possible to have this in Heroic. as another question, do you guys know any game launcher that supports that? Out of my mind: neither Steam, Uplay, EGL or GOG galaxy has it. And that's for a reason: parallel downloads has drawbacks for the system since its pretty intensive on some cases.

About the Queue. We can go for a simple Queue at first, that's means:

  • A Page/place to see the queue
  • Ability to add or remove an item from it.

In the future we can improve that to support:

  • Changing the order of queued items
  • Change the order of items even for started downloads.

⚔️

You can launch multiple legendary processes tho.

ghost avatar Apr 25 '22 10:04 ghost

@dragonDScript that doesn't solve the issue. Legendary will override the installed.json file and erase the games that were installed first.

flavioislima avatar Apr 25 '22 11:04 flavioislima

Probably the same with stuff like steam that's why they dont do it lol, or your package manager.

philipwilk avatar Apr 25 '22 12:04 philipwilk

Chrome supports parallel downloads. And they're fine. That's why people demand this people.

ghost avatar Apr 25 '22 14:04 ghost

I agree that parallel downloads can be tricky and maybe too complex for the actual benefit to make it a priority for this feature. A queue solves the main problem of trying to download multiple things without waiting for one to finish, parallelization is some optimization for a specific case that could be treated as a separated feature.

I'm not sure how many users really NEED it (like I imagine people requesting it because they want it, but not as a need), I'd say that parallelization is something that shouldn't block the development of a queue system, maybe something that can be added in the future if found possible.

EDIT: I don't think chrome is a good example, it works concentually different, it just start different downloads that write to its own file and that's it, there's nothing else happening

arielj avatar Apr 25 '22 14:04 arielj

Chrome supports parallel downloads. And they're fine. That's why people demand this people.

chrome parallel downloads are completely different because it isn't indexing versions in one file

philipwilk avatar Apr 25 '22 21:04 philipwilk

Chrome supports parallel downloads. And they're fine. That's why people demand this people.

chrome parallel downloads are completely different because it isn't indexing versions in one file

If this is the main reason then lock files exist for a reason

ghost avatar Apr 26 '22 09:04 ghost

any updates on this?

Etaash-mathamsetty avatar Jul 14 '22 22:07 Etaash-mathamsetty

I was about to post a feature request on this, but noticed that this existed. This is a problem not to have a queue system for large downloads that take time. You don't want to lose several hours of download just because you were not around to "click install" for the next game.

ekianjo avatar Aug 13 '22 02:08 ekianjo

+1

QUASARFREAK avatar Aug 24 '22 14:08 QUASARFREAK

+1

oleghind avatar Aug 29 '22 17:08 oleghind

I found an interesting "bug", I was updating one game, and another game had an update available, so clicked update and both games started updating (at the same time), and finished successfully, and the UI showed both games updating at the same time (it was also displaying it correctly as far as I could tell) So maybe this feature shouldn't be too difficult to implement?

Etaash-mathamsetty avatar Aug 30 '22 21:08 Etaash-mathamsetty

Can we close this? :D

arielj avatar Nov 02 '22 04:11 arielj

Yes, closing...

flavioislima avatar Nov 02 '22 07:11 flavioislima