29 October 2011

Bushes

One feature of the game to help the burglar hide is to jump into nearby bushes. This idea, originating from the film "To Catch A Thief", would cause the bush to move, making it visible for second or so after doing the action. To achieve this at a basic stage we decided to just make a cube that would wobble when the player runs into it.

After some research on how we would get the animation of the cube to play as vertice animation in UDK, it became apparent that the new real way to do this with the demise of Actor X, was to use "Morph Targets" (Blend Shapes in Maya). Before doing this stage, we decided to stick with what we know, and what the bushes would actually be most likely animated with in the end; bones. Placing one central bone on the ground, and another at the top to make the top face wobble, I exported using the FBX format, and imported to UDK as a skeletal mesh. The timeline animation made UDK create an "AnimSet" ready for me.
Placing the cube into the world with a nice rudimentary shader in a rudimentary world, I used Kismet to make the animation play when trigger boxes were touched. We put 4 in, doing the same thing, so that moving around inside the bush (cube) would still causing more animations. Furthermore, we wanted it so that when walked into it would play random sound effects, not the same one over and over again. Research showed this to be relatively simple, using a "Random" node in Kismet, linked to 4 different sounds, which all link to the animation.

Further development of this idea when we come to do it properly could include the possibility to use even more trigger volumes to play a specific animation depending on what side of the bush you walk into, while still playing a random sound from its provided choices.

27 October 2011

Balloons

One of the "trap" weapons in the game was to set up a Chinese Lantern that is full of explosive gas. The lantern would hover a set height above the ground, held down by a very small weight on the floor, and attacked to a thin piece of string. If a player were to walk into this thin string and didn't see it to avoid it, the string would pull the lantern down and pull the string out of it, causing a reaction within to make a small explosion over the unsuspecting player.

To do this, I modelled a very simple lantern from our rough initial ideas of how it could look, along with a thin piece of string with a bone structure within. The bone structure allows the string to deform, while keeping the lantern and the small weight on the floor in tact.
When brought in, I created a "Physics Asset" for the lantern, which allowed it to "rag-doll" around when clicked and / or dragged. Then a "Physical Material" was created which was allied to the asset which gave it its gravitational information as well as other such attributes like wind resistance, density, and so on.
This is how I made it float like a lantern, and interact as such.
With this testing we began to think that this idea may not be appropriate because it would be so easy to see. We deduced that players would most likely always see it unless it was used behind a doorway for instance, but even then players would catch-on, and look before the run through doorways. A later project update post will say whether or not we keep this.

25 October 2011

Hiding in wardrobes

In order to allow the Burglars to hide from the guards, we wanted them to be able to hide in various places around the level. We decided that Wardrobes would be a cool place to hide.

I decided to experiment with the idea and how it would be achievable in the UDk


A simple flow diagram explaining the system

I then took this a step further and tried to implement it into a simple test level in UDK. Initially I had trouble working out how to get it to work without using the 'Teleporter' class found in the content browser. I had a look in my UDK reference book 'Mastering Unreal Technology' and realised that there was a Kismet node for this. This required that i have two triggers at each end. One 'trigger volume' to call the on screen comment and also to act as the teleport target, and the other 'Trigger' class to call the command to teleport the player.



I then linked it up in kismet



Further development of this will be required to make sure that only the burglars are able to use these hiding places. I have already begun looking at more complex kismet sequences and how the use of 'team specific triggers' will be useful.

We also want guards to be able to search in the wardrobes to see if the burglar is in them. If this is the case, the burglar will loose.

I managed a simple version of this, where, if a player triggered a third trigger placed at the wardrobe, the player would be killed. I used a delay node to simulate this as I am yet to get  working multiplayer game.

24 October 2011

Packaging a game

Packaging a game is actually a very easy step. It seems that as long as you stick to UDK's file system, it will go without a hitch.

Naming the game for installation

Packaging
After this is done, you are given a .exe file named accordingly which you can then install to other computers and play the game. Ours is called 'UDKInstall-CBG.exe'


Installing the game

...
After this is done, just click the button in the start bar, and you are good to go!

The first alpha release of 'Cat Burglars'
I thought it might be a good idea to try out the new Apple Mac support for UDK games too and again, was a very simple procedure.

Hooray, we're multiplatform :)

23 October 2011

Creating a proper file system and adding custom classes

It is our aim to be able to package installable .exe demos of the game in various stages of development in order to be able to distribute various alpha releases between the group for testing. This may also include selected testers outside of the group to get proper feedback from people unassociated with the project. As our game is primarily multiplayer, this should give us the chance to test it in a multiplayer test situation.

In order to do this, along with making our workflow in UDK efficient I have set up a proper project directory within the UDK folders.

I have also created custom classes and game types so UDK can recognize out custom game from the others. This will also mean that it can be packaged as a unique game.

Here are my custom Classes within our project folder located in the development\Src directory

This is our initial project layout folder within the standard UDKGame directory

This is our Maps directory with our various test maps (note the naming convention 'CBG')

Re-Building the scripts in UnrealFrontend so UDK understands my classes
With this set up, I can now look into how to package a game up into an executable installer for distribution.

Blank Slate :)

Finally we have a "blank slate" to work from. The User Interface now functions more or less to the extent we would want for our demo, although it still is very basic and rough in design.
Here is the end result of working on the custom user interface, created using Photoshop, Flash and Kismet in UDK. In terms of functionality, the play button launches the "DM-Deck" map in UDK. The Options button jumps to a new window where all functionality is off, forcing the player to play as we make it for now at least, and can only press the "Back" button to return here.
I am now confident i know how to get the custom user interface to do almost anything i can think of, as i already know Flash and some ActionScript, and camera controls seem to work in UDK now. Indirectly, this has also given us an insight on how we would make a custom HUD (although we don't plan to have a big HUD anyway, maybe just a map which this doesn't help with).