• Welcome to SC4 Devotion Forum Archives.

Content System - Or - How to get new buildings into game!

Started by croxis, January 29, 2010, 08:28:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

croxis

Posted as I want feedback from coders and content makers. This post will serve as the specification.

Citymania will have a package system. What is a package system you window and mac users might ask? Well let me tell you!

In most linux distributions if I wanted to install a program, like firefox, I open up my operating system package manager, search for firefox, and not only will it install firefox, but it will also download any dependencies needed and  it will keep it updated for me. This works by using central public program repositories. Our intention is for Citymania to have something very similar.

The CityMania package system should require the following:

  • Dependencies - the package system should disable a package if dependencies are missing and, if possible, auto download dependencies.
  • Versioning - The system should be version aware, and allow people to use older, or newer versions
  • Compression - Zip and 7z (lzma) compression should be used. Zip as default. 7z for large packages.
  • Virtual file system - Needs a way where models can use textures from other packages allowing for common texture packs.
  • Single file - the package should be a single file that is easy for the user to install.
Panda3D provides Multifiles and a virtual file system which meet the third, fourth, and fifth criteria. However criteria one and two are unmet. The server, which currently does not use any panda code, will need access to these files as well. This means that the package file is an ordinary zip file that contains package information, any simulator code, and the art multifile for the panda client only, OR everything is contained in the multifile and some panda code will need to be included in the server, OR the server and client are combined into one program and a dedicated server mode can be toggled with a simple shortcut or command line switch.