Announcement

Collapse

The Infinity Blade Forums Have Moved

We've launched brand new Infinity Blade forums with improved features and revamped layout. We've also included a complete archive of the previous posts. Come check out the new Infinity Blade forums.
See more
See less

Preparing your map for publishing and distribution

Collapse
This is a sticky topic.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • started a topic Preparing your map for publishing and distribution

    Preparing your map for publishing and distribution

    Preparing UT3 maps for publishing and distribution.

    Updated 2008-05-16 2:41pm

    Links

    These are direct links to additional posts in this thread for faster access.
    Cooking for PS3
    Stock Map Stats
    FixupRedirects Commandlet

    Notes:

    Be sure to update your copy of Unreal Tournament 3 to the latest patch.

    1. bForceMipStreaming

    The initial release version of UT3 has an issue with blurry StaticMeshes in user maps. Update your UT3 to Patch 2 to remove this issue.
    You should not be selecting all of your map StaticMeshes and setting the bForceMipStreaming to True. Setting bForceMipStreaming to True on all of the map content may have a negative impact as that function forces all texture mips to be loaded when the level is loaded, bypassing the dynamic mip streaming. On systems with smaller texture memory pools the result may be running out of pool space.
    People who are running the initial release version and are experiencing blurry textures should just set the Texture Quality to 5. On systems with video adapters as old as ATI X800's you should see no performance loss at a Texture Quality setting of 5.

    2. Re-cook

    UT3 Patch 2 fixes a number of issues with user created maps. Optionally, mappers may wish to re-cook and redistribute their previous map(s) after installing the patch update. The main issues this affects is texture mip streaming and terrain lightmaps.

    3. Packages

    Do not use additional external packages with your map.
    Place all custom content into the Map file itself. To do this, specify the map file name as the package name, eg. "DM-Mymap". After the first build and save of your map, the map name package will then show up in the Generic Browser.
    Although you might want to put custom content into another individual package, you shouldn't since if that package goes missing the map will not play on other people's systems.
    For mappers who are creating a large amount of custom content for a totally custom map and wish to keep this separate from the map file, place the custom content into only one external package file and use the name "<mapname>_Content.upk". eg. "DM-Mymap_Content.upk".
    Moving assets between packages can create a lot of issues as it uses 'redirects'. So you can break your map if you do this haphazardly.

    4. Shader Model 2

    Video cards that only support up to Shader Model 2 will have issues running the editor and playing most maps. The ATI X1000, HD2000 and HD3000 series and NVidia 7000 and 8000 series should be fine.

    5. Some of the map settings presented below are not implemented in UT3 at this time. They are included here simply to cover all bases should those features be implemented by Epic in the future.

    6. After publishing a map multiple times you may not get a new .ini file on a new publish if you delete all of the map's files from the CookedPC\CustomMaps folder.
    The content of an .ini file should be similar to this (replace DM-Mapname with your game type and map name, and the NumPlayers entry has been added here since it usually isn't created by default):

    Code:
    [DM-Mapname UTUIDataProvider_MapInfo]
    MapName=DM-Mapname
    FriendlyName=Mapname
    PreviewImageMarkup=<Images:UI_FrontEnd_Art.GameTypes.DeathMatch>
    Description=None
    NumPlayers=2 to 8 Players

    Start Here

    These sections are meant to be completed in the order as shown on this page.
    Do not skip down to other sections unless you are familiar with what you are doing.


    1. Create your map.
    By default the map .ut3 file will be saved in the "My Documents\My Games\Unreal Tournament 3\UTGame\Unpublished\CookedPC\CustomMaps" folder.

    2. Save often. An initial save of your map is required to have some of the automatic stuff happen within the editor.
    Be sure to name your map properly or you may run into various issues. This includes a valid game type prefix (CTF-, DM-, VCTF-, WAR-) and a valid map name. Map names should only be alphanumeric characters A-Z a-z 1-0 and - and _ with no spaces.

    3. Always - always - always make backups of your map as you work. Do not rely on the AutoSave feature to always get you out of a problem.


    Setting the Author and Title

    1. Go to the View menu and choose World Properties.
    2. In the WorldInfo group, set the "Author" property to your name or nick, set the "Title" property to the title of the map. The Title property here should be your full map title such as DM-MyMap and must be the same as what you enter into the MapName line in the .ini file.

    Note: These two properties are not used in the game interface at this time.


    Setting the Game Type

    1. Go to the View menu and choose World Properties.
    2. In the WorldInfo group, set the "GameTypesSupportedOnThisMap" array to the desired game types.

    Note: This will usually set itself to the defaults for the DM game types.


    Setting the Reverb

    1. Place ReverbVolumes as required around your map. This gives the flexibility of setting room acoustics for each map area.
    If you plan on only having the one setting, you can modify the World properties for reverb.


    Setting the PostProcessing

    1. Place PostProcessVolumes as required around your map. This gives the flexibility of setting post processing for each map area.
    If you plan on only having the one setting, you can modify the World properties for post processing.


    Setting the World KillZ

    1. Go to the View menu and choose World Properties.
    2. In the ZoneInfo group, set the "KillZ" property to just below the map total play area so that anything that falls out of the world accidentally will get removed right away.

    Note: the KillZ shows up as a red line in the editor that spans across the world in Front and Side views.


    Adding the Music

    1. Load the A_Music_Arrangements package found at "Unreal Tournament 3\UTGame\CookedPC\Sounds\A_Music_Arrangements.upk" . Each music arrangement object looks like a bubble texture.
    2. Select the desired music arrangement for your map from the Tracks group. You can preview the music by playing the USound actors in the appropriate A_Music_* packages that will also load.
    3. Go to the View menu and choose World Properties.
    4. In the WorldInfo group, there should be a "UTMapInfo" or a "UTOnslaughtMapInfo" in the MyMapInfo array, this is usually automatically added when you save your map as a DM, WAR, etc. If not, add an item by clicking on the "v" button (small blue down arrow) and choose the Info type.
    5. Open the MyMapInfo.UTMapInfo or UTOnslaughtMapInfo group, add the desired music arrangement object from the A_Music_Arrangements package to the "MapMusicInfo" property.


    Do a full map Build

    We are getting ready to publish, so everything in your map should be finished and ready to play. This includes lighting, bot support, etc.

    Click on the Build All button on the toolbar.


    Do an initial Publish

    This initial publish is just to get a copy of the map into the Published folder and to create the .ini file.
    You will still need to complete additional work on the original map in the Unpublished folder.

    1. Click on the Publish button on the top right of the editor. A first run through will be done to create the additional required files for the map. Publishing will optimize the map for file size and load time.

    There should now be a <mapname>.ini and <mapname>_LOC_int.upk file in the "My Documents\My Games\Unreal Tournament 3\UTGame\Published\CookedPC\CustomMaps" folder. eg. DM-Mymap.ini and DM-Mymap_LOC_int.upk

    The .ini file contains information on your map, the _LOC file is a localization (region) file.


    Adding the Screenshot Texture

    In this section, be sure to always replace the text shown here in brackets with the actual text you will use, in other words, <mapname> means to use the actual name of your map, such as DM-Mymap.

    1. Start UT3. Choose your map from the in-game menu. If it does not show up, make sure you Published the map before doing this.

    2. Take a screenshot:
    - Set the game settings to World and Texture of 5 for best visual quality, select a resolution of at least 1024x768 or 1280x1024.
    - Set the Weapon Hand to Hidden in the Advanced options.
    - Type "showhud 0" at the console to hide the hud.
    - Type "ghost" at the console so you can go anywhere in the map.
    - Press F9 to take the screenshot. The file will be saved in "My Documents\My Games\Unreal Tournament 3\UTGame\Screenshots".
    - Load the screenshot in your paint software.
    - Adjust the brightness, contrast and intensity as desired.
    - Resample the screenshot to 512x256.
    - Save the screenshot to a .bmp or .tga file named as "map-pic-<mapname>.bmp" or "map-pic-<mapname>.tga" eg. "map-pic-dm-mymap.tga".

    Note that you can use an alternate name for the screenshot, such as MyScreenshot.bmp or whatever, the above is just following Epic's naming conventions.
    Note that you may have to edit the screenshot in photo software to raise the gamma or change the tone curve. Any near-black pixels between 0 and 32 may show as transparent in the game interface and allow the red interface background to show through, appearing as tiny red pixels all over the screenshot.

    3. Import the screenshot into your map package. Do not use a separate package for this.
    - Start UnrealEd.
    - Open your unpublished map file.
    - Import the screenshot texture into your map, specify Package = <mapname> eg. "DM-Mymap", and Group = "MapPic", and Name = "map-pic-<mapname>" eg. "map-pic-dm-mymap".
    Note that you can use an alternate Group and Name, those specified above are just to maintain the same naming system as Epic's maps.
    - Set "CompressionNoAlpha" to True, set "CreateMaterial?" to True, set "Lighting Model" = MLM_Unlit, set "LODGroup" to TEXTUREGROUP_UI and set "RGB To Diffuse" to True.
    - After the texture is loaded, right-click on it in the Generic Browser and choose Texture Viewer and set the NeverStream property to True.
    - A new Material should be created in your map package's MapPic group. It will look like the default checkerboard texture in the Generic Browser.
    - Rename the material to "MAT_map-pic-<mapname>" (ie. put the MAT_ in front of the name) and right-click and edit the material, move the Texture Sample device so that the material has changed and click on the left green check button to Apply Changes. The material should now look totally black in the Generic Browser, this is because it is unlit.
    - Select a hidden CSG Surface somewhere in your map and apply the material. Alternately, add a simple unused StaticMesh and apply the Material to the StaticMesh Material override property. This retains a copy of the material and your screenshot texture in your map package, which would otherwise be flushed out on the next Save if it wasn't actually in use on some geometry.
    - Save your map.

    4. Set up the ini file for the screenshot.
    - Edit the <mapname>.ini file that was created when you published the map.
    - Change the line:
    Code:
    PreviewImageMarkup=<Images:UI_FrontEnd_Art.GameTypes.DeathMatch>
    to read
    Code:
    PreviewImageMarkup=<Images:<mapname>.MapPic.map-pic-<mapname>>
    for example:
    Code:
    PreviewImageMarkup=<Images:DM-MyMap.MapPic.map-pic-dm-mymap>
    or
    PreviewImageMarkup=<Images:CTF-MyMap.MapPic.map-pic-ctf-mymap>
    Basically, just replace the package.group.name of the default screenshot (UI_FrontEnd_Art.GameTypes.DeathMatch) with your package.group.name (DM-Mymap.MapPic.map-pic-dm-mymap) of your screenshot.
    Of course use your actual map name and not "MyMap" as shown in these examples.

    Note: the "<" and ">" must be surrounding the entire text string from <Images: to > with your text in between these.

    5. If you have simply applied the screenshot Material to an already hidden CSG surface, then you can proceed to the next step. If you have modified the map to insert a StaticMesh or some other means of adding the screenshot Material, you may have to do a Build All first.


    The MapName and FriendlyName

    The MapName= line in the ini file will normally be the full name of your map such as DM-MyMap. This must be the same as what is in the map's WorldInfo.Title property or the map Description will not be displayed in-game.

    The FriendlyName= line in the ini file is the map name used in the UT3 menus. This can be either the full map name such as DM-MyMap or it can be just the main name such as MyMap (without the game type prefix).


    Specify the PlayerCount

    1. Go to the View menu and choose World Properties.
    2. In the MyMapInfo.UTMapInfo or UTOnslaughtMapInfo area, set the "RecommendedPlayersMin" and "RecommendedPlayersMax" properties. These are usually something like 8 min and 16 max but will vary depending on your map design.

    Note: This method isn't implemented in the game menus at this time, so also do the following.

    1. In the <mapname>.ini file add the following line "NumPlayers=<min> to <max> players".
    eg. NumPlayers=2 to 16 players

    Save your map.


    Adding the Map Description

    The map description is displayed when you pause (Esc) and choose the Map screen during a game.

    1. Edit the <mapname>.ini file that was created when you published the map.
    2. Change the line "Description=None" to the map description text eg. "Description=This is my l33t map!".

    Note: The map WorldInfo.Title and the ini MapName= must both have the identical text, ie. DM-MyMap. If the text is different between these two, the map description will not display in the game.


    Do the final Publish

    1. Click on the Publish button on the top right of the editor. Publishing will optimize the map for file size and load time.


    Distributing the Map

    1. Create a Readme.txt file for your map that lists the map name, version, author, credits, and any comments you would like to share.
    2. Create a few Screenshots of the map in .jpg format preferably between 640x480 and 1024x768 sized.
    3. Zip up the Readme.txt, Screenshot .jpgs, and the .ut3 map file and its .ini and LOC_int.upk into a zip file of the map name.
    4. Place it somewhere ready for download.
    5. Downloaded .ut3 map files are to be copied to the "My Documents\My Games\Unreal Tournament 3\UTGame\Published\CookedPC\CustomMaps" folder in order to show up in the game menus. If this folder is not currently on your system, you can safely create it.

  • replied
    thanks youuuuuuuu

    Leave a comment:


  • replied
    Anyone happen to know if paragraphs are possible in the description written inside the maps' .ini file? I'd rather not make a wall of text, without any formatting.

    If not possible, I'll just rely on the readme... :P

    Leave a comment:


  • replied
    Ok, this might sound stupid in hindsight but I was following DG's very clear tutorial on cooking for the PS3 but there was this one lil' tiny additional step I had missed that was giving me grief...

    ...I hadn't installed the PS3 tools. /facepalm.

    It was very confusing for a while because even without the tools Unreal Frontend looks like it will cook for the PS3 and kinda goes through the motions, but it won't actually work.

    Anyway, it works now. Thanks for the tutorial DG!

    Leave a comment:


  • replied
    Thanks DGUnreal, I appreciate the knowledge you have shared with me and definitely have more clarity on the subject, I hope someday I can return the favor!

    Leave a comment:


  • replied
    External packages are fine to use if the assets in them are definitely heavily shared between multiple maps within a project, otherwise for numerous reasons if there is only one map everything should be in that map. Especially for assets that relate to just that map such as TerrainMaterial and TerrainLayerSetup etc.

    Some of the reasons being: lost packages, package name conflicts with other people's projects, redirector issues, path issues, plus cooked maps contain a portion of every externally referenced asset so a significant chunk of everything in any external packages is cooked right into each map file anyway which makes the entire distributable larger if external packages are used.

    The "internal" map package is the easiest to use, simply specify the map name itself for the Package when importing assets (it can also be picked on the Package combo drop-down). A map file is essentially just a package file with a game-specific file extension anyway, so by specifying the map name for the Package all this does is import the asset into the map file itself. Group naming should also always be used to organize the content.

    Internal assets in a map file are the best because not only does it stay relevant to the file even if the map file is renamed, but if you actually rename any assets themselves or move them around groups, it doesn't create redirectors like occurs with external packages.

    Unfortunately none of the three built-in foliage systems expose a setting for DetailMode (Terrain Decolayer, TM Foliage, or FoliageFactory Volumes).
    As I mentioned you would have to manually place staticmeshes in order to get this functionality.

    Leave a comment:


  • replied
    Originally posted by DGUnreal View Post
    I would get rid of the external package anyway, unless it is a mod or tc there is no good reason to use external packages and a lot of bad reasons. A lot of gamers and server admins also won't install maps that use external packages.

    Foliage Factories etc. are supposed to cull based on detail level and distance otherwise it kills performance. The only real way around it would be to use manually placed meshes and culling volumes or possibly multiple foliage volumes. If a map is designed to rely on foliage to hide players, then the stock foliage factories won't work properly to do this.
    It is a tc and is basically just a single player map with puzzles and story but could also be a DM just for multiplayer fun, I will maybe even make the map have a co-op story mode. But you're saying that I should use the map's package to store all my custom assets? It just seemed this was the best solution for what I wanted to do. Also, I haven't really used the map's package which is the one with the same name as the map file. I was just wondering if the assets in that package will update if I change the map's name?

    I don't use any foliage factories, just the foliage meshes that are tied into the terrain materials. But I have noticed these foliage meshes don't display for low graphic settings, which I was wondering if there was a setting in the editor to change this, maybe just make the cull distance alot shorter than the high graphics settings :/

    Leave a comment:


  • replied
    I would get rid of the external package anyway, unless it is a mod or tc there is no good reason to use external packages and a lot of bad reasons. A lot of gamers and server admins also won't install maps that use external packages.

    Foliage Factories etc. are supposed to cull based on detail level and distance otherwise it kills performance. The only real way around it would be to use manually placed meshes and culling volumes or possibly multiple foliage volumes. If a map is designed to rely on foliage to hide players, then the stock foliage factories won't work properly to do this.

    Leave a comment:


  • replied
    missing assets *FIXED(kinda)*

    Originally posted by DGUnreal View Post
    Did you create all custom assets in the map package itself or did you use an external package? External packages should not be used for a number of reasons. If an external package was used and everything was later moved to the map, then there are redirector issues.
    I found out the problem and someone else pointed it out to me is that I need to set the asset to low detail mode under the mesh properties, somehow it got turned to high detail mode so it disappeared if the player had their graphics set to 1/5 for instance. I'm not sure on how to set the foliage meshes to not disappear though, I'm guessing they are hard-wired into code so that they will simply turn off if the player has their graphics set to low. Any known workaround with the foliage meshes?

    Leave a comment:


  • replied
    I am using 1 external package but have been using it in correlation to this particular map since it's induction. I have heard from another that some assets are set to high or medium when created and will only display if the computers graphics settings are at or above the the setting used on the particular asset. I will confirm this and post back when I get the results. Btw, thanks for the reply DGUnreal and I hope this redirector issue isn't what is going on. And if it was, what would I do about it? Thanks again!

    Leave a comment:


  • replied
    Did you create all custom assets in the map package itself or did you use an external package? External packages should not be used for a number of reasons. If an external package was used and everything was later moved to the map, then there are redirector issues.

    Leave a comment:


  • replied
    What do I do if assets don't show up on other computers? The bulk of them are there and display fine, but things like 1/4 decolayers or a random asset like a fence piece won't show up and are hidden. The fence is invisible but the collision is still there which is odd. Any suggestions?

    Leave a comment:


  • replied
    Originally posted by DGUnreal View Post
    I should re-write this tutorial to make some of it a bit easier to understand.

    All that the "initial publish" is doing is creating a copy of the final built map in the UTGame\Published\CookedPC\CustomMaps folder so that you can play the map in UT3 and do a screenshot capture.
    Normally, the source map will only be in the Unpublished\CookedPC\CustomMaps folder, where it won't be seen by UT3's in-game menus.
    If you wanted, you could skip the initial publish and manually copy the map file to the Published\CookedPC\CustomMaps folder so that it can be played in UT3.

    Once the Publish dialog gets down to the x errors and execution time, you can close that window and continue on with what else needs to be done.
    ooh alright i wasn't sure if it was still doing something important.
    last time i closed the unreal editor 3 program during the "publish"
    i couldn't even get the editor to open so i was just being cautious.
    thanks for the quick reply, helps me a lot
    i know you have your things to do as well
    but this is my school project, so really, TY

    Leave a comment:


  • replied
    Originally posted by feisar32 View Post
    Hi DG - if possible, I need some help here
    I haven't encountered that error before, so at this time I cannot offer any solutions.


    Originally posted by the_witness View Post
    i published my map today, figuring out that "initial publish" and "final publish" are the same buttons XD

    anyway..just wondering..how do i know when the "initial publish" is done..whats the last message i should get before i move onto "adding the screenshot texture" step
    I should re-write this tutorial to make some of it a bit easier to understand.

    All that the "initial publish" is doing is creating a copy of the final built map in the UTGame\Published\CookedPC\CustomMaps folder so that you can play the map in UT3 and do a screenshot capture.
    Normally, the source map will only be in the Unpublished\CookedPC\CustomMaps folder, where it won't be seen by UT3's in-game menus.
    If you wanted, you could skip the initial publish and manually copy the map file to the Published\CookedPC\CustomMaps folder so that it can be played in UT3.

    Once the Publish dialog gets down to the x errors and execution time, you can close that window and continue on with what else needs to be done.

    Leave a comment:


  • replied
    hello mappers! I have been following along with this thread for a few days now.
    i published my map today, figuring out that "initial publish" and "final publish" are the same buttons XD

    anyway..just wondering..how do i know when the "initial publish" is done..whats the last message i should get before i move onto "adding the screenshot texture" step

    thanks in advance for whoever responds =]

    edit: i hope this thread isn't dead >.<
    edit2: the execution of commandlet took: 22.23 seconds what should i see/do next?

    Leave a comment:

Working...
X