The Ur-Quan Masters Home Page Welcome, Guest. Please login or register.
Did you miss your activation email?
May 23, 2022, 04:21:24 am
Home Help Search Login Register
News: Paul & Fred have reached a settlement with Stardock!

+  The Ur-Quan Masters Discussion Forum
|-+  The Ur-Quan Masters Re-Release
| |-+  General UQM Discussion (Moderator: Death 999)
| | |-+  Questions about modifying the UQM data
« previous next »
Pages: [1] Print
Author Topic: Questions about modifying the UQM data  (Read 2145 times)
Julie.chan
*Many bubbles*
***
Offline Offline

Posts: 130


Sharing is good.


View Profile WWW
Questions about modifying the UQM data
« 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.
« Last Edit: January 09, 2015, 01:30:11 pm by onpon666 » Logged

Krulle
Enlightened
*****
Offline Offline

Gender: Male
Posts: 1110


*Hurghi*! Krulle is *spitting* again!


View Profile
Re: Questions about modifying the UQM data
« Reply #1 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, and for one example of their changes, see here).

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.
« Last Edit: January 08, 2015, 10:44:17 pm by Krulle » Logged
Julie.chan
*Many bubbles*
***
Offline Offline

Posts: 130


Sharing is good.


View Profile WWW
Re: Questions about modifying the UQM data
« Reply #2 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, and for one example of their changes, see here).

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 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, the data is also not libre, for the same reason that it's not open source.
Logged

Julie.chan
*Many bubbles*
***
Offline Offline

Posts: 130


Sharing is good.


View Profile WWW
Re: Questions about modifying the UQM data
« Reply #3 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?
Logged

oldlaptop
*Smell* controller
****
Offline Offline

Posts: 337



View Profile
Re: Questions about modifying the UQM data
« Reply #4 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).
Logged

Play Supermelee online in #uqm-arena!
Netmelee Improvement Mod
Julie.chan
*Many bubbles*
***
Offline Offline

Posts: 130


Sharing is good.


View Profile WWW
Re: Questions about modifying the UQM data
« Reply #5 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.)
Logged

Death 999
Global Moderator
Enlightened
*****
Offline Offline

Gender: Male
Posts: 3866


We did. You did. Yes we can. No.


View Profile
Re: Questions about modifying the UQM data
« Reply #6 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.
Logged
Julie.chan
*Many bubbles*
***
Offline Offline

Posts: 130


Sharing is good.


View Profile WWW
Re: Questions about modifying the UQM data
« Reply #7 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.
Logged

Cedric6014
Enlightened
*****
Offline Offline

Gender: Male
Posts: 701



View Profile
Re: Questions about modifying the UQM data
« Reply #8 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.
Logged

Play online melee here! http://irc.uqm.stack.nl/
Death 999
Global Moderator
Enlightened
*****
Offline Offline

Gender: Male
Posts: 3866


We did. You did. Yes we can. No.


View Profile
Re: Questions about modifying the UQM data
« Reply #9 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.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!