Suggestion for configuration of OXP's
Posted: Thu Aug 05, 2010 12:26 am
Hi All:
I used to play Elite way back in the day (on my Amstrad 8086 computer), then played privateer maybe 10-15 years ago (on my next computer, a 486). Many years and computers have passed under the bridge since then, so it was with some enthusiasm that I found, downloaded and played oolite. I LOVE it!!!! However, adding OXP's is a pain, particularly given there are so many - which to choose?
But, I have a (potential) solution. Those of you who use debian-based Linux variants will be familiar with the .deb package format; I propose something similar for the oxp packages. What this means is that every package that will be registered under this system would need a package file, that would contain information (in a particular format), with the following information (at least):
1. Where the OXP download lives;
2. Category (ships, missions, eye-candy) ???);
3. Dependencies (what other packages it requires, including versions);
3a. Conflicts (What other packages need to be de-installed for it to work)
4. Screenshots (so you can advertise your good work), and provide incentive for players to install;
5. Description;
6. License;
7. Version
8. Oolite version required (>=1.73, for example)
9. Recommended-for (who should install this - experience level, what you want out of the game, etc)
...And possibly other information. Of course, this packaging need not necessarily be done by the OXP creator, it can be done by someone else. It also means that there will need to be a central repository of all this information (BOOO!!! work for someone), and a utility program to organise it all (BOOO!!! work for someone). Ideally, there should also be a utility for package maintainers to create these packages easily (not OXP creators necessarily, and BOOO!!! work for someone)...
This facility would greatly enhance the gameplay, particularly for new-ish users. It would also allow meta-packages to be created of particular OXP combinations so you can share your own experience in the Ooniverse. For example, you could create a meta-package containing several missions, and a set of ships. This would just depend on those other packages, meaning you don't have to create an OXP specifically for it, but installing the meta-package installs the required other packages. The bonus with this is that the meta-packages will not have to keep updated copies of the dependencies - they are updated whenever the dependencies update. An example where this would be useful is in the RealisticShipyards OXP - it could conceivably be a meta package, that would just pull in all the ship dependencies. There would also be no need to manually install the extra missions it requires, as these would also be pulled in.
The configuration utility would have to create a couple of extra directories in the Oolite application folder, but that's no big deal; maybe hold a cache of downloaded files, as well as a list of the packages to get, and a place to get the packages. I'd suggest at first that these could all be text files - no need for digital signing at least initially IMO. Possibly also there could be a set of configurations cached, so that different game states can be saved and recovered later (different package sets can be saved for retrieval later).
I am sure you've heard it all before, and indeed something like this might already exist. If it does, it's not very well advertised to the casual first-time user, and if it doesn't, well it should in my opinion.
There is light on the horizon, though - if it doesn't exist I will volunteer to do all the work around the package format, writing the two utilities (cross-platform, of course!!), and hosting the repository of metadata on my own commercially-hosted web site (I have a 25GB site that I do not presently use much of, so will provide 15GB for free). There may even be room there for a mirror of most if not all of the currently-available OXP's.
BUT, and it's a big BUT, I would need to know that this would be (a) welcome, and (b) used. I don't really want to waste my own time and that of the package maintainers who will be creating the OXP containers.
Any other ideas, suggestions, flames, cold water to pour on the idea, others?? I know some or most of this information is already in the wiki, but it doesn't necessarily make it easy to automatically install OXP's, especially if there are conflicts involved. It would also make it relatively easy for a package creator to simply pull the required information off the wiki and put it in a package file (using the proposed package maintainer utility).
As I said, I am willing to put in the work, and even host the repository, but I'd like for this to be actually wanted before I could commit to that.
So, I'd initially like some feedback, firstly whether this is a good idea, secondly whether it's worth me putting a fair bit of time into it, and thirdly of course other suggestions for improvements.
Cheers,
mvdw (new user, but enthusiastic potential contributor).
I used to play Elite way back in the day (on my Amstrad 8086 computer), then played privateer maybe 10-15 years ago (on my next computer, a 486). Many years and computers have passed under the bridge since then, so it was with some enthusiasm that I found, downloaded and played oolite. I LOVE it!!!! However, adding OXP's is a pain, particularly given there are so many - which to choose?
But, I have a (potential) solution. Those of you who use debian-based Linux variants will be familiar with the .deb package format; I propose something similar for the oxp packages. What this means is that every package that will be registered under this system would need a package file, that would contain information (in a particular format), with the following information (at least):
1. Where the OXP download lives;
2. Category (ships, missions, eye-candy) ???);
3. Dependencies (what other packages it requires, including versions);
3a. Conflicts (What other packages need to be de-installed for it to work)
4. Screenshots (so you can advertise your good work), and provide incentive for players to install;
5. Description;
6. License;
7. Version
8. Oolite version required (>=1.73, for example)
9. Recommended-for (who should install this - experience level, what you want out of the game, etc)
...And possibly other information. Of course, this packaging need not necessarily be done by the OXP creator, it can be done by someone else. It also means that there will need to be a central repository of all this information (BOOO!!! work for someone), and a utility program to organise it all (BOOO!!! work for someone). Ideally, there should also be a utility for package maintainers to create these packages easily (not OXP creators necessarily, and BOOO!!! work for someone)...
This facility would greatly enhance the gameplay, particularly for new-ish users. It would also allow meta-packages to be created of particular OXP combinations so you can share your own experience in the Ooniverse. For example, you could create a meta-package containing several missions, and a set of ships. This would just depend on those other packages, meaning you don't have to create an OXP specifically for it, but installing the meta-package installs the required other packages. The bonus with this is that the meta-packages will not have to keep updated copies of the dependencies - they are updated whenever the dependencies update. An example where this would be useful is in the RealisticShipyards OXP - it could conceivably be a meta package, that would just pull in all the ship dependencies. There would also be no need to manually install the extra missions it requires, as these would also be pulled in.
The configuration utility would have to create a couple of extra directories in the Oolite application folder, but that's no big deal; maybe hold a cache of downloaded files, as well as a list of the packages to get, and a place to get the packages. I'd suggest at first that these could all be text files - no need for digital signing at least initially IMO. Possibly also there could be a set of configurations cached, so that different game states can be saved and recovered later (different package sets can be saved for retrieval later).
I am sure you've heard it all before, and indeed something like this might already exist. If it does, it's not very well advertised to the casual first-time user, and if it doesn't, well it should in my opinion.
There is light on the horizon, though - if it doesn't exist I will volunteer to do all the work around the package format, writing the two utilities (cross-platform, of course!!), and hosting the repository of metadata on my own commercially-hosted web site (I have a 25GB site that I do not presently use much of, so will provide 15GB for free). There may even be room there for a mirror of most if not all of the currently-available OXP's.
BUT, and it's a big BUT, I would need to know that this would be (a) welcome, and (b) used. I don't really want to waste my own time and that of the package maintainers who will be creating the OXP containers.
Any other ideas, suggestions, flames, cold water to pour on the idea, others?? I know some or most of this information is already in the wiki, but it doesn't necessarily make it easy to automatically install OXP's, especially if there are conflicts involved. It would also make it relatively easy for a package creator to simply pull the required information off the wiki and put it in a package file (using the proposed package maintainer utility).
As I said, I am willing to put in the work, and even host the repository, but I'd like for this to be actually wanted before I could commit to that.
So, I'd initially like some feedback, firstly whether this is a good idea, secondly whether it's worth me putting a fair bit of time into it, and thirdly of course other suggestions for improvements.
Cheers,
mvdw (new user, but enthusiastic potential contributor).