The Ur-Quan Masters Project FAQ

From Ultronomicon
Revision as of 19:22, 10 December 2006 by Svdb (talk | contribs) (→‎What about network play?: Refer to howto)
Jump to navigation Jump to search

This page is guaranteed to be spoiler free. It is safe for you to read this page even if you have not completed playing The Ur-Quan Masters. Links you follow from this page do not share this guarantee unless they also include this text.


This is the list of frequently asked questions (with answers) for the The Ur-Quan Masters project. For technical or gameplay questions, check our other FAQs.

Where did this project come from?

The project started when Chris Nelson joined Toys For Bob for an internship. He would work there on making the 3DO version Star Control II run on modern systems. When his internship was over, the sources were released to the public. The current development team then took over.

Why is this called "The Ur-Quan Masters" instead of "Star Control 2"?

Toys For Bob doesn't own the trademark on the name "Star Control", unfortunately. See Star Control Trademark for more information.

What are the goals for the The Ur-Quan Masters project?

The goals for the The Ur-Quan Masters project are:

  • to bring Star Control II to modern platforms, thereby making a lot of people happy
  • to adapt the code so that people can more easily make their own spin-offs, thereby making some more people happy
  • to make game translations easy, thereby making even more people happy

What operating systems does The Ur-Quan Masters run on?

Version 0.3 has been tested to run on Windows 98/ME/2000/XP, Linux, FreeBSD, OpenBSD and MacOS X. It probably works fine on BeOS too (0.2 did).

Support might be added one day for MacOS 8/9 too (but it will be much trickier due to a lack of native pre-emptive thread support, so it's more up in the air), and maybe to some other platforms where SDL is available.

Why is pre-emptive thread support necessary?

The code we inherited made extensive use of threads, and eliminating this has not been a priority given the target platforms. That said, the thread model in the code we got had nothing whatsoever to do with POSIX. Over the course of the project, the threading code has been refactored to fold most of the game logic into a single thread, but some tasks are intrinsically simpler with threads (notably keeping audio decoding synchronized and ensuring that window-manager events are dealt with in a timely manner). The main game logic uses the call stack to encode what mode the game is in, and where you will go when, say, popping out of a menu. Dethreading the main code so that it can be done as a single loop would thus involve rewriting all the control logic into explicit state-machine code, a major task that would involve heavy modification of the inherited code. Thus, lowering the thread count further has been pushed to "when there aren't way more important things to do".

What are the system requirements?

Minimum verified system requirements are:

  • Pentium 200 running a supported OS.
  • 64 MB of RAM (the game's footprint is around 30MB).
  • A reasonably recent video card. The oldest cards anyone has tested on are TNT2 and Voodoo 3. For OpenGL support, your video card needs to be able to handle 512x256 or 1024x512 textures. (The Voodoo 3 can not do this.)

If you're running the game with default quality levels (640x480 windowed), a Pentium 450 is the current minimum tested.

Important note: Not all features are added yet, and not all optimizations have been done yet. System requirements could go up or down in later releases.

For some suggestions on getting the most out of your system, see here.

Why are the system requirements so high? The original game ran fine on a 386.

There are a couple of reasons for this:

  • We are porting from the 3DO source code. The 3DO version had some fancier features than the PC version. See Version Comparison.
  • The original game code was optimised for speed. We aim for portability and extensibility.
  • Modern operating systems don't let applications do everything they want. This imposes overhead.
  • The operating system itself requires some system resources.
  • We are using a better compression algorithm for the audio (Ogg Vorbis), which requires more processing power, but drastically reduces your download size.

Under what license is the game released?

The code is released under the GNU General Public License. The content (the graphics, sounds, and music) will likely be released under something similar, but exactly which one hasn't been decided yet. For now, the license says "The content may be copied freely as part of a distribution of The Ur-Quan Masters."

What is the current status of the project?

The code is still officially in alpha status. This is because some features are still missing. It does not mean that the game is unstable; in fact, it is more stable than many commercially released games. As of version 0.4, almost all features from the PC and 3DO version are present. The largest missing feature is nameable save games. Other wanted features relate to the project goals of making the game more customisable and making translations easier.

When will it be released?

There is no exact release date for the "stable release" (version 1.0). From time to time we will release in-progress snapshots. We are all working on this in our spare time, so our progress will depend on how much time we can spare for the project. Naturally, having a few more talented coders volunteer to join our team would speed up things somewhat.

I want to help! What can I do?

The two biggest things you can do to help are to help us find bugs, and to nail the bugs we have. Due to the nature of the code (over 100,000 lines of not-terribly-well-documented, very tight, and very old code) program analysis skills are more useful than raw coding ability. (A strong familiarity with C is necessary to make head or tail of the game logic.) We keep a Bugzilla page with currently extant bugs.

If you want to help, read the contributing guide, join the sc2-devel mailing list, then come to our IRC channel #sc2 at irc.freenode.net to chat with the other developers. IRC is our primary communication method when doing actual coding.

Why are you porting the 3DO version instead of the PC one?

The source code to the PC version has been lost, even to Toys For Bob itself. This isn't so terrible, though, as the 3DO version has more features than the PC one, and no media has been lost. Also, the 3DO's screen resolution (320x240) matches the aspect ratios of modern systems better than the PC version's 320x200.

What are the differences between The Ur-Quan Masters and the PC and 3DO versions of Star Control II?

See the page Version Comparison.

What features are you going to include?

We intend to include the best features of the 3DO version and the PC version. When there is any doubt, we offer both. The user will be able to configure which aspects of the game will match which version. The Ur-Quan Masters will also include optional new music.

We try to be faithful to the originals; there will be no gameplay changes in the main version. There may be forks that introduce new gameplay though.

What about updating the music?

A separate team is working on remixing the original music. It is led by Riku Nuottajärvi, one of the original composers. There is a separate page with more information on the Remixing Project. The remixed music will be available as separate add-on packs. You can still choose to use the PC or 3DO music if you like.

What about updating the graphics?

A similar project as with the music could be started for the graphics. This would mean an optional pack with updated graphics. However, there are a couple of obstacles for this:

  • No people have yet stepped forward to start this project.
  • The code can still only use 8 bit graphics. This problem will be addressed at some point in the future, and it would get a higher priority if there were actually people interested in redoing the graphics.

What about network play?

Experimental network support is present in CVS, and should be in the 0.6.0 release. See the Netplay howto.