UMake

News

November 16, 2002.  El Muerte describes how to integrate UMake with EditPlus, an excellent text editor, on Unreal Wiki: EditPlus.  Clicking UMake's Edit button then directly brings you to the source code line where the compiler coughed.


November 10, 2002.  UMake 1.1 is out for your UnrealScript compiling pleasure.  Notable changes since the last version:

  • Added a drop-down list to the launcher's project directory edit field that contains the most recently compiled projects for quick access.
  • The Create Desktop Shortcut button in the Shortcuts tab in the Options dialog opens a secondary dialog box providing extended options now:
    • Generic UMake Shortcut looks and works like before.
    • Project Shortcut creates a shortcut that directly compiles the currently loaded project (at the time the shortcut is created).
    • Most Recently Changed Project automatically selects and compiles the most recently changed project in a given game directory.
  • Added an option to always automatically display compilation details.

Especially the project auto-selection should be handy for people who can't really integrate UMake into their development environment otherwise.  (And remember that you can even specify a keyboard shortcut in a desktop shortcut's Explorer properties!)

More changes are pending for the next version; check Unreal Wiki: UMake.  I've also added a description of UMake's command line parameters below.


Older news are available in the news archive.

What is UMake?

UMake is for Unreal-engine coders using their own custom development environment, usually consisting of their favorite text editor and class browser.

[UMake compilation window, left] [UMake compilation window, right]

Unfortunately, compiling an Unreal project requires a row of steps which get tiresome if they have to be repeated over and over again.  Many coders manually compiling their projects set up small batch files for that task, but those small scripts usually only provide a bare minimum of convenience.

That's where UMake comes in.  UMake completely wraps all steps necessary to compile an Unreal project behind a slick user interface and provides a whole bunch of additional convenience features that make setting up a project and compiling it a matter of a few mouse clicks.  You can monitor the compiler's progress on the fly if you like.  Compiler errors and warnings are displayed along with a comprehensive explanation beyond the compiler's own brief message.

In addition, UMake gives the opportunity to integrate the compilation step with the text editor you're using; if your text editor supports it, a compiler error is only a click away from editing the actual line of code that triggered it.

Getting Started

Simply starting UMake without much ado displays the UMake launcher window.  Click the browse button (to the right of the edit field) and select an Unreal project path.  Then click Compile to start the compilation process.

[UMake launcher]

Obviously using UMake like that isn't the most convenient way and definitely not faster than executing the batch file you've been setting up for your projects before, so it's time to integrate UMake in your system and your development environment.

Click the Options button to pop up UMake's options dialog.  Ignore the General tab for now and have a look at the Shortcuts tab:

[UMake options, shortcuts tab]

The buttons in this tab allow you to integrate UMake in several ways in your working environment.

Clicking Register Explorer Commands will add two extra commands to Explorer's right-click menu for UnrealScript files:  UMake Compile directly compiles the package the selected UnrealScript source file belongs to, and UMake Project Setup opens UMake's project setup dialog for this package.  Previously existing UnrealScript file associations remain unharmed by this.

Clicking Create Desktop Shortcut opens the following dialog box which provides several options for desktop shortcuts UMake can create for you:

[UMake shortcuts window, left] [UMake shortcuts window, right]

You can use a Generic UMake Shortcut as a drop target for UnrealScript source files or project directories or, if you simply double-click the shortcut, UMake will open its launcher window.

If a project is loaded at the moment, you can also create a Project Shortcut which will directly compile the selected project.

The Most Recently Changed Project function is probably the most useful one.  Double-clicking this shortcut will automatically scan the game directory (specified in the box below) for the most recently changed project and compile it.  That's especially handy if you have no other means to launch UMake directly from your text editor.

Remember that Explorer allows you to specify an arbitrary keyboard shortcut for any desktop shortcut in the shortcut's Explorer properties (right-click the shortcut icon on the desktop and select Properties), so you can set UMake up to directly compile the project you're currently working on at a simple keystroke.

[UMake compilation failure, right]

Compiler Errors

When a compilation error or warning occurs, UMake displays the compiler's error message, the source file and the number of the line within that file that caused the error.

In addition UMake displays a slightly more elaborate explanation about the error if one is available, sometimes even including suggestions on how to fix the problem.

Clicking the Edit button will open the source file and even put the cursor into the line that caused the error if you configure UMake that way.  In order to make this feature work, you'll have to specify your favorite text editor in the (previously neglected) General tab in UMake's Options dialog first.  Click the Placeholders button there to insert variables for the source file name and line number in the command line.  (Check your favorite text editor's manual for details about its command line syntax; usually simply appending the source file name to the command line will do.)

If compilation fails, UMake automatically restores the last working version of your package file.

A hint for advanced users:  All explanations are in the plain-text file UMakeExplanations.txt.  If you know regular expression syntax, you'll find it easy to figure out how to modify and extend this file.  The regular expressions are matched against the error message as it is displayed in the Error tab.  If you have additional explanations for compiler errors and warnings I missed, please send them my way.

UMake Command Line

UMake can automatically set up Explorer extensions and desktop shortcuts for you (see above).  If you launch UMake from a different application though, you can use the following command line parameters (items in brackets are optional):

    UMake.exe [/auto <gamedir>] [/setup] [<source>]
<source>
Specifies an UnrealScript source file or a project directory for compilation or setup.
/auto <gamedir>
Searches the given game directory for projects (subdirectories containing UnrealScript source files) and automatically selects the most recently changed one for compilation or setup (overriding the <source> parameter if it is given).
/setup
Opens UMake's Options dialog instead of compiling the specified project if one is given.  If no project has been specified along with the /setup switch, the Project tab is hidden, but the dialog is opened nonetheless for generic UMake options.

If called without any parameters, UMake displays a launcher window.

Download

Simply extract the archive into a directory of your liking and launch UMake.  Click the Options button to customize UMake and to learn how to integrate it in your system.

Link-M Germany Zip archive (263 kB)
Downward Spiral United States (Midwest) Zip archive

Send bug reports, questions and other feedback to mychaeel@beyondunreal.com.

Copyright and Acknowledgements

UMake is © 2002 by Mychaeel mychaeel@beyondunreal.com.  This program is freely available for noncommercial use and distribution through any electronic network, provided you keep the contents of the original distribution archive intact.  For any other use and distribution please contact me for permission.  I'm not necessarily disinclined to give it, I'd just like to know in advance.

UMake is freeware and is provided "as is" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose.  In no event shall the author be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if the author has been advised of the possibility of such damages.

Thanks to tarquin, will and Wormbo for beta-testing UMake and providing valuable feedback.

[UMake compilation failure, right]

[counter]