Tuesday, June 17, 2008

Snowreal Mapping Tutorial

Today we will have a look on how to make maps for Snowreal, focusing on adding support for the Racing gametype. I'm assuming that you know the basics of the Unreal Editor as tansforming objects in your viewports and using the properties editor (check out this site for general UEd tutorials).
Before you go ahead and start UEd, open up your UTEditor.ini and tell UEd to load the Snowreal script at startup. Look for the line [ModPackages] (it's pretty far down in the text) and add this line below it: ModPackages=Snowreal. Ok, now start UEd and make or load your snowboarding map. You can of course create your own terrain from scratch, but you can also load SR-WhiteSlope and use it as a base. Just delete all the static meshes and go over the terrain with a big smoothing brush.
Ok so in order to get the racing gametype working on your map, you need to define a start and finish, as well as alot of checkpoints!
So... let's get going
Create a builder brush and in the top viewport, pull the edges to make it wider, like shown in the picture. If you wonder how you get into this geometry mode, you need to push the button next to the little camera icon on the upper left in the left toolbar.

Now, in the perspective view, pull the top polygon up so our brush gets a little more height. You don't want accidently jump over a checkpoint, do you!?

If you are satisfied with the shape of your builder brush, you are ready to make a checkpoint volume! Move your brush somewhere on the ground where you want your start point to be. Now rotate it into place and right-click the "Add Volume" button on the left, and select "SRCheckpVolume".

Move your builder brush away now, you don't need it anymore. You should see your Checkpoint Volume now. Double-click it and open the "Snowreal" tab. The CpID tells Snowreal in which order you have to pass through the checkpoints.

Checkpoint nubmer 0 is the Start, and the one with the highest number is the finish. All you need to get the racing gametype working is at least 2 checkpoint volumes, although I suggest adding more than that.
Since the checkpoint volume will be invisible to the player, you have to add some markers to let the player know where the checkpoint is. You are free to use the "Checkmarker_Mesh" object from SR-Whiteslope.
That was lots of work just for one checkpoint, right? Don't worry, for the next one we will just duplicate what we have and place it a little down the track.
To make the next checkpoint you just select both checkmarker meshes + your "SRCheckpVolume" and, in the top view, hold Alt and drag it to the side. Now press your End key to place those objects on your terrain again. Select the volume once and move it a little more into the ground. If you did everything right it should look like in the picture below. Now select your new checkpoint volume and set the CpID to.... have a guess!
The answer is... yep, 1

As you go ahead and build your track, just increase this number everytime you duplicate your checkpoint, and you're good!
Add some playerstarts at the start checkpoint, build your map, and have a try at boarding down your map! I usually use a shortcut with these parameters: "\UT3.exe SR-WhiteSlope?game=Snowreal.UTSnowreal?Timelimit=5?Goalscore=0 -useunpublished"
Just replace the "SR-WhiteSlope" with your map name. If you save your map with the SR- prefix, it will also show up in the maplist.

Here's a tip on making racing tracks: Before you focus on placing the checkmarkers really nice and pretty, make sure your map plays well. A track that ends after 15 seconds will mostly likely feel pretty short. A track where you constantly fall into lavapits, no matter how hard you try, will be frustrating for most players! Once you got the gameplay down, you can focus on adding more eyecandy and finishing your map.

Have fun mapping, and drop me a comment if you made a map for snowreal =)

1 comment:

Anonymous said...

familiar with UED tho not sure what you mean by shortcut "\UT3.exe SR-WhiteSlope?game=Snowreal.UTSnowreal?Timelimit=5?Goalscore=0 -useunpublished"

excellent mod by the way