_____ _ _ | ____|__ _ ___ _ _ | | _____ _____| | | _| / _` / __| | | | | | / _ \ \ / / _ \ | | |__| (_| \__ \ |_| | | |__| __/\ V / __/ | |_____\__,_|___/\__, | |_____\___| \_/ \___|_| |___/ ____ _ _ / ___|_ __ ___ __ _| |_(_) ___ _ __ | | | '__/ _ \/ _` | __| |/ _ \| '_ \ | |___| | | __/ (_| | |_| | (_) | | | | [ Easy Level Creation ] \____|_| \___|\__,_|\__|_|\___/|_| |_| by TheOuterLinux (https://theouterlinux.gitlab.io) Last updated: 2025/10/07 ------------------------------------------------------------------------ So far, I have found four easy ways to create levels for use with game engines like CopperCube... 1. Minetest 2. Slade 3. Sauerbraten 4. ClassiCube ########################### MINETEST ################################### Minetest is a free and open-source, cross-platform 'Minecraft' clone. Using the 'meshport' mod with Minetest, you can export a selected area to an OBJ file. However, the resulting MTL file points to the absolute file-path of Minetest's default textures. You will have to import the OBJ to 'Blender' and then export as a DAE for the easiest way to get those textures to copy to the same directory and use relative file- paths. Smoothing out the terrain.... ----------------------------- HOWEVER, because of the "blocky nature" of Minetest, you may want to smooth it out, but not too much. While in Edit mode, select the areas that you want to smooth, such as the terrain while avoiding buildings. Add these vertices to a group. While in Edit mode, and the group selected, subdivide smooth; if you use a "Subdivision Surface" modifier, it affects the whole model and not just the selected vertices. Anyway, next, switch to Object mode and add a "Smooth" modifier with only the "Y" axis selected and a "Factor" of "1.6" and a "Repeat" of "30"; however, set it to only affect the vertex group mentioned earlier so that buildings are not awkwardly smoothed. Afterwards, add a "Decimate" modifier with the same vertex group selected. Set the decimate type to "Planar" and limit the merge geometry to "UVs". Set the angle limit to 89 degrees; any higher may be pointless since cubes use 90 degree angles. Add another "Smooth" modifier after the "Decimate" modifier but this time use only the "X" and "Z" axis and default values (0.5; 1). Optional: Apply "Dirty Vertex"; this will add some shadows in a way that almost reminds me of Ambient Occlusion. However, if textures are missing when importing the model to a game engine, the dirty vertex stuff will also mostl likely not show. Results may vary... Select the 3D model and export as a DAE (Collada) with "Apply Modifiers," "Selection Only," and "Export to SL/OpenSim." This should also copy the textures to the same directory as the DAE, so you may want to create a directory just for the model. TIP: It may be a good idea to backup the default textures Minetest uses and then replace the textures with what you actually want to use in order to save time if you plan to use Minetest to make several levels. ############################# SLADE #################################### Slade is a free and open-source, cross-platform DOOM WAD editor that has been around for quite some time. You can use Slade to create DOOM maps, with the help of the 'ZDBSP' or 'BSP' node builders, the 'omgifol' "demo/wad2obj.py" Python 2.4 script, and 'deutex'. However, this script is VERY picky... Base: freedoom2.wad New --> Doom WAD Archive Map --> Game: Doom 2; Port: ZDoom | +--> Map Name: map01; Map Format: Doom Hopefully the above makes sense. The 'FreeDOOM' project is BSD 3-Clause licensed and therefore so are the textures. I have played around with replacing them using those from Minetest and it appears to work most of the time. Meaning, you could use 'Minetest' for outdoors and 'Slade' for indoors. When ready to export a map from a Doom WAD, use something like the following in a Terminal.... cp 'freedoom2.wad' 'doom2.wad' cd "/path/to/the/doom2.wad/directory" deutex -merge "/path/to/small.wad" cd "/path/to/omgifol-master/demo" wad2obj.py "doom2.wad" -m MAP01 -o /tmp The above will export all of the textures from the renamed and merged "doom2.wad" and an OBJ of MAP01 from the same WAD. You have to have a "doom2.wad" for 'deutex' to be happy, even if it is a simple matter of copying and renaming the FreeDOOM WAD. The "small.wad" is named in this case because of how it may only contain a single map and nothing else. The node builder is important for the 'wad2obj.py' script to understand the WAD (SEGS, NODES, SSECTORS, REJECT, BLOCKMAP, and etc. are needed). The 'BSP' or 'ZDBSP' node bulders are what I recommend. Use 'ZDBSP' with Slade (see the Preferences) on a newer computer and 'BSP' if using Slade on an older computer, especially on Mac OS X Leopard or Snow Leopard; it will compile from source just fine on those systems as well as newer ones. Using a newer node builder may result in wad2obj.py conversion failure since the Python script has not been updated in a long time. The "end-of-life" for Python 2.4 was around 2008. ############################ SAUERBRATEN ############################### 'Cube 2: Sauerbraten' is a free and open-source, tournament-styled, first-person-shooter game with single and multiplayer. It also includes a built-in editor with a 'writeobj' command you can run in the console... /writeobj NameOfModel ...which will place a "NameOfModel.obj" file within the directory where the game's settings are kept, not in the game directory itself. The MTL file uses an absolute file-path, but exporting to a DAE like in the 'Minetest' option mentioned will bring them over to the same directory. HOWEVER!!! You will need to add your own textures to 'Sauerbraten' or replace the ones you use, or at least that is the likely case. Most of the included textures are licensed to be only use with Sauerbraten or for non-commercial use. Sauerbraten's strength is it's ability to get maticulous with the size and angles of face extrusion and to quickly apply textures; however, this temptation for detail is also a time-consuming curse. Never model anything that some one already has done for you and is licensed the way you need it. ############################ CLASSICUBE ################################ ClassiCube is another 'Minecraft' clone except worlds are limited to certain sizes and the "node" choices (the cubes) are much more limited when compared to 'Minetest'; HOWEVER, its strength comes from being incredibly cross-platform, including some game consoles and much older operating systems. The big caviot is that you will need to use the "ObjExporter" plugin, which may not be available for every system. Worse case, you make a level using a PlayStation 2 and then work with it further on a newer computer. Also, the textures do not export along with the OBJ file, even though it acts like it did; you will find the file it is looking for within a texture pack as "terrain.png". See the "Smoothing out the terrain" section of the 'Minetest' option. ------------------------------------------------------------------------ _____ _ | ____|_ _| |_ _ __ __ _ | _| \ \/ / __| '__/ _` | | |___ > <| |_| | | (_| |_ _ _ |_____/_/\_\\__|_| \__,_(_|_|_) [ Extra...] ######################### Normal Maps ################################## If you need to use normal maps, the easiest way to do this is to use a program called 'Laigter', an automatic normal map generator for sprites; but in this case, textures.