I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX

Legacy:Ucc

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

UCC stands for Unreal Commandline Client or something like that. This is the console application that compiles .uc UnrealScript files into .u packages.

You can use it "by hand" in a windows console / DOS box, but it's not terribly user-friendly. We recommend you use one of these tools instead:

ucc under Linux[edit]

The Linux version of UT2003 comes with an executable called ucc, but it's missing the make functionality and a lot of other bits which make the Windows version so useful for developers. Under Linux, it's just the server executable. So what if you want to develop UnrealScript under Linux? Well, if you have a Windows install of UT2003 available, it's simple... just run it under WineX. Make sure your WineX drive configuration matches that which your Windows install of UT2003 is expecting, and it should work just fine. This is not the place to tell you how to configure WineX, check its documentation for that. Nothing non-standard is required, however.

Ok, just to clarify, when I say "WineHQ", I mean the version of Wine available from http://www.winehq.com/ (as opposed to WineX, from http://www.transgaming.com).

UT2003 for Windows installs under either WineHQ or WineX, although with WineX it crashed near the end for me when it tried to update DirectX without asking me first. UCC runs fine under WineX, either the Transgaming binary or one built from their CVS source. WineHQ doesn't work well with UCC, make seems to hang indefinitely, but not at the same place every time (sometimes it will even complete successfully). If you use WineX to play games, you may want to use WineHQ to install UT2003, or back up the registry and system files from your WineX installation, because UT2003 tries to install DirectX without prompting first (at least, this is what happened to me). UT2003 itself doesn't seem to rely on anything in the registry, it just need the files in place, so if you use WineHQ just to install it, you can then safely move the UT2003 directory elsewhere. I symlinked mine from my .wine directory to my home directory, and that seems to work fine, too. Also, I've had trouble with updates via WineHQ or WineX - the last one, 2186, seemed to install fine, but didn't actually install the files. It looks like for this one, at least, you can unzip the .exe file and install the unpacked files over your existing UT2003 directory - this is what I had to do before I could compile a mutator that uses the GUIUserKeyBinding class. Also, if you have UT2003 for linux installed on the same machine, you can make the files that are the same in both hardlinks from your Wine UT2003 directory to to linux one - use cmp or md5sum to find the identical files. This can save you almost all of the space wasted by two UT2003 installs, since almost all of it is the same, except for the executables and a few other files which use very little space. If I didn't put you to sleep, go enjoy building your mods under Linux. :-)

Related Topics[edit]

Discussion[edit]

Trystan: I need to install RedHat on my box again. What exactly comprises ucc? Is it possible to bundle up the required ucc files and make them available to folks who want to work under Linux? Would Epic permit this? It's got to be a great deal smaller than installing all of UT2003 on a Windows partition. I think I'm going to go install RedHat and find out..

Wormbo: Commandlets like MakeCommandlet or BatchExportCommandlet are components of UnrealEd and stored in .dll files. I highly doubt that Linux folks can use them.

El Muerte TDS: well the only difficult part in porting the any editor stuff is UnrealEd itself (because of the MFC), I don't think the make and export commandlets would be that difficult.

Mychaeel: I found even porting a C++ program from gcc to MSVC++ to be a non-trivial task. I could imagine that doing it the other way around isn't much less of a hassle...

Trystan: I was more concerned with the possibility of taking Win32 ucc, all the related and necessary files, putting them in a tar/gzipped file and allowing them to be downloaded separately from anything else. The basic thought being that this would free a Linux developer from having a Windows partition solely for UT2K3 development. We would need Epic's permission to make those files available. That ucc would still require Wine/WineX but most Linux distributions have associated Win32 executables with the Wine executable anyway.

El Muerte TDS: Ryan Gordon replied to my email, here's what he had to say: ucc make is broken at the moment, the rest is untested, and it adds 15 minutes to the build time to include it. It should be there in the future, but it's low priority.

MeltDown: Take a look at PyUClasses at http://www.unrealtower.org/downloads/26. It can use Wine and ucc.exe to compile mods for UT. See http://www.unrealtower.org/documentation/pyuclasses/ for more information.

Conzar: Any status on the windows files to be packaged up? I copied all the .dlls and .exe files in System from the UT2K4 dvd into my System directory and have some compile errors while using ucc.exe.

cedega UCC.exe make

Can't find 'intAActorexecAddToPackageMap' in 'Engine.dll'


History: UPackage::GetDllExport <- UFunction::Bind <- UField::PostLoad <- UStruct::PostLoad <- UFunction::PostLoad <- UObject::ConditionalPostLoad <- (Function Engine.Actor.AddToPackageMap) <- PostLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Core.Class Editor.EditorEngine NULL) <- UEngine::Init <- UEditorEngine::InitEditor <- UMakeCommandlet::Main

Wormbo: Never copy only .DLLs or only .Us, they only work if the same versions are used.

DarthDevilous: Why is there a UCC for Linux bit here as well as here?

Tarquin: No idea. someone should merge them.

EricBlade: Anyone have any specific knowledge on using "ucc master" to create an install program? There are docs on UDN, but they don't seem too helpful if you don't already know what you're doing with it.