Starting with no prior knowledge of UDK, this course exposes you to the main features of UDK, UnrealScript, and Kismet while showing you how to build a third-person platformer game.
On this journey, you will first learn how to build a level and an area by making use of models and geometry. Following this, you will make full use of Kismet, the Unreal Engine’s visual scripting tool, to create collectibles and a simple checkpoint system. Once the basis of the game has been created, you’ll be ready to dive in to the world of UnrealScript by first setting up its working environment. Next, you will learn how to create custom gameplay behaviors and a camera system. Lastly, you’ll see how to customize your UDK game to replace the default settings with your own main menu, loading screen, and splash screens! By the end of this course, you'll have a solid foundation in building games which you can use in your own future projects.
John P. Doran is a technical game designer who has been creating games for over 10 years. He has worked on an assortment of games in teams with members ranging from just himself to over 70, in student, mod, and professional projects.
He previously worked at LucasArts on Star Wars: 1313 as a game design intern; the only junior designer on a team of seniors. He was also the lead instructor of DigiPen-Ubisoft Campus Game Programming Program, instructing graduate-level students in an intensive, advanced-level game programming curriculum.
John is currently a technical designer in DigiPen's Research and Development department. In addition to that, he also tutors and assists students on various subjects while giving lectures on game development, including C++, Unreal, Flash, Unity, and more.
But before we get started with building the game let’s take a look at what it is we’re actually going to make.
Now before we get started making anything with UDK, we first need to get it installed to our computers. After installing the software, let's take a look at what exactly the directories we created are holding.
If we open up the default game inside of UDK and jump using the spacebar, you'll notice the jump height is extremely less.
Right now, in our level, we only have a very small world with a box in the middle of it. That was fine for what we did previously, but now we’re going to actually be building our level for our platformer game.
We now have a platform and a ceiling, but we have no walls for our area or anywhere to go from here.
Since we’re building a platformer, we want to have some additional space to walk around in. Let’s do that now by first showing just how simple it is to create an additional room.
Let’s replace the checkerboard-patterned walls with something more realistic using Materials and the Content Browser.
We can't guide the player and there is no way to finish the game. This can be solved by having coins to collect.
Right now the coin does nothing; let's change that by using Kismet.
Let's add a functionality to tell how many coins we have collected, which we can do by using named variables.
As of now, if we play the game and our character dies, we get spawned right back to the beginning of a level. Now, rather than doing this, let’s spawn the player to a key point they’ve visited.
After this, the setup of the initial checkpoint is complete. Now, we want to make it so that when we reach our checkpoint, we want to spawn from a new PlayerStart object instead of our first one.
At this point, we have the checkpoint but no behavior, so let’s get that added in now.
Everything we've done so far is only for a single checkpoint. Let's make a large number of them using prefabs.
Having to wait long between the loading of levels? Load them at runtime with streaming volumes.
If you toggle visibility or actually start the game in Unreal, you’ll notice that all you see is a black non-existent void. That’s because only our persistent level is loaded when we run the game. We will be using something called a level-streaming volume to say, as long as I am within this volume, have this level loaded.
So there’s not much benefit to level streaming if we aren’t loading and unloading levels at runtime, so that’s what we will be doing in this subsection.
We need to use UnrealScript to create interesting gameplay, so we learn UnrealScript in this video. It's confusing, but we have a tool to make it easier to understand.
However, programmers are inherently lazy (otherwise, we'd still be writing in binary or assembly code), so over the years, we have developed tools to make our lives easier. With that in mind, we will be using an IDE that is free for use and contains most of the functionality that the other provides—the appropriately named and open source Real Script IDE.
Since it was first printed out forty years ago, it has been a tradition for beginner programmers to write a function that displays "Hello world" on the screen. Let's do that now.
With a first-person game, it is very hard to know that the game is in first personbecause you never know where your feet and/or body are. What we will be doing in this section is creating a third-person character and camera system. We will get started with the Game class, which is the GameType that is currently being played with the rules that the game follows.
We will be creating our own Pawn class to take care of how the camera will work in our game.
We will be creating our own PlayerController class to take care of how input will be handled in the game.
When playing our game, the camera works fine, but what if our player wants to get a larger view of the area or wanted to admire the character model of the game. We can fix that by adding the ability to zoom in and out of our camera, which is what we’ll be doing now.
For all the work we've done, whenever we load a level, we see an Unreal game-loading screen. In this video, we will be replacing it with one of our very own.
In UDK, by default, whenever you play the game on a PC, you will see a menu screen. Let’s see how the screen can be customized.
In UDK, by default, whenever you play the game on your PC, you can press Esc to exit the game. Let’s see how we can customize this.
You may have multiple versions of UDK installed on your computer. Replacing these assets may make it a lot easier to make sure your version of UDK is the correct one. It’s actually quite easy to replace these with our own stuff, which is what we will be doing now.
Cooking makes the content consumer ready by compressing textures and doing a ton of different things to make the game ready to be installed on other systems, similar to a final compile. Cooking will also combine all your content packages into just a few files, a process that will also protect your content. It will be much harder to extract things out of a cooked and combined package.
We could spend all the time in the world working on our project and getting it to that “perfect” state we always want our projects to be in, adding in new features, solving bugs, and so on. However, at this point you’re going to have some issues, whether it be with code or how to work with the Engine. That’s where talking to fellow developers comes in.
You may reach to a point in your work where you want to add something but you are unsure of where to start and need some kind of manual or support to lead you on the right path, or perhaps you want to know what options exist inside of Unreal. For both of those conundrums, the UDN is the perfect place for you.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.