[Tutorial] Doubling BT maps: a quick way

 Forum Forum rules Search FAQ
Maps & Mapping
[Tutorial] Doubling BT maps: a quick way
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
RoelerCoaster
USER: MMI

i4Games Trusteei4Games Trustee
PostPosted: Fri Jan 01, 2016 20:02    Post subject: [Tutorial] Doubling BT maps: a quick way
Reply with quote

One step in making a BT map is doubling it. An annoying aspect of doubling is properly renaming all the Tag/Event/URL/etc. fields for the new base, which can be a time consuming and error-sensitive process.

With a little bit of preparation while making one side of the map, this process can be much simplified. Unfortunately this method can only be applied when making a new map, and cannot be used to double existing maps (to some extent, see side note at the end). I will show you how to do this step by step.

====

  1. Before you start making your map, pick two unique, special identifiers. These identifiers must satisfy a few properties:

    1. It must be a valid sequence of characters that could be used in a Tag
    2. It must NOT be a substring of the name of an actor, texture, sound, actor field, music, mesh, etc. Basically this means that it cannot be part of any name that may appear somewhere else one way or another.

    I tend to choose something like
    Code:
    xREDx_

    Code:
    xBLUEx_

    which appears fairly safe so far.

  2. Build your map. Whenever you add a new tag somewhere, prepend or append the first identifier to the tag. Like in the screenshot below, I added a Tag
    Code:
    LJ1A

    which now becomes
    Code:
    xREDx_LJ1A



  3. Once the map is finished on one side, save a backup somewhere just to be sure

  4. In UnrealEd, go to File -> Export...



    and save the .t3d file. (This screenshot what taken when I made BT-EotY2015, hence the file name)




  5. Open the .t3d file in your favorite text-editor. I will use Windows Notepad in this tutorial as it comes with every windows installation, but normally I would use something else.

    You will now see a lot of text like this:


    This is nothing more than your entire map: all the actors and all their properties (which differ from the default value)

  6. Go to Edit -> Replace...

    In "Find What" fill in your first identifier.
    In "Replace With" fill in your second identifier.



  7. Now click replace all and save the file

  8. Open your map in UnrealEd

  9. Go to File -> Import... and open the .t3d file we just edited.




  10. The "Import Map" dialog opens. Make sure you tick the checkbox and click OK. Importing may take a little while.

  11. You will now have a lot of selected actors. Simply drag then to your desired location for the other base.

  12. Remove the dupicated skybox(es), if you have them.

  13. You should see that no red lines connect the two bases, and all actors are properly connected in the new base.

  14. All you have to do still is:

    1. Change the team numbers of flags and player starts
    2. Change any team-related textures.
    3. Fix bugs Razz


Note: Always test your maps on both sides properly, just to be sure
====

Note: The tutorial is done here. Below is a more technical side-note based on a brainstorm I had a while back.

====

Side note:

As this tutorial shows, this method can only be applied if you already select your unique tags completely upfront, before you start the map, and it cannot be applied if the map is already made without keeping this method in mind. It would be nice if it could be applied more generally.

The .t3d file that is exported is completely plain text, and contains information of all the actors. So a naive approach would be to scan the file and simply append some postfix to every tag encountered. The only problem is that it is hard to recognize tags in this pain text. Sure, the fields "Tag" and "Event" are easy, but tags can appear in many more places, and things become worse with custom actors. This may actually work with relatively simple maps though.

You could also try to change the team numbers of player starts and flags directly as they are listed in the file as well. The only problem is that the .t3d file only contains fields that different from the default value. By default, a player start has team 0, so if your player starts are all team 0, the field does not appear in the file (you can add it manually though).

One might even want to go one step further and make a tool/script that does all this automatically (sure, doubling is not THAT much work, but I am lazy Razz). I experimented with this a while back, and I did manage to double a map automatically using a script (BT-Spacepl0x). But that script contains many little peculiarities, and is not really generally applicable as that particular map did not have many special cases, but as a proof-of-concept it worked. It probably took me longer to make the script than if I would have done the doubling by hand though Razz.

I don't really think it will ever be worth it to create an automatic map doubler, but it is just an idea I have been walking around with for a while. Perhaps the underlying ideas/brainstorm could be applied in another way, which is why I decided to share the thought.


Last edited by RoelerCoaster on Mon May 23, 2016 16:45; edited 3 times in total


p-a-w-e-l
USER: P-A-W-E-L

Godlike!Godlike!
PostPosted: Fri Jan 01, 2016 21:34    Post subject: Re: [Tutorial] Doubling BT maps: a quick way
Reply with quote

Lmao very nice post! Very Happy
Didn't know such way of doubling, despite I don't have problems with retaging every actor one-by-one. Razz Will check this out some day though.
Also recently was wondering if there is a map code written in some file. Now I do know. Smile
Btw what programming language is it? Or is it just unique editor t3d for UT maps? Rolling Eyes
About script - if you made that spaceplox script and it is working fine, then it could be used for simple maps without any problem right? Or it needs to specify something else?
And yes I agree. Doing such script could take much more time than doubling a medium-complex map. Razz Razz

Once again, awesome job.


RoelerCoaster
USER: MMI

i4Games Trusteei4Games Trustee
PostPosted: Fri Jan 01, 2016 22:12    Post subject: Re: [Tutorial] Doubling BT maps: a quick way
Reply with quote

p-a-w-e-l wrote:

About script - if you made that spaceplox script and it is working fine, then it could be used for simple maps without any problem right? Or it needs to specify something else?

Perhaps to some extend, however, it was doubled for like 95% and I still manually check everything ans it missed like 2 or 3 things. As I said, it was a proof of concept, without general applicability.


SAFeSTeR
USER: SAFECRACKER

Godlike!Godlike!
PostPosted: Sat Jan 02, 2016 10:04    Post subject: Reply with quote

Interesting, I often wondered if there was a more 'techy' way to double maps but not being clued up in this kind of thing I never experimented, nor were my maps too troublesome to double to waste time trying.

However, my current project is littered with tagged actors, particularly trigger lights, and I was never looking forward to doubling it so I will have to try this method. In the past I've noticed some actors don't duplicate when doubling, usually teleporters and trying to locate them could be difficult, so this should also be avoided.


drunklove
USER: EVOL_KNURD

PlayerPlayer
PostPosted: Tue Jan 05, 2016 00:40    Post subject: Reply with quote

I would totally use this. Only question I have is was this tested with both Word Wrap on and off? I remember having problems editing some text stuff in the past where this could be a possible problem.

SAFeCRACKeR wrote:
In the past I've noticed some actors don't duplicate when doubling, usually teleporters and trying to locate them could be difficult, so this should also be avoided.


Weird, the only time I ran into this problem was when actors(mostly decos) have bCollideWorld set to true. By default Teleporters don't have that though. :s


RoelerCoaster
USER: MMI

i4Games Trusteei4Games Trustee
PostPosted: Tue Jan 05, 2016 09:52    Post subject: Reply with quote

eVoL_kNuRd wrote:
Weird, the only time I ran into this problem was when actors(mostly decos) have bCollideWorld set to true. By default Teleporters don't have that though. :s

It also happens when bCollideWhenPlacing is true (which is the case for teleporters)
eVoL_kNuRd wrote:
Only question I have is was this tested with both Word Wrap on and off? I remember having problems editing some text stuff in the past where this could be a possible problem.

I only tested this with word wrap off, but I wouldn't know why it wouldn't work if it was turned on (unless your text editor is doing weird things). I could imagine things behave weird with Windows vs UNIX line endings. As far as I know Ued uses windows line endings, I don't know what would happen if you changed them to UNIX ones (I have seen other programs crash in the past because of this)
SAFeCRACKeR wrote:
In the past I've noticed some actors don't duplicate when doubling
...

This indeed tends to happen with duplication. Another way would be copy-pasting, but it is usually a bad idea to do this as in my experience often things go wrong when writing a complete map to clipboard, especially when it is large (wrongly referenced or corrupted actors).

This particular method should always preserve all the actors when doubling. On existing map you can simply export the map to t3d and immediately import it again without editing. This should create a copy of the base with all actors preserved. You do still have to manually edit all the actors again though.


lvkkie
USER: LVKKIE

DominatingDominating
PostPosted: Sat Jan 09, 2016 15:58    Post subject: Reply with quote

Very useful post Roel Smile. I used this method for my new map very soon. It works ALOT better then just copy-paste, recommend every mapper should do this Razz. So thanks Roel Very Happy.

SAFeSTeR
USER: SAFECRACKER

Godlike!Godlike!
PostPosted: Sun May 22, 2016 09:22    Post subject: Reply with quote

I just want to say that I used this method and it worked a treat, saved me a huge headache, so thanks Roel.

However, I did have 1 minor issue which was that 1 custom actor didn't import with the correct rotation (don't know why), but this was easily fixed.

Another thing you must remember to do after importing is delete the imported skybox, if you have one Smile

This should be a sticky thread imo.


SAFeSTeR
USER: SAFECRACKER

Godlike!Godlike!
PostPosted: Sun May 22, 2016 09:26    Post subject: Reply with quote

Oh, one other thing, I assume the import method could help when making compilation maps too?

RoelerCoaster
USER: MMI

i4Games Trusteei4Games Trustee
PostPosted: Mon May 23, 2016 16:48    Post subject: Reply with quote

SAFeCRACKeR wrote:

Another thing you must remember to do after importing is delete the imported skybox, if you have one Smile


Good point, added it to the steps.

SAFeCRACKeR wrote:

Oh, one other thing, I assume the import method could help when making compilation maps too?


That depends a bit on how you want your compilation map to be. If you want entire maps in the compilation, then the import function may indeed help. However, if you only want a few rooms per map, then it may be a bit overkill, as you cannot export only the selected actors (as far as I know).


Display posts from previous:   
Post new topic   Reply to topic All times are GMT
Page 1 of 1

 


Powered by phpBB © phpBB Group