Tuesday, March 14, 2006

Infiltration map beta

Finally released a pre-beta of my Infiltration map. Download it here. (6 MB)

Requires: Infiltration 2.9, 2.9 Bonus Pack, and TBT DesertStorm mappack.

Saturday, February 25, 2006

INF map update

I've been diligently working on my INF map, so I haven't had the time to post something meaningful here. Today's picture is the bird's eye view of my map; I want the Attackers to venture into the heart of the city, get the CD, then continue forward to the Extraction Point (rather than doubling back to their own spawn). Since the Defenders will get to the CD spot first, Attackers have to proceed with caution!

What the image doesn't show, is the hilly terrain, that creates a bit of z-axis fighting. I think the advantage goes to the Defending team, but I'll know for sure only after some alpha testing. When the alpha is ready for download, it'll be posted here.


Monday, February 13, 2006

Mapping with real dimensions in Unrealed

If you've ever mapped for a realism mod (Infiltration, Tactical Ops, Strikeforce, etc) then you're already aware of the challenges facing you, in making architecture the right dimension.

Example problem: in-game, a doorway that's 128 units high and 64 units wide, looks perfectly normal. And when you're running around, chasing or being chased by an opponent, the doorway doesn't seem too narrow. In regular UT, you may as well have a doorway that's 128 x 128, so you're not bumping into the wall all the time.

The problem is, the Player Model is only around 80 units high and 30 units wide. So in-game, a player looks tiny compared to your doorway. Not very realistic, is it? So a real door has to be around 100 units high, and 55 units wide. (In-game, it looks like you couldn't possibly squeeze through that door, but you will!)

If you're fairly new to "real-world mapping" (as I am) then you could probably use a little help in ensuring that all your architecture looks normal sized.

Here's my technique for doing a reality check on my map. I don't think I've seen this tip too often on other mapping sites, it's probably the best-kept secret. (Or maybe I don't surf enough.)

(Infiltration-specific, but I'm sure you can find similar actors in the other mods)

Open your Actor Browser, and go to:

Actor > Decoration > Carcass > UT Human Carcass > TMaleBody > INFc_SMale1Carcass

Add it to your map! It's a properly sized Player Model, and now you can compare him to your architecture (doorways, tables, beds, etc).

Here are some screenshots from the editor. I'm using grid size 8.








Sunday, February 12, 2006

Unreal Tournament - UnrealScript documentation

I was googling for some info about a UT actor, and found this nice site:

Unreal Tournament - UnrealScript Documentation

If you're into UnrealScript, this is a handy, online reference for all things Unreal and UT. Everything's clickable, so you can view the whole class tree. So for example, the LoopMover that I posted about, you can view its specific variables, as well as what it inherits from Engine.Mover.

So when you're writing your own mod or mutator, you can choose the appropriate actor and inherit from that. Or something.

The 'MyLevel' Package in Unrealed

Sooner or later, it happens to every mapper: if you're missing a Package, then when you try to view your map in the editor, you see nothing there. It doesn't mean your map is lost, you just can't see anything on the screen. You can read the whole sorry tale here, so I won't bore you with the details.

The important takeaway is, if you're going to use custom textures, sounds or music, you'll probably save yourself a lot of grief by importing as 'MyLevel' instead of trying to create a custom package.

It's the same principle you would use when importing a screenshot for your map. Use the same technique for importing .pcx files (texture), .wav files (sound) or .it files (music). If everything is imported as 'MyLevel' then players won't have to install any outside packages.

There are exceptions to the above; if you're making a texture package for the whole community to use, then you have to create a custom .utx package. And musicians want their music to reach the widest possible audience, so it would make sense to create a .umx package.

But in my case, I just have some one-of's that probably won't be useful to anyone else. So I'll keep everything in 'MyLevel' for now.

Learn from my mistake! :)

Saturday, February 04, 2006

In defense of Terra Edit

About a month ago, I read a great tutorial by Silver Ibex, about using Terragen for Unreal terrain building. You also need 3D Studio Max, or Milkshape and TrueSpace, to get an ASE file which can be converted to an Unreal brush (using the ASE to T3D converter).

If you want something quick and dirty, there's always Terra Edit. All you need is an 8-bit, grayscale image (topographic map), import it into Terra Edit, smooth it out, tweak, then export as .t3d . Then it's ready for use in Unrealed.

Sample topographic map

Use your favorite graphics program (I use Photoshop) to grayscale it and save as an 8-bit, .bmp file. The image must be 256 x 256 pixels. Terra Edit will tell you if your image format is not correct. The lighter areas represent higher elevation, and the darker areas represent lower elevation. So you may need to inverse your image before importing into Terra Edit.

Jaspos' great Terra Edit tutorial

He recommends using a grid scale of 64, to reduce the number of faces (polys). The smaller the grid scale , the more faces you end up with, raising the poly count. But I'm going to try my luck with 32.

Download Terra Edit (small .exe file, needs no installation)

One more tip: when you import the brush into Unrealed, it's going to be quite small. You can right-click on the brush, to view its Properties. Go to Brush > MainScale > Scale, and change the X, Y and Z scale. To get nice, smooth terrain, make the X and Y really large (like 32) and increase the Z by only 4. Experiment a bit, to see what looks nice in-game.

Wednesday, February 01, 2006

Compass points in INF Unrealed



Any mapper can easily figure this out, but I just saved you ten minutes. :p

The above screenshot shows how compass points are determined in INF Unrealed. So when you place your locationid's, you can be more specific, e.g. "Northwest Tower" or "Southern hills." Or in your Game Objective Message, you can say stuff like "Head South to grab the laptop."

Infiltration 2.9 EAS Mapping Guide

A big thank-you to Alpha_9 and RaekwoN, for posting The official EAS Mapping Guide. It's very easy to follow, and gives you all the info on INF specific actors. If you have any questions about the Guide, visit the Infiltration Development Forum, and post there. I made a simple CD-extraction map just to test things out, so if you want a copy of it you can email me at smeerkat (at) gmail (dot) com. It's basically a straight line to the laptop, then back to the humvee for extraction.

Small update on my map: I have around 200 images of a dozen locations, so I'm going through them and choosing the ones that I'll use in my map. I'm going to use some textures from the Desert Storm Mappack, and I've already created a custom sound for ear candy. Next step is to plan the layout, i.e. where to put the laptop, extraction point, attackers' spawn point, and defenders' spawn point. I'll probably use graph paper to measure the routes. Since the map objectives are simple, I'm going to spend a lot more time on the architecture, providing interesting combat arenas.

Tuesday, January 31, 2006

UT Mapping Tutorial - Loop Mover

This tutorial presumes that you already know how to make a basic Mover in UT. For example, a simple lift that goes up then comes back down (2 keyframes, 0 and 1 only). If you don't know how to make a basic Mover, check out this awesome tutorial first: Lode's Mover Tutorial. (Please let me know if that web page ever disappears, but I don't think it will because it's too awesome.)

Now that I'm making a map for Infiltration, I'd like to have a mover that has many keyframes, not just two. For example, a Humvee that travels along different roads, like a patrol. I just figured it out today, so bear with me if I don't have all my facts straight. So let's say I want the vehicle to have 4 keyframes, traveling a square-shaped route. And I want it to keep patrolling, not just once.

That's where the Loop Mover comes in.

A Loop Mover will go to keyframe 1, then 2, then 3, then 0. It will not go like a typical Mover, i.e. 1, 2, 3, 2, 1, 0...

What was screwing me up, was the following: I'd build my Mover, switch keyframe to 1, place it in my new position, then switch keyframe to 2. But the Mover would go back to 0!

When the Mover goes back to 0, go into Mover Properties and expand the Mover category. Where it says 'KeyNum', make that a '1' then close the window. Now your Mover will be at keyframe 1. Switch keyframe to 2, and place the Mover where you want the next keyframe to be. Then switch keyframe to 0, and go back into Mover Properties and set 'KeyNum' to 2. Finally, switch keyframe to 3, and place the Mover at the desired location. Then switch to 0.

But we're not done yet! A Loop Mover must be activated by a Trigger, so you need to add a Trigger in your map. The Trigger's Event should match the Mover's Tag. Give this a meaningful name! In an INF map, you'll likely have lots of Triggers, so meaningful names will be easier to find in the long run. I just used a Timed Trigger, so at the beginning of the round the Loop Mover will start. Then it will loop forever.

Important: In the Loop Mover Properties, you must set Object > Initial State = LoopMove .

StayOpenTime: how long (in seconds) your Mover will rest at each keyframe. Default value is 4 seconds, I reduced mine to 1. I'm sure it will take decimals, so you may want to go lower than 1.

bDynamicLightMover: you probably want to set this to True, but it depends on where your Loop Mover is traveling through. In an outdoor map, where the lighting should be fairly homogeneous, it's not a big deal. But if you're going from light to dark to light, you might want to set this to True.

Check out the screenshot below: