Outerra forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Download Outerra Tech Demo. Unofficial Outerra Discord server, MicroProse Discord server for OWS.

Author Topic: Shared package space.  (Read 5925 times)

mori

  • Member
  • **
  • Posts: 63
  • newbie
Shared package space.
« on: July 28, 2013, 07:02:04 am »

I dont know how to say better, but my logic:

Imagine i have made 1000 different buildings, say 100 packages, 10 buildings each,
and they all have same texture here and there. But instead of actually using one texture in memory,
they use many copyes of that texture because of package architecture.

What i propose is a use of directory package structure file.
Say i have morikubo directory.
There are all packages marked as morikubo.
There is a txt(xml) file containing all info about all packages that are in that directory,
despite the fact that packages are not in separate folders, but are scattered across

textures
models
scripts
thumbnails
etc

folders,
and info about which file refers to which package is stored in that file.

This way we can reuse as much content as we want. I see some minor problems like
file names, and overwrites, but i've seen same approach used for example in
Nexus mod manager. It plainly overwrites files when you instal new mod for a game,
but stores info about what changes are made, and automatically backups files that
were changed, thus allowing to revert non destructively any time you want.

Logged

cameni

  • Brano Kemen
  • Outerra Administrator
  • Hero Member
  • *****
  • Posts: 6721
  • No sense of urgency.
    • outerra.com
Re: Shared package space.
« Reply #1 on: July 28, 2013, 08:31:22 am »

You can have multiple objects in a single package already. Packages were designed to hold multiple objects that share geometry, textures and other assets. No sharing across different packages is done, and it won't be likely supported - it usually creates a big dependency mess, and would also require a dynamic rendering optimization for the renderer, which is now done during the import phase for the package content.

Normally you should make a scene in a 3D modeler that holds all the objects for given package, and import it together. Import configuration is preserved in the impcfg file so reimporting should be easy, although there may be issues when the objects are added/removed.

Objects in package are normally imported flat in the package directory, but you can also have subdirectories in the package folder, containing objdef file and any modified textures, scripts etc. These are used mainly for skins - objdef in a subfolder looks up the names in the subfolder first, if not found it looks into the package directory.
It can be also used to structure objects, but the rule is - the pkg file that contains the geometry is just one for the whole package.
Logged

mori

  • Member
  • **
  • Posts: 63
  • newbie
Re: Shared package space.
« Reply #2 on: July 28, 2013, 09:24:02 am »

Yes, i forgot to mention why i though about it in first place, i just imagined people downloading
100-200 megs every time package is updated. I don't think it's a good practice.

But as follows from what you say, i can for example leave textures as different zip file, to drop into package folder,
then user import package...
So it is possible to update files...
Maybe something like svn?
That triggers reimport every time a package is updated, and allows to download only separate update (say
package is 300 megs, and you download a 15 megs update, then on launch OT reimports it).

Logged