Mapping Guidelines
(I write this for make the making and the release of a map more easier, as well as make easier the life of those who want download one).
Contents
Your map: How I can map for OC
1: Setting the SDK for OC, information about the OC entities and tutorials.
- How to set the SDK for Obsidian Conflict: http://wiki.obsidianconflict.net/?title=Obsidian_SDK_Setup
- Information about the Obsidian Conflict entities: http://wiki.obsidianconflict.net/?title=Category:Oc_ents
- Obsidian Conflict Wiki: http://wiki.obsidianconflict.net/?title=Main_Page
- Links about useful Source tools: http://wiki.obsidianconflict.net/?title=Useful_Source_Modding_Tools
- Obsidian Conflict Forums General modding (Coding, Mapping, Modeling and Misc): http://obsidianconflict.net/forums/viewforum.php?f=34
- Tutorials about Obsidian Conflict: http://wiki.obsidianconflict.net/?title=Category:MapTuts
2: What files should you have.
The package where your map lies should contain at least the following:
- The briefing file (yourmapname_briefing.txt | It goes in maps/cfg). The text that appears in the screen after the MOTD. It contains all the info of the map (mainly the objectives), as well as the credits. Keep it short, because it has a limit of 2047 characters.
- The map in .bsp file (It goes in maps). Make sure it's functional, it doesn't have bugs (or only a little) and properly optimizated. Compile the map at least on normal. And for god's sake, put in it lights (or a better idea, don't release shit maps).
- The icon of your map. Is the reference image that you can see in the lobby, so you can select it. The size must be 256x256 at the best quality as you can, in VTF format.
- A thumbnail of your map for the map list in-game server browser. To see how to create one, check this link.
- In case you need more files, keep it organized in their folders.
- If you have custom content: Duplicate your files and put them in on separated folders (compressed and uncompressed).
- In the compressed folder, it must contain all the files, compressed into bz2 format in order it can be used with FastDL. The .RES file (that is needed in order to can download all the files) must be there too (but without being compressed).
- On the uncompressed folder, put all the files without compressing them..
Remember, you only have to include the content that IS NOT STOCK from a mounted game and IS NOT EMBEDDED in the .bsp file. We had in the past problems with some maps which their size was too large for the amount of the content that in fact it had.
3: Information about the map files.
- .BSP: Is the map file format that Source uses.
- .RES: Is a file used for the server to download the content it says to the players: https://developer.valvesoftware.com/wiki/Resource_list . Remember to use Notepad++ or similar programs, but not wordpad, since it screws the file. Make sure you set the codification to ANSI, you will save on space and avoid future problems (UTF-8 without BOM is allowed too).
You can list manually the routes of the files, or you can follow this steps to do it automatically:
- Put all your folders of your map inside of a folder
- Open the Resource Generator.
- Click the "Browse" button and go where is the folder with your map.
- At the right, it will appear the folders, with their contents. Select all the files that you use.
- Press Generate (in case that you want, check the "Compress into bz2" to save on time, but remember, this will use all of your CPU).
- A file called resources.lua will appear at the main folder. Use Notepad++ to open it.
- Since this tool was designed for Gmod, replace the following (CRTL+F->replace):
¨resource.AddFile( ¨ with ¨¨ (mind the space after the ( and make sure you replace it with nothing, so it would like the lines as "thing/thing.thing").
¨ )¨ with ¨ "file"¨
¨--Generated with Kogitsune's Resource Generator¨ with ¨"resources"(here goes a jump line){¨
¨"/¨ with ¨¨(The lines must start like maps/thing or models/thing, you know, without having a slash before the first part).
¨/¨ with ¨\¨
- Add under the last line a } to close the list.
- For last, save the file as nameofyourmap.res.
If everything is fine, that file will work, saving your precious time.
Remember to add the references to the CFG files, since it looks like it doesn't write them.
Or in case you have problems on the server side (missing downloadable content), take the oc_lobby.res, and modify it to our files. You can grab it from here in case you feel lazy to search it on your obsidian folder.
- map_mounts.txt: Allows you to indicate to OC what game are you mounting, if Episode One or Two. http://wiki.obsidianconflict.net/?title=Content_Mounting
- map_modify.txt: Is used for modify a map using scripts. Also, it allows you to create custom ammo and mount the soundcaches of the games that you want. http://wiki.obsidianconflict.net/?title=Mapadd_Scripts http://wiki.obsidianconflict.net/?title=Creating_Custom_Ammos
- map_cfg.txt: This file text "overrides" the server variables by putting the yours inside, allowing you to have a different fall damage in your map for example.
- map_briefing.txt: Is used for showing in game the briefing of the map, where it explains the story of it, the objectives and the credits. Is shown after the MOTD.
- map_soundscripts.txt: Allows you "override" the sounds. For example, with this file, you can change the sounds of the npc_zombie without have to overwrite the original sound. http://wiki.obsidianconflict.net/?title=Custom_Soundscripts_and_Soundcache
- map_soundscapes.txt: Is used for use custom soundscapes.
- map_name_particle_manifest.txt: Allows you define a list of particles for your map: https://developer.valvesoftware.com/wiki/Particles_manifest.txt
- custom_weapon.txt: This file text is used for create custom weapons. http://wiki.obsidianconflict.net/?title=Scripted_Weapons
4: How to use some Source tools.
- BspZipGui
Homepage: https://sites.google.com/site/softdevdy/software/bspzipgui
This tool is used for pack all the custom content inside your map. Is pretty useful when you have a little amount of custom content, and you don´t want lose your time separating your files into compressed and uncompressed folders, and making a .RES file.
The main advantage that has this tool, is that you only have to especify a folder where are your content, and the tool will recursively adding all the content inside of your map.
Is easy to use: You only have to indicate the path of your bspzip.exe (For OC, SteamApps/youraccount/sourcesdk/bin/source2007/bin/bspzip.exe), the map where you are going to add or extract content, and the folder where are the content to add, or where is going to be put.
You must select the main folder where are the content, NOT the folders that are inside of that folder, or it will give problems.
Note: This will raise (a lot) the file size of your map (the .BSP file). Also, it makes it more difficult to the map decompilers work on it (the more content you embed in the map, the hard it will decompile it).
- Bz2 generator:
Homepage: http://www.bzip.org/
This tool is useful for the servers who have FastDL: http://wiki.obsidianconflict.net/?title=How_to_set_Fast_downloads_in_a_server
The tool generates a compressed file with the .bz2 format. The client only has to download the .bz2 file to use the downloaded stuff because the Source engine automatically extracts it. The files that supports being compressed are the following:
.html .htm .jpg/jpeg .gif .swf .png .bsp .bz2 .wav .mp3 .vmt .vtf .vtx .mdl .vvd .phy .lua .txt
To use it, drag and drop the files (maximum 5 files, their size depends too) at a time onto the .exe file and the program will convert them. A MS-DOS window will open, a signal that the program is working, and it will close when the program ends. If it does not work try dragging less files. It usually depends on the file size as it can only compress so much each time.
When you finished doing the operation, your files must be have in .bz2 format.
- OC modify generator:
Homepage: http://www.obsidianconflict.net/forums/viewtopic.php?t=1432
Allows you modificate a map with scripts using Hammer.
To use it, decompile the map you want to modificate, and edit it in Hammer. Once you finished, save the edited vmf apart of the original and execute the program. After putting the route of the original and modified .VMFs, press "ok" and the program will generate the file. Copy the result code and paste it in your modify file of your map.
Known limitations/bugs:
- A brush entity cannot be added.
- The output of a brush entity cannot be deleted or changed.
- There is a key which cannot be changed depending on the kind of entity.
- There is an entity which cannot be added depending on a kind.
- A template entity cannot be changed.
- The change of a brush is not reflected.
- You cant parent an entity to a func brush entity (or to another entity, is unknown).
5: Recomendations.
- Name your map with the oc_ prefix and, depending of the state of the map, you can use the following suffix:
_alpha, _ALPHA, _a (Used for those maps in Alpha version, gameplay tests).
_beta, _BETA, _b (Used for those maps in Beta version, pre-release tests).
_v, _V (Indicates what version is the map. Generally used from the second edit of the map after their release).
_oc, _OC (Used for those custom maps who comes from another Source games, to indicate that it have been modified for use it in OC. Is not enforced, in the case is not really needed to change their name).
Also, is common use numbers after the suffix, but also letters (this for indicate that it continues being the same edition, but improved). Example: _b1, _v3j, _a2...
Some maps maybe can contain prefix/suffix like fun_ or _vs. Depending of the game mode, it can be used or not. Is recommended that those maps are called like oc_fun_mapname or oc_mapname_vs.
- In general, is allowed use content from all the Source games, as long as they can be mounted in OC. Use content from another games, the HL2 leak and such, although is tolerated in theory, it will make your map lose any possibility of become an official map. If you are going to use stuff from another mods or from a person, ASK ALWAYS FOR PERMISSION. The OC DEVs are not responsible of your acts, and, even if it becomes necessary, it will delete the map (although luckly the situation never degenerated until that point).
- Try dont exceed very much with the size of the compressed map. Unless your main objective is that your map become official, you should keep the size under 100mb compressed. Even with FastDL, it can take a while, making that the players stop downloading and move to another server. Think about it.
- Is not allowed take an official map from a Source game (like for example, the Dam level in HL:S), modify it and present it. Is tolerated in case you make it with the modify scripts (yourmapname_modify.txt), or if the map is custom (in this case ask for permission).
Posting a new map: The main post, how it should be organized and tips.
1: The name of the thread.
You should called it by the official name that you given it instead of the name of the file. Avoid put names like "A new version of my map X" or "My first map". If you make any relevant change, such like a fix patch or a new version, put it between parentheses, like (FIX NOW AVAILABLE) or (BETA).
Dont make a new thread for every stage of your map (just keep it divided in two, one in the WIP section and other here, in Releases).
2: The main post. What i should have in it?.
The main post of your released map thread will be the first thing that the people will see. Although is not required have it, a banner of your map would be a good idea, as a title. Write all the information as well as all you want to say (as long as is relevant to the map) organized.
The basic information that every released map should have is the following:
- Author: Self-explanatory.
- .bsp filename: The name of your map file (put all if the map release contains more of a map).
- Date of release: It would be ideal to preserve the date of the first version released, in order to follow their timeline.
- Game Requirements: VERY IMPORTANT. If the server/client doesnt have mounted the game needed, it could be bugs or crashes.
- Suggested Players: The number of players. Put both minimum and maximum to play.
- Estimated time to beat the map: This is relative, but try to keep the time that usually the players need to beat the map after know how to play it but without rushing/making tips.
- Type of the game: Co-op, Deathmatch, Survival...
- Size: The total size of the files compressed (in Bz2 format, only the server files, not all).
Also, it must have pics of the map, in-game, in order to show it. Without images, the people hardly will download the map.
There isnt an only way to structure your main post. Usually, people prefer to show first the info, a short description and the mirrors of the map. Dont forget put ALL the credits, both here and in the map.
In resume, try keep it clean and clear.
3: Mirrors. What i should pick and how many?.
Avoid upload your files to the sites with low speed like RapidShare, or where the analysis to check it if is secure can make problems like ModDB or FPSBanana (Now GameBanana). Make sure that the download speed is decent (at least 300 kb/s) and that the host will not delete your file.
After uploading your compressed map to the site you wanted, create a page in the Obsidian Conflict Map Database, in order to keep "registered" it. This, apart of help us follow the map progress and update, it will create you a second mirror, in case you only did one. Try always have an alternative mirror or a backup of your map in your computer, in case someday the mirrors gets offline.
The comments: How to review and listen the feedback.
1: How to make a decent review of a map.
Avoid AT ALL COST make reviews like "Thiz map Haz AniMe shit, 0/10 DO NOT PLAY" or "Is the best map ever". The map maker (and the rest of people who want play that map) need a propper review. Your comment should include the bugs, exploits and suggestions that you find/have. Keep have a good spelling. If you add pics of the bugs, it can make the feedback even more useful.
2: Listen the feedback, or how to not get mad.
The feedback, as long as they are made right and politely, should be accepted by you. In case the people critizes the gameplay, dont get angry posting comments like "if you dont like it dont play it", maybe it can help you to make your map better. Try to answer every question that the people make to you the fastest as you can.
In case you think everything has been mentionated, or you think something should be added/changed, post it.