Anvil design document --------------------- Anvil is a one view object placement editor. The commands. ============= Open: ----- This will load the "world" file. load: ----- This will load objects(meshfacts), and will popup a window with the materials used in that object, where you can assign textures and shaders to it. Materials should be named: Object_Material_01, etc. save: ----- This will save the world. Undo/redo: ---------- This will un/redo the last action. Multiple selections: ------------------- *Hold ctrl and click left to add to selection and right click to substract from selection. *ctrl+a to select all *inverse selection rotate: ------- This will rotate the selected object. 2, 4, 6, 8 numpad keys could be used for this. move: ----- This will move the selected object. 2, 4, 6, 8 numpad keys could be used for this. scale: ------ This will scale the selected object. +, - numpad keys could be used for this. mirror: ------- This will mirror the selected object vertically or horizontally or on X/Y/Z. restrictions on x/y/z: ---------------------- This will restrict movement to one or more axis. drop to ground: --------------- This will "drop" the object to the ground. Objectlist: ----------- This will open a window with a list of the objects used in the world. Selecting a object in this list will put the editor in "plant" mode: Duplicates with the same settings(scale/textures/rotation) are placed in the map with a mouseclick(cursor like thingy, like in housebuilder) the objects "drop" to the ground, but with the same y offset as the original object. (eg. If the original object was put into the ground with 0.5units, the duplicate will have coordinates (newX, newY-0.5, newZ) The offset should be optional (checkbox). spawns: ------- This will create a begin_location for monsters and players. The world file. =============== This will include: -the renderloop. -the shaders. -the textures. -the materials. -the "links" (libary?) to the objects used in this world. -the objects transformation-data. The objects. ============ This will include: -the vertex-data. -the material(s). Movtivation for having the objects in diffrent files: ===================================================== This will allow the artist to change or add objects while the game is already "released", without having the users make a big update...(world files can be big (PS)) You could make small modifactions to objects, this will only be a several kb update.(less server/client load) Future? ======= Trigger placement. Portal placement. Sector placement. light placement. The possiblity to have lights in the objects(handy for lanterns and torches). particle placement.