September 29, 2013

Parse deploy UnicodeDecodeError fix

I've met an amusing bug just right now. My projects are based on Parse Cloud service, and today I've tried to deploy my code from my main Win7 machine. I'm russian guy and my OS has russian localization. So..

Previously I've never met this error, because Python is not my favorite language (and I worked with it on English OSX before). I've instantly googled and found that I should change the code to fix it. Unfortunately I couldn't make it this way - Parse CLT is a binary only.

Then the magic happened.

Fix is very simple - you should delete all non-latin Mime types from your system (f.e. I have few them in Russian). The location is:

And Then John Was A Zombie it works ok now.

September 28, 2013

UDK logging tips (1)

Game logging is a very important thing. So, I want to share some things I'm using to make it comfortable and informative.

1. `Location macros

Use 'Location macros to get actor instance name and class/function location of log event. F.e.:

2. Custom log macroses

In Globals.uci file of your game package (it should be placed in .\Development\Src\MyGame\ folder, not inside Classes folder!) you can add macros like that:

Now you'll be able to use `LogAI(...) when you want to log some AI events (for example). Of course you can customize message as you want.

The great point of using this macros is that you can suppress its output into console by adding simple config in DefaultEngine.ini file:

Once you've decided that you needn't this type config in console all the time anymore (f.e. you've finished hard debug work on AI), you can suppress it, and vice versa.

3. Remember Object's debug functions

ScriptTrace()GetFuncName()DebugBreak(..) are your best friends!

UDK build system for Sublime 2

I'm using Sublime 2 to work on my projects. It's very cool editor which saves my eyes and time a lot.

It can be easily used for building Unreal Engine 3 projects (and UDK projects too).

You have two basic variants:
  1. Use great UnrealScript IDE Plug-in for Sublime Text 2
  2. Create your own simple build system
I strongly recommend new Sublime users to choose the first variant. It has nice syntax highlight for unreal code and good editor integration.

Personally I prefer the second variant, because I like C++ syntax highlighter colors to be used with my code, and I really dislike that Zinggi's plugin changes some key binds and sequences I'm using.

So, if you want to use just a build system for your UDK game, you should:

1. Go to Tools -> Build system -> New build system
2. Add following config:

3. Save it to the ".\AppData\Roaming\Sublime Text 2\Packages\User" folder (should be opened by Sublime by default).
4. Select new build system in Tools -> Build system menu.

Now you'll be able to use Ctrl+B and etc key binds for script building.

Please note that I'm using "shell" : true config to launch UDK as separate process in new window. Unfortunately I can't receive UDK's output into Sublime's console after its update.

September 22, 2013

Publishing UDK game with iCloud in AppStore

If you'll try to upload you UDK-based game with enabled iCloud for review into iTunes you'll met few errors, and official Epic's documentation will tell you nothing.

You just need to add entitlements config to your build. It's very simple, see below.
  1. Download UDKGame.entitlements
  2. Save it to the \UDKGame\Build\IPhone\ folder
  3. Fill it with your own values:
    1. UNIQUESEED is the app seed of your application on Provisioning portal (10 letters)
    2. com.MYCOMPANY.MYGAME is your app's BundleIndentifier. It should be the same you're using in Info.plist and on provisioning portal ("com" can be changed to your own domain, f.e. i'm using "ru")
  4. Rebuild the .ipa
Pay attention to block. Its value contains "save" postfix!

If template link is broken you can use this:

Doomstalker reborn

In time, but Doomstalker is alive. First public release to get initial feedback from players even is in AppStore now.

It will be multiplayer game in style of Quake 3 and Unreal Tournament (but presudo-isometric). I've made a lot of work on game balance now, and next update will be very pleasant and interesting to play. Single-player mode included.

Game style was changed and improved too. You can compare it with old screens.

Also, it's the ticket for SeaCraft to be ported to iOS. Rock'n'roll!