pumpitupdev / pumptools

A collection of tools to run Pump It Up games.
The Unlicense
22 stars 7 forks source link

Research: Network streaming of game (assets) #7

Open voidderef opened 3 years ago

voidderef commented 3 years ago

In GitLab by @icex2 on May 4, 2020, 22:05

Context Initial idea proposed by a very special shark, instead of keeping all data available on a local persistent disk, keep it stored on a remote server. When the game wants to read a file, a backend takes care of fetching files from the remote server, caching and evicting files from cache.

Why? Usually the number of files the game needs at a given moment is a rather small subset compared to the total size of the game asset folder. This feature would eliminate the requirement to download any game data prior running the game. Multiple strategies for data retrival are possible here:

Actions I am quite sure this is not the first time such an idea pops up in the context of game/application asset distribution. Therefore, ask good old Google if there is anything out there that fits the above requirements. Figure out advantages and drawbacks and write them down in this task.

If an existing solution can be utilized, create a proof of concept prototype.

If no existing solution exists or fits well enough, consider a custom solution. Considering this is on a file/file system level, I don't think this needs to be integrated into pumptools and can actually work as it's own standalone application/project.

Consider a design that might also work with other applications/games with a similar environment, e.g. bemani games.

Remark: Ultimately, the tool would bootstrap the entire game in a launcher style fashion, i.e. even download the game executable, libraries and pumptools using a configuration file describing what the launcher is supposed to run.

How to implement this? Well, that's the thing to do: Come up with potential options including their benefits and drawbacks.

/minddump

voidderef commented 3 years ago

In GitLab by @icex2 on May 4, 2020, 22:06

changed the description

voidderef commented 3 years ago

In GitLab by @icex2 on May 4, 2020, 22:16

changed the description

voidderef commented 3 years ago

In GitLab by @icex2 on May 4, 2020, 22:41

Some ideas for potential solutions proposed by people in a chat:

rsync files prior game launch

Pro:

Con:

POC AVS remotefs for bemanigames

Pro:

Con: