[email protected]
Level Design Portfolio
  • HIGHLIGHTS:
    • Camera
    • Collaborations
  • The Long Dark
  • World Design

Telling stories through captivating gameplay.

Warning, this is a construction zone!

Flip through the tabs above to view Open Worlds and other Level Design works I've been crafting since 2014.

Or click the red button
to review my professional work as a Game Design generalist.

Fast Travel to Game Design

Real-Time Cameras in Unreal Editor 4 - Part 2

14/7/2014

5 Comments

 
Reference: Mark Haigh-Hutchinson. 2009. "Real-Time Cameras: A Guide for Game Designers and Developers." Elsevier.

So the camera behaviour in the Code Third Person is as simple as it looks. It is a basic solution that makes decent prototype third person camera, but is not good enough for a finished product. The SpringArmComponent does most of the heavy lifting here, so lets examine it to see if we would be better off extending it or creating our own class that has similar behaviours. Extending the class will mean that we do not need to duplicate code, but rewriting it provides more freedom.


I'll start with a paraphrased quotation from John Nesky's talk "50 Camera Mistakes" that applies to our topic today;
"It is a mistake to push the camera away from an obstacle while the player is trying to swing the camera towards it - conflicts between ideal camera collision avoidance and player intent must favour player intent."

The current SpringArmComponent is not ideal because the player may see something like this if they try to walk up to wall and then look away from it:

Picture
Failure Example for default camera in Code Third Person

Read More
5 Comments

Real-Time Cameras in Unreal Editor 4 - Part 1

12/7/2014

15 Comments

 
Reference: Mark Haigh-Hutchinson. 2009. "Real-Time Cameras: A Guide for Game Designers and Developers." Elsevier.

I have recently begun reading "the textbook" on cameras in gaming, and I am excited to share whatever knowledge I gain from it with you. So, I will be implementing a third-person camera system in Unreal Editor 4 - similar to the one in Journey -  and sharing every step of this process; while attempting to apply my newly learned knowledge in aid of both integrating and communicating these concepts. The main inspiration for this project is a GDC 2014 talk by John Nesky called "50 Camera Mistakes" (see http://gdcvault.com/search.php#&category=free&firstfocus=&keyword=john+nesky&conference_id=).

A starting piece of wisdom from John Nesky, the camera designer for Journey, who says (and I paraphrase)
"A camera is 7 numbers: yaw, pitch, roll, distance from pivot, lateral offset, vertical offset, and field of view."

In this article, I will analyse the existing C++ for the Code Third Person project provided by Epic Games with UE4.

The camera seems to be coded in the "MyCharacter" class. Let's examine the header file to see the variables involved


Variables to keep track of
(this is not working code), referenced by letter index in the following sections
a)
    /** Camera boom positioning the camera behind the character */
    TSubobjectPtr<class USpringArmComponent> CameraBoom;

b)
    /** Follow camera */
    TSubobjectPtr<class UCameraComponent> FollowCamera;

c)
    /** Base turn rate, in deg/sec. Other scaling may affect final turn rate. */
    float BaseTurnRate;

d)
    /** Base look up/down rate, in deg/sec. Other scaling may affect final rate. */
    float BaseLookUpRate;



Now over to the .cpp file to see how these are initialized:

The controller rotation is unhooked
from the character rotation by setting 3 booleans (related to yaw, pitch, and roll) = false.

Picture
Camera Boom

    // Create a camera boom (pulls in towards the player if there is a collision)
    CameraBoom = PCIP.CreateDefaultSubobject<USpringArmComponent>(this, TEXT("CameraBoom"));
    CameraBoom->AttachTo(RootComponent);
    CameraBoom->TargetArmLength = 300.0f; // The camera follows at this distance behind the character    
    CameraBoom->bUseControllerViewRotation = true; // Rotate the arm based on the controller

The camera boom is created first and it follows the player at a set length, rotates based on the controller rotation, and is attacted to the root component of the player. (a) is the pointer used to represent this object.


Read More
15 Comments

Digital Painting: The Blind Mallard and the Hen

5/7/2014

4 Comments

 
Picture
Digital Painting, printed as a puzzle, created by Jim Dodge in Photoshop using a Wacom tablet
4 Comments
Forward>>

    James Dodge

    Level Designer

    View my profile on LinkedIn

    Categories

    All
    CameraAnalysis
    CameraDevelopment
    GlobalGameJam
    Photoshop
    TombRaider


    Archives

    October 2021
    December 2017
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    June 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    October 2016
    September 2016
    June 2016
    May 2016
    March 2016
    February 2016
    August 2015
    July 2015
    March 2015
    February 2015
    December 2014
    September 2014
    August 2014
    July 2014
    April 2014
    January 2014
    December 2013
    November 2013
    October 2013
    August 2013


    RSS Feed

Site powered by Weebly. Managed by Bluehost