What is udk used for




















Learn about advanced aspects of UDK game development, ranging from the creation of a 2D-style platformer to building your very own Western-RPG style inventory system using Scaleform. You'll discover how you can exploit UDK to the fullest extent, making it possible to create a series of exciting projects all within the UDK Editor. By using this book, you will be able to create a 2D-style platformer, a spaceship rail-shooter, as well your very own custom HUD.

We then move on to more advanced projects, like the creation of an inventory system for a Western-RPG, complete with dynamic objects that can be dropped anywhere in the game world. On top of all of this, you'll also learn how to quickly and efficiently create modular environments within UDK itself. For as long as we have been playing video games, there has been one particular genre that has stayed with us almost from the beginning, the platformer.

There is something that draws us to this specific type of game, especially within the indie game community. With that in mind, I thought a fitting first project would be to recreate this beloved type of game and prove that UDK is definitely not just for creating first-person shooters.

We will be creating a side-scrolling platformer game using the three-dimensional engine to do two-dimensional gameplay. This particular project will be explained with much greater depth than the other projects in order to jog the memory of anyone who has not used UDK in a while and may come up to speed while completing this project. For those who need a quick reminder, Kismet is a system of visual scripting in UDK that makes it possible for people to affect the game world and design gameplay events.

For teams without a programmer, Kismet can be a godsend. It makes it possible for someone without any coding knowledge to do things that would otherwise require the use of UnrealScript, the programming language that the Unreal engine uses. In order to create a sequence of events, you will connect a series of sequential objects together. This in turn generates a code when the game is run to do the things you want it to do. In future projects however, I will assume a familiarity with the things I have taught in this project.

Once we finish this project, we will have a good understanding of how UDK can be used to create games that it wouldn't necessarily be considered for at first glance; having a three-dimensional engine, we will create a game with two-dimensional gameplay. Also, we will be able to create our very own side-scrolling platformer game in the same vein as Mario.

We will also learn about some of the assets available in UDK by creating subsequences and prefab objects, which we can apply to future projects.

This project will be split into five tasks. As we are not creating any enemies in our game, we do not have to deal with UnrealScript in this project. It will be a simple systematic process from the beginning to the end. Here is an outline of our tasks:. Apart from that, all of the assets used in this project should already be included within the base UDK installation. This project and all projects assume that the user has used UDK to some extent in the past and is familiar with the concepts of building brushes as well as navigating around the game environment.

The user should also have familiarity with Matinee and know how to do things such as adding keyframes. As a start to our project, we will be creating a new level and modifying the camera to create our side-scrolling game.

Before we start working on the project, we must first create a new map. To do this, we must first select File New Level There are many different options that you can use in determining how UDK is displayed and whether it works for you. I encourage you to take some time to figure out what you like and don't like. While having a Front viewport may be nice, I like having a larger screen space for the Perspective view so that I have a better idea what the area I'm creating looks like.

This is more my personal preference than anything but it is what I will be using from here on out. If you wish to follow me, select View Viewport Configuration 1x2 Split from the top menu so that your screen looks like the following screenshot:. Type Game Type in the search bar at the top of the World Properties menu to bring up the Game Type menu and the relevant options for us.

As we are in the Zone Info section, under Kill Z set the value to Now let's make sure our player spawns in the correct position. From there, in the search bar at the top, type Location.

Once you find the Location vector variable, set the X value to 0. Next, type Rotation. Make sure that the Roll and Pitch options are set to 0 and change the Yaw option to Also, note the numbers listed on the Y and Z values in the Location variable, as we will be using them in a future step.

For those who don't know or who want a reminder, a variable is a set of values that are stored in a specific way. A vector in Unreal is a variable a struct, specifically that contains three floating point numbers inside it: X, Y, and Z. Go back to the editor menu, right-click, and select Add CameraActor Here. With the object placed, press F4 to go to the object's Properties menu.

With the necessary objects in place, we open up the Kismet interface by clicking on the K icon at the top of the UDK interface on the main toolbar. From there we first need to create a Player Spawned event. We then right-click anywhere inside the large area in the upper portion of the interface. You should see a line connecting the output to the new object variable. If not, click on the connector the purple triangle and drag until you select the new variable we created and let go.

Click on the new object to open its properties in the bottom-left panel of the Kismet window. In all the instances where we are using the named variable Player , we could use the actual Player variable by right-clicking anywhere inside the large area in the upper portion of the interface and selecting New Variable Player Player and unchecking the All Players option in the Properties window, but a review of how named variables can be used can be quite useful for things we will be doing in later projects.

Click on the variable to open its properties. You should see the red X change into a green checkmark. Connect the Player named variable that we created to the Target input. If we started the game at this point, we would notice that when the player spawns we can see the player from a third-person perspective that looks great as long as we do not move. You will notice that the camera does not move with the player and if we move our mouse, our player will turn around and allow us to move in ways that are counter-intuitive to what we are trying to create.

Let's fix those issues now. In the action's properties, uncheck the Toggle Movement option and make sure that the Toggle Turning option is checked. Connect the Player named variable to the Target input. You can connect all of the targets to the same player, or create multiple Player named variables to house all of the things; it makes no difference, but one may make your code look more visually appealing.

We have just created a camera that will follow our player in a similar fashion to that used in side-scroller games. More specifically, we have, through Kismet, told our game that we wish to use a different camera instead of the pawn's default one. We have also disabled the ability for players to turn, for the time being, to prevent nonstandard movement.

Now, as amazing as having a camera that follows our player around is, there are still plenty of things that we need to do to get this game to be the best that it can be. For instance, we want the player to move left and right on the screen when we press A and D.

We are also going to adjust the player's jump height and remove the ability to double jump as it is defaulted in UTDeathmatch. For more information on getting started making and importing custom art and audio, as well as creating levels with the UDK, check out the UDK Content Creation page. Feel free to contribute to help build the UDK community! Need help moving stuff to a new build try the New Build Workflow page! Additional Resources Blogs From time to time, our developers post workflow tips and technquies that have helped them squeeze the most out of the Unreal Engine, as well as previews of upcoming features.

Check out the Video Tutorials page to see what's available. Check out these chapters from the Mastering Unreal book series All other content in the package directories is ignored. Even though the CluOne directory exists in the src directory the compiler will not pick it up, automatically.

The configuration file needs to be updated to register the CluOne package as a valid UnrealScript package. In this section you see some entries called EditPackages. These are the default packages the compiler will consider for compiling. It defines the order in which the packages will be compiled, which influence the the class hierarchy.

A class cannot be compiled when its parent class has not been compiled yet. The UnrealScript compiler is not as sophisticated as other compilers, such as the Java compiler, it can not figure out the order of compilation for itself.

It is not important to know what all these classes do. There are two very important and quite distinct base classes. First there is the base class Object , from which all other UnrealScript classes are derived.

Object defines a lot of core functions, including various operators. The second important class is Actor. The Actor class is the base class for all "moving" or "living" elements in the game. All visible elements in a level are Actors , but not all Actors are visible. For example, all subclasses of Info are invisible by default.

Object classes are used for utility or lightweight functionality, but also for the user interface. UnrealScript classes that need to have network functionality i.

This tutorial is going to extend the following classes: GameInfo This is the main class for the game logic. When creating an application with the UDK you will mostlikely create a subclass of this game. PlayerController This class represents a player, not the visible part, but it processes the input and performs actions. The actual visual representation of the player if there is any is performed by a Pawn subclass.

GameInfo subclass The entry point for most applications is a GameInfo subclass. This class defines which PlayerController class is created, and various other important game logic classes. For this tutorial the class is briefly skimmed, there is too much information to explain it all.

Class declaration To create a new class you simply create a file with the same name as you want the class to be called in the Classes directory of the package that should contain the class. The class declaration of an UnrealScript class is as follows: class CluOneGame extends GameInfo; Note that it ends with a semicolon ; , and that there are no curly braces. Every thing after the class declaration belongs to that class.

Only one class can be declared per file. When a user connects to the game, the GameInfo class creates a controller for this user. In order for the GameInfo class to create the correct class the following code is added to the end of the source. This is much like variable initializers in other programming languages but not exactly the same. There are of course other ways to create the correct class instance, but this is the easiest and best method.

Greeting the user There is a whole chain of events triggered in the GameInfo class when a user connects to the game server.

The event names give away their order. At the PostLogin event the user is completely connected, and can be interfaced with. PlayerName ; NewPlayer. The proper way to change the default name is to update the localization files. Each new class needs to be in its own file with the same name as you want the class to be called in the Classes directory of the package that should contain the class.

Various existing subclasses do show crossairs. There are various ways to eventually draw the crossair. You could delegate it to an inventory item the player is currently holding. Or you could draw it from the HUD. Or you can draw it directly from the PlayerController. The DrawHud The following code draws a nice little green cross in the middle of the screen.

This function is called by the Engine. HUD class. SetPos H. CenterX - CrosshairSize, H. CenterY ; H. CenterX, H. CenterY - CrosshairSize ; H. I am self-taught level designer, game environment artist and the creator of World of Level Design.

I've learned everything I know from personal experimentation and decades of being around various online communities of fellow environment artist and level designers. On World of Level Design you will find tutorials to make you become the best level designer and game environment artist.

Read More ». All rights reserved. Duplication and distribution is illegal and strictly prohibited. World of Level Design website, its tutorials and products are not endorsed, sponsored or approved by any mentioned companies on this website in any way.

All content is based on my own personal experimentation, experience and opinion. Template powered by w3. To the Top. Follow WoLD. Full Course ».



0コメント

  • 1000 / 1000