[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Splitting large game data packages?

I've been considering splitting up openarena-data (currently 314MB source,
345MB binary) into multiple source packages. openarena would still have to
depend on all of them (you need the complete set for network compatibility),
but they'd be easier to fit on CDs, and I wouldn't have to upload so much data
for each version. Does that sound good to the ftpmasters?

I propose to split it up like this:

     81M openarena-data-0.8.5 (pak0 + mp-pak0 + pak6-patch085)
         or if preferred it could be split further:
             44M -data-0.8.1 (pak0 + mp-pak0)
             37M -data-0.8.5 (pak6-patch085)

     67M openarena-data (pak1-maps + pak5-TA + pak6-misc)
         or if preferred it could be split further:
             39M -maps (pak1-maps)
             28M -data (pak5-TA + pak6-misc)

    101M openarena-players (pak2-players + pak2-players-mature)
         or if preferred it could be split further:
             74M -players
             27M -players-mature

     95M openarena-textures (pak4-textures)

and in future,

    ???M openarena-data-0.8.6 etc. (extra files for future versions)

    openarena Depends: x | openarena-data (<< first split version) for each x
    openarena-server also Depends: x | openarena-data (<< ...) for each x
    x Replaces: openarena-data (<< first split version) for each x
    openarena-data Breaks: openarena (<< version depending on split packages)


Background on why it's split like that:

The binary package consists of large PK3 (i.e. zip) files, currently looking
like this:

  total 335M
  *38M pak0.pk3                  74M pak2-players.pk3    25M pak6-misc.pk3
   39M pak1-maps.pk3             95M pak4-textures.pk3  *37M pak6-patch085.pk3
   27M pak2-players-mature.pk3  2.9M pak5-TA.pk3

  total 5.8M
 *5.8M mp-pak0.pk3

The files marked * are not the same as distributed by upstream (bytecode
produced by a non-Free compiler has been removed and replaced with stub files
which cause equivalent native code to be loaded), so they're most likely to
need uploads.

Due to the way Quake III-based games achieve network compatibility, all files
except pak6-patch085.pk3 were present with the same contents in OpenArena
0.8.1, and Openarena 0.8.6 is likely to consist of a pak7-patch086.pk3 (or
something) which is appended to the search order while leaving the other
pk3 files identical. Yes, this means openarena/0.8.6 would have a Depends on
openarena-data-0.8.1, openarena-data-0.8.5 *and* openarena-data-0.8.6; that's
how the Quake III engine works.


Reply to: