This is a group for all developers using the Unreal Developer's Kit. Open for all commercial, non-commercial and personal projects!
Learn about the Unreal Engine and what we expect to create on the iOS platform
Posted by filter-coffee on Oct 30th, 2012
Basic Starting a mod.
In this article by John P. Doran and Christos Gatzidis, authors ofUDK iOS Game Development Beginner's Guide, we'll:
Unreal Development Kit (UDK) is a freely available version of Epic Games, a very popular Unreal game development engine.
First developed in 1998 to power the original Unreal game, the engine (which is C++ based) has gone from strength to strength, and has not only formed the backbone of household-name Epic Games titles, such as the very popular Gears Of War series, but has also been very successfully licensed out to third-party developers. Consequent titles range from Batman: Arkham City to Mass Effect 3, many of which are as equally successful as the games developed by its parent company.
Currently, the Unreal engine itself is in its fourth iteration and is considered to be a top of the range visualization tool. It is not only used in the gaming industry, but has also been used for doing any kind of work that demands real-time computer graphics. UDK uses Unreal Engine 3, but it is still a powerhouse in itself and is quite capable of delivering amazing experiences on iOS software.
The offering of UDK as a concept has evolved from Epic Games content generation tools very early on with Unreal titles; tools which proved to spawn a very healthy and thriving modification (modding) community. Originally, tools like these, such as UnrealEd (the editor tool with which a user can create their own in-game level), were available to anyone who bought the game.
In 2009, however, Epic turned that logic on its head by making their tools available to anybody, whether they owned an Unreal game or not. This proved to be a very successful move which expanded the Unreal developer user base thoroughly.
More recently Epic Games, as part of their constant and persistent updates of UDK, have added iOS functionality (in 2010), making sure that UDK can provide games for the ever-expanding mobile customer base that the iPhone/iPad/iPod Touch devices by Apple introduced. This was first demonstrated to the public by a live tech demo called Epic Citadel; a freely available download on the iTunes store which played like an interactive walkthrough of a medieval town. This attracted a record number of downloads as at that time it was truly groundbreaking to experience high quality real-time graphics on a mobile device. Take a look at the following screenshot:
In fact, although it is not within the scope of this book, very recently certain demos have surfaced highlighting a potential UDK / Adobe Flash Player pipeline, showcasing the very impressive penetration this games development application has made to a number of different platforms.Of course, we are interested in iOS here, and we'll be covering that extensively in this book, starting from the bare basics and moving on to some more advanced concepts.So what is it that we need to know about UDK and its mobile iOS limitations? Does it have any?
Let's start with a fairly realistic statement; we can't make an AAA gaming title as seen on a contemporary console or PC, such as Gears of War, on iOS using UDK! It is a general limitation of doing mobile development using UDK.The main reason for this is rather obvious; we just do not have access to the same hardware. The problem is not the software! UDK can deploy the same game on a PC or an iOS device, but it is the end-hardware specification that has the final say in what can be handled in real-time or not.Mobile devices (and this of course includes iOS devices) have progressed by leaps and bounds over the last few years, and after many false starts mobile gaming today is a force to be reckoned with, both commercially and technologically. That still, however, does not change the fact that as an iOS UDK developer, you will work with more restricted hardware as opposed to, for example, someone developing for an Xbox 360 platform.Let's look at this in more detail; these are some of the current iPhone 4S technical specifications:
The newest iPad released in early 2012 has the following specifications:
While these specs are fairly impressive compared to both mobile devices of the past, and also the fact that we are talking about what is essentially a pocket gadget, they cannot really compare with the specification of a top-of-the-range gaming PC or even a current generation console.This, of course, does not mean we can only develop poor or second rate games with UDK. Indeed, some of its contemporary examples highlight the huge potential it has in delivering AAA gaming experiences, even with its current limitations, borne, as described previously, from the hardware limitations of a mobile device.The best example by far has got to be Chair Entertainment's and Epic Games' Infinity Blade, an epic third-person sword-fighting game which came out in late 2010 and is considered the ideal showcase for UDK's technical prowess on the Apple devices.Already spawning sequels and with huge commercial success behind it from its iTunes Store business model, Infinity Blade was, and is, a big eye-opener for all aspiring games developers who want to use Unreal engine technology for a successful iOS title with a very modern feel and visuals.To see just how powerful an iOS game can be, just look at the following screenshot for a fine example:
We will download and install UDK on our computer for developing the games!
UDK can be installed using following steps.
(Move the mouse over the image to enlarge.)We will discuss how to download UDK in the next step, but for those just getting started with UDK, I would also urge you to take some time and explore this website further. It has a very thorough explanation of UDK and the features it has, regularly updated showcase projects (including commercially available games), information on licensing, and in short, it is a must-visit site (on a regular basis in fact) for any self-respecting UDK developer as here you can also find the latest up-to-date version of UDK for your use.Epic Games also has a very active forum as a part of their community. For those tackling iOS development like we are, there are also community forums for us. You can find it by either hitting the Community tab at the top or then selecting iOS Development or just visit them directly at Forums.epicgames.com
First of all, remember that you are now installing the full UDK application, not just the iOS-oriented one. There is in fact no such thing; UDK adopts a very holistic approach when it comes to multi-platform development.Remember as well that Epic Games releases updates of UDK on a fairly regular basis. However, as there can be incompatibility issues with older and newer versions, they have made every single update (its installer file) available with its release date clearly visible, from the very first one released (November 2009) to the current one (May 2012). Please note that the May 2012 UDK Beta is the version we will be using in this book and while everything that we are doing in this book should work with later versions, UDK is constantly evolving and in months to come, there may be certain quirks in the engine that may not work until Epic will fix it in a later version.
However, please note that this step may also trigger a restart of your PC, so save your work in any other applications beforehand.
You've now installed UDK on your computer and taken your first step towards UDK development.UDK directory overviewEpic Games provides a number of example maps and files which are worth exploring (including mobile ones), before setting off on the development of your own game. Now that the software is installed, let's take a look at what exactly the directories we created are holding.
The Binaries folder holds a number of executable files, including the main UDK program and tools for artists and animators. Besides the UDK executables, we probably won't be touching anything here, but I'll briefly go over what the other folders hold.
Development holds the UnrealScript files of different classes created for the game. We won't be looking at it in this book, but feel free to look there some time to get a feel for how the gameplay logic works. For those comfortable with coding, you should feel free to read and extend things that were already created, but it is incredibly important to mention that you should never alter Epic's code.
Engine is where the engine files, holding resources, and configuration files are located. We won't be touching them in this book, but of special note is the iPhone folder, which can be used to set specific iPhone functionality for your game.
UDKGame will include following directories:
Setting up for iOS development with UDKBefore we get your iPhone interacting with UDK, here are a few brief notes you should be aware of. We've looked at installing UDK on our PC, but what about the mobile device requirements?While we will go into detail about deploying your game on the actual device with all the issues this entails in a subsequent step-by-step and illustrated chapter, there are still some very important initial topics that need clearing up in terms of becoming a UDK iOS developer.First of all, the devices currently supported by Epic Games for UDK iOS games production, according to Epic Games, are the following:
If you have an older iOS device, then unfortunately you won't be able to carry out UDK development for it. Also worth noting is that the iPad third generation currently works in UDK by using the iPad 2's system settings, and will most likely be fully supported with its own system settings by the time you have this book in your hands.Additionally, you will need to be running iOS version 3.2 or higher on your device, plus iTunes installed on your PC in order to do UDK development. However, in order to publish your game to the iOS App Store, you will be required to use a Macintosh computer.
So, with the practicalities out of the way, let's get our first taste of what it's like to develop for an iPhone with UDK!The first foray we will be undertaking in this section and chapter will be a modest one indeed, but it is still a good showcase of the capabilities of iOS game development with the Unreal engine, particularly in terms of interacting with the player.UDK Remote is an application designed by Epic Games to push, touch, and also tilt controls - essentially everything you need to control an iPhone or iPad game - from the mobile device onto your development machine (PC).The Mobile Previewer is an option that can be triggered inside the main UDK executable, which can be used to run the mobile UDK game on your PC. It is created for minor testing in much the same way that playing in the editor itself is an option in the main UDK executable. Think of the option as an emulator of what your game may look like on a specific mobile device. The option is not an entirely perfect one though, remember that the graphics processing unit on the PC will be more powerful than your iOS device's which could result in it being much faster in rendering content. Some visual effects results may be different too, for example, anti-aliasing. A good idea would be to very occasionally deploy the game on the mobile device just to make sure you are not exceeding its technical capabilities and also that everything looks the way it is supposed to.Both of these applications (UDK Remote and Mobile Previewer) can work in conjunction - as we will see!The example in this section will not work without both your PC and your iOS device being connected to a Wi-Fi network; it is not enough for the device to be connected on a 3G network. Please make sure your device has its Wi-Fi settings on and is on the same network otherwise the following example will not work.
Epic Games has actually made this a free application too like UDK itself, so it will not cost you anything.
The only setting you need to change in order to get UDK Remote to work is typing in the IP address of your computer so that your iOS device can communicate with it. Let's leave the other ones as they are for now.You can, however, before we resolve the IP address issue, quickly click on the Done button on your iOS device to check out UDK Remote.You should now be taken to the UDK Remote runtime screen which as you can see is very basic.Of course, there is no way this could work without setting up a communication between this and a host machine (your computer), as you can see from the error message.
So, ‘what is my IP address?' you may ask. There is a quick way to find this out in case you do not know it.
You will be prompted with the settings of UDK Remote (most of which are quite self-explanatory).
Look at your computer screen while dragging your finger(s) on your iPhone, you can now navigate around the basic UDK scene in a three dimensional space on your computer using your iPhone over the wireless network!Use the multi-touch functionality to play around with this and get a feel for what you can do with the interactions provided.The circular touch pad on the left-hand side, as shown in the following screenshot, can be used for movement while the one on right-hand side for strafing.If you have played 3D games before, and, in particular, first-person shooters (not necessarily on an iOS platform either), this should be a very familiar way of controlling a player in a scene!Spend some time experimenting with your first attempt at iOS game development!
Now that we have our interactions working between our iOS device and our PC, let's make sure that it is being created for the specific device that we are using. Thankfully, it's very simple to do that.
Let's leave it on landscape. This is done as shown in the following screenshot:
No matter which iOS device you have, you are now ready to use the UDK Remote and Mobile Previewer to test out all ideas and ultimately our prototype game in subsequent chapters, so already the step we have made towards this is a very important one!Speaking of the prototype game, what exactly will we be developing?Describing the concept of Urban Warrior, a third-person shooter titleWe have talked about Gears Of War earlier and how difficult it would be to try to recreate it, with the same level of detail and complexity on an iOS device with UDK (which is based on the same engine, remember, that Gears of War was developed on).How about we have a stab at that then and see how close we can get?Rather than trying to produce a more casual, basic game with UDK, it would be of more interest to approach the work carried out in this book as small building blocks towards creating your own AAA title!We have titled the game (tentatively and perhaps not particularly imaginatively) as Urban Warrior and it will have the following characteristics:
For now, despite being very broad, this brief is good enough for us to make a start on as we can begin exploring the very vast UDK functionality to accommodate some of the preceding goals and work our way towards some of the finer details of the game.I will be returning to this key game idea throughout each subsequent chapter to discuss what progress we have made and, more importantly, how it is all fitting together into one cohesive gaming experience.SummaryHopefully you've enjoyed taking the first few steps towards becoming an iOS games developer with UDK!There's still plenty to do, but we have already managed to cover the following in this chapter: