Ship Type Organization

Talk among developers, and propose and discuss general development planning/tackling/etc... feature in this forum.
Deus Siddis
Elite
Elite
Posts: 1363
Joined: Sat Aug 04, 2007 3:42 pm

Re: Ship Type Organization

Post by Deus Siddis »

What is the maximum size Debian will allow?
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: Ship Type Organization

Post by klauss »

Well, a reduced content set could be put together.
$ du --max-depth=1 --exclude=.svn -h
377M ./textures
8.9M ./sounds
93M ./sprites
43M ./animations
4.2M ./documentation
480K ./.vegastrike
640K ./sectors
4.6M ./modules
1.3M ./mission
31M ./communications
25M ./movies
9.4M ./cockpits
158M ./music
468K ./programs
545M ./units
3.3M ./universe
112K ./history
48K ./cgi-accountserver
272K ./ai
780K ./techniques
5.0M ./meshes
740K ./bases
1.3G .
So... the key elements:
377M ./textures
8.9M ./sounds
93M ./sprites
43M ./animations
31M ./communications
158M ./music
545M ./units
1.3G .
Now... communications can be made into either an optional package, or it can be butchered to the bare minimum.

Music too... either a bare minimum or split into an optional package. In fact, we can upload a tar of music files to sourceforge, and the debian package could be a virtual package that downloads the tar from sourceforge.

Animations is a bit tricker, most of the animations are used ingame, but we could probably work something out to reduce its size. Decreasing FPS on some animations, for instance.

Sprites... I don't see how to reduce it. We'll have to get creative.

Textures, lets have a look inside:
33M ./sol
976K ./stars
1.3M ./weapons
200K ./mounts
199M ./planets
512K ./cockpits
125M ./backgrounds
2.2M ./upgrades
1.6M ./rings
1.1M ./logos
4.2M ./cargo
2.2M ./nav
377M .
Key stuff:
33M ./sol
199M ./planets
125M ./backgrounds
377M .
Now... lets zip those folders...
20M ./sol
102M ./planets
52M ./backgrounds
So... a neat trick: gzip textures. It really helps.

Same thing with the units folder, the bulk of it are textures (which can be gzipped). The units folder, though, has stuff that can be simply deleted: faction-customized textures:
claudiofreire@klauss:~/src/vegastrike/trunk/data/units/installations/Relay$ ls -l
total 18816
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 andolian_relay.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 highborn_relay.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 high_relayGLOW.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 high_relay.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 LIHW_relay.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 763384 Aug 3 18:18 relay.bfxm
-rw-r--r-- 1 claudiofreire claudiofreire 699192 Aug 3 18:18 relayGLOW.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 87536 Aug 3 18:18 relay-hud.png
-rw-r--r-- 1 claudiofreire claudiofreire 40 Aug 3 18:18 relay-hud.spr
-rw-r--r-- 1 claudiofreire claudiofreire 699192 Aug 3 18:18 relay.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 174904 Aug 3 18:18 relayPPL.jpg
-rw-r--r-- 1 claudiofreire claudiofreire 2796344 Aug 3 18:18 shmrn_relay.jpg
So, get rid of shmrn_relay, highborn_relay, andolian_relay, and LIHW_relay, and you got rid of A LOT of bytes. Rinse and repeat everywhere.

I'd hate to butcher the game like that, but if debian won't allow for big packages, it's an option.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
charlieg
Elite Mercenary
Elite Mercenary
Posts: 1329
Joined: Thu Mar 27, 2003 11:51 pm
Location: Manchester, UK
Contact:

Re: Ship Type Organization

Post by charlieg »

That seems like using an axe when a scalpel is required.

Sadly when developer power is at a premium, swinging the proverbial axe on occasion is inevitable.
Free Gamer - free software games compendium and commentary!
FreeGameDev forum - open source game development community
greenfreedom10
Hunter
Hunter
Posts: 67
Joined: Wed Sep 29, 2010 3:06 am
Location: Lost in an adventure

Re: Ship Type Organization

Post by greenfreedom10 »

Deus Siddis wrote:What is the maximum size Debian will allow?
I don't think Debian has a set maximum size policy. Probably 700MB is a hard limit because of Debian including CDs in releases.

The Nexuiz packages might represent a logical upper limit. There are 3 data files (this is Squeeze/Sid sizes):
- nexuiz-data (273MB)
- nexuiz-textures (521MB)
- nexuiz-music (87.4MB) - optional package

The -textures package was split out of the -data package because of oversize according to
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=557218

What would the dataset be at now if it was packaged?
$ du -sh --exclude .svn data
1.3G data

1.3G? Or does that not all go into a release?

I suggest an attempt to slim down the dataset size by removing or separating extra unnecessary files and compressing where possible. Then after releasing we can try getting the package back in Debian again, hopefully without making Debian-specific dataset changes.
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: Ship Type Organization

Post by klauss »

I believe there is a way to split vegastrike packages (debian or any other kind of package) that makes a lot of sense to users, while also helping keeping package size within reasonable limits:
  • vegastrike-engine: binaries - you know, mods use the same engine with different data
  • vegastrike-utcs-data-core: core game data for UTCS. Data that can't be missing, including basic textures.
  • vegastrike-utcs-data-extratextures: extra texture files, like faction-customized textures.
  • vegastrike-utcs-data-speech: speech soundfiles, they can be missing and it would be ok (no speech).
  • vegastrike-utcs-data-music: music files, they can be missing and it would be ok (no music).
It would make sense to users because not all users would install everything. Say I play without sound (I do, most of the time, I don't have speakers attached and sometimes I'm too lazy to plug the headphones). So why would I download music & speech, when it means hundreds of MB?

Same with extra textures. If my GPU/CPU can't handle faction-customized textures, why bother installing them?

Would that put per-package size back into debian-accepted limits?
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
breese
Bounty Hunter
Bounty Hunter
Posts: 152
Joined: Thu Sep 02, 2010 8:00 pm

Re: Ship Type Organization

Post by breese »

klauss wrote:It would make sense to users because not all users would install everything. Say I play without sound (I do, most of the time, I don't have speakers attached and sometimes I'm too lazy to plug the headphones). So why would I download music & speech, when it means hundreds of MB?
Would it make sense to have vssetup download the data packages from sourceforge (if requested)?
charlieg
Elite Mercenary
Elite Mercenary
Posts: 1329
Joined: Thu Mar 27, 2003 11:51 pm
Location: Manchester, UK
Contact:

Re: Ship Type Organization

Post by charlieg »

breese wrote:Would it make sense to have vssetup download the data packages from sourceforge (if requested)?
Yes it would, but here a level of indirection is required as the sf.net mirrors are subject to change.

You would need a file on the website that vssetup could check e.g.:
vegastrike.sourceforge.net/mirrors.txt
Free Gamer - free software games compendium and commentary!
FreeGameDev forum - open source game development community
klauss
Elite
Elite
Posts: 7243
Joined: Mon Apr 18, 2005 2:40 pm
Location: LS87, Buenos Aires, República Argentina

Re: Ship Type Organization

Post by klauss »

In linux it could be problematic, because regular users can't write to shared folders, so if vegastrike was installed as a package (in system-controlled paths), vssetup would have to request root priviledges to be able to download the music/sound/texture packs and... well... all that complication.

I believe it's best left as a packaging thing.
Oíd mortales, el grito sagrado...
Call me "Menes, lord of Cats"
Wing Commander Universe
greenfreedom10
Hunter
Hunter
Posts: 67
Joined: Wed Sep 29, 2010 3:06 am
Location: Lost in an adventure

Re: Ship Type Organization

Post by greenfreedom10 »

klauss wrote:I believe it's best left as a packaging thing.
I agree, especially for anything Linux.
greenfreedom10
Hunter
Hunter
Posts: 67
Joined: Wed Sep 29, 2010 3:06 am
Location: Lost in an adventure

Re: Ship Type Organization

Post by greenfreedom10 »

klauss wrote:
  • vegastrike-utcs-data-core: core game data for UTCS. Data that can't be missing, including basic textures.
Plus basic sounds?
klauss wrote:Would that put per-package size back into debian-accepted limits?
Sorry, but I don't know the dataset nor Debian policy well enough to answer that question. However, if the packages were reasonably sized I suppose that an interested maintainer could get it back in.

It would be great to see the dataset move toward the 4-data-package arrangement that you suggested, not only for Debian but packaging in general.
Boaal
Hunter
Hunter
Posts: 93
Joined: Sun May 06, 2007 6:43 pm

Re: Ship Type Organization

Post by Boaal »

Just a note for this idea - I really like it, think it makes things potentially incredibly interesting. Buut:

How would you go about categorising ship construction?
For instance - you have an Aera fighter body, will you be sticking Confed engines on it? I would assume that you wouldn't - doubtful the technologies are at all similar. But would you then be able to put Aera small cargo tug engine on it?
Are you assigning parts based on, for example, race/faction and size? Or just size? Or some other way?

Also, how will the AI handle this? Randomly generated ships? Stock ships?
The Twitching Pattern - http://www.last.fm/music/The+Twitching+Pattern
Have a listen.
Deus Siddis
Elite
Elite
Posts: 1363
Joined: Sat Aug 04, 2007 3:42 pm

Re: Ship Type Organization

Post by Deus Siddis »

All of those questions are answered by the existing game.

None of those issues would be new and a modular 3D model system wouldn't really affect them. The only differences are that you could see what parts you had installed visually and they could receive damage based on direct collisions, instead of a roll of the dice. So see for yourself how the game handles it-- buy an Ariston and try installing Rlaan equipment on it (I don't know myself, never tried it, but my guess is you can).

Making thrusters a purchasable upgrade separate from ship hulls would be a separate change. Though I do think it makes a lot of sense in it's own right and shouldn't upset anything.

And yes the current AI probably uses stock ships; to the best of my knowledge it isn't yet able to customize any ships that it uses with different sub system upgrades.
Post Reply