Saturday, March 23, 2013

Camera Prototype Set Up

This week I was able to finalize the basic functionality of our gametype. There are things that will definitely be added as we move on, but I have the base of it laid out. As I mentioned on my last post, I have also been working on the camera set up. I managed to get a simple camera set up that is based upon a specific actor's position. It is a basic scrolling camera that follows the position of the actor that it relies on. Although this is only a rough set up of our camera, I believe this is the eventual functionality that we will be needing for our game. Our game will basically have two camera set ups during gameplay. An initial camera will be the default camera that is showing more of the level in the view space and will have panning functionality to explore the level. Once the main action is initiated, we will switch to the 2nd camera which will follow the actor on screen based on it's position. Looking at this rough camera set up, I think this will be a great fit for our 2nd camera set up. I might still make some changes here and there, but it seems like a good version for the 2nd camera set up we are aiming for. Below you can see a screen shot of the camera set up I have so far. Ignore the aesthetic detailing that has been left out. This is all for testing purposes with placeholders for the initial build.



The 1st camera which will be the default camera is a little tricky to figure out at the moment. I have to decide how much of the level we want to show the end user. I also need access to the dimensions of the levels that will be created from the UDK editor so that I can account for all the various sizes in my code. Using that information, I want to create a camera set up that will show the character and a good amount of the level in the initial viewing space, but also be able to pan around all within the level's dimensions.

Definitely have some more work to do!

Tuesday, March 19, 2013

Researching and GameType Scripting


This week I was doing some more researching to start my UnrealScript portion for the game. We have assigned the major tasks to each individual person for our statement of work, but still need to clarify some additional tasks. I'm in charge of the game type, player controller, and the game play programming. There are many concepts that I want to be careful about when implementing. This is the first type that I am programming with an iOS device, so there are many concepts that I want to make sure are applied correctly like the camera implementation and game type class. I visited the the UDK forums constantly over the week and have looked in many documentations like the UDN Mobile Input System.
I also looked at the Camera Technical Guide for help on how to set up the camera. I know our camera needs to be in a fixed position, but we are not sure if we are displaying the entire level or only parts of it for the view.
What I did notice is that many things have changed with the iOS programming from when I did some exercises before using the Beginning iOS 3D Unreal Games Development book. The mobile aspect of UDK is more integrated now into UDK itself as a whole instead of a separate entity now. Some variables types have changed or have just been omitted. The following function deciphers the user's input.

function bool SwipeZoneCallback(MobileInputZone Zone, float DeltaTime, int Handle, ETouchType EventType, Vector2D TouchLocation)
{
    local bool retVal;
    local Actor PickedActor;
    local Vector HitLocation;
    local TraceHitInfo HitInfo;

    retVal = true;

    if (EventType == Touch_Began)
    {
    // if screen touched then pick actor
        PickedActor = PickActor(TouchLocation, HitLocation, HitInfo);
        // Display coordinates of user touch and if actor selected
        WorldInfo.Game.Broadcast(self, "TouchLocationX = " @ TouchLocation.X @ "TouchLocationY = " @ TouchLocation.Y);
        WorldInfo.Game.Broadcast(self, "PICKED ACTOR = " @ PickedActor @ ", HitLocation = " @ HitLocation @ ", Zone Touched = " @ Zone);
    }
    /*else if (EventType == ZoneEvent_Update)
    {

    }
    else if (EventType == ZoneEvent_UnTouch)
    {

    }*/
    return retVal;
}


In the example above, the "ETouchType" variable was a new thing for me. For the longest time, I was trying to make this function work and discovered that the variable I was using no longer existed. Instead the set up was changed to how you see it above.

Friday, March 8, 2013

Project Babycat!

Okay everybody, Adnan Rashid back here for your look inside my development of game projects. If you are familiar with my previous project, Arrival: From the Unknown, then welcome back! If not then you can visit this link [http://aftuproject.blogspot.com/] and see my development process for that game. We are planning to visit this project again in the future, but production has paused for the moment.

This time I'm here to inform you that I'm involved with another big title: Project Babycat! This is a client project from Boston for me and my team of six other members. I will be a part of the programming team on this project mainly handling the game type scripting. Our team and I have been just doing some researching so far to try to make this project the best it can be. Information for now is on the hush hush, but I can say that the game will be aimed for the iOS mobile platforms. I'm looking forward to this project as this will be for our Senior Project assignment as well.

So visit me often for my updates about the development process and Project Babycat updates!