PDA

View Full Version : Tutorial: An entire (very basic) UDK game



Hourences
11-12-2009, 06:50 AM
http://www.toltecstudios.com/theball/tutorialudk.htm


# How to set up the folders for your game.
# What to add to source control (SVN and others).
# Setting up and compiling Unrealscript.
# Creating a super basic third person game.
# How to configure the ini files.
# How to build a super basic level.
# How to make a super basic menu with a button and a label.
# How to add basic localization support.
# How to cook the game.
# How to package and distribute the game.

I wrote the entire thing in one long session, it was a bit of a long day and I may have missed some things here or there. Let me know if you stumble onto something.

This is not a development tutorial per-se. The focus is mainly on how to quickly set everything up for your own game and give you a basic introduction to all the elements involved in making a UDK game. The UDN has dozens of great tutorials for more in-depth information.

The tutorial has been written with people in mind who know pretty much nothing about Unreal, and can't program. It is basic.

Denny
11-12-2009, 07:10 AM
Good work Hourences, I bet a lot will find this useful.

DragonSpawn
11-12-2009, 07:16 AM
The link to the zip file with the scripts only links back to the tutorial page.

Hourences
11-12-2009, 07:26 AM
The link to the zip file with the scripts only links back to the tutorial page.
Fixed it, thanks. Forgot a = behind a href :)

strangelet
11-12-2009, 07:49 AM
as one of our team members so aptly put it this morning,

You're So Awesome We Hate You :)

nice work man, thanks!

chrustec
11-12-2009, 07:53 AM
Thats an awesome tut Hourences, thanks for that :) Its definatly helped

Imperious
11-12-2009, 08:49 AM
This thread needs a sticky.

I'm totally new to Unreal and this info took me ages to find, understand and build something similar to what this tutorial covers in minutes.

Love your website and the rest of your tutorials there (my artist friend has been going though them a lot!). Keep them up!

Kaldrick
11-12-2009, 08:53 AM
I did exactly everything that you said, but still when I try to build it on PC, or launch it by UDK- game I'm getting an UT3 style of game, and not mine.

Hourences
11-12-2009, 09:03 AM
You have the right prefix, the compiled U file, and the gametype change in the ini file? Verify for typos and such.

The game in the tutorial is still UT3, but it is third person. If you have a third person game you did it correctly.

wildicv
11-12-2009, 09:11 AM
Having a problem when i click the button. It dosent open the next level. It gets stuck on the loading screen.

Kaldrick
11-12-2009, 09:17 AM
Aye, verified it several times before I submitted post here. And yes, the problem is that I'm still getting a FP view.

Jagnot
11-12-2009, 09:19 AM
Dang Hourences, thanks for the tutorial!

Hourences
11-12-2009, 09:24 AM
Having a problem when i click the button. It dosent open the next level. It gets stuck on the loading screen.

Make sure the level is in the right directory. Make sure you typed the name right in console command. Make sure the level has a unique name and contains no spaces or non standard characters.

Read the log file to find out what it is doing while it hangs on the loading screen. I will add that log file mention to the tutorial.

Hourences
11-12-2009, 09:27 AM
Aye, verified it several times before I submitted post here. And yes, the problem is that I'm still getting a FP view.

MG-yourlevelname?

Did the gametype show up correctly in a Play In Editor session?

If you editted a ini file while the game or editor were running it will not take your changes into account. Make sure you did not forgot to delete the UTGame.ini either.

InCharacter
11-12-2009, 09:59 AM
Great work Hourences! I'll be trying this one later.

- Jared

EyeKon
11-12-2009, 10:11 AM
It works with Play In Editor and launching the map with the frontend. But Play on PC has the First person view.

InCharacter
11-12-2009, 10:17 AM
Linked to BeyondUnreal Wiki.

Hourences
11-12-2009, 10:23 AM
UTGame\Config\UTGame.ini

[Engine.GameInfo]
DefaultGame=MyGame.MyGameInfo

Make sure you have that. Verify.
Also check if you don't have that line twice.

The menu level will show up as first person. That is normal and ok. The actual playable level should be third person.

Kaldrick
11-12-2009, 10:26 AM
I've verified all of that and still I've got first person view. Maybe it's another bug within UDK?

wildicv
11-12-2009, 10:27 AM
Hello Hourences ive figured out you cant change levels using the open command with kismet if you arnt using the scripts you provided. I have my main script which extends GameInfo and when i try to go to a simple level it locks up saying. "Accessed None ' AccessControl' Main TestBed.TheWorld:PersistenLevel.Main_0 Function Engine.GameInfo:Login:0358" No clue what it means. I was also curious if you knwo the legality of distributing a commercial game if you extend the UT Scripts.

So is it legal to extend the UT Scripts for use in a commercial game?

Hourences
11-12-2009, 10:28 AM
No it must be something simple somewhere. This kind of stuff doesn't break.

Feel free to email me (me@hourences.com), or post here, the log file after having ran the game, entered the menu, and loaded the level.

UTGame\Log\Launch.log


you cant change levels using the open command with kismet if you arnt using the scripts you provided.
The Open command should always work as far as I am aware, it's nothing fancy.

Advoc
11-12-2009, 10:29 AM
Just a little typo here, no big deal,
Under Unrealscript and the .ini files subheading:

Next up, we are going to make the game uses our new gametype and pawn as the default ones.

I'm assuming you mean "make sure the game uses our new gametype...."

wildicv
11-12-2009, 10:32 AM
Here is the launch.log http://pastebin.com/f376df083
Here is the launch_2.log http://pastebin.com/f23212b3b

Hourences
11-12-2009, 10:39 AM
Thanks Advoc.

wildicv is your menu level called Testbed2, and your playable level Testbed? Because that one has no MG- prefix.

wildicv
11-12-2009, 10:42 AM
Yes TestBed2 is my menu and TestBed is my map. As i mentioned above im attempting to not use your scripts. My only script is my main which looks like this.


class main extends GameInfo;
DefaultProperties
{

}

I have also tried modifying the open command as follows


open TestBed.udk?game=DeathTouch.main

InCharacter
11-12-2009, 10:47 AM
If you look at Hourences' game info script, the default properties specify map prefixes, which control is used for the player, etc. You might just try adding in the prefix information into your script and see if that helps? I know you have removed all the UT scripts but if you still have them around, you could try deriving from UTDeathMatch and see if that helps as well. Just for a test.

- Jared

Hourences
11-12-2009, 10:48 AM
class MyGameInfo extends UTDeathmatch;

defaultproperties
{
Acronym="MG"

MapPrefixes.Empty
MapPrefixes(0)="MG"

DefaultMapPrefixes.Empty
DefaultMapPrefixes(0)=(Prefix="MG",GameType="MyGame.MyGameInfo")

PlayerControllerClass=class'MyPlayerController'
DefaultPawnClass=class'MyPawn'

Name="Default__MyGameInfo"
}

wildicv
11-12-2009, 11:00 AM
Yes I do have the UT scripts still on my computer. But I'm trying to get the same results without extending any UT script. if I extend the UT script it works flawlessly but trying to so the same without UT scripts.

Mischa_Silden
11-12-2009, 11:06 AM
Hi!
When I try to make the full compile thing I get an error. Here is my log:



[COMMANDLET 'UDK.exe make -full' STARTED IN ''] marraskuu 12, 5:38

Init: Version: 5860
Init: Epic Internal: 0
Init: Compiled (32-bit): Oct 30 2009 13:16:54
Init: Command line: -full -DEFENGINEINI=..\..\UTGame\Config\DefaultEngineUDK. ini
Init: Base directory: C:\UDK\UDK-2009-11\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class UnrealEd.MakeCommandlet
--------------------Core - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\Core.u'
--------------------Engine - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\Engine.u'
--------------------GameFramework - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\GameFramewor k.u'
--------------------UnrealEd - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UnrealEd.u'
--------------------UnrealScriptTest - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UnrealScript Test.u'
--------------------IpDrv - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\IpDrv.u'
--------------------Virgonix - Release--------------------
Analyzing...
Error, Superclass UTDeathmatch of class VirgonixInfo not found
Error, Superclass UTPawn of class VirgonixPawn not found
Error, Superclass UTPlayerController of class VirgonixPlayerController not found
Compile aborted due to errors.

Warning/Error Summary
---------------------
Error, Superclass UTDeathmatch of class VirgonixInfo not found
Error, Superclass UTPawn of class VirgonixPawn not found
Error, Superclass UTPlayerController of class VirgonixPlayerController not found

Failure - 3 error(s), 0 warning(s)
Execution of commandlet took: 11.98 seconds

[COMMANDLET 'UDK.exe make -full' FAILED] marraskuu 12, 5:39


Here is my path to the classes folder:


C:\UDK\UDK-2009-11\Development\Src\Virgonix\Classes


And here are the scripts:

VirgonixInfo.uc


class VirgonixInfo extends UTDeathmatch;

defaultproperties
{
Acronym="MG"

MapPrefixes.Empty
MapPrefixes(0)="MG"

DefaultMapPrefixes.Empty
DefaultMapPrefixes(0)=(Prefix="MG",GameType="Virgonix.VirgonixInfo")

PlayerControllerClass=class'VirgonixPlayerControll er'
DefaultPawnClass=class'VirgonixPawn'

Name="Default__VirgonixInfo"
}

VirgonixPawn.uc


class VirgonixPawn extends UTPawn;

simulated function bool CalcCamera(float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV)
{
local vector start, end, hl, hn;
local actor a;

start = Location;

if (Controller != none)
{
end = Location - Vector(Controller.Rotation) * 192.f;
}
else
{
end = Location - Vector(Rotation) * 192.f;
}

a = Trace(hl, hn, end, start, false);

if (a != none)
{
out_CamLoc = hl;
}
else
{
out_CamLoc = end;
}

out_CamRot = Rotator(Location - out_CamLoc);
return true;
}

defaultproperties
{
Begin Object Name=WPawnSkeletalMeshComponent
bOwnerNoSee=false
End Object
Name="Default__VirgonixPawn"
}

VirgonixPlayerController.uc


class VirgonixPlayerController extends UTPlayerController;

event Possess(Pawn inPawn, bool bVehicleTransition)
{
Super.Possess(inPawn, bVehicleTransition);
SetBehindView(true);
}

defaultproperties
{
Name="Default__VirgonixPlayerController"
}


And yes, I have added the +EditPackages into the DefaultEngine.ini


[UnrealEd.EditorEngine]
EditPackagesOutPath=..\..\UTGame\Script
FRScriptOutputPath=..\..\UTGame\ScriptFinalRelease
+EditPackages=Virgonix
+EditPackages=OnlineSubsystemLive
+EditPackages=OnlineSubsystemPC
+EditPackages=UTGame
+EditPackages=UTEditor
+EditPackages=UTGameContent
;ModEditPackages=MyMod
AutoSaveDir=..\..\UTGame\Autosaves
InEditorGameURLOptions=?quickstart=1?numplay=1

And the UTGame.ini Engine.GameInfo looks like this:


[Engine.GameInfo]
DefaultGame=Virgonix.VirgonixInfo
DefaultServerGame=Virgonix.VirgonixInfo
bAdminCanPause=false
MaxPlayers=32
GameDifficulty=+1.0
bChangeLevels=True
MaxSpectators=2
MaxIdleTime=+0.0
MaxTimeMargin=+0.0
TimeMarginSlack=+1.35
MinTimeMargin=-1.0
TotalNetBandwidth=32000
MaxDynamicBandwidth=7000
MinDynamicBandwidth=4000
PlayerControllerClassName=UTGame.UTPlayerControlle r


As long as I'm aware, there is no errors in the filenames.

Help me please, what have I done wrong?

Kaldrick
11-12-2009, 11:09 AM
http://pastebin.com/pastebin.php?dl=m3b7e90d1 <= Launch.log

Hourences
11-12-2009, 11:13 AM
Mischa_Silden stripped version? It dies because the Mygame code is dependent on UTGame, and you don't seem to have that?

Kaldrick: "EtR-Level1", did you change the prefix in the gametype uc file? If you haven't, then ERT means nothing to the engine and it falls back on UT Deathmatch.

EyeKon
11-12-2009, 11:14 AM
It works with Play In Editor and launching the map with the unrealfrontend.exe. But "Play on PC" has the First person view.

I got it to work using "Play on PC" button by actually creating the menu. I didn't do that part of the tutorial because I wasn't at a stage were I needed a menu.

I wonder why trying to run the level through "Play on PC" without the menu didn't work?

wildicv
11-12-2009, 11:14 AM
Mistch what is the error

Kaldrick
11-12-2009, 11:25 AM
Mischa_Silden stripped version? It dies because the Mygame code is dependent on UTGame, and you don't seem to have that?

Kaldrick: "EtR-Level1", did you change the prefix in the gametype uc file? If you haven't, then ERT means nothing to the engine and it falls back on UT Deathmatch.

I'm not that dumb ;P

Mischa_Silden
11-12-2009, 11:34 AM
Hourences, no, I don't use the stripped version.
I did a fresh UDK install before I started working along with your tutorial.
I double checked, the UTDeathmatch and all the other stuff are still intact in the "C:\UDK\UDK-2009-11\Development\Src\UTGame\Classes" folder

EDIT:
I got it working by moving the "+EditPackages=Virgonix" under the "+EditPackages=UTGameContent" line in the "DefaultEngine.ini"
(It was above the "+EditPackages=OnlineSubsystemLive" line before.)

xcarface
11-12-2009, 12:20 PM
Hourences, you rock! thanks for this outstanding tutorial!

Mischa_Silden
11-12-2009, 12:52 PM
In your tutorial you say this:


Now hook this event into your level. Open the Level Kismet (green K in the top toolbar), and somewhere in the empty space add New Action - UI SceneS - Open Scene. Hook it up to Level Startup (New Event - Level Startup). And add the UI Scene you made to the properties of the Open Scene.

But how am I supposed to do that "And add the UI Scene you made to the properties of the Open Scene."?
The tutorial doesn't say that :/

EDIT
Never mind, I already found out.

mixedmeters
11-12-2009, 03:49 PM
Noob question: how do you open unrealscript?

steph
11-12-2009, 03:50 PM
Open With a texteditor.

twenty1
11-12-2009, 04:17 PM
thanks for this post man

micahpharoh
11-12-2009, 05:14 PM
While following the tutorial I got to the part where you click "Full Recompile" inside the Unreal Frontend. When I do, it seems to go well, but look at he warning I get at the end



[COMMANDLET 'UDK.exe make -full' STARTED IN ''] November 12, 4:08 PM

Init: Version: 5860
Init: Epic Internal: 0
Init: Compiled (32-bit): Oct 30 2009 13:16:54
Init: Command line: -full -DEFENGINEINI=..\..\UTGame\Config\DefaultEngineUDK. ini
Init: Base directory: C:\UDK\UDK-2009-11\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class UnrealEd.MakeCommandlet
--------------------Core - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\Core.u'
--------------------Engine - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\Engine.u'
--------------------GameFramework - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\GameFramewor k.u'
--------------------UnrealEd - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UnrealEd.u'
--------------------UnrealScriptTest - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UnrealScript Test.u'
--------------------IpDrv - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\IpDrv.u'
--------------------OnlineSubsystemPC - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\OnlineSubsys temPC.u'
--------------------UTGame - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UTGame.u'
--------------------UTEditor - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UTEditor.u'
--------------------UTGameContent - Release--------------------
Analyzing...
Scripts successfully compiled - saving package 'C:\UDK\UDK-2009-11\Binaries\Win32\..\..\UTGame\Script\UTGameConten t.u'
--------------------MyGame - Release--------------------
Warning, Can't find files matching C:\UDK\UDK-2009-11\Binaries\Win32\..\..\Development\Src\MyGame\Cla sses\*.uc

Warning/Error Summary
---------------------
Warning, Can't find files matching C:\UDK\UDK-2009-11\Binaries\Win32\..\..\Development\Src\MyGame\Cla sses\*.uc

Success - 0 error(s), 1 warning(s)
Execution of commandlet took: 20.22 seconds

[COMMANDLET 'UDK.exe make -full' SUCCEEDED] November 12, 4:09 PM




I cannot move on because of the missing .uc file. When I try to move on to the next step with the editor -log on the shortcut it promptly tells me to recompile. I click the button that pops up, and this time when it gets to the warning it doesn't move on.

Any help?

Hourences
11-12-2009, 05:22 PM
You have the three UC files that were in the zip file in Development\Src\MyGame\Classes\ right?

micahpharoh
11-12-2009, 05:23 PM
You have the three UC files that were in the zip file in Development\Src\MyGame\Classes\ right?

yep. I tried changing them, but that didn't work, so I directly copied them without any changes.

It's supposed to create that file itself, isnt it?

Hourences
11-12-2009, 05:32 PM
You didnt change them too much?
The files work, you must have them in the wrong dir, or with the wrong name, or modified them?
Get the zip again, and extract them again to be sure?

micahpharoh
11-12-2009, 05:36 PM
Yep, gone through 3 times now. 2 times with the exact files you gave. Same problem each time.

I also just checked and saw that MyGame.u isn't being created in \UTGame\Script either

Solid Snake
11-12-2009, 05:59 PM
I do not understand why people are trying to subclass from the 'pure' classes such as GameInfo so early on.

Subclassing from these pure classes has a role in development I agree, but only do this when you know how things work. Otherwise you're just putting on extra weeks or months unnecessarily reinventing the wheel.

Sure the UT3 has a lot of code, but it's not like code runs slower because more is written, code that isn't run isn't taking up resources.

The UT3 code can be used and distributed with your commercial UDK projects.

Oldhair
11-12-2009, 06:29 PM
Firstly thank you for the tutorial it helped me quite a bit.

I was wondering if you could post an updated version of your pawn class file with comments specifically on how you got it to be third person. I would like to be able to modify where the camera is in relation to the character and the aim of it.

Hourences
11-12-2009, 06:31 PM
That is up to Solid Snake to do. He wrote the uc files. I am a horrible programmer myself actually :)

Lost Haven
11-12-2009, 06:44 PM
Thanks , Hourences . You have been like a back bone support for ut3 modders . It is is good to see well rounded professional's to give advice and tutorial's . I know you will be a great deal of help to the new udk community .

byteasc
11-12-2009, 07:07 PM
Hello Hourences ive figured out you cant change levels using the open command with kismet if you arnt using the scripts you provided. I have my main script which extends GameInfo and when i try to go to a simple level it locks up saying. "Accessed None ' AccessControl' Main TestBed.TheWorld:PersistenLevel.Main_0 Function Engine.GameInfo:Login:0358" No clue what it means. I was also curious if you knwo the legality of distributing a commercial game if you extend the UT Scripts.

So is it legal to extend the UT Scripts for use in a commercial game?

That Accessed None is present in original UDK code, assuming has to do with the Gamespy interface not being present.

And it has been said by Steve Polge that using the art isn't legal, but using scripts is.

insomnia3d
11-12-2009, 07:09 PM
thanks for tutorials. realy helpfull

WOBBLER
11-12-2009, 08:23 PM
Thank you.

Solid Snake
11-12-2009, 09:56 PM
That is up to Solid Snake to do. He wrote the uc files. I am a horrible programmer myself actuallyWill post a comment tonight to explain it a bit.

Swordy
11-12-2009, 10:14 PM
Thanks for this tutorial, I found it helpful.

I think it's a little strange that you setup a whole new camera positioning system, instead of just using SetCameraMode('ThirdPerson') in the PlayerController though?

Xero
11-12-2009, 10:27 PM
Yay Hourences comes bears gifts of tutorials which are full of awesomeness and WIN!
Thank you. :]

TheAgent
11-12-2009, 10:47 PM
How would u make it so you can save the game? and also load it? Also how would i make a options menu and it make it so you can modify the settings?

micahpharoh
11-13-2009, 01:37 AM
Well, I finally got past that. idk how, but I did it the same way a few more times and it worked O.o

I got stuck when I tried to run the game after the "Ini Files - More Fun," but that's ok for now.

xcarface
11-13-2009, 02:21 AM
Hourences, while going through the tutorial that you provided, I got to the Level part of the tutorial. I create the shortcut and add editor -log like it says but as soon as I double click the shortcut a command prompt pops up and starts generating/loading files Half way into it after this entry:

Log:FactoryCreateBinary: Texture2d....................................\Btn_ ShowAll.tga

I get this error:
Critical: appError Called: Assertion failed: LastOfficialMutatorIndex < sizeof(int) * 8 [File: c:\depot\UnrealEngine3\Development\Src\UTGame\Src\ UTUI_DataStores.cpp] [Line: 1553]

Stack: Address 0x0 <filename not found>

Critical: Windows GetLastError: The specified module could not be found. <126>

Any ideas why this error happened? Thanks in advance!

EDIT:
I fixed this error. I made the mistake to make a backup of all the *.ini files the tutorial said to delete inside UTGAME\CONFIG folder. So I deleted these files and UDK starts just fine.

Sir_Brizz
11-13-2009, 03:39 AM
UE3 reads all ini files in the Config folder, regardless of their name.

Mithrandir0x
11-13-2009, 03:51 AM
Great tutorial, Hourences. I've done everything in your tutorial and I worked like a charm, but I've found that when packaging the game, if you don't write a diferent game name and long game name than the ones used by default, it doesn't let you package the game.

Thank you for this great tutorial.

Hourences
11-13-2009, 06:20 AM
Yay Hourences comes bears gifts of tutorials which are full of awesomeness and WIN!
Thank you. :]

At this rate my website will be down in a week though :)
My bandwidth is well over 50% of its budget already and rising with 6% a day.
The Ball website is on a different host though, more bandwidth left on that one.

I will see later how to fix...

wildicv
11-13-2009, 08:34 AM
I do not understand why people are trying to subclass from the 'pure' classes such as GameInfo so early on.

Subclassing from these pure classes has a role in development I agree, but only do this when you know how things work. Otherwise you're just putting on extra weeks or months unnecessarily reinventing the wheel.

Sure the UT3 has a lot of code, but it's not like code runs slower because more is written, code that isn't run isn't taking up resources.

The UT3 code can be used and distributed with your commercial UDK projects.

Thanks this is what i wanted to know if the code can be used commercially.

InCharacter
11-13-2009, 08:36 AM
I made the mistake to make a backup of all the *.ini files the tutorial said to delete inside UTGAME\CONFIG folder. So I deleted these files and UDK starts just fine.


UE3 reads all ini files in the Config folder, regardless of their name.

Note, as far as I know it only reads .ini files. I backed mine up by just renaming them to .ini_backup. It worked fine.

Solid Snake
11-13-2009, 08:52 AM
Thanks for this tutorial, I found it helpful.

I think it's a little strange that you setup a whole new camera positioning system, instead of just using SetCameraMode('ThirdPerson') in the PlayerController though?The point was to demonstrate how game info, player controller and the player pawn linked together, not so much on the camera mode.


simulated function bool CalcCamera(float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV)
{
local vector start, end, hl, hn;
local actor a;

start = Location;

if (Controller != none)
{
end = Location - Vector(Controller.Rotation) * 192.f;
}
else
{
end = Location - Vector(Rotation) * 192.f;
}

a = Trace(hl, hn, end, start, false);

if (a != none)
{
out_CamLoc = hl;
}
else
{
out_CamLoc = end;
}

out_CamRot = Rotator(Location - out_CamLoc);
return true;
}


This function is called within Camera which is attached to the PlayerController. It allows the controller's pawn to control how the camera is positioned and rotated to give more context sensitive control. Do a search for this function to see it yourself.

I first try to use the Controller's rotation to shoot a trace out from the pawn. While you could just use the rotation stored within Pawn, it doesn't keep the pitch rotation value within its rotation so if the player was to look up or down it wouldn't reflect those changes. I shoot a trace to see if the ray would intersect the world or other actors. If it does then I set the camera output location to the hitlocation of the trace, if the trace doesn't collide with the world then the end point of the trace is ok to use as the camera location.

I then do a vector subtraction between the new camera location and the pawn location to get another vector which I can then convert into a rotator to define the camera rotation. This is commonly used to get actors to look at each other, or to look in the same direction.

I return true to confirm that this function has provided camera location and rotation to the Camera. If I returned false, the camera location and rotation I have set here would have been ignored.

thelaw
11-13-2009, 10:02 AM
Thanks a lot for this, exactly what I was looking for and works like a charm.

wuren
11-13-2009, 10:23 AM
Cool! I like it!!

Allar
11-13-2009, 10:30 AM
Cheers, dawg, cheers.

fallingbrickwork
11-13-2009, 11:19 AM
This is a cracking tutorial, many thanks. Seeing how script are connected was a great help to me.

Regards,
Matt.

Shakey
11-13-2009, 12:01 PM
Hi I hope I am doing this right when I launch the game this is what I see. It comes up with this first

http://www.xtremeware.net/picts/One.jpg

Then my level after hitting the button in the middle of the screen

http://www.xtremeware.net/picts/Two.jpg

Am I doing something wrong, isn"t the level suppose to just come up, please fill me in. This is right before the cooking section.

InCharacter
11-13-2009, 01:08 PM
Actually I think you got it right. :) Though I don't remember if the internationalization section was before that or not. If you haven't done the internationalization portion then above is what you would get.

- Jared

hide
11-13-2009, 07:16 PM
aaah nice Shakey.
I can't make the button appear at start of the game.

I think that's cause i may have mixed on what map should I add the kismet.
The [kismet=>console command] is in ExampleGameFrontend,
And there is nothing in ExampleGameLevel.

Am I doing it wrong ? What is making that button appear ?
And also why should we have two different (but similar) maps ?

TheOneKnownAsMe
11-13-2009, 07:16 PM
Very nice tutorial, thank you very much.

Solid Snake
11-13-2009, 10:20 PM
Not sure about that part. I only wrote the accompany unrealscript. I tested everything via the console.

thelaw
11-14-2009, 06:46 AM
aaah nice Shakey.
I can't make the button appear at start of the game.

I think that's cause i may have mixed on what map should I add the kismet.
The [kismet=>console command] is in ExampleGameFrontend,
And there is nothing in ExampleGameLevel.

Am I doing it wrong ? What is making that button appear ?
And also why should we have two different (but similar) maps ?

Your UI map's kismet should have a "Level Loaded" event whose "Loaded and Visible" output should point to an "Open Scene" action. The "Open Scene" action should then have its Scene property set to the UI scene that has the button.

Hourences
11-14-2009, 06:51 AM
And you have two different levels because a menu is never the same level as the actual level? If you want to play UT3, you don't end up in Deck16 right away either? The two levels you made may look identical right now, just cubes, but as soon as you start building real and proper levels you will see why you need two levels.

If you want to make a game that has no menu, and that makes you end up in your level right away simply define that real level in the ini file instead as the startup level.

hide
11-14-2009, 07:52 AM
And what if I just want a simple menu without 3D background, just deleting all of the map is okay ? I should try that. But that look good for an ingame UI (inventory..). Still i don't see why the two maps contain the actual map. Isn't a map, 3D and everything i can walk on, and another with only the UI more lightweight ?

I still can't manage to make that menu appear, here's what i did :
http://uppix.net/8/8/e/0fdc34229cb2890e2f34cf064cad9tt.jpg (http://uppix.net/8/8/e/0fdc34229cb2890e2f34cf064cad9.html)
http://uppix.net/0/b/d/7e2215a153327a6c90bf881033240.jpg (http://uppix.net/0/b/d/7e2215a153327a6c90bf881033240.html)
Not working. Should i mention i called "MyGame" as "MyMod" ? Everything else is as said in the tutorial (for what i managed to do right).

EDIT : ok works with "udk.exe ?game=mymod" i have the big button but does nothing when i click on it. When i press [Esc] it goes away.

wildicv
11-14-2009, 03:00 PM
I'm making a video tutorial of this tutorial it will be available monday.

Literati
11-14-2009, 11:28 PM
Very nice tutorial, thank you very much.

I don't know if it's been mentioned in here yet, but the only way I could get my code to compile was to uncomment the ;ModEditPackages=MyGame.

It appeared as though +EditPackage=MyGame didn't affect the compilation process at all. I scanned through the tutorial text several times to see if it mentioned this and could find nothing.

Is this the proper functionality? I mean did I miss something else that would make using only +EditPackages=MyGame result in successful compilation? I guess I shouldn't say successful compilation, as it's never even trying to be compiled.

Oh well, in any event it seems to be working, so I guess that's all that matters?

Hourences
11-15-2009, 03:07 AM
Literati both should work afaik. The order of the lines is also important. Also try doing a full compile.

Wildicv, credit at least would be nice... Only thing I get out of spending all this time for this is publicity, if people go duplicate it or redo it there's not much point for me to continue.

Hide you can't delete the map, it is a cube anyhow. Hardly worth calling it a map. You need to spawn the player somewhere, so yes you need a cube for that or something similar.
The map is lightweight. It is a cube...
A menu is never the same as an actual level. You don't start in Deck16 right away either when you fire up UT3 do you. You start in the UT Frontend which is a level with a menu blended on top, and that in turn loads Deck16 or whatever other level. This tutorial made you do the same thing.
You may have forgotten the console command.

wildicv
11-15-2009, 10:50 AM
Hourences don't worry man I explain at the beginning of the video that I didn't make the tutorial I just made the video version and also mention again at the end you made it. The title of the tutorial is Hourences's tutorial video version. Even the game name is Hourences Tutorial.

I do give you credit. But I completely understand your worry that I wouldn’t credit you I myself have had some tutorials that were reproduced and credit taken from me.

soup980
11-15-2009, 11:09 AM
ok, so i downloaded and installed UDK. and everything is there except the Unreal Development Kit. i found something in there that said UDK so i clicked on it and it only opened Unreal Tournament. however, when i first installed it, it automatically opens, and so i know the file must be there somewhere. any solutions?

wildicv
11-15-2009, 11:17 AM
The entire UDK is located in your C:\ Drive there you should see the folder entitled UDK-date. If it’s there the UDK was installed successfully. By default the UDK comes with a copy of the UT demo which is a starting place to learn how to use the UDK. Now to open the editor click start - program files - udk - udk editor. This will start up the editor.

Azzedinistan
11-16-2009, 09:39 AM
I'm at the end of the level step when i Play the map , i have just a camera without any model instead of a 3rd person camera which follow a model

EDIT : the new version of the UDK makes you begin in the editor with a camera ...

wildicv
11-16-2009, 10:21 AM
Here is the video version of this tutorial as i promised.

http://dl.deathtouchstudios.com/videotutorials/HourencesTutorial/

R2D5
11-16-2009, 10:22 AM
thank you very much

hide
11-16-2009, 11:25 AM
Here is the video version of this tutorial as i promised.

http://dl.deathtouchstudios.com/videotutorials/HourencesTutorial/

You are awesome, sir. Thank you. Going to watch this.

sueds
11-16-2009, 11:30 AM
this is really cool ! thanks you

steph
11-16-2009, 12:17 PM
Great help!

sueds
11-16-2009, 12:22 PM
just want to say I having trouble playing the low rez version. Downloading the Hi rez one.

wildicv
11-16-2009, 01:24 PM
Im going to have to reupload the low rez version.

sueds
11-16-2009, 01:43 PM
in fact I think the format version is maybe the problem. the hi rez version works better but you can scroll the video back or forward if you miss something. Maybe I need a proper codec for this.

hide
11-16-2009, 02:54 PM
Look like the hi-res version isn't complete. Finish by "ok it seems that...[cut]" at 29:24. Work really bad with kmplayer and vlc. GOMPlayer handle that ok.

wildicv
11-16-2009, 03:17 PM
I was having issues with the ftp client i was using. You can try the youtube versions of these videos. Im going to have to reup this tutorial hi and low res versions.

hide
11-16-2009, 04:09 PM
Screen1 (http://uppix.net/8/8/e/0fdc34229cb2890e2f34cf064cad9.html)
Screen2 (http://uppix.net/0/b/d/7e2215a153327a6c90bf881033240.html)
Not working. Should i mention i called "MyGame" as "MyMod" ? Everything else is as said in the tutorial (for what i managed to do right).

So i'm still working on my issue. When i click on the button it does nothing.
I checked everything once more with the video-tutorial and... no... That button won't work.
Worldinfo is set to mygame info.
UI :
http://uppix.net/8/4/d/ee10cc5de0d542da0e1d83af0c593.jpg (http://uppix.net/8/4/d/ee10cc5de0d542da0e1d83af0c593.html)
UI Kismet :
http://uppix.net/2/7/a/9d4609f09f0a8dd2aa72114c8ad22.jpg (http://uppix.net/2/7/a/9d4609f09f0a8dd2aa72114c8ad22.html)
EDIT :
And the forgotten image (sorry i had overwritten the screen with another and forgot about it)
http://uppix.net/f/7/e/c692059323ce943643d1b152bde87t.jpg (http://uppix.net/f/7/e/c692059323ce943643d1b152bde87.jpg)
How can it not work, everything looks good to me ?

Hourences
11-16-2009, 05:04 PM
You do have the console command right.

salolito42
11-16-2009, 06:44 PM
I'm also new to the UDK, and I'm trying to get the most possible help I can get.
will this tutorial help me as basics start?

mickyg
11-16-2009, 09:40 PM
Thanks Hourences, great stuff.

On my work PC it crashes during the cooking phase:

[COMMANDLET 'UDK.exe CookPackages -platform=PC MG-ExampleGameLevel -noloccooking' FAILED] November 17, 12:38 PM

But that might be because my work computer crashes a lot randomly while using UDK. I'll try it at home tonight and see how it goes, but in the meantime can you tell me what the filesize of the end package is? ie, does it only contain the resources that you used for that particular level?

wildicv
11-17-2009, 09:02 AM
I reuploaded them hope they work

hide
11-17-2009, 01:51 PM
The Hi-res file (76m) is smaller than the Small-res (91m), that's strange (as wmv).

Ok, then the new small-res file finish pactically at the same point of the old hi-res one (around 20min).
The new hi-res last only 9min.
:/

Nysuatro
11-17-2009, 02:16 PM
Indeed. I have download the videos for 3 times and always incomplete.

salolito42
11-17-2009, 07:09 PM
I finished and ran it, but there is only a splash screen and right on I start playing the map?

shouldn't a menu come out?

obsolete
11-17-2009, 11:45 PM
Thanks man, was just about to do this process and it's nice to have a guide. I'm hoping to keep my own work somewhat documented so I can help other people out as well.

Geti
11-18-2009, 12:07 AM
shouldn't a menu come out?Did you make a menu and use it as the first level?

Tom Shannon
11-18-2009, 02:22 PM
From the screenshots, it looks like you have the actions called "OpenYouLevel" in the UI Kismet editor and "OpenYourLevel" in the level's Kismet sequence.


So i'm still working on my issue. When i click on the button it does nothing.
I checked everything once more with the video-tutorial and... no... That button won't work.
Worldinfo is set to mygame info.
UI :
http://uppix.net/8/4/d/ee10cc5de0d542da0e1d83af0c593.jpg (http://uppix.net/8/4/d/ee10cc5de0d542da0e1d83af0c593.html)
UI Kismet :
http://uppix.net/2/7/a/9d4609f09f0a8dd2aa72114c8ad22.jpg (http://uppix.net/2/7/a/9d4609f09f0a8dd2aa72114c8ad22.html)
EDIT :
And the forgotten image (sorry i had overwritten the screen with another and forgot about it)
http://uppix.net/f/7/e/c692059323ce943643d1b152bde87t.jpg (http://uppix.net/f/7/e/c692059323ce943643d1b152bde87.jpg)
How can it not work, everything looks good to me ?

CocoKool
11-18-2009, 03:48 PM
Really cool Stuff!!! Love your Ball game, very original! Kudos

hide
11-19-2009, 08:27 AM
From the screenshots, it looks like you have the actions called "OpenYouLevel" in the UI Kismet editor and "OpenYourLevel" in the level's Kismet sequence.

How strange, it now work...
Thank you, a lot. I believe unreal scripting is gonna be a really tough experience without debugger if I can't see that.

Teto
11-19-2009, 02:07 PM
Great tutorial, really. :)

I'm a noob and I've discovered many things with this tutorial. To have a third person view, for example, you must extend classes for Unreal tournaments because parents don't know what 'third person' is... :eek:

Anyway, I tried many things and found few things in the class MyPawn:

Begin Object Name=WPawnSkeletalMeshComponent
bOwnerNoSee=false
End Object
What do these lines mean? When I delete them, nothing seems to change in the preview screen.
In this class there's also a little issue: When the camera is right above the head of the pawn, the camera has a weird behavior. I deleted this line:

out_CamRot = Rotator(Location - out_CamLoc);
and again, nothing is changing, and the bug vanishes.
The main issue with your code, is that the camera can go 'inside' a wall, so we can see what going on inside... (it's black ;) )

But the class UTPlayerController has 2 interesting methods: SetBehindView(boolean) that you use, and an another one, SetCameraMode(String), with String can be 'None', 'ThirdPerson' and 'FreeCam'. If you use one of these methods, and delete all content in the class 'MyPawn', the result is very good: No camera inside wall. The problem is that the camera is far away from the pawn, and I was unable to have a closer camera. I'll try again tomorrow, today I'm fed up.
If someone has a solution (change a variable? use a function?), please don't hesitate.:p

I'll finish this great tutorial tomorrow!
And next, I'll try to have a pawn that can climb like Lara Croft. I think that I have work to do for this... :D

Teto.

Solid Snake
11-19-2009, 07:12 PM
I wrote the code, anyways, to stress again, the tutorial is not specifically about the third person camera. It was designed to show how the PlayerController, Pawn and GameInfo interact with each other. I quickly added this third person camera code to simply illustrate that your game info, player controller and pawn classes were being used.

Teto
11-20-2009, 02:40 AM
Understood.
And I've found other ways to make a third person view (other topics here) so I'll test them also.
Thanks anyway.;)

Teto.

Rati
11-21-2009, 07:39 PM
Hi !
i just Finished the tutorial (i use a little UT3 editor before)

all seems work fine, i'v got my installer. but when i install it and lauche Mygame, there is the Basic LAuche screen (with the woman and her canon on the left) i can chose instant action, multiplayer... on the right.

if i chose instant action there is "Deatmach, team deathmatch, vehicule ctf". i select Any, and there is nothing, i can just return to the main menu :/

what should i do ?
Rati

XRA
11-21-2009, 07:42 PM
really nice tutorial, this plus the nfringe visual studio tutorial got me up and running with a general idea of how to organise my stuff and work with UDK (some prior experience with unrealEd).

JohNLA
11-22-2009, 01:52 PM
Great tutorial:D

Is there a way for a non programmer to make it a typical 1st person view without trying to intensionally breaking it?
3rd person just does not work for a deathmatch.

Solid Snake
11-22-2009, 06:09 PM
Remove the camera code within MyPawn.uc.

Metal3d
11-24-2009, 07:43 AM
First off, thank you for your tutorials! I am however having an issue with this one...

EDIT: Solved my own problem, I was typing "player" in as the variable instead of placing a variable "Player".

nezus
11-25-2009, 03:03 PM
Thanks a lot for this awesome tut ! Works almost perfectly for me (just a little bug, but i did this tut a bit quick, so it's no big deal)

Good luck with the after-sales service :p

prchakal
11-28-2009, 04:22 AM
I have created a tutorial on my portal based on yours.

I have changed many incorrect thinks and use my screenshots in all parts of tutorial.

I have detailed all things too, explain all things.

You can see here and post your comment:

http://www.devgames.com.br/tutoriais/visualizar/10/udk-criando-seu-ambiente-do-inicio-ao-fim-e-distribuindo-seu-jogo

JasonX
11-28-2009, 09:09 AM
You copied him, giving no credits at all. You just roughly translated his tutorial, without any permission, to your own language. And you still have the guts to ask for donations in your page for something you did no create.

prchakal
11-28-2009, 12:01 PM
I forgot the link, sorry. I will put that.

Im not translate. Im make the game and write with my words, and my images.

photex
12-02-2009, 06:02 PM
the site seems to be down :( Anyone know of an english mirror of that tutorial?

photex
12-02-2009, 06:03 PM
http://74.125.155.132/search?q=cache:VOxrpgSIAzoJ:tutorial.toltecstudios .com/+tutorial+toltec+studios&cd=1&hl=en&ct=clnk&gl=us&client=firefox-a

google cache

Crozz
12-07-2009, 02:38 PM
In reference to the original tutorial -
My menu shows up just fine, but I have two questions, and they are probably related:

1) How do I avoid the unreal tournament menu when I press escape? I want to replace it with another custom menu (such as a "quit & go back to main menu" option)
2) How do I avoid canceling the "main" menu (the one created in the tutorial) when I press esc?

awakeningfromobliv
12-28-2009, 04:54 PM
http://tutorial.toltecstudios.com/


# How to set up the folders for your game.
# What to add to source control (SVN and others).
# Setting up and compiling Unrealscript.
# Creating a super basic third person game.
# How to configure the ini files.
# How to build a super basic level.
# How to make a super basic menu with a button and a label.
# How to add basic localization support.
# How to cook the game.
# How to package and distribute the game.

I wrote the entire thing in one long session, it was a bit of a long day and I may have missed some things here or there. Let me know if you stumble onto something.

This is not a development tutorial per-se. The focus is mainly on how to quickly set everything up for your own game and give you a basic introduction to all the elements involved in making a UDK game. The UDN has dozens of great tutorials for more in-depth information.

The tutorial has been written with people in mind who know pretty much nothing about Unreal, and can't program. It is basic.


Is this being updated or is this gone for good?

Hourences
12-28-2009, 06:14 PM
It is a broken URL forwarder, it was moved to new location and the URL forwarder is suppose to forward it to http://www.toltecstudios.com/theball/tutorialudk.htm

Instead however, it adds a / at the end and the link doesn't work anymore.

It is very fun, can't figure it out, and I don't have the time right now to figure it out. In any case: http://www.toltecstudios.com/theball/tutorialudk.htm <- works.

BrentP
12-29-2009, 08:53 PM
I'm at the end of the level step when i Play the map , i have just a camera without any model instead of a 3rd person camera which follow a model

EDIT : the new version of the UDK makes you begin in the editor with a camera ...

I had the same thing happen. The camera can move freely without any gravity, but it is affected by the walls. How can I fix this? I am new to UDK, so I don't know how to set up a character model for the player.

Akyo
01-01-2010, 07:43 AM
Hello!
I did this tutorial too. And in the UDK editor with ExampleGameFrontEnd level opened, when I try to "Play From Here", it starts with the menu and all, but when I click on the menu there, it doesnt go away. It still shows the menu, and I can only hit Esc, then it disappears but the crosshair and all shooting functions dont work too there. But when I start this with a shortcut or Unreal Frontend Launch it opens up and I can click away the menu and it works.

So is it supposed to not work within the editor?

And my second problem is:
If I still get it playable via the shortcut or frontend launcher, I cant see anything there when I play. It says, Lighting needs to be rebuild and is all dark.
But I did several rebuilds and saved all. It cant somehow correctly light up my level.
In the rebuild log, it says: No importance volume found - lighting build will take a long time.

EDIT: Hm, somehow the lighting works now again.
But still, if I click at the menu in editors "Play From Here" mode, the menu still doesnt dissapear and load my level there. Is it supposed to not work there? :)

Hourences
01-01-2010, 10:42 AM
As stated in tutorial, the editor does not support loading new levels via an in game menu. That part only works in game.

Akyo
01-01-2010, 12:13 PM
Ah I understand now. I should read such things more and more to get it in my brain. :P
Thanks alot Hourences! You doing a great work for the UDK community!

Snufkin
01-02-2010, 10:39 AM
Hi Hourance thanks for the tutorial.

I have hit a snag though. Pretty noob if you ask me but i have to get help on this rofl.




Level


Go to Binaries\Win32 and create a shortcut to UDK.exe. Add the command line "Editor -log" behind it. For example - "G:\UDK\UDKExampleGame\Binaries\Win32\UDK.exe editor -log". Start it.
Make a super basic level. Right click the BSP Cube button and you will get a pop up to enter the size. Enter 1024 for X, Y, Z, and enable "Hollow?". Next up click "Add" in the left toolbar.

I can't seem to do it. I enter "C:\UDK\UDKThirdPersonGame\Binaries\Win32\UDK.exe editor -log" and it won't accept it. What am i doing wrong?


P.s. Is this something i have to do?

Hourences
01-02-2010, 10:46 AM
There is a space between udk and .exe?

Other than that should work really. You can also start the editor via the windows start menu - programs - udk - editor if you wish. That one doesn't has the log though, but you can add it to that shortcut too.

Snufkin
01-02-2010, 10:56 AM
There is a space between udk and .exe?

Other than that should work really. You can also start the editor via the windows start menu - programs - udk - editor if you wish. That one doesn't has the log though, but you can add it to that shortcut too.

Thanks, oh sorry there is no space it just came out that way when i pasted it into the reply box.

I'll try adding to the start menu one. Thanks.

So it's "editor[space]-log"?

Edit: It worked Thanks LOL !!

Snufkin
01-04-2010, 09:12 AM
Is there anyway to sort the crosshair out and place the camera closer to the characters shoulder?

Which folder and file do i need to edit for it?

Gateway
01-04-2010, 06:46 PM
What source safe did you use and did you use the content browser to check in and out data..

We have peforce set up here, but I'm unable to really get this working, could you elaborate a bit more on what should be in source safe, how you set it up *any udk side stuff* and any tips?

Repent_
01-07-2010, 10:02 AM
Okay this is driving me nuts.
My controls work in the editor, they also work in debug mode. But it doesn't work in the game it's self.

It use to but then I updated the UDK.

I have edited the DefaultGame.ini

[Engine.GameInfo]
DefaultGame=DeathGame.DeathGameInfo
DefaultServerGame=UTGame.UTDeathmatch
PlayerControllerClassName=DeathGame.ThirdPerson_co ntrols
GameDifficulty=+1.0
MaxPlayers=32

I have updated the
UTEngine.ini & the UTGame.ini

& here is my codes

DeathGame.u content

Armor

class Armor extends UTArmorPickupFactory;

function int CanUseShield(UTPawn P)
{
return Max(0,ShieldAmount - P.VestArmor);
}

function AddShieldStrength(UTPawn P)
{
P.VestArmor = Max(ShieldAmount, P.VestArmor);
}


defaultproperties
{

Components(1)=PathRenderer
Components(2)=PickupLightEnvironment
Begin Object=StaticMeshComponent Name=BaseMeshComp ObjName=BaseMeshComp Archetype=StaticMeshComponent'UTGame.Default__UTIt emPickupFactory:BaseMeshComp'
StaticMesh=StaticMesh'FC_Content.FC_Pickups.FC_Arm orPickup_M'
Translation=(X=0.000000,Y=0.000000,Z=-44.000000)
ObjectArchetype=StaticMeshComponent'UTGame.Default __UTItemPickupFactory:BaseMeshComp'
End Object

ShieldAmount=100
bIsSuperItem=false
RespawnTime=30.000000
MaxDesireability=1.000000
PickupSound=SoundCue'FC_Content.Sounds.FC_Vest_SQ'
Begin Object Name=ArmorPickUpComp
StaticMesh=StaticMesh'FC_Content.FC_Pickups.FC_Ves t_1'
Translation=(X=0.0,Y=0.0,Z=-50.0)
End Object
RespawnSound=SoundCue'FC_Content.Sounds.FC_Respawn _S'

}


FC_Chakon_oil_Drum

class FC_Chakon_oil_Drum extends DynamicSMActor
placeable;

/** Should go boom when shot. */
var() bool bDestroyOnDamage;

/** Should go boom when a player walks over it. */
var() bool bDestroyOnPlayerTouch;

/** Should go boom when a vehicle drives over it. */
var() bool bDestroyOnVehicleTouch;

/** Mesh to switch to when destroyed. */
var() StaticMesh MeshOnDestroy;

/** Sound to play when destroyed. */
var() SoundCue SoundOnDestroy;

/** Particles to play when destroyed. */
var() ParticleSystem ParticlesOnDestroy;

/** Static mesh to spawn as physics object when destroyed. */
var() StaticMesh SpawnPhysMesh;

/** How long the spawned physics object should last. */
var() float SpawnPhysMeshLifeSpan;

/** Initial linear velocity for spawned physics object. */
var() vector SpawnPhysMeshLinearVel;

/** initial angular velocity for spawned physics object. */
var() vector SpawnPhysMeshAngularVel;

/** Time between being destroyed and respawning. */
var() float RespawnTime;

/** Used to remember what mesh to set us back to when respawned. */
var StaticMesh RespawnStaticMesh;

/** Whether we are currently in the destroyed state. */
var bool bDestroyed;

/** Time before we are going to respawn. */
var float TimeToRespawn;

/** Used to shut down actor on the server to reduce overhead. */
simulated function PostBeginPlay()
{
Super.PostBeginPlay();

// Remember what mesh we
RespawnStaticMesh = StaticMeshComponent.StaticMesh;

// If this is on dedicated server
if(WorldInfo.NetMode == NM_DedicatedServer)
{
SetCollision(FALSE, FALSE);
DetachComponent(StaticMeshComponent);
BeginState('IgnoreItAll');
}
}


/** Do actual explosion. */
simulated function GoBoom()
{
local UTSD_SpawnedKActor PhysMesh;

HurtRadius(100, 300, class'UTDamageType', 1000.0, Location,,, True);

// Swap/hide the mesh
if(MeshOnDestroy != None)
{
StaticMeshComponent.SetStaticMesh(MeshOnDestroy);
}
else
{
StaticMeshComponent.SetStaticMesh(None);
DetachComponent(StaticMeshComponent);
}

// Fire particles
if(ParticlesOnDestroy != None)
{
WorldInfo.MyEmitterPool.SpawnEmitter(ParticlesOnDe stroy, Location, Rotation);
}

// Play sound
if(SoundOnDestroy != None)
{
PlaySound(SoundOnDestroy, TRUE);
}

// Spawn physics mesh
if(SpawnPhysMesh != None)
{
PhysMesh = spawn(class'UTSD_SpawnedKActor',,,Location, Rotation);
PhysMesh.StaticMeshComponent.SetStaticMesh(SpawnPh ysMesh);
PhysMesh.StaticMeshComponent.SetRBLinearVelocity(S pawnPhysMeshLinearVel, FALSE);
PhysMesh.StaticMeshComponent.SetRBAngularVelocity( SpawnPhysMeshAngularVel, FALSE);
PhysMesh.StaticMeshComponent.WakeRigidBody();

// Have it collide with the world but thats it (ie not vehicles or players)
PhysMesh.SetCollision(FALSE, FALSE);
PhysMesh.StaticMeshComponent.SetRBChannel(RBCC_Not hing);
PhysMesh.StaticMeshComponent.SetRBCollidesWithChan nel(RBCC_Default, TRUE);

// Set lifespan
PhysMesh.LifeSpan = SpawnPhysMeshLifeSpan;


}

bDestroyed = TRUE;
TimeToRespawn = RespawnTime;
SetTimer(1.0, TRUE, 'CheckRespawn');
}

/** Put destructible back into pre-destroyed state. */
simulated function RespawnDestructible()
{
// Reset static mesh and re-attach component.
StaticMeshComponent.SetStaticMesh(RespawnStaticMes h);
if(!StaticMeshComponent.bAttached)
{
AttachComponent(StaticMeshComponent);
}

bDestroyed = FALSE;
}

/** Called when shot. */
simulated function TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class<DamageType> DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser)
{
if(!bDestroyed && bDestroyOnDamage)
{
GoBoom();

}
}

/** Called when overlapped by car/player */
simulated function Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal)
{
// Ignore if destroyed.
if(bDestroyed)
{
return;
}

if( Vehicle(Other) != None )
{
if(bDestroyOnVehicleTouch)
{
GoBoom();
}
}
else
{
if(bDestroyOnPlayerTouch)
{
GoBoom();
}

}
}

/** Used to countdown to respawn. */
simulated event CheckRespawn()
{
// If destroyed, countdown to respawn.
if(bDestroyed)
{
TimeToRespawn -= 1.0;

if(TimeToRespawn < 0.f && (StaticMeshComponent.LastRenderTime < WorldInfo.TimeSeconds - 1.0f))
{
RespawnDestructible();
ClearTimer('CheckRespawn');
}
}
}

/** State used to stop anything from happening on dedicated server. */
state IgnoreItAll
{
ignores Touch, TakeDamage, Tick;
}



defaultproperties
{

bCollideActors=TRUE
bProjTarget=TRUE
bPathColliding=FALSE
bNoDelete=TRUE

Begin Object Name=MyLightEnvironment
bEnabled=TRUE
bDynamic=FALSE
End Object

Begin Object Name=StaticMeshComponent0
StaticMesh=StaticMesh'FC_Content.Models.FC_Chakon_ oil_Drum'
End Object

RespawnTime=30.0

SpawnPhysMeshLifeSpan=5.0
bDestroyOnDamage=TRUE
bDestroyOnPlayerTouch=TRUE
bDestroyOnVehicleTouch=TRUE
}



Health

class Health extends UTHealthPickupFactory;



defaultproperties
{
bSuperHeal=true
bIsSuperItem=false
RespawnTime=30.000000
MaxDesireability=0.3
HealingAmount=20
PickupSound=SoundCue'FC_Content.Sounds.FC_SQ_Healt h'
bRotatingPickup=true
YawRotationRate=32000
bFloatingPickup=true
bRandomStart=true
BobSpeed=4.0
BobOffset=5.0

Begin Object Name=HealthPickUpMesh
StaticMesh=StaticMesh'FC_Content.FC_Pickups.FC_Hea lth_a'
Scale3D=(X=1.0,Y=1.0,Z=1.0)
End Object
Begin Object NAME=CollisionCylinder
CollisionRadius=+00030.000000
CollisionHeight=+00020.000000
CollideActors=true
End Object
RespawnSound=SoundCue'FC_Content.Sounds.FC_Respawn _S'

}

DeathGameInfo

class DeathGameInfo extends UTDeathmatch;

defaultproperties
{
Acronym="DM"

MapPrefixes.Empty
MapPrefixes(0)="DM"

DefaultMapPrefixes.Empty
DefaultMapPrefixes(0)=(Prefix="DM",GameType="DeathGame.DeathGameInfo")

PlayerControllerClass=class'ThirdPerson_controls'
DefaultPawnClass=class'DeathPawn'

Name="DeathGameInfo"
}

DeathPawn

class DeathPawn extends UTPawn;



defaultproperties
{
Begin Object Name=WPawnSkeletalMeshComponent
bOwnerNoSee=false
End Object
Name="DeathPawn"
}


ThirdPerson_controls

class ThirdPerson_controls extends UTPlayerController;

state RoundEnded
{
ignores SeePlayer, HearNoise, KilledBy, NotifyBump, HitWall, NotifyHeadVolumeChange, NotifyPhysicsVolumeChange, Falling, TakeDamage, Suicide, DrawHud;

exec function PrevWeapon() {}
exec function NextWeapon() {}
exec function SwitchWeapon(byte T) {}
exec function ShowQuickPick(){}
exec function ToggleMelee() {}

/**
* Limit the player's view rotation. (Pitch component).
*/
event Rotator LimitViewRotation( Rotator ViewRotation, float ViewPitchMin, float ViewPitchMax )
{
ViewRotation.Pitch = ViewRotation.Pitch & 65535;

if( ViewRotation.Pitch > 8192 &&
ViewRotation.Pitch < (65535+ViewPitchMin) )
{
if( ViewRotation.Pitch < 32768 )
{
ViewRotation.Pitch = 8192;
}
else
{
ViewRotation.Pitch = 65535 + ViewPitchMin;
}
}

return ViewRotation;
}

unreliable client function LongClientAdjustPosition
(
float TimeStamp,
name newState,
EPhysics newPhysics,
float NewLocX,
float NewLocY,
float NewLocZ,
float NewVelX,
float NewVelY,
float NewVelZ,
Actor NewBase,
float NewFloorX,
float NewFloorY,
float NewFloorZ
)
{
if ( newState == 'PlayerWaiting' )
GotoState( newState );
}

function PlayerMove(float DeltaTime)
{
local vector X,Y,Z;
local Rotator DeltaRot, ViewRotation;

GetAxes(Rotation,X,Y,Z);
// Update view rotation.
ViewRotation = Rotation;
// Calculate Delta to be applied on ViewRotation
DeltaRot.Yaw = PlayerInput.aTurn;
DeltaRot.Pitch = PlayerInput.aLookUp;
ProcessViewRotation( DeltaTime, ViewRotation, DeltaRot );
SetRotation(ViewRotation);

ViewShake(DeltaTime);

if ( Role < ROLE_Authority ) // then save this move and replicate it
ReplicateMove(DeltaTime, vect(0,0,0), DCLICK_None, rot(0,0,0));
bPressedJump = false;
}

function ShowScoreboard()
{
local UTGameReplicationInfo GRI;

if ( CommandMenu != none )
{
//@todo ronp animation
CommandMenu.CloseScene();
CommandMenu = none;
}

GRI = UTGameReplicationInfo(WorldInfo.GRI);
if (GRI != None && GRI.bMatchIsOver && !GRI.bStoryMode)
{
ShowMidGameMenu('ScoreTab',true);
}
else if (myHUD != None)
{
myHUD.SetShowScores(true);
}
AutoContinueToNextRound();
}

/** This will auto continue to the next round. Very useful doing soak testing and testing traveling to next level **/
function AutoContinueToNextRound()
{
if ( Role == ROLE_Authority && WorldInfo.Game.ShouldAutoContinueToNextRound() )
{
myHUD.SetShowScores(false);
StartFire( 0 );
}
}

function BeginState(Name PreviousStateName)
{
Super.BeginState(PreviousStateName);

// this is a good stop gap measure for any cases that we miss / other code getting turned on / called
// there is never a case where we want the tilt to be on at this point
SetOnlyUseControllerTiltInput( FALSE );
SetUseTiltForwardAndBack( TRUE );
SetControllerTiltActive( FALSE );

if (UTGame(WorldInfo.Game) != None)
{
// don't let player restart the game until the end game sequence is complete
SetTimer(FMax(GetTimerRate(), UTGame(WorldInfo.Game).ResetTimeDelay), false);
}

bAlreadyReset = false;

if ( myHUD != None )
{
myHUD.SetShowScores(false);
// the power core explosion is 15 seconds so we wait 1 additional for the awe factor (the total time of the matinee is 18-20 seconds to avoid popping back to start)
// so for DM/CTF will get to see the winner in GLORIOUS detail and listen to the smack talking
SetTimer(16, false, 'ShowScoreboard');
}
}

function EndState(name NextStateName)
{
Super.EndState(NextStateName);
SetBehindView(True);
StopViewShaking();
StopCameraAnim(true);
if (myHUD != None)
{
myHUD.SetShowScores(false);
}
}
}

function ShowScoreboard();

state Dead
{
ignores SeePlayer, HearNoise, KilledBy, NextWeapon, PrevWeapon;

exec function SwitchWeapon(byte T){}
exec function ToggleMelee() {}
exec function ShowQuickPick(){}
exec function StartFire( optional byte FireModeNum )
{
if ( bFrozen )
{
if ( !IsTimerActive() || GetTimerCount() > MinRespawnDelay )
bFrozen = false;
return;
}
if ( PlayerReplicationInfo.bOutOfLives )
ServerSpectate();
else
super.StartFire( FireModeNum );
}

function Timer()
{
if (!bFrozen)
return;

// force garbage collection while dead, to avoid GC during gameplay
if ( (WorldInfo.NetMode == NM_Client) || (WorldInfo.NetMode == NM_Standalone) )
{
WorldInfo.ForceGarbageCollection();
}
bFrozen = false;
bUsePhysicsRotation = false;
bPressedJump = false;
}

reliable client event ClientSetViewTarget( Actor A, optional ViewTargetTransitionParams TransitionParams )
{
if( A == None )
{
ServerVerifyViewTarget();
return;
}
// don't force view to self while dead (since server may be doing it having destroyed the pawn)
if ( A == self )
return;
SetViewTarget( A, TransitionParams );
}

function FindGoodView()
{
local vector cameraLoc;
local rotator cameraRot, ViewRotation, RealRotation;
local int tries, besttry;
local float bestdist, newdist, RealCameraScale;
local int startYaw;
local UTPawn P;

if ( UTVehicle(ViewTarget) != None )
{
if (Pawn!=none)
{
Pawn.SetDesiredRotation(Rotation);
}
bUsePhysicsRotation = true;
return;
}

ViewRotation = Rotation;
RealRotation = ViewRotation;
ViewRotation.Pitch = 56000;
SetRotation(ViewRotation);
P = UTPawn(ViewTarget);
if ( P != None )
{
RealCameraScale = P.CurrentCameraScale;
P.CurrentCameraScale = P.CameraScale;
}

// use current rotation if possible
CalcViewActor = None;
cameraLoc = ViewTarget.Location;
GetPlayerViewPoint( cameraLoc, cameraRot );
if ( P != None )
{
newdist = VSize(cameraLoc - ViewTarget.Location);
if (newdist < P.CylinderComponent.CollisionRadius + P.CylinderComponent.CollisionHeight )
{
// find alternate camera rotation
tries = 0;
besttry = 0;
bestdist = 0.0;
startYaw = ViewRotation.Yaw;

for (tries=1; tries<16; tries++)
{
CalcViewActor = None;
cameraLoc = ViewTarget.Location;
ViewRotation.Yaw += 4096;
SetRotation(ViewRotation);
GetPlayerViewPoint( cameraLoc, cameraRot );
newdist = VSize(cameraLoc - ViewTarget.Location);
if (newdist > bestdist)
{
bestdist = newdist;
besttry = tries;
}
}
ViewRotation.Yaw = startYaw + besttry * 4096;
}
P.CurrentCameraScale = RealCameraScale;
}
SetRotation(RealRotation);
if (Pawn!=none)
{
Pawn.SetDesiredRotation (MakeRotator(ViewRotation.Pitch, ViewRotation.Yaw, 0));
}
bUsePhysicsRotation = true;
}

function BeginState(Name PreviousStateName)
{
local UTWeaponLocker WL;
local UTWeaponPickupFactory WF;

LastAutoObjective = None;
if ( Pawn(Viewtarget) != None )
{
SetBehindView(true);
}
Super.BeginState(PreviousStateName);

if ( LocalPlayer(Player) != None )
{
ForEach WorldInfo.AllNavigationPoints(class'UTWeaponLocker ',WL)
WL.NotifyLocalPlayerDead(self);
ForEach WorldInfo.AllNavigationPoints(class'UTWeaponPickup Factory',WF)
WF.NotifyLocalPlayerDead(self);
}

if ( CurrentMapScene != none )
{
//@todo ronp animation
CurrentMapScene.CloseScene();
}

if ( UTGameReplicationInfo(WorldInfo.GRI).bShowMenuOnDe ath && bPopupMapOnDeath && LocalPlayer(Player) != none )
{
SetTimer(PopupWaitTime,false,'PopupMap');
}

if (Role == ROLE_Authority && UTGame(WorldInfo.Game) != None && UTGame(WorldInfo.Game).ForceRespawn())
{
SetTimer(MinRespawnDelay, true, 'DoForcedRespawn');
}
}

/** forces player to respawn if it is enabled */
function DoForcedRespawn()
{
if (PlayerReplicationInfo.bOnlySpectator)
{
ClearTimer('DoForcedRespawn');
}
else
{
ServerRestartPlayer();
}
}

function EndState(name NextStateName)
{
bUsePhysicsRotation = false;
Super.EndState(NextStateName);
SetBehindView(True);
StopViewShaking();
ClearTimer('PopupMap');
ClearTimer('DoForcedRespawn');
}

Begin:
Sleep(5.0);
if ( (ViewTarget == None) || (ViewTarget == self) || (VSize(ViewTarget.Velocity) < 1.0) )
{
Sleep(1.0);
if (myHUD != None)
{
//@FIXME: disabled temporarily for E3 due to scoreboard stealing input
//myHUD.SetShowScores(true);
}
}
else
Goto('Begin');
}

function SetCameraMode( name NewCamMode )
{
// will get set back to true below, if necessary
bDebugFreeCam = FALSE;

if ( PlayerCamera != None )
{
Super.SetCameraMode(NewCamMode);
}
else if ( NewCamMode == 'ThirdPerson' )
{
if ( !bBehindView )
SetBehindView(true);
}
else if ( NewCamMode == 'FreeCam' )
{
if ( !bBehindView )
{
SetBehindView(true);
}
bDebugFreeCam = TRUE;
DebugFreeCamRot = Rotation;
}
else
{
if ( bBehindView )
SetBehindView(false);
}
}

unreliable server function ServerViewSelf(optional ViewTargetTransitionParams TransitionParams)
{
local rotator POVRotation;
local vector POVLocation;

GetPlayerViewPoint( POVLocation, POVRotation );
SetLocation(POVLocation);
SetRotation(POVRotation);
SetBehindView(True);
SetViewTarget( Self, TransitionParams );
}


defaultproperties
{
bBehindView=True
DesiredFOV=90.000000
DefaultFOV=90.000000
FOVAngle=90.000
CameraClass=None
CheatClass=class'UTCheatManager'
InputClass=class'UTGame.UTPlayerInput'
LastKickWarningTime=-1000.0
bForceBehindview=true
DamageCameraAnim=CameraAnim'FX_HitEffects.DamageVi ewShake'
MatineeCameraClass=class'Engine.Camera'
bCheckSoundOcclusion=true
ZoomRotationModifier=0.5
VehicleCheckRadiusScaling=1.0
bRotateMiniMap=false

PulseTimer=5.0;

CommandMenuTemplate=UTUIScene_CommandMenu'UI_InGam eHud.Menus.CommandMenu'

PostProcessPresets(PPP_Default)=(Shadows=1.0, Midtones=1.0, Highlights=1.0, Desaturation=1.0)
PostProcessPresets(PPP_Muted)=(Shadows=0.9, Midtones=0.95, Highlights=1.45, Desaturation=1.2)
PostProcessPresets(PPP_Vivid)=(Shadows=1.5, Midtones=1.3, Highlights=0.85, Desaturation=1.0)
PostProcessPresets(PPP_Intense)=(Shadows=1.5, Midtones=1.15, Highlights=0.6, Desaturation=1.2)

MinRespawnDelay=1.5
BeaconPulseMax=1.1
BeaconPulseRate=0.5
IdentifiedTeam=255
OldMessageTime=-100.0
PopupWaitTime=5.0
LastTeamChangeTime=-1000.0

Begin Object Class=ForceFeedbackWaveform Name=ForceFeedbackWaveform7
Samples(0)=(LeftAmplitude=60,RightAmplitude=50,Lef tFunction=WF_LinearDecreasing,RightFunction=WF_Lin earDecreasing,Duration=0.200)
End Object
CameraShakeShortWaveForm=ForceFeedbackWaveform7

Begin Object Class=ForceFeedbackWaveform Name=ForceFeedbackWaveform8
Samples(0)=(LeftAmplitude=60,RightAmplitude=50,Lef tFunction=WF_LinearDecreasing,RightFunction=WF_Lin earDecreasing,Duration=0.400)
End Object
CameraShakeLongWaveForm=ForceFeedbackWaveform8
Name="ThirdPerson_controls"
}


DeathGame.int

[Armor]
PickupMessage="Armor Pickup"

[Health]
PickupMessage="Health Pickup"


So what happened ? did I mess up somewhere or did the new UDK just stop it from working ?

Cirdan
01-30-2010, 05:38 AM
Great tutorial Hourences!

I just wanted to note for those who really don't know much(Read:Myself), if you do a full recompile with the UDK open you will get all manner of errors involving scary messages about "stripped cores" and a billion messages saying effectively "we can't write or move anything!".

I was about to post a different text block here until I saw UDK running in the background and put 2-2 together. :D

parkar
01-30-2010, 07:50 AM
Okay this is driving me nuts.
My controls work in the editor, they also work in debug mode. But it doesn't work in the game it's self.

It use to but then I updated the UDK.

I have edited the DefaultGame.ini

[Engine.GameInfo]
DefaultGame=DeathGame.DeathGameInfo
DefaultServerGame=UTGame.UTDeathmatch
PlayerControllerClassName=DeathGame.ThirdPerson_co ntrols
GameDifficulty=+1.0
MaxPlayers=32

I have updated the
UTEngine.ini & the UTGame.ini

...

So what happened ? did I mess up somewhere or did the new UDK just stop it from working ?

Got almost the same problem to after moving to the january build. It seems it's using UTGame instead of my own gametype. I can't find any references in the ini's still pointing at UTGame though, they all point at my new gametype. I have not replaced the controller yet though.

Edit: As a workaround you can force the game type using the commandline option "?game=".

KoKoS
01-31-2010, 07:26 AM
Hey Hourences, this seems like an awesome tutorial and I really want to follow it but I can't figure out the folders at the start. I feel like a complete idiot since I'm the only one asking here lol.

You say there are four main folders, is this in the UDK main root or in the UDK\UDK-2010-01 (or is this just the consequence of a bad installation?).
Or do we have to create our own folder and then copy the folder structure from UDK?
In the first screenshot you have made a folder like this: UDK\UDKExampleGame and this holds all the other folders, but you say nowhere that we have to create our own folder in the UDK root.

I'm totally confused about the beginning so please guide me so I can follow your tutorial :)


EDIT: I guess I figured out what to do but I don't get the logic of it. I don't understand why you would put all your game content in the UDK folder, that would make it insanely cluttered when creating multiple games. Can't you just work out of a different folder on your pc? that would make much more sense.

Hourences
01-31-2010, 08:08 AM
UDK root is just the top level. If you got it in UDK-2010-01 then that would be the root yes.

You would be better off having multiple UDK installs (hence why I called mine UDKExampleGame and did not install it with the default UDK-2010-01 name). You can combine multiple games in 1 UDK install but it just isn't handy really.

This is a game engine, not a program or a tool. The engine belongs to that game you are making right now. It is not a seperate entity, it is your game, therefore every game has its own unique installation.

And Repent and parkar, the level prefix is important, and yours is called DM-, this is going to confuse the engine.

Cirdan
01-31-2010, 10:21 AM
Almost there, the button is visible, I don't know why it wasn't before, but no complaints. :)

I'm having the same thing as wildciv, I get a loadscreen with my map name, and it just hangs. They're both sitting in the same directory, I have the MG prefix on both.

The log says it:
failed to load class Mygame.MyGameInfo; failed to find object Mygame.MyGameInfo.

Since the log window won't allow highlight or copy/paste function, are these being written somewhere in a txt file? I don't know where...

EDIT: Ok, got it. I didn't have everything named MyGame.
Everything is working now, except the Cinematic mode. I have it setup exactly in the screenshot, but I start the level immediately, and nothing is frozen.

KoKoS
02-01-2010, 12:42 PM
UDK root is just the top level. If you got it in UDK-2010-01 then that would be the root yes.

You would be better off having multiple UDK installs (hence why I called mine UDKExampleGame and did not install it with the default UDK-2010-01 name). You can combine multiple games in 1 UDK install but it just isn't handy really.

This is a game engine, not a program or a tool. The engine belongs to that game you are making right now. It is not a seperate entity, it is your game, therefore every game has its own unique installation.

And Repent and parkar, the level prefix is important, and yours is called DM-, this is going to confuse the engine.

Ah, I didn't realize you just called your UDK root UDKExampleGame.
After a bit of thought yesterday I realized what you just said, a game engine is not like another program because it is your game.
That explains basically everything.

Cheers for the tutorial and quick answers to my questions :)

Saiyajin
02-02-2010, 03:32 PM
Thanks.. very useful. I got however one problem, when I run my "game" no menu like made in the tutorial pops up, it just goes straight into the game, any idea what could cause this?

Also more screenshots for this tutorial and even more detailed explanation would be nice..

kodiakb20
02-04-2010, 05:44 AM
I just finished the tut and I just wanted to say thanks Hourence! Really really helpful for a beginner like me. Thank you so much.

lubitel
02-18-2010, 08:27 AM
Thanks for the tutorial however i cant stand the ugly robot and i want to geet back to 1st persone view.

its freaking me out. i ve tried deleting the code in MyPlayerController but its not helping....can someone please help ..... can i get this with a 1st persone camera view?

thanx

heres what i get when i delete parts of the code:

http://i0.simplest-image-hosting.net/thumbnail/mygameinfo-jpg.jpg (http://simplest-image-hosting.net/i0-mygameinfo-jpg.jpg)JPG, 1113x852px, 43 KB (0.04 MB)
EDIT: fixed by setting the bBehindview to false

colinato
02-19-2010, 12:51 AM
Thank you Hourences.

Everything has worked and compiled and packaged great for me. However, when I install and run my game, it crashes and says "udk.exe has stopped working. Is this an OS thing? Using Windows 7.

Thanks again.

lubitel
02-21-2010, 04:31 AM
Thank you Hourences.

Everything has worked and compiled and packaged great for me. However, when I install and run my game, it crashes and says "udk.exe has stopped working. Is this an OS thing? Using Windows 7.

Thanks again.

if you make a shortcut of your newly made UDK.exe you can read the log and see what is causing the crash in the log. Most likely its not finding the map you were supposed to cook and include in packaging.

Make sure you coook all of the maps that your game is using. Make a list or manually add the maps to the cook list....

adityagameprogrmer
03-02-2010, 08:33 AM
Thank you Hourences
ave been through the website and only after finding corresponding the video tutorials on youtube i have been able to get a complete grip on it. thanks to you ive had a small instance up and running for all basic purposes.

@ fellow developers
for a customised UI ive instantianted a new UTHUD class with empty functions of draw hud and empty default properties function.
the aim was to have no hud - i.e no health bars weapon count etc..
but when i exit the game the end interface pops up .
where can i find the classes that create the game end UI and how would i extend a function to disable that UI.

lubitel
03-02-2010, 10:08 AM
you enter the console by pressing TAB than type "showhud" than enter.

If you want it to be permanent for that level make do it from Kizmet through

LevelLoadedAndVisible + Console nodes

kudendar
03-02-2010, 04:07 PM
-Edit- Found a solution to my problem and even found what was wrong with swarm agent!

P.S. Great job on tutorial! it has clarified alot of things.

Thanks,
Kudendar

ndlsjk
03-03-2010, 08:25 PM
Where is the content on SVN information?

Our team leader is setting ours up right now and we were wondering exactly which files need to be shared.

Thanks,
Jake
http://www.interstateoutlaws.com

lubitel
03-04-2010, 03:05 AM
Where is the content on SVN information?

Our team leader is setting ours up right now and we were wondering exactly which files need to be shared.

Thanks,
Jake
http://www.interstateoutlaws.com


ALl files shold be shared with public...including privare videos folder:)


And liks posted on this thread please, thank you...

Dvoyles
03-25-2010, 01:12 PM
Outstanding job. Thank you for the directions and help. Excellent learning tool for newcomers such as myself.

pipesfranco
04-03-2010, 03:11 PM
Awesome tutorial guys,

Can someone tell me how to not spawn a player and just look through a camera like The Ball's main menu?????

That would be awesome

Many Thanks

rednaz
04-05-2010, 01:01 PM
Awesome tutorial guys,

Can someone tell me how to not spawn a player and just look through a camera like The Ball's main menu?????

That would be awesome

Many Thanks

I'm no expert, but if you are trying to make something for a menu you could just create a matinee, don't spawn the player, and run the matinee on start of the "level". If you mean in game and have the player as the character then you would have to change the myplayercontroller or something similar. I'm pretty sure the matinee is the right way to go for a start menu though.

pipesfranco
04-23-2010, 10:20 AM
Ive just moved my project to the April build but im getting this now when i do a comile

C:\UDK\UDK-2010-04\Development\Src\MyGame\Classes\MyGameInfo.uc(10 ) : Warning, Import failed for 'DefaultMapPrefixes': property is config (Check to see if the property is listed in the DefaultProperties. It should only be listed in the specific .ini/.int file)



im highly confused and the map level the front end loads just locks the pc and crashes out...weird

please help

Wafff
04-23-2010, 06:14 PM
Thanks for this great tutorial, however I'm having a few issues - I'm positive it's not a simple typo as I've been through the whole thing twice using different names each time, and both times I've ended up with the same problem.

My problem is that while clicking the menu button loads the next level fine when I 'play on pc' from the editor, but after I installed the compiled/packaged game it consistently hangs on the loading screen. I've been through the logs and, being a novice programmer at best, they make little sense to me, and I was hoping someone else might be able to shed some light on the issue:

(I've cut the stuff before the loadmap part to save space)
Log: LoadMap: TI-Level01?Name=Player?team=255
Error: (Function UTGame.UTPlayerController:Dead.BeginState:008B) Cannot use AllNavigationPoints() here - NavigationPointList not set up yet
Error: (Function UTGame.UTPlayerController:Dead.BeginState:00E1) Cannot use AllNavigationPoints() here - NavigationPointList not set up yet
Error: (Function UTGame.UTGame:ChoosePlayerStart:0102) Cannot use AllNavigationPoints() here - NavigationPointList not set up yet
ScriptWarning: Player start not found, failed to restart player
MyGameInfo TI-Frontend.TheWorld:PersistentLevel.MyGameInfo_0
Function Engine.GameInfo:RestartPlayer:025E
DevMemory: Virtual memory allocation size: 89.13 MByte (93458432 Bytes)
Warning: Warning, Failed to load 'Class TheIsland.MyGameInfo': Failed to find object 'Class TheIsland.MyGameInfo'
Warning: Warning, Failed to find object 'Class TheIsland.MyGameInfo'
Log: Game class is 'GameInfo'
Log: Primary PhysX scene will be in software.
Log: Creating Primary PhysX Scene.
Log: APEX Warning: Debug Warning: Unable to find AgPerfMon.dll
Log: Bringing World TI-Level01.TheWorld up for play (0) at 2010.04.23-23.02.52
Log: Bringing up level for play took: 0.008863
Log: ########### Finished loading level: 0.198058 seconds
ScriptWarning: bRestartLevel && !server, abort from RestartPlayer NM_Standalone
GameInfo TI-Level01.TheWorld:PersistentLevel.GameInfo_0
Function Engine.GameInfo:RestartPlayer:00BB
Log: All Windows Closed
Log: appRequestExit(0)
Exit: Preparing to exit.
Exit: Game engine shut down
Exit: Windows client shut down
Exit: XAudio2 Device shut down.
Exit: Object subsystem successfully closed.
Log: Shutting down FaceFX...
Log: FaceFX shutdown.
Exit: Exiting.

Any help with this issue would be greatly appreciated as I don't want to move on until I can get the basics working.

daimaku
04-26-2010, 08:17 AM
i'm setting up my game project and levels in the new april beta, but i 'm having some problem here, i put all my stuff in the right folder, i have modified the defaultgameudk.ini and the defaultengineudk.ini files, but seems that the compiler is not looking for my .uc classes on my folder, i was looking the ini files and i see that they have some changes, how i setup my files in the new april beta?

thank you for the help

NikSha
05-02-2010, 08:23 AM
@ daimaku

Did you fix the issue yet? I am having a similar problem with April beta after they renamed folders.

Hourences
05-02-2010, 08:38 AM
Sorry I am so super out of time these days since we are in the last few months of production. I don't have the time to go into the details but look into this direction:

-There is possibly a difference between EditPackages and ModEditPackages in newer UDK builds, use ModEdit to add your U file to the ini file.
-The game prefix warning appeared since the February build I believe, simply remove it from the UC files, add to ini files instead. This should not lead to locking up the game however. If it locks up, something else is wrong. See log file for clues.
-Wafff, your installed game simply does not has the U file probably. Do a windows search for the U file, it probably doesn't exist at all. Using ModEditPackages appears to fix this, as the cooker in newer UDK's for some reason appears to ignore your U file if it is not a ModEditPackage. See point 1. I have only did this once in one a recent UDK btw, so I could just be wrong about this too.

NikSha
05-02-2010, 09:00 AM
@Hourences

You are so awesome. I could kiss you.

Editing ModEditPackages did the trick. :)

ameyp
05-02-2010, 11:26 AM
-There is possibly a difference between EditPackages and ModEditPackages in newer UDK builds, use ModEdit to add your U file to the ini file.


Thanks mate, that solved the problem. Off-topic, I'm slightly offended that Epic wants me to call my Game a "Mod" :rolleyes:

daimaku
05-02-2010, 11:41 AM
@ daimaku

Did you fix the issue yet? I am having a similar problem with April beta after they renamed folders.

i have solved the situation using this in the defaultengineudk.ini


+EditPackages=loderunner

of course in the defaultgameudk.ini i have put before my game, pawn and controller files.

ameyp
05-02-2010, 12:00 PM
Instead of EditPackages, make it


+ModEditPackages=loderunner

BloodReyvyn
05-03-2010, 03:59 AM
This is a pretty cool tutorial, but I was wondering how do I move the camera off of the floor?

It's weird because setting the command "BehindView" in the console to true gives you the GoW-style camera (which is still just a little closer than I would like it), but this script literally places the camera directly behind the character, which in turn makes it so that you cannot see what you are aiming at.

rednaz
05-05-2010, 06:33 PM
This is a pretty cool tutorial, but I was wondering how do I move the camera off of the floor?

It's weird because setting the command "BehindView" in the console to true gives you the GoW-style camera (which is still just a little closer than I would like it), but this script literally places the camera directly behind the character, which in turn makes it so that you cannot see what you are aiming at.

I think Allar from the programming forums has a good 3rd person tutorial. The code that Hourences uses is just a basic idea for his tutorial.

waterxyro
05-10-2010, 07:04 AM
Hourences,

The first time I went through your tutorial, I got lost and frustrated. After giving it another chance, I finally got it to work on my own game and even added an exit button to the menu.

Thank you so much bro.

Chihuahua
07-27-2010, 04:51 PM
Sorry for the bump, but I'm just wondering what's needed to change for the most recent update, July 2010, if there is any.

mikesdk
07-27-2010, 05:19 PM
There's only been a few changes to the UDK since this came out so I would guess that it's still pretty valid.

MasterCheese
07-27-2010, 05:33 PM
Nope everything works fine in the July build. And just a random note, idk if it was somethig i did but whenever you feign death (f key) with the script you only have a head when you get back up.

radomiro
08-20-2010, 02:22 PM
Thanks for the tutorial.

Chihuahua
08-20-2010, 04:28 PM
I solved my problem

For Future REFERANCE, MAKE SURE THE UDK IS INSTALLED IN THE C:/ DIRECTORY OR IT WILL HAVE ISSUES
Least it did for me

seria
08-21-2010, 11:48 PM
I follow the tutorial to make my own game type but when package it it is back to the default game type aka it is no longer using my default character and weapon. Everything worked fine until I packaged it in unreal front end. Even when I click the launch button in Frontend it works

JW1NC
09-05-2010, 12:09 AM
I've used both the text and video versions of this awesome tutorial (Thanks Hourences!) and while cooking I get the following error.


Init: Version: 7026
Init: Epic Internal: 0
Init: Compiled (32-bit): Aug 3 2010 15:13:02
Init: Command line: -platform=PC MG-ExampleGameLevel -languageforcooking=INT -noloccooking -DEFENGINEINI=..\..\UDKGame\Config\DefaultEngine.in i
Init: Base directory: C:\UDK\MyExampleGame\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class UnrealEd.CookPackagesCommandlet
Cooking with SEPARATE Lighting TextureFileCache...
Cooking with SEPARATE Character TextureFileCache...

GeneratePersistentMapList> Clearing existing lists
There are 1 levels to process
Error, Failed to find package 'ExampleGameFrontEnd'
Adding level ..\..\UDKGame\Content\Maps\MyMaps\MG-ExampleGameLevel.udk for cooking...
Adding level ..\..\UDKGame\Content\Maps\EnvyEntry.udk for cooking...
Adding package ..\..\UDKGame\Content\GFx\UDKFonts.upk for cooking...
Materials will be cleaned up...
StaticMesh materials will be cleaned up...
Cooking [Combined] Startup_INT with:
DefaultUISkin
EngineDebugMaterials
EngineFonts
EngineMaterials
EngineSounds
FX_HitEffects
fonts_en
GFxUTHud
UDKFonts
MyGameInterface
SoundClassesAndModes
UI_Fonts
UI_Fonts_Final
Cooking [Seekfree] MG-ExampleGameLevel
Failed to find supported game type(s) for MG-ExampleGameLevel

Warning/Error Summary
---------------------
Error, Failed to find package 'ExampleGameFrontEnd'

Failure - 1 error(s), 0 warning(s)
Execution of commandlet took: 3.98 seconds

[COMMANDLET 'UDK.exe CookPackages -platform=PC MG-ExampleGameLevel -languageforcooking=INT -noloccooking' FAILED] September 4, 11:58 PM



The only error being "Error, Failed to find package 'ExampleGameFrontEnd'"
I'm sure it's something simple but it's late and I'm not finding any mis-steps as I work backwards through the tutorial.

Any help would be appreciated.

Wyldhunt
09-05-2010, 02:47 AM
Any chance that you can paste a copy of your defaultengine.ini and your defaultgame.ini? I'm guessing it's something in there.

JW1NC
09-05-2010, 07:29 AM
[Configuration]
BasedOn=..\UDKGame\Config\DefaultEngineUDK.ini

[URL]
MapExt=udk
Map=ExampleGameFrontEnd.udk
LocalMap=ExampleGameFrontEnd.udk
TransitionMap=EnvyEntry.udk
EXEName=UTGame.exe
DebugEXEName=DEBUG-UTGame.exe

[Engine.DemoRecDriver]
DemoSpectatorClass=UTGame.DemoRecSpectator

[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+EditPackages=MyGame
+ModEditPackages=MyGame

[Engine.Engine]
ConsoleClassName=UTGame.UTConsole
ScoutClassName=UTGame.UTScout
GameViewportClientClassName=UTGame.UTGameViewportC lient
DefaultPostProcessName=FX_HitEffects.UTPostProcess _Console
AllowNvidiaStereo3d=True

[Engine.PackagesToAlwaysCook]
+Package=EnvyEntry
+Package=ExampleGameFrontEnd

; todo: Remove the following after UDK Scaleform front end is completed
+Package=UTFrontEnd
+Package=UDKFrontEndMap
+Package=UDKFonts

[Engine.StartupPackages]
+Package=FX_HitEffects
+Package=UDKFonts
+Package=fonts_en
+Package=MyGameInterface

[Engine.PackagesToForceCookPerMap]
.Map=UDKFrontEndMap
.Package=UDKFrontEnd
.Map=UTFrontEnd
.Package=UI_Scenes_Mutators
.Package=UI_FrontEnd_Art
.Package=UI_Portrait
.Package=UI_Scenes_ChrisBLayout
.Package=UI_Scenes_FrontEnd
.Package=UI_Scenes_Common
.Package=UI_Skin_Derived
.Package=UI_Skins
.Map=ExampleGameFrontEnd
.Package=MyGameInterface

[Engine.DataStoreClient]
+GlobalDataStoreClasses=UTGame.UTUIDataStore_Strin gAliasMap
+PlayerDataStoreClassNames=UTGame.UTUIDataStore_St ringAliasBindingsMap
+GlobalDataStoreClasses=UTGame.UTUIDataStore_Strin gList
+GlobalDataStoreClasses=UTGame.UTUIDataStore_Optio ns
+GlobalDataStoreClasses=UTGame.UTUIDataStore_MenuI tems
+GlobalDataStoreClasses=UTGame.UTDataStore_GameSet tingsDM
+GlobalDataStoreClasses=UTGame.UTDataStore_GameSea rchDM

[Engine.UIDataStore_OnlinePlayerData]
ProfileSettingsClassName=UTGame.UTProfileSettings

[Windows.StandardUser]
MyDocumentsSubDirName=Unreal Tournament 3

[ConfigCoalesceFilter]
+FilterOut=UTEditorKeyBindings.ini
+FilterOut=UTEditorUserSettings.ini

[FullScreenMovie]
+StartupMovies=UT_loadmovie2
+LoadMapMovies=UT_loadmovie2

[Engine.GameViewportClient]
bUseHardwareCursorWhenWindowed=FALSE



[Configuration]
BasedOn=..\UDKGame\Config\DefaultGameUDK.ini

[Engine.GameInfo]
DefaultGame=MyGame.MyGameInfo
DefaultServerGame=UTGame.UTDeathmatch
PlayerControllerClassName=MyGame.MyPlayerControlle r
GameDifficulty=+1.0
MaxPlayers=32
DefaultGameType="UTGame.UTDeathmatch";
+DefaultMapPrefixes=(Prefix="DM",bUsesCommonPackage=FALSE,GameType="UTGame.UTDeathmatch")
+DefaultMapPrefixes=(Prefix="CTF",bUsesCommonPackage=FALSE,GameType="UTGameContent.UTCTFGame_Content")
+DefaultMapPrefixes=(Prefix="VCTF",bUsesCommonPackage=FALSE,GameType="UTGameContent.UTVehicleCTFGame_Content")
+DefaultMapPrefixes=(Prefix="MG",bUsesCommonPackage=FALSE,GameType="MyGame.MyGameInfo")

[Engine.AutoTestManager]
NumAutomatedMapTestingCycles=0
+AutomatedMapTestingList=CTF-Hydrosis
+AutomatedMapTestingList=DM-Defiance
+AutomatedMapTestingList=VCTF-Kargo
+AutomatedMapTestingList=WAR-Avalanche
+AutomatedMapTestingList=WAR-Torlan

[Engine.WorldInfo]
DecalManagerClassPath="UTGame.UTDecalManager"

[UTGame.UTPawn]
Bob=0.010
bWeaponBob=true

[UTGame.UTPlayerController]
bAutoTaunt=false
bLandingShake=true
PawnShadowMode=SHADOW_All
AutoObjectivePreference=AOP_NoPreference
bUseVehicleRotationOnPossess=true
bFirstPersonWeaponsSelfShadow=true

[UTGame.UTConsolePlayerController]
bTargetAdhesionEnabled=TRUE
bDebugTargetAdhesion=FALSE

[UTGame.DemoRecSpectator]
bLockRotationToViewTarget=false
bAutoSwitchPlayers=false
AutoSwitchPlayerInterval=0

[UTGame.UTDeathMessage]
bNoConsoleDeathMessages=false

[UTGame.UTTeamDeathMessage]
bNoConsoleDeathMessages=true

[UTGame.UTAnnouncer]
AnnouncerLevel=2

[UTGame.UTMusicManager]
MusicVolume=0.36
StingerVolumeMultiplier=1.1

[UTGame.UTGame]
BotRatio=+1.0
GoalScore=25
bTournament=false
bPlayersMustBeReady=false
NetWait=15
ClientProcessingTimeout=30
RestartWait=30
MinNetPlayers=1
bWaitForNetPlayers=true
LateEntryLives=1
TimeLimit=20
GameDifficulty=+5.0
EndTimeDelay=4.0
GameSpecificMapCycles=(GameClassName="UTDeathmatch",Maps=("DM-Sanctuary","DM-Deck","DM-Gateway"))
GameSpecificMapCycles=(GameClassName="UTTeamGame",Maps=("DM-Sanctuary","DM-Deck","DM-Gateway"))
GameSpecificMapCycles=(GameClassName="UTVehicleCTFGame_Content",Maps=("VCTF-Necropolis","VCTF-SandStorm"))
bLogGameplayEvents=false

[UTGame.UTTeamGame]
GoalScore=60
bPlayersBalanceTeams=true
bWeaponStay=true
MaxLives=0

[UTGame.UTCTFGame]
GoalScore=3
bWeaponStay=true

[UTGame.UTHUDBase]
ConsoleIconFontClassName=UI_Fonts.Fonts.UI_Fonts_X box18

[UTGame.UTHUD]
ConsoleMessageCount=16
SafeRegionPct=1.0
bShowMap=false
MapDefaultSize=220
bShowClock=false
bShowDoll=true
bShowAmmo=true
bShowPowerups=true
PowerupDims=(X=48,Y=52);
bShowScoring=true
bShowLeaderboard=true
bShowVehicle=true
bShowDamage=true
bShowMap=true
DamageIndicatorSize=384
bShowMobileHud=true
bShowVehicleArmorCount=True

[UTGame.UTInventoryManager]
bAutoSwitchWeaponOnPickup=true

[UTGame.UTMutator_Arena]
ArenaWeaponClassPath="UTGame.UTWeap_ShockRifle"

[UTGame.UTUIScene_COptions]
FirstCinematicMapName="UTCin-Intro"

[UTGame.UTUIFrontEnd_LoginScreen]
bSavePassword=True

[UTGame.UTUIDataStore_StringList]
+StringData=(Tag="ServerType",DefaultValueIndex=1)
+StringData=(Tag="ServerType360",DefaultValueIndex=1)
+StringData=(Tag="MatchType",DefaultValueIndex=1)
+StringData=(Tag="MatchType360",DefaultValueIndex=1)
+StringData=(Tag="BotTeams",DefaultValueIndex=0)
+StringData=(Tag="RecordDemo",DefaultValueIndex=0)
+StringData=(Tag="PlayerName",DefaultValueIndex=0)

[UTGame.UTUIDataStore_MenuItems]
+ElementProviderTypes=(ProviderTag="MainMenu",ProviderClassName="UTGame.UTUIDataProvider_MainMenuItems")
+ElementProviderTypes=(ProviderTag="MultiplayerMenu",ProviderClassName="UTGame.UTUIDataProvider_MultiplayerMenuItem")
+ElementProviderTypes=(ProviderTag="GameModes",ProviderClassName="UTGame.UTUIDataProvider_GameModeInfo")
+ElementProviderTypes=(ProviderTag="Maps",ProviderClassName="UTGame.UTUIDataProvider_MapInfo")
+ElementProviderTypes=(ProviderTag="MidGameMenu",ProviderClassName="UTGame.UTUIDataProvider_MidGameMenu")
+ElementProviderTypes=(ProviderTag="Mutators",ProviderClassName="UTGame.UTUIDataProvider_Mutator")
+ElementProviderTypes=(ProviderTag="Weapons",ProviderClassName="UTGame.UTUIDataProvider_Weapon")
+ElementProviderTypes=(ProviderTag="DropDownWeapons",ProviderClassName="UTGame.UTUIDataProvider_Weapon")

;///////////////
; Weapons
;///////////////
[UTWeap_RocketLauncher UTUIDataProvider_Weapon]
ClassName=UTGameContent.UTWeap_RocketLauncher_Cont ent
AmmoClassPath=UTGame.UTAmmo_RocketLauncher

[UTWeap_LinkGun UTUIDataProvider_Weapon]
ClassName=UTGame.UTWeap_LinkGun
AmmoClassPath=UTGame.UTAmmo_LinkGun

[UTWeap_ShockRifle UTUIDataProvider_Weapon]
ClassName=UTGameContent.UTWeap_ShockRifle
AmmoClassPath=UTGame.UTAmmo_ShockRifle

;///////////////
; Possible Key Bindings
;///////////////
[MoveForward UTUIDataProvider_KeyBinding]
Command="GBA_MoveForward"
bIsCrucialBind=true

[MoveBackward UTUIDataProvider_KeyBinding]
Command="GBA_Backward"
bIsCrucialBind=true

[StrafeLeft UTUIDataProvider_KeyBinding]
Command="GBA_StrafeLeft"
bIsCrucialBind=true

[StrafeRight UTUIDataProvider_KeyBinding]
Command="GBA_StrafeRight"
bIsCrucialBind=true

[TurnLeft UTUIDataProvider_KeyBinding]
Command="GBA_TurnLeft"

[TurnRight UTUIDataProvider_KeyBinding]
Command="GBA_TurnRight"

[Jump UTUIDataProvider_KeyBinding]
Command="GBA_Jump"
bIsCrucialBind=true

[Duck UTUIDataProvider_KeyBinding]
Command="GBA_Duck"
bRemoveOnPS3=1
bRemoveOn360=1
bIsCrucialBind=true

[Fire UTUIDataProvider_KeyBinding]
Command="GBA_Fire"
bIsCrucialBind=true

[AltFire UTUIDataProvider_KeyBinding]
Command="GBA_AltFire"
bIsCrucialBind=true

[Use UTUIDataProvider_KeyBinding]
Command="GBA_Use"
bIsCrucialBind=true

[FeignDeath UTUIDataProvider_KeyBinding]
Command="GBA_FeignDeath"

[SwitchToBestWeapon UTUIDataProvider_KeyBinding]
Command="GBA_SwitchToBestWeapon"

[PreviousWeapon UTUIDataProvider_KeyBinding]
Command="GBA_PrevWeapon"

[NextWeapon UTUIDataProvider_KeyBinding]
Command="GBA_NextWeapon"

[SwitchWeapon1 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon1"

[SwitchWeapon2 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon2"

[SwitchWeapon3 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon3"

[SwitchWeapon4 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon4"

[SwitchWeapon5 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon5"

[SwitchWeapon6 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon6"

[SwitchWeapon7 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon7"

[SwitchWeapon8 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon8"

[SwitchWeapon9 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon9"

[SwitchWeapon10 UTUIDataProvider_KeyBinding]
Command="GBA_SwitchWeapon10"

[ToggleTranslocator UTUIDataProvider_KeyBinding]
Command="GBA_ToggleTranslocator"
bIsCrucialBind=true

[TransmitVoice UTUIDataProvider_KeyBinding]
Command="GBA_ToggleSpeaking"

[Talk UTUIDataProvider_KeyBinding]
Command="GBA_Talk"
bRemoveOnPS3=True
bRemoveOn360=1

[TeamTalk UTUIDataProvider_KeyBinding]
Command="GBA_TeamTalk"
bRemoveOnPS3=True
bRemoveOn360=1

[Taunt1 UTUIDataProvider_KeyBinding]
Command="GBA_Taunt1"

[Taunt2 UTUIDataProvider_KeyBinding]
Command="GBA_Taunt2"

[Horn UTUIDataProvider_KeyBinding]
Command="GBA_Horn"

[ShowMenu UTUIDataProvider_KeyBinding]
Command="GBA_ShowMenu"
bIsCrucialBind=true

[ShowCommandMenu UTUIDataProvider_KeyBinding]
Command="GBA_ShowCommandMenu"

[ShowScores UTUIDataProvider_KeyBinding]
Command="GBA_ShowScores"

[ShowMap UTUIDataProvider_KeyBinding]
Command="GBA_ShowMap"

[ToggleMinimap UTUIDataProvider_KeyBinding]
Command="GBA_ToggleMinimap"

;[GrowHud UTUIDataProvider_KeyBinding]
;Command="GBA_GrowHud"

;[ShrinkHud UTUIDataProvider_KeyBinding]
;Command="GBA_ShrinkHud"

;///////////////
; Main Menu
;///////////////
[InstantAction UTUIDataProvider_MainMenuItems]
bRemoveOnPC=0
bRemoveOn360=0
bRemoveOnPS3=0

[Multiplayer UTUIDataProvider_MainMenuItems]
bRemoveOnPC=0
bRemoveOn360=0
bRemoveOnPS3=0

[Exit UTUIDataProvider_MainMenuItems]
bRemoveOnPC=0
bRemoveOn360=1
bRemoveOnPS3=1

;///////////////
; Multiplayer Menu
;///////////////
[JoinGame UTUIDataProvider_MultiplayerMenuItem]
bRemoveOnPC=0
bRemoveOn360=0
bRemoveOnPS3=0

[HostGame UTUIDataProvider_MultiplayerMenuItem]
bRemoveOnPC=0
bRemoveOn360=0
bRemoveOnPS3=0

;///////////////
; UT3 Mutators
;///////////////
[UTMutator_SlowTimeKills UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_SlowTimeKills
GroupNames=GAMESPEED
bStandaloneOnly=1
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_BigHead UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_BigHead
GroupNames=BIGHEAD
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_FriendlyFire UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_FriendlyFire
GroupNames=FRIENDLYFIRE
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_Handicap UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_Handicap
GroupNames=HANDICAP
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_LowGrav UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_LowGrav
GroupNames=JUMPING
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_NoPowerups UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_NoPowerups
GroupNames=POWERUPS
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_Slomo UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_Slomo
GroupNames=GAMESPEED
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_SpeedFreak UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_SpeedFreak
GroupNames=GAMESPEED
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_SuperBerserk UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_SuperBerserk
GroupNames=FIRINGSPEED
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_WeaponsRespawn UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_WeaponsRespawn
GroupNames=WEAPONRESPAWN
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

[UTMutator_Survival UTUIDataProvider_Mutator]
ClassName=UTGame.UTMutator_Survival
GroupNames=
UIConfigScene=
bRemoveOn360=False
bRemoveOnPC=False
bRemoveOnPS3=False

;///////////////
; UT3 Game Modes
;///////////////
[UTDeathmatch UTUIDataProvider_GameModeInfo]
GameMode=UTGame.UTDeathmatch
GameSettingsClass=UTgameSettingsDM
GameSearchClass=UTGameSearchDM
PreviewImageMarkup=UI_FrontEnd_Art.GameTypes.___De athmatch
DefaultMap=DM-Deck
Prefixes=DM
OptionSet=DM
IconImage=UI_HUD.HUD.UI_HUD_BaseD
IconU=442
IconV=76
IconUL=129
IconVL=104

[UTTeamGame UTUIDataProvider_GameModeInfo]
GameMode=UTGame.UTTeamGame
GameSettingsClass=UTGameSettingsTDM
GameSearchClass=UTGameSearchTDM
PreviewImageMarkup=UI_FrontEnd_Art.GameTypes.___Te amDeathmatch
DefaultMap=DM-Deck
Prefixes=DM
OptionSet=TDM
IconImage=UI_HUD.HUD.UI_HUD_BaseD
IconU=571
IconV=76
IconUL=149
IconVL=105

[UTVehicleCTFGame_Content UTUIDataProvider_GameModeInfo]
GameMode=UTGameContent.UTVehicleCTFGame_Content
GameSettingsClass=UTGameSettingsVCTF
GameSearchClass=UTGameSearchVCTF
PreviewImageMarkup=UI_FrontEnd_Art.GameTypes.___VC TF
DefaultMap=VCTF-Necropolis
Prefixes=VCTF
OptionSet=VCTF
IconImage=UI_HUD.HUD.UI_HUD_BaseD
IconU=230
IconV=76
IconUL=104
IconVL=113

;///////////////
; UT3 Maps
;///////////////
[vCTF-Necropolis UTUIDataProvider_MapInfo]
MapName=vCTF-NECROPOLIS
PreviewImageMarkup=UI_FrontEnd_Art.MapPics.___Map-Pic-vCTF-Necropolis
Description=<Strings:UTGAMEUI.CampaignBriefing.BriefDesc38>

[vCTF-Sandstorm UTUIDataProvider_MapInfo]
MapName=vCTF-SANDSTORM
PreviewImageMarkup=UI_FrontEnd_Art.MapPics.___Map-Pic-vCTF-Sandstorm
Description=<Strings:UTGAMEUI.CampaignBriefing.BriefDesc35>

[DM-Deck UTUIDataProvider_MapInfo]
MapName=DM-DECK
PreviewImageMarkup=UI_FrontEnd_Art.MapPics.___Map-Pic-DM-Deck
Description=<Strings:UTGAMEUI.CampaignBriefing.BriefDesc139>

[DM-Sanctuary UTUIDataProvider_MapInfo]
MapName=DM-SANCTUARY
PreviewImageMarkup=UI_FrontEnd_Art.MapPics.___Map-Pic-DM-Sanctuary
Description=<Strings:UTGAMEUI.CampaignBriefing.BriefDesc36>

;///////////////
; Mid Game Menu
;///////////////
[ChangeTeam UTUIDataProvider_MidGameMenu]
FriendlyName=Change Teams
Description=Change to a new team.

[Reconnect UTUIDataProvider_MidGameMenu]
FriendlyName=Reconnect
Description=Reconnect to the last server.

[ExitGame UTUIDataProvider_MidGameMenu]
FriendlyName=Exit Match
Description=Exit and return to the main menu.

[UTGame.UTUIDataStore_Options]
+ElementProviderTypes=(ProviderTag="OptionSets",ProviderClassName="UTGame.UTUIDataProvider_MenuOption")

;///////////////
; Instant Action Options
;///////////////

[BotSkill_Common UTUIDataProvider_MenuOption]
OptionSet=Common
DataStoreMarkup=<UTGameSettings:BotSkill>
bReadOnlyCombo=1

[NumBots_Common UTUIDataProvider_MenuOption]
OptionSet=Common
DataStoreMarkup=<UTGameSettings:NumBots>
OptionType=UTOT_Slider
RangeData=(MinValue=0.0,MaxValue=15.0,bIntRange=1, NudgeValue=1.0,CurrentValue=4.0)

[GoalScore_Common UTUIDataProvider_MenuOption]
OptionSet=Common
DataStoreMarkup=<UTGameSettings:GoalScore>
bEditableCombo=1
bNumericCombo=1

[TimeLimit_Common UTUIDataProvider_MenuOption]
OptionSet=Common
DataStoreMarkup=<UTGameSettings:TimeLimit>
bEditableCombo=1
bNumericCombo=1

[BotTeam_Common UTUIDataProvider_MenuOption]
OptionSet=Common
DataStoreMarkup=<UTStringList:BotTeams>
bRemoveOn360=1
bRemoveOnPC=1
bRemoveOnPS3=1

; Disabled
;[RecordDemo_Common UTUIDataProvider_MenuOption]
;OptionSet=Common
;DataStoreMarkup=<UTStringList:RecordDemo>
;bRemoveOn360=1
;OptionType=UTOT_CollectionCheckBox

;///////////////
; Deathmatch Options
;///////////////

[BotSkill_DM UTUIDataProvider_MenuOption]
+OptionSet=DM
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:BotSkill>

[NumBots_DM UTUIDataProvider_MenuOption]
+OptionSet=DM
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:NumBots>
OptionType=UTOT_Slider
RangeData=(MinValue=0.0,MaxValue=15.0,bIntRange=1, NudgeValue=1.0,CurrentValue=0.0)

[VsBots_DM UTUIDataProvider_MenuOption]
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:VsBots>
bOnlineOnly=1

[GoalScore_DM UTUIDataProvider_MenuOption]
+OptionSet=DM
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:GoalScore>
bEditableCombo=1
bNumericCombo=1

[TimeLimit_DM UTUIDataProvider_MenuOption]
+OptionSet=DM
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:TimeLimit>
bEditableCombo=1
bNumericCombo=1

[BotTeam_DM UTUIDataProvider_MenuOption]
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTStringList:BotTeams>
bRemoveOn360=1
bRemoveOnPC=1
bRemoveOnPS3=1

[ForceRespawn_DM UTUIDataProvider_MenuOption]
+OptionSet=DM
+OptionSet=TDM
+OptionSet=VCTF
DataStoreMarkup=<UTGameSettings:ForceRespawn>
OptionType=UTOT_CollectionCheckBox


;///////////////
; Server Options
;///////////////
[ServerType UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTStringList:ServerType>
bRemoveOn360=1

[ServerType360 UTUIDataProvider_MenuOption]
OptionSet=Server
DataStoreMarkup=<UTStringList:ServerType360>
bRemoveOnPC=1
bRemoveOnPS3=1

[MaxPlayers_PC UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:MaxPlayers>
OptionType=UTOT_Slider
RangeData=(MinValue=2,MaxValue=24,bIntRange=1,Nudg eValue=1,CurrentValue=24)
bRemoveOn360=1
bRemoveOnPS3=1

[MaxPlayers_Console UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:MaxPlayers>
OptionType=UTOT_Slider
RangeData=(MinValue=2,MaxValue=16,bIntRange=1,Nudg eValue=1,CurrentValue=16)
bRemoveOnPC=1

[MinNumPlayers_PC UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:MinNetPlayers>
OptionType=UTOT_Slider
RangeData=(MinValue=0,MaxValue=24,bIntRange=1,Nudg eValue=1,CurrentValue=24)
bRemoveOn360=1
bRemoveOnPS3=1

[MinNumPlayers_Console UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:MinNetPlayers>
OptionType=UTOT_Slider
RangeData=(MinValue=0,MaxValue=16,bIntRange=1,Nudg eValue=1,CurrentValue=16)
bRemoveOnPC=1

[PrivateSlots UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:NumPrivateConnections>
OptionType=UTOT_Slider
RangeData=(MinValue=0,MaxValue=23,bIntRange=1,Nudg eValue=1,CurrentValue=0)
bRemoveOnPS3=1
bRemoveOnPC=1

[AllowKeyboard UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<UTGameSettings:AllowKeyboard>
OptionType=UTOT_CollectionCheckBox
bRemoveOnPC=true
bRemoveOn360=true

[ServerDescription UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<OnlinePlayerData:ProfileData.ServerDescription>
OptionType=UTOT_EditBox
EditBoxMaxLength=32
bRemoveOn360=true

[ServerMOTD UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<Registry:ServerMOTD>
OptionType=UTOT_EditBox
EditBoxMaxLength=512
bRemoveOn360=true

[ServerPassword UTUIDataProvider_MenuOption]
+OptionSet=Server
DataStoreMarkup=<Registry:ServerPassword>
OptionType=UTOT_EditBox
EditBoxMaxLength=16
bRemoveOn360=true

;///////////////
; Client Options
;///////////////
[MatchType UTUIDataProvider_MenuOption]
+OptionSet=Client
DataStoreMarkup=<UTStringList:MatchType>
bRemoveOn360=1

[MatchType360 UTUIDataProvider_MenuOption]
+OptionSet=Client
DataStoreMarkup=<UTStringList:MatchType360>
bRemoveOnPC=1
bRemoveOnPS3=1

[GameMode_Client UTUIDataProvider_MenuOption]
+OptionSet=Client
DataStoreMarkup=<UTMenuItems:GameModeFilter>

;///////////////
; PS3 Keybinding Presets
;///////////////
[StickConfiguration_PresetsPS3 UTUIDataProvider_MenuOption]
OptionSet=PresetsPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Analog StickPreset>

[ButtonPreset_PresetsPS3 UTUIDataProvider_MenuOption]
OptionSet=PresetsPS3
DataStoreMarkup=<UTStringList:PS3ButtonPresets>

;///////////////
; PS3 Keybinding
;///////////////
[StickConfiguration_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Analog StickPreset>

[X_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Button A>

[Circle_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Button B>

[Square_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Button X>

[Triangle_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_Button Y>

[R1_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_RightB umper>

[R2_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_RightT rigger>

[R3_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_RightT humbstickPressed>

[L1_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_LeftBu mper>

[L2_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_LeftTr igger>

[L3_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_LeftTh umbstickPressed>

[DPadUp_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_DPadUp>

[DPadDown_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_DPadDo wn>

[DPadLeft_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_DPadLe ft>

[DPadRight_KeysPS3 UTUIDataProvider_MenuOption]
OptionSet=KeysPS3
DataStoreMarkup=<OnlinePlayerData:ProfileData.GamepadBinding_DPadRi ght>


[UTGame.UTUIDataStore_StringAliasMap]
FakePlatform=0
+MenuInputMapArray=(FieldName="None",MappedText="")

; Terminology
+MenuInputMapArray=(FieldName="Term_Controller",Set="PC",MappedText="<Strings:UDKGameUI.Terms.Controller_PC>")
+MenuInputMapArray=(FieldName="Term_Controller",Set="PS3",MappedText="<Strings:UDKGameUI.Terms.Controller_PS3>")
+MenuInputMapArray=(FieldName="Term_Controller",Set="360",MappedText="<Strings:UDKGameUI.Terms.Controller_360>")

+MenuInputMapArray=(FieldName="Term_GamerCard",Set="PS3",MappedText="<Strings:UDKGameUI.Terms.GamerCard_PS3>")
+MenuInputMapArray=(FieldName="Term_GamerCard",Set="PC",MappedText="<Strings:UDKGameUI.Terms.GamerCard_PC>")
+MenuInputMapArray=(FieldName="Term_GamerCard",Set="360",MappedText="<Strings:UDKGameUI.Terms.GamerCard_360>")

; Button Mappings

+MenuInputMapArray=(FieldName="CycleTabs",Set="PS3",MappedText="CYCLE TABS")
+MenuInputMapArray=(FieldName="CycleTabs",Set="360",MappedText="CYCLE TABS")

+MenuInputMapArray=(FieldName="AnyKey",Set="PC",MappedText="<Strings:UDKGameUI.Generic.Fire> ")

+MenuInputMapArray=(FieldName="Accept",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_A> ")
+MenuInputMapArray=(FieldName="Cancel",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_B> ")
+MenuInputMapArray=(FieldName="Conditional1",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_Y> ")
+MenuInputMapArray=(FieldName="Conditional2",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_X> ")
+MenuInputMapArray=(FieldName="Start",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_Start> ")
+MenuInputMapArray=(FieldName="ShiftUp",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_LeftBumper> ")
+MenuInputMapArray=(FieldName="ShiftDown",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_RightBumper> ")
+MenuInputMapArray=(FieldName="ShiftUpTrigger",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_LeftTrigger> ")
+MenuInputMapArray=(FieldName="ShiftDownTrigger",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_RightTrigger> ")
+MenuInputMapArray=(FieldName="ShiftBothTrigger",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_LeftTrigger><Strings:UDKGameUI.ButtonFont.Xenon_RightTrigger> ")
+MenuInputMapArray=(FieldName="Defaults",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_LeftTrigger> ")
+MenuInputMapArray=(FieldName="AnyKey",Set="360",MappedText="<Strings:UDKGameUI.ButtonFont.Xenon_A> ")

+MenuInputMapArray=(FieldName="Accept",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_X> ")
+MenuInputMapArray=(FieldName="Cancel",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_Circle> ")
+MenuInputMapArray=(FieldName="Conditional1",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_Triangle> ")
+MenuInputMapArray=(FieldName="Conditional2",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_Square> ")
+MenuInputMapArray=(FieldName="Start",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_Start> ")
+MenuInputMapArray=(FieldName="Select",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_Select> ")
+MenuInputMapArray=(FieldName="ShiftUp",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_L1> ")
+MenuInputMapArray=(FieldName="ShiftDown",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_R1> ")
+MenuInputMapArray=(FieldName="ShiftUpTrigger",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_L2> ")
+MenuInputMapArray=(FieldName="ShiftDownTrigger",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_R2> ")
+MenuInputMapArray=(FieldName="ShiftBothTrigger",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_L2><Strings:UDKGameUI.ButtonFont.PS3_R2> ")
+MenuInputMapArray=(FieldName="LeftTrigger",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_L2> ")
+MenuInputMapArray=(FieldName="Defaults",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_L2> ")
+MenuInputMapArray=(FieldName="RightTrigger",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_R2> ")
+MenuInputMapArray=(FieldName="AnyKey",Set="PS3",MappedText="<Strings:UDKGameUI.ButtonFont.PS3_X> ")



Something else I came across that may have had some repercussions is that I created the level MG-ExampleGameLevel and then re-saved it for the UI as MG-ExampleFrontEnd originally. I went back and re-saved it again as ExampleFrontEnd and went through all the steps again with UnrealFrontend to no avail.

Wyldhunt
09-05-2010, 08:41 AM
I'm just about to leave work, so I didn't have time to look at it very close. I'll take another look later if this doesn't help.

First:

[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+EditPackages=MyGame
+ModEditPackages=MyGame

Remove the +EditPackages=MyGame line.
It should just be:

[UnrealEd.EditorEngine]
+EditPackages=UTGame
+EditPackages=UTGameContent
+ModEditPackages=MyGame

Second:


+Package=ExampleGameFrontEnd
seems to be the actual line causing the error. It isn't finding a file named ExampleGameFrontEnd in your MyGame folder.

A couple of possible reasons:
*Because it was confused by the double add call above.
*Because you misstyped the name of the package.
*Because your MyGame folder is not in the Content directory.
*Because it is the same name as your map. UDK does not play nice with multiple files named the same. Even if they have different extensions. If the other stuff doesn't fix it, try re-saving the level or package as a slightly different name, and update that ini line with the new name... You'll also need to update any references to anything in that package in your scripts if you change your package name.

Also, your scripts will not work if your level does not begin with "MG-".
That's what this line means:

+DefaultMapPrefixes=(Prefix="MG",bUsesCommonPackage=FALSE,GameType="MyGame.MyGameInfo")
So, MG-ExampleGameLevel was probably the best name on that list.

JW1NC
09-05-2010, 09:46 AM
@ Wyldhunt - I eliminated the "+EditPackages=MyGame" as specified. This is in the DefaultEngine.ini by default and the tutorial doesn't specify to remove it so I assume it is something added in a newer version of UDK?

It turned out when I realized I had MG-ExampleGameLevel and MG-ExampleFrontEnd and changed MG-ExampleFrontEnd to ExampleFrontEnd it was still wrong, it needed to be ExampleGameFrontEnd. I fixed that and got a successful cook.

Thanks for the help!

SonnyAngellTeq
09-28-2010, 02:25 PM
Hey guys, does anyone know how to simply make one skeletal mesh or static mesh rotatable via arrow keys?

im trying to have ONE object in a scene and have it rotate via the arrow keys.

soon to be coded for a touchscreen....

im very new so any help WILL be appriciated

Fuzz2k7
09-28-2010, 05:34 PM
My game developer career needs this.

Raap
10-02-2010, 07:29 PM
I've used both the text and video versions of this awesome tutorial (Thanks Hourences!) and while cooking I get the following error.


Init: Version: 7026
Init: Epic Internal: 0
Init: Compiled (32-bit): Aug 3 2010 15:13:02
Init: Command line: -platform=PC MG-ExampleGameLevel -languageforcooking=INT -noloccooking -DEFENGINEINI=..\..\UDKGame\Config\DefaultEngine.in i
Init: Base directory: C:\UDK\MyExampleGame\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class UnrealEd.CookPackagesCommandlet
Cooking with SEPARATE Lighting TextureFileCache...
Cooking with SEPARATE Character TextureFileCache...

GeneratePersistentMapList> Clearing existing lists
There are 1 levels to process
Error, Failed to find package 'ExampleGameFrontEnd'
Adding level ..\..\UDKGame\Content\Maps\MyMaps\MG-ExampleGameLevel.udk for cooking...
Adding level ..\..\UDKGame\Content\Maps\EnvyEntry.udk for cooking...
Adding package ..\..\UDKGame\Content\GFx\UDKFonts.upk for cooking...
Materials will be cleaned up...
StaticMesh materials will be cleaned up...
Cooking [Combined] Startup_INT with:
DefaultUISkin
EngineDebugMaterials
EngineFonts
EngineMaterials
EngineSounds
FX_HitEffects
fonts_en
GFxUTHud
UDKFonts
MyGameInterface
SoundClassesAndModes
UI_Fonts
UI_Fonts_Final
Cooking [Seekfree] MG-ExampleGameLevel
Failed to find supported game type(s) for MG-ExampleGameLevel

Warning/Error Summary
---------------------
Error, Failed to find package 'ExampleGameFrontEnd'

Failure - 1 error(s), 0 warning(s)
Execution of commandlet took: 3.98 seconds

[COMMANDLET 'UDK.exe CookPackages -platform=PC MG-ExampleGameLevel -languageforcooking=INT -noloccooking' FAILED] September 4, 11:58 PM



The only error being "Error, Failed to find package 'ExampleGameFrontEnd'"
I'm sure it's something simple but it's late and I'm not finding any mis-steps as I work backwards through the tutorial.

Any help would be appreciated.

Hello,

I registered on these forums 2 days ago to say I got the same issue (it took 2 days before my account got moderator approved :) ), however I found a fix for it meanwhile and what I did was simply remove '+Package=YourFrontEnd' from [Engine.PackagesToAlwaysCook].

I cooked the test map and the front end map (both of them because cooking only the regular level results in a client crash on startup when launching the packaged game), and it works just fine.

Hope that still helps anyone who has this issue!

Anyway, thanks for the tutorial Hourences, it helped me understand the basic functionality of the UDK.

Deadwizad
10-19-2010, 06:07 PM
Hi i'm kinda new to scripting in the UDK, got a bit of editor experience but i'm really a programmer so i'd rather be messing with some code.

I've followed hourences tut and its amazing but when i cook my files i get the following error...

Error, ImportText (DefaultMapPrefixes): Missing closing parenthesis: (Prefix=”MG”,bUsesCommonPackage=FALSE,GameType=”My Game.MyGameInfo”)

no i've looked at the tut over and over and been all over the files i've made to find a cock up but i really cant see it, does anyone have any inside info i'm missing?

Cheers

Deadwizad

ryan954
10-22-2010, 10:00 PM
is their any way to make this a first person shooter

Claazix
10-26-2010, 10:43 AM
Error, ImportText (DefaultMapPrefixes): Missing closing parenthesis: (Prefix=”MG”,bUsesCommonPackage=FALSE,GameType=”My Game.MyGameInfo”)



Also had this error after following the tut. Took a lot of playing around but i finally figured it out (i'm new to all this stuff).

If you copy and paste it is in a different font and therefore gets confused - i think it is the (")'s. just delete them and write them out again, save and it works fine.

Hope this helps someone :)

Star Weaver
10-26-2010, 11:47 AM
It's definatly those quotes; you can see the difference: ASCII straight quote -> "” <- closing curly quote that was in pasted text. The latter is great for typesetting, but has a history of playing hell with most compiler/interperter/praser type programs :).

Deadwizad
10-26-2010, 03:51 PM
Thanks for the reply, i'll check that, but that has to be the dumbest reason ever for a line of code not working lol

Cheers
Deadwizad

Snufkin
11-20-2010, 08:56 AM
OK so i followed this tutorial everything went fine no errors but when i select the GameInfo for the PIE and run the game in the editor all i get is this.

(http://img23.imageshack.us/i/whatthefoog.jpg/)

http://img23.imageshack.us/img23/9618/whatthefoog.th.jpg (http://img23.imageshack.us/i/whatthefoog.jpg/)

That doesn't look like a TopDown game to me..?

Note i used the UDN code with the October release.

http://udn.epicgames.com/Three/CameraTechnicalGuide.html#Example%20Top-Down%20Camera

Sir. Polaris
11-20-2010, 09:02 AM
It's definatly those quotes; you can see the difference: ASCII straight quote -> "” <- closing curly quote that was in pasted text. The latter is great for typesetting, but has a history of playing hell with most compiler/interperter/praser type programs :).

Don't import from word :D - I spent a 8h once with C when I was first learning and couldn't figure out why things wouldn't work.

Snufkin
11-20-2010, 09:04 AM
Nvm if fixed it:

DefaultGame=DefaultGame=MyGame.MyGameInfo

supposed to be

DefaultGame=MyGame.MyGameInfo

Doh, lmao!

NanoDesu
11-20-2010, 11:16 PM
Gah, stuck in Menu tutorial. When i tried to create the scene in the content browser, there is no UIScene in factory list :<

I'm using UDK October Beta, and there is a note in the news that the old UI system has been removed. Was that mean that we can no longer follow the tutorial for creating the menu/UI scene and we have to use Scaleform Gx? Or is there any other workaround for creating UI?

CloDel Studios
11-21-2010, 12:24 AM
Yeah, there is no more UI like that, all is done with Scaleform.

kn00tcn
12-04-2010, 10:24 PM
pretty good tut, i skipped over the menu stuff... & some of the stuff to skip for cooking, & finally have my first standalone!

now to find how to make a scaleform menu & lower the filesize to only packages my test game uses

Rmele09
12-11-2010, 12:21 PM
Is there something like this for a first person game?

m3fs
02-07-2011, 12:27 AM
Thanks for this, Hourences!

Gizmo_x
02-07-2011, 12:32 PM
link is down?

nitewalker11
02-07-2011, 12:37 PM
http://www.hourences.com/an-entire-simple-udk-game/
for Gizmo_x

almost511
02-08-2011, 11:26 AM
I get this warning
C:\UDK\UDK-2011-01\Development\Src\MyGame\Classes\MovingPlatform.u c(17) : Warning, ObjectProperty Engine.StaticMeshComponent:StaticMesh: unresolved reference to 'TestPackageResources.Meshes.TestPlatform'
C:\UDK\UDK-2011-01\Development\Src\MyGame\Classes\MovingPlatform.u c(17) : Warning, Invalid property value in defaults: StaticMesh=TestPackageResources.Meshes.TestPlatfor m

when i try to compile this code from Moving Platform tutorial


class MovingPlatform extends Actor
placeable;

var() const editconst DynamicLightEnvironmentComponent LightEnvironment;

DefaultProperties
{
Begin Object Class=DynamicLightEnvironmentComponent Name=MyLightEnvironment
bEnabled=TRUE
End Object

LightEnvironment=MyLightEnvironment
Components.Add(MyLightEnvironment)


Begin Object class=StaticMeshComponent Name=BaseMesh
StaticMesh=TestPackageResources.Meshes.TestPlatfor m
LightEnvironment=MyLightEnvironment
End Object
Components.Add(BaseMesh)
}