Training Livestream - Getting Started with Gameplay Programming - July 27 - Live from Epic HQ

Joining us again will be Richard Hinckley, who will discuss Gameplay Programming (GPP) using C++. One of the most important contributing factors to how your game feels is how the camera works. We will explore some of the fundamentals of camera code and how it interacts with the player’s character and other elements in the game.

Thursday, July 27th @ 2:00PM ET Countdown]


Richard Hinckley - Sr Learning Resource Engineer
Chance Ivey - Sr Community Manager - @iveytron](
Amanda Bott - Community Manager - @amandambott](

Feel free to ask any questions on the topic in the thread below, and remember, while we try to give attention to all inquiries, it’s not always possible to answer everyone’s questions as they come up. This is especially true for off-topic requests, as it’s rather likely that we don’t have the appropriate person around to answer. Thanks for understanding!

Project files from the livestream are available to DOWNLOAD HERE.


So when Alex is coming back on livestreams?

Alex left the company at the end of last month and moved to Spain (where he’s teaching UE4 at Uni Barcelona). Amanda took over for him, but I wouldn’t be surprised if he did a surprise visit at some point (Mega Jam hint hint?)


Alexander took a job in Spain. I think as a Teacher of Unreal Engine.

Amanda Bott has taken over his spot & handles the streams now. :wink:

Could you please spend a few minutes on how to setup a basic RTS camera? I think this will perfectly show a lot of aspects of how the camera system works.

I would like to know more about how the organization of your code is handled. In the sense of where the best places to handle the functionality and be able to recycle as much from project to project. I also second @Fa1nT in that it would be nice to see some examples beyond just the usual templates, and an RTS camera is a great idea.

i would agree with @ipninichuck and @Fa1nT that making an RTS camera would explain a lot of different concepts like locking camera into bounds, zooming, independent camera from the player’s pawn etc…

+1 @falola, @ipninichuck, @Fa1nT

I would love to see a portion of the video dedicated to RTS camera controls. <3 UE4

A kinda camera I’d love to see it something akin to mega man or shadow complex. You have a camera that follows you but then you have rooms in which the camera becomes static (for bosses or challenges.) Also an interesting aspect of these cameras is not letting you proceed beyond the camera’s viewport when the camera has hit a certain limit of a room.

How long do these streams usually last? I’m interested but timezones.

They usually go around an hour, perhaps a little more with Q&A. There will be VODs afterwards (both on Youtube and Twitch), so you can always go back and watch the ones you missed.

Nice, good fundamentals :cool:

We definitely need more streams like this; teaching how the core gameplay classes work together.

It took me quite awhile to understand just how cameras work in Unreal, and I’m still not even 100% on them. Particularly ViewTargets were a big headache at first. At first I thought they were the target you were viewing, and that’s how it’s described in some areas of the docs, but that made it sound like a point the camera is looking at, which confused me. What helped was thinking of it more as the thing that decides all the camera settings, not just a point to look at (rotation) but also position, FOV, etc. Also I don’t think it’s very well explained in the docs how when you set an actor/pawn as the ViewTarget it will try to see if it has a camera component and use that as the ViewTarget… and how you can control the camera without even having a Camera Component, e.g. CalcCamera… which I think is when it clicked for me that Camera Actors are really an abstraction to generate the right MinimalViewInfo.

Also I still haven’t understood why I would want to make a custom PlayerCameraManager; like, what you can put there vs pawn/controller.

Another thing I’m foggy on, slightly related to cameras, is Control Rotation; as in some examples of how some games use it, when you might need it and when you don’t.

If you could explain that kind of stuff it would be very helpful.

Ok, thanks :slight_smile:

I´m totally with @kenmorechalfant, since I made very similar experiences in my UE4 learning curve! :wink: And I would also very much enjoy more core gameplay classes streams! :smiley: Thx guys! You´re truly EPIC! Lookin´forward!

I’m new to the whole unreal engine regime, but im looking to develop my skills within the program to start developing gaming visuals for building designs i have created, as being an architect, creating your building as a game is going to be the future of presentation of your work. So one of my questions is prior to the live stream, but will this cover the coding to produce all the parameters for the camera positions and interation features you would normally see in a game? and my most important question is could you then save this code so that when i have a new building design i could load it into the new file and let it run without having to create all the code?

Sorry for the long post peeps XD

Could you show how to properly switch between two cameras that are in the same player, actor?

I want to know how to make a camera interpolate to being behind the player once they start running towards it. (Like the Batman Arkham games, after looking around with the camera, and it’s left in some arbitrary position, sprinting towards the camera always forces the camera to interp back to being behind the player, loosely matching his rotation during sprint)

Also, it’s hilarious that you’re a programmer with the last name “Bott”. It’s like a sculptor being named “chisel” XD

Very good point @Oldsiren. I remember when I first set up a camera switching system. I still can get some odd things to happen if I pushed buttons fast enough and in a particular order. I am sure there is a proper way to do it, but if you stray away from that you do seem to get some very strange things.

Thank you all.

I somehow logged in just in time to hear my question answered, what timing! XD