The Ur-Quan Masters Discussion Forum

The Ur-Quan Masters Re-Release => General UQM Discussion => Topic started by: Julie.chan on January 07, 2015, 01:55:44 am



Title: Questions about modifying the UQM data
Post by: Julie.chan on January 07, 2015, 01:55:44 am
I'm thinking of possibly undertaking a project to replace UQM's data with something else.[1] I have some questions, though:

1. I'm pretty sure the data and software are pretty closely intertwined, but just how much? In particular, what can and cannot be changed? I assume it's not possible to change what dialog options there are, what items exist and where, what races exist and where, what events occur, or what the configuration of the stars is, and I know it's not possible to change the characteristics of ships other than their images and sounds. Is there anything else that can't be changed? Or if very little can be changed, what can?

2. There are two binary formats found throughout UQM's data: one ending in ".ct", and one ending in ".ani". It looks like the tools for these are under tools/ani and tools/ctconv in the repo, but I don't see any documentation on what these actually are or how to use the tools. Could someone explain, or link to the documentation if I just missed it?

3. I see several files in base/planets with names ending in ".xlt". What are these, and how can I view them, modify them, and create new ones? I don't see any tools for these in the repo.

4. in base/nav, I see one set of images called "orbview". What is their purpose? Some kind of lighting effect, I assume? Are there any other special images like this, or images that are special in some other particular way?

5. Are the commands for cutscene scripts documented somewhere? If so, where?

6. What exactly does gamestrings.txt define? Looking at the other files, it seems like "#(foo)" would be a comment, so it looks like this file is a series of comments followed by exactly what they say in plain text form. I get the impression that this is just a place to translate various snippets of text, and that UQM just pays attention to the order of the strings. Is this analysis correct? Also, what's the purpose of the ones that seem to be blank, between an "exit menu" and "scan" (lines 2155-2171)?


[1] I'm thinking of erasing all copyrightable works (images, sounds, text), within UQM's data, replacing them with vague descriptions of what kinds of things they're supposed to be/say within the context of the engine, and giving this to someone who has never seen Star Control before so that they can create libre culture replacements based on my descriptions.


Title: Re: Questions about modifying the UQM data
Post by: Krulle on January 08, 2015, 10:30:51 pm
UQM is under a non-commercial license.
As long as it's distributed for free, you can amend whatever you want.
( http://wiki.uqm.stack.nl/The_Ur-Quan_Masters_Project_FAQ#Under_what_license_is_the_game_released.3F )

The text is rather easy to change.
The location of stuff is changeable too, there've been projects trying to create a sequel within the same map/star systems. (see e.g. project 6014 (http://forum.uqm.stack.nl/index.php?topic=4409.0), and for one example of their changes, see here (http://forum.uqm.stack.nl/index.php?topic=5774.0)).

And indeed, SC2 had no real separation between data and the program itself, but since everything is OS now, you can tweak the data directly before compiling.


Title: Re: Questions about modifying the UQM data
Post by: Julie.chan on January 08, 2015, 11:02:16 pm
UQM is under a non-commercial license.
As long as it's distributed for free, you can amend whatever you want.
( http://wiki.uqm.stack.nl/The_Ur-Quan_Masters_Project_FAQ#Under_what_license_is_the_game_released.3F )

The UQM data is under a non-commercial license. I know that. There are several reasons I would like to come up with a libre replacement for it, though:

1. This theoretical "LibreQuan" could be packaged in Debian's main repository. Being in the main repository means it would likely be better maintained, and it would eventually make it downstream to Trisquel, the system I use. Installing a package is more convenient than compiling the source code myself.

2. I strongly prefer libre culture. It's not a strict requirement the way libre software is, but it's definitely preferred.

3. This project would produce a large number of useful art assets that could be re-used in other libre games.

4. It could be interesting to see what direction other writers take with the general structure of UQM.

The location of stuff is changeable too, there've been projects trying to create a sequel within the same map/star systems. (see e.g. project 6014 (http://forum.uqm.stack.nl/index.php?topic=4409.0), and for one example of their changes, see here (http://forum.uqm.stack.nl/index.php?topic=5774.0)).

I'm pretty sure that the starmap data is in the UQM (C) source code, isn't it? P6014 isn't just a data mod; it also changes the UQM engine quite extensively.

I'm not planning to edit that. What I'm thinking of doing (or rather, enabling) is developing replacement data files that are compatible with the UQM engine. It would be a lot like the Freedoom project, in that sense.

And indeed, SC2 had no real separation between data and the program itself, but since everything is OS now, you can tweak the data directly before compiling.

The data is not open source. An important part of the Open Source Definition (http://opensource.org/osd) is allowing non-commercial use. CC BY-NC-SA doesn't do that. Of course, I only care if it's libre (free as in freedom), but as you can see in the Free Software Definition (https://gnu.org/philosophy/free-sw.html), the data is also not libre, for the same reason that it's not open source.


Title: Re: Questions about modifying the UQM data
Post by: Julie.chan on January 09, 2015, 01:28:53 pm
I actually have one more question:

I think UQM uses precise collision detection, so if the images are replaced with slightly different images, collisions will be slightly different.

So, if a netgame is attempted between two copies of UQM that use a different image for a ship, for example, does the host take control of the collision detection, or does this just result in an error?


Title: Re: Questions about modifying the UQM data
Post by: oldlaptop on January 13, 2015, 11:06:46 pm
I actually have one more question:

I think UQM uses precise collision detection, so if the images are replaced with slightly different images, collisions will be slightly different.

So, if a netgame is attempted between two copies of UQM that use a different image for a ship, for example, does the host take control of the collision detection, or does this just result in an error?

It will pretend to work fine, until the two sides can't agree on a collision (at which time the game will be aborted with an OOS error).


Title: Re: Questions about modifying the UQM data
Post by: Julie.chan on February 24, 2015, 04:48:10 am
So, does anyone know about the others?

Are the various plain text files more like lists, or more like associative arrays using the text in the "#()"s as keys? (I'm tending to think it's the latter, but I want to be sure.)


Title: Re: Questions about modifying the UQM data
Post by: Death 999 on February 24, 2015, 07:58:09 pm
The shape of the dialog trees and their consequences are hard-coded in C.

A few years back I worked on a way to turn that into simple scripts that could be integrated with dialog. I hit a big roadblock, stopped, then forgot most of what I knew about the existing code and it's kind of languished since then.


Title: Re: Questions about modifying the UQM data
Post by: Julie.chan on May 23, 2015, 01:39:17 am
I can't wrap my head around this... looking at the "tools" directory of the repo, I found "unani", but this tool just claims that all of the ".ani" files in the UQM data are invalid, and that some .ct files are missing from a directory called "lbm", which doesn't exist in uqm-0.7.0-content.uqm.


Title: Re: Questions about modifying the UQM data
Post by: Cedric6014 on May 26, 2015, 12:32:05 pm
Hi folks!

Long time no see. Changing data for the uqm map is a piece of cake. If I can do it, ANYONE can do it. You can move stars around, change location of artifacts etc etc. The engine wasn't changed one jot.  The coordinates of all stars are just in there as numbers. I think I added 500 to everything to get them all to move up and to the right. The funnest thing was making new rainbow worlds (woops, spoiler).

Similarly, chaining text and conversations trees was relatively straightforward, but a also a bit brain hurty hurty and laborious.

Just don't ask me to remember how I did all that.


Title: Re: Questions about modifying the UQM data
Post by: Death 999 on June 01, 2015, 05:09:31 pm
The conversation tree shapes are definitely coded in C. However, it's the kind of code that a non-coder can just look at and say, 'well, if that's how you made THAT, I can copy part of this and change this constant and cross my fingers' and have a non-vanishing chance of success.