Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The UDK Editor is the primary—but not the only—tool in the Unreal Development Kit. There are other important and useful tools in the kit, including SpeedTree, the Unreal Frontend, the UDK Mobile Editor, and the UnrealScript Compiler. However, the UDK Editor is considered the main tool in the UDK in the sense that it is where most developers will spend most of their time when developing most of their games. For this reason, the focus of the majority of this book is on the UDK Editor and its attendant tools and interface components.
Figure 3.1
The UDK Editor interface: the main menu, toolbar, toolbox, viewports, and status bar.
The UDK Editor interface consists of five distinct components. The design of each of these components is not arbitrary; rather, it is intentional and structured. Each component contains a set of related buttons, drop-down menus, checkboxes, and other GUI gadgets to help developers get things done in an intuitive way. These five interface components, illustrated in Figure 3.1, are as follows:
The main menu
The toolbar
The toolbox
The viewports
The status bar
The UDK Editor’s main menu appears along the top of the editor’s window. It consists of several clickable words, or menus. Together, these menus provide access to all the global or application-level features of the UDK—those features that apply to the application and its behavior and in a general way to the level being created in the editor. For example, the main menu offers a means to open and save projects and to import and export level-specific data in a variety of file formats.
At the time of this writing, there are eight menus: File, Edit, View, Brush, Build, Play, Tools, and Help. As with most application menus, these menus lead to additional options and sub-menus when clicked. Although this book could go on to exhaustively consider every menu item in sequence, giving for each item a detailed and comprehensive explanation, but such an approach would likely prove tiresome for most readers and get in the way of understanding the UDK as a game-development tool. For this reason, it is enough to consider here the general purpose of the items associated with each of the top-level menu options as a group rather than individually. The purpose and usefulness of specific menu items will emerge later throughout our work in the book.
The File menu. As with most applications, the left-most menu is the File menu. This menu is home to a set of project-management features that enable developers to create new levels, load and save levels, import and export data to and from levels, and exit the application.
The Edit menu. This menu contains a selection of features for selecting, editing, and adjusting content in the level. From the Edit menu, users can copy, cut, paste, and duplicate actors (such as meshes and lights) in the level. In addition, users can use the Edit menu to select, deselect, delete, and find actors.
The View menu. This menu is useful for both displaying and hiding a range of user interface (UI) elements and for controlling the visibility and detail level of actors and objects in the viewports. The View menu provides access to the Content Browser (and other browsers), the Search tool, and various editor settings, as well as the ability to toggle the visibility of viewport elements and to control the level of detail at which viewports render.
The Brush menu. This menu is associated with the BSP Brush tools and with the CSG they produce. In short, every item in this menu is represented in quick-access form in the BSP and CSG sections of the toolbox, as you shall see.
The Build and Play menus. These aptly named menus are reserved for all the compilation and play functions of the Unreal Engine, respectively. These build and play functions enable a developer to compile, debug, analyze, and run the current level. The Play menu specifically offers options for running the level in a separate window, in a viewport, or as a standalone application.
The Tools menu. This menu provides access to a set of miscellaneous utilities and programs. Some of these can scan the level for potential problems and issues, while others are helpers for creating terrain meshes.
The Help menu. As in most applications, the final menu—the one farthest to the right—is the Help menu. The Help menu provides access to both the online UDK documentation in the Unreal Developer Network and the community forums on the official UDK Web site. It can also be used to view a range of useful hints and tips on using the UDK Editor and for viewing the version number of your editor. (Each release of the UDK features an editor with a unique version number.) You may need this information when seeking support and advice from other users on the forums.
The toolbar sits directly beneath the main menu and is a graphical abbreviation of it. That is, all options on the toolbar can also be found in the main menu. Some can also be accessed by way of keyboard shortcuts. The purpose of the toolbar is to save you time. It does this by providing a constantly accessible and graphical strip of buttons that serve as shortcuts to the most frequently used menu options. The buttons are arranged horizontally from left to right, and the position of each button on the toolbar reflects the order of the corresponding menu group to which it belongs. That means the file and save options found in the File menu appear among the left-most toolbar buttons, while options from the Build and Play menus appear among the right-most toolbar buttons. In general, the toolbar offers quick-access buttons for creating new levels, for load and save operations, for selecting and editing actors, for building and playing levels, among other options. To determine the purpose of any button on the toolbar, simply hover the mouse cursor over the button; a tooltip with the name of the button appears, as shown in Figure 3.2.
Keeping It Simple
I like to keep my life as simple as possible, so I seek to find the shortest and quickest ways for doing things in the UDK. For this reason, I follow this general three-part rule:
I use keyboard shortcuts for all options that have them, especially to perform Cut (Ctrl+X), Copy (Ctrl+C), and Paste (Ctrl+V) operations.
I use the toolbar for all available options without keyboard shortcuts, such as Load, Save, and New.
I use the main menu as a last resort, when an option has no shortcut and is not represented on the toolbar.
As a result, I use the keyboard almost constantly, the toolbar frequently, and the main menu occasionally. I recommend trying my three-part method for a few days to see if it works well for you too.
Figure 3.2
Tooltips offer guidance as to the function of a toolbar button.
The toolbox, which is aligned vertically along the left edge of the UDK Editor, offers the developer quick access to tools for building and editing levels. The toolbox is distinct from the toolbar. Whereas the toolbar is an abbreviation of the main menu, providing access to application-level features—such as tools for loading and saving new levels—the toolbox provides access to tools and features that are used for working in the current level.
All the buttons in the toolbox provide access to tools used or deployed in the viewports of the editor. That is, the developer will typically click a tool in the toolbox and then apply that tool in the viewport. These buttons are divided by type into six main sections:
Modes. The Modes section contains buttons designed to switch the UDK Editor and its interface into one of several editing modes. A mode defines both how the GUI will appear and how the UDK Editor will behave in response to user input. When switched to different modes, the editor will behave slightly differently, as you shall see. For example, in Camera mode the editor expects the designer to adjust the position, rotation, and orientation of the viewport camera and to perform standard editing operations such as moving, scaling, and rotating level actors. In contrast, in Texture Alignment mode, the editor freezes the positions and transformations of actors and permits only the adjustment of materials and mapping information. That is, it permits only adjustments relating to how materials are applied across the surface of the 3D models in the level.
Brushes. The Brushes section contains buttons for shaping the BSP Brush into one of a number of 3D geometric primitives, such as cubes, spheres, cylinders, and others. The buttons in this section also offer secondary functions, which you can access by right-clicking the button. When you do, a pop-up window appears, displaying a variety of numerical inputs that you can change to tweak the shape of a primitive.
CSG and Volumes. The CSG and Volumes sections are related insofar as both offer buttons for constructing scene actors and elements with the BSP Brush. The tutorial in the previous chapter demonstrated the use of tools in the CSG section to construct static geometry (often used for floors and walls) and tools in the Volumes section to build non-visible volumes (such as collision and lighting volumes) in the shape of the BSP Brush.
Select and Go To. These sections offer tools for quickly selecting, deselecting, and zooming in on actors in the level.
The viewports dominate the UDK Editor in the sense that the greater part of the editor GUI is taken up by viewport components. The screen space consumed by the viewports is reflective of their importance in the UDK workflow. Their primary purpose, as the tutorial in the previous chapter probably made clear, is to provide a realtime view of the level being created. Much more on the viewports will be said later in this chapter, in the upcoming section titled “Viewports.” It is sufficient here to state that the viewports are critically important for getting things done in the UDK, and much development time will be spent using them.
The status bar is an informative and functional panel aligned horizontally along the bottom of the UDK Editor. It is informative insofar as it provides information about the current state of the level, such as the grid-snapping options (discussed later), the current position of the mouse cursor in terms of Unreal world units, and the current auto-saving options. It is functional in the sense that it features buttons and input boxes for specifying ranges of values that affect the way the editor works. More will be said later in this chapter on the status bar.