------------------------------------ Qoole v1.21 Quake Object Oriented Level Editor ------------------------------------ Qoole is (C)1997 by Matt Ayres and Paul Hsu. All rights reserved. ----- Notes ----- The latest version of Qoole can be found at http://www.qoole.com Join channel #qoole on EFNet IRC to chat with other users of Qoole. Please email your comments, opinions, and ideas to qoole@qoole.com If you happen to find a bug or annoyance, please email bugs@qoole.com Emails: Matt Ayres (matt@lithium.com) and Paul Hsu (hsup@lithium.com). If you're new to Quake map editing or Qoole, you might find the Qoole Tutorial (by Simon Terry) helpful, at http://www.qoole.com/tutorial ----- Intro ----- Qoole is a 3D level map editor for the popular computer game Quake by id Software. Qoole is an acronym for 'Quake Object Oriented Level Editor' and is pronounced like the word 'cool'. It is capable of creating new and modifying existing quake levels saved in id's ".map" or Qoole's ".qle" file formats. It features Construtive Solid Geometry and Object Oriented 3D editing methodologies, as well as a powerful and intuitive user interface. --------------------------- Basic Map Editing Knowledge --------------------------- In a Quake map, the world is made from solid blocks. To create a simple cubic room, one needs to create 6 blocks (1 for the floor, 1 for the ceiling and 4 for the walls) to enclose off an empty space. A solid block is called a brush. A Quake world can have monsters and items placed in enclosed areas. It can also have moving solid blocks with special properties. The items and the special brushes are called entities. Qoole saves Quake levels in the ".map" file format. A ".map" file needs to be converted into a ".bsp" file by using a program called QBSP before it can loaded in Quake. QBSP may be downloaded from our Web site at http://www.qoole.com as well as a number of places on the Internet. There is also a Qoole tutorial Web page at http://www.qoole.com/tutorial/ that explains the basic ideas of quake map editing. For more detailed information about Quake map files, please refer to the Quake Map Specs from Quake Technical Resources on the Internet. --------------------------- The Object Oriented Concept --------------------------- Everything in Qoole is considered as an object. An object can be either an item from Quake (an entity), a convex solid geometry (brush), or a group of other objects. This simple concept essentially results in the powerful feature of multi-layered grouping. As grouping allows one to build structures such as a staircase, an arch, a bridge or a chair out of simple brushes, it also lets one to make complex rooms and level sections quickly out of those structures. Imagine a level made out of "rooms", which in turn are made from simpler structures, which themselves can be made from other smaller objects or brushes. The object oriented editing methodology hides unnecessary information from the user. With it, one constructs a level on the basis of logical objects instead of thousands of brushes and vertices. The methodology also introduces modularity and portability. One can build independent sections of a level without worrying about the rest of the map, thus compiling libraries of re-usable, complex objects. It eliminates the extra work needed to remake similar structures in different maps. It also opens the possibility of using 3-rd party supplied structure and object libraries. Simply put, the object oriented concept lets one to create and edit maps in the way that one logically thinks quickly and effectively. ------------- Editing Modes ------------- A mode in Qoole specifies the default operation that the mouse does. There are 7 different editing modes in Qoole, which include Object Select, Object Move, Object Rotate, Object Scale, Eye Move, Eye Rotate and Eye Zoom. Qoole is placed under an operation mode at any one time. the current mode is shown with a checkmark under the "Mode" menu with the corresponding toolbar button drawn as depressed. The different operation modes are explained below. Object Selection: This mode selects an object to be manipulated by other operations. Only one object can be selected at one time. The selected object is always drawn red in the edit windows. To select an object in this mode, place the mouse over the object and keep pressing the left mouse button until the object is highlited in red. The selection cycles through from the nearest to the furtherest objects positioned underneath the mouse cursor. The Object Selection mode is also embedded in the Object Move, Object Rotate and Object Scale modes. To select an object in these modes, left click on the object with out moving the mouse. Object Move: This mode changes the position of the selected object. To move an object, simply left click on the selected object in any edit windows, drag it to a new position and release. The moving of an object is limited to the plane parallel to the edit window. Object Rotate: This mode changes the orientation of the selected object. To rotate an object, left click on the selected object in any edit windows, drag the mouse left and right and release. This rotates the object in the counter-clockwise and closewise directions fixed in the plane parallel to the window. If an object contains an item entity, the object's rotation will be restricted to the plane parallel to the world. On the other hand, if an object consists of only brushes, it can rotate freely in any direction. Object Scale: This mode changes the size of an object. Similar to Object Move and Rotate, scaling is accomplished by left clicking on the select object, dragging and releasing. Scaling is limited to 2 dimensions at a time. These 2 dimensions are defined by the axes of the plane parallel to the window. When scaling an object, only brushes in that object are changed. An item-entity's size can not be modified. Eye Move: This mode changes the view position of the editing windows. All the editing windows focus on one position in space. To move this focal position, left click and drag the mouse in any window. The movement of the view position is fixed in the plane parallel to the window. All the other windows are updated relatively to the focal point. Eye Rotate: This mode changes the orientation of the view angle in the 3D edit window. It is done by left clicking and dragging the mouse in the 3D edit window. This mode has no effects on the views of the 2d windows. This mode uses the "crystal ball" interface, where one rotates the world like spinning a crystal ball. Eye Zoom: This changes the zoom level of the views. Left click in any window and drag the mouse up and down. ------ Hollow ------ This only applies to objects containing only one brush. As the name suggests, it hollows a solid block, breaking it down to multiple blocks enclosing off an empty area. This is mostly used to create rooms. --------------- CSG Subtraction --------------- CSG Subtraction is much like a using a cookie cutter. It takes the selected object and carves out any other objects intersecting it in the 3D space. This only applies to brushes and has no effects on item entities. ------------------ Scope and Grouping ------------------ Qoole visualizes a Quake map into a tree structure consisting components that make up the world. At different levels of the tree, components are simply objects consisting of other components. The scope of an object is defined by the group of sub-components that make up the object. Editing in Qoole manipulates one object at a time. Changing the edit scope simply provides a way to traverse the tree and modify components without changing unrelated parts of the world. The Scope Down and Scope Up commands move the views of the edit windows into and out of an object's scope. To group objects together, select the first object, and choose Add To under the Group menu (or simply press G). Repeat this process for each object you'd like to be in the group. To finish the group, select Finish in the Group menu (or simply press Ctrl+G), or click on the group itself. This newly grouped object will stay grouped, and to edit its pieces, you may Scope Down into it. If you later don't want the sub-component objects grouped, you may select Ungroup from the Group menu (or simply press Alt+G). -------------- Texture Window -------------- When you create a new object, the currently selected texture will be applied on to the object. You may also apply the current texture to the current object by clicking the Apply button. To add to Qoole's texture database, click on the Merge button and select a texture .wad from your hard drive. Qoole does not include any texture .wad files, you should be able to find some from the place where you downloaded Qoole. ----------------- Entity Properties ----------------- There are basically two types of entities. The first type are things such as the player start, health packs, weapons, etc. These are items, and you simply add them to your map anywhere you please. The other type of entities, you apply to an existing brush. These include doors, platforms, wind tunnels, and many others. You can find the Add and Apply entity selections under the Object menu, or when you right-click in a map viewport. Once an entity is added or applied, there are various properties you can set, dependent on the type of entity. If you select Entity Properties from the Object menu (or simply press Alt+E), a window with these properties will appear. You can alter them from there. -------------- Using your map -------------- Quake will not run .map files, you need a BSP builder to compile your .map into a Quake usable .bsp file. Please download the bspbuild.zip file, which should be available the same place you obtained Qoole. Simple instructions are included. You only need to download this once, so it isn't included with Qoole (we are constantly adding new features). ------------------ Keyboard shortcuts ------------------ File commands ------------------------------------------ Ctrl+N - New Ctrl+L - Load Ctrl+S - Save Ctrl+A - Save as Ctrl+E - Export map Ctrl+B - Export BSP Alt+X - Exit Edit commands ------------------------------------------ Ctrl+X - Object cut Ctrl+C - Object copy Ctrl+V - Object paste Mode commands ------------------------------------------ M - Object move mode R - Object rotate mode S - Object scale mode Ctrl+M - Eye move mode Ctrl+R - Eye rotate mode Ctrl+Z - Eye zoom mode W - Walk through mode Object commands ------------------------------------------ Ins - Object add Del - Object delete Ctrl+D - Object duplicate Alt+S - Object subtract G - Object group add Ctrl+G - Object finish group Alt+G - Object ungroup Alt+H - Object hollow Alt+E - Entity property window Texture commands ------------------------------------------ T - Texture apply PgUp - Texture previous PgDn - Texture next Alt+B - Texture bookmark window 1 - Goto texture bookmark 1 2 - Goto texture bookmark 2 3 - Goto texture bookmark 3 4 - Goto texture bookmark 4 5 - Goto texture bookmark 5 6 - Goto texture bookmark 6 7 - Goto texture bookmark 7 8 - Goto texture bookmark 8 Alt+1 - Set texture bookmark 1 Alt+2 - Set texture bookmark 2 Alt+3 - Set texture bookmark 3 Alt+4 - Set texture bookmark 4 Alt+5 - Set texture bookmark 5 Alt+6 - Set texture bookmark 6 Alt+7 - Set texture bookmark 7 Alt+8 - Set texture bookmark 8 Window commands ------------------------------------------ Alt+Q - Quad window view Alt+N - Add camera window Alt+F4 - Close window Other commands ------------------------------------------ Alt+C - Config window Alt+M - Mod player \ - Redraw screen F12 - Screenshot A - Zoom out Z - Zoom in arrows - Scroll view window --------------------- About the programmers --------------------- Matt is 21 years old, self taught programmer, began at age 9. Paul is 23 years old, 4 year college CS degree, began at age 14. ------- Credits ------- Programming............ Matt Ayres (WhiteFang) Paul Hsu (hsup) Tutorial............... Simon Terry (eSsJayTee) Web Design............. Justin Nedecky (Hellgrim) Matt Ayres (WhiteFang) Qoole object pack...... Todd Berman (PatryDMF) Beta Testers........... J. Bryan Tharp (DPCRev) Jeff Borenstein (Jebs) Todd Berman (PatryDMF) Simon Terry (eSsJayTee) Rulon Anderson (scsi-BAM) Justin Nedecky (Hellgrim) Michael DiGiovanni (FakeSatan) Jesse Glen (Sknny) Chris Elly (over|ord) Josh Robison Bryan Vaccaro Brian Peterson (RBW) Kevin Melby (WhiteWolf) Kirk Yokomizo (NoComment) Jun Akiyama (akiy) Calvin Borden (Dimen) Special Thanks......... Trey Harrison for helpful tmappy info Brian Ploeckleman (plucky) of QLEN Blue of Blue's News aod_ash of AodQuake TC EFnet IRC #qoole people Everyone who has responded to Qoole id software for Quake Anyone else I missed (sorry!)