Gamemaker to UDK
By Bryan Thompson
My Yoyogames.com username is ywamkid
This is unofficial documentation and is not endorsed by Epic Games.
This is a beginners UDK tutorial (and collection of other tutorials) for programmers who have some experience with making 3D games in gamemaker. If you have no experience making video games, I wouldn’t recommend UDK. Gamemaker is the place to start.
In making games with UDK it will also help to have experience with Blender and some knowledge of variable types, such as those used in C++.
There is a rich abundance of programmers with impressive problem solving skills in the yoyogames community and if this tutorial is effective we should see hundreds more programmers using UDK. Of course this means a lot of extra competition for my studio but I’m not really scared of that and I would have wanted somebody else to have written this tutorial for me four months ago so I’m just doing what Jesus would do, hoorah.
Why UDK? Why not Gamemaker?
Don’t get me wrong, Gamemaker has the best GUI ever. It is so freakin quick and easy to make games with it that I could probably teach 5th graders how to use it. In fact I’d say that Gamemaker has raised the bar for GUI’s so that almost every other “graphical user interface” out there that I’ve seen doesn’t deserve to be called that but rather a TUI (textual user interface). I’ve used Gamemaker for the last five years and it’s been very hard to let go.
However Gamemaker’s performance suffers from interpreted code and who knows what else, so although it’s wonderful for 2D games it just can’t handle the physics and render effects that are commonplace in commercial 3D games these days, (except maybe with the Ultimate 3D expansion, but I’m still pretty sure UDK is more powerful). Unreal Engine 3 is written in C++ with numerous machine level optimizations. It’s performance has been proven on games like the Gears of War and Mass Effect series. This makes UDK the ideal free tool for making commercial 3D games (especially with the new Indie licensing option :D).
Blender is the best 3D animation program ever (slight bias), and when it comes to making 3D assets for UDK it’s near unbeatable in work speed and quality. Oh and it’s free!
If you’re one of those people who doesn’t think they can use Blender because they have a notebook pc, toughen up! I used to think the same way but now I use blender with my notebook all the time. I just hold down fn to access the numpad (used for changing the view) and use alt+left click to simulate the middle mouse button. I use Blender version 2.49 because it’s the most compatible as far as I know.
Oh yeah and Blender is also amazing for unwrapping UV’s for textures. Forget about UV mapper or any other program, once you’ve mastered seams, unwrap, project from view, manual UV manipulation, stitch, proportional editing, and the other awesome UV functions in Blender you will be able to crank out a professional UV map in under a half hour with spatial efficiency that would make Square Enix jealous.
So dive in and start learning the Blender hot keys and such. There’s a great video tutorial here that teaches the basics at the same time as how to model a high quality character mesh. http://cg.tutsplus.com/tutorials/blender/character-modeling-in-blender-basix/
The number of free video tutorials for Blender online is unreal (no pun intended).
This is the first one I ever did, http://vimeo.com/5667694 It taught me a bunch of important concepts, such as what normal maps are.
Reminder: you can set this page as your browser start page while you are learning UDK and Blender and have instant access to this page and all these links as soon as you open your web browser.
Making a Level
In order to test out your games you are going to need at least one UDK map. Nothing to worry about though, making a map in UDK is quite simple. There are plenty of tutorials online on how to set up a playable level in less than ten minutes but if you want a more thorough tutorial on building a professional level from start to finish you can find one on 3DBuzz.com. Note: I had to put far fewer static meshes in my level than they did, just to keep the framerate up on my 2007 notebook.
So you could program your games with UDK’s visual programming system which is called Kismet but if you’re like me you’d rather program in code and have Complete Control Muahahaha. *throws paddle ball on the floor because it’s distracting*
Here is a short introduction to Unreal Script and how it works.
After getting frustrated at all the outdated tutorials for creating and compiling a custom game mode in Unreal Script I decided to make my own. Here it is:
In that last tutorial you may notice that we extended a pawn class to use for the main character. The pawn class already has a ton of functionality programmed in for making a first person shooter game. Now it is easier for me, and I assume everybody else who has used Gamemaker, to create my own functionality from the ground up rather than researching and trying to figure out what somebody else has coded, especially if I’m making a game other than an FPS. So I prefer to extend from KactorSpawnable instead. This is a very basic class that has physics and is able to be spawned during gameplay. It’s a lot like a gamemaker object.
Whizzle is an example of a UDK game that uses this method. I would recommend going through the first part of their “first 30 days of documentation” and recreating the programming. You can find the documentation here.
Make sure your remember to add this code to the defaultproperties of aquaball right after End Object.
Something they left out of the documentation:
You need to add these two functions to AquaPlayerController
foreach WorldInfo.DynamicActors(class’Fry’, Ball)
Ball.MyController = self;
I had to go through the Whizzle source code to figure these things out :P.
Oh and you may notice the Whizzle crew didn’t care to mention in their documentation how to write the AquaPlayerControllerBase class. This class is fairly interesting and you can download the Whizzle source code if you really want to know what’s in it but nothing in there is necessary for your game and you can just extend AquaPlayerController directly from PlayerController, no problem.
They also didn’t tell you how to turn off the default gravity,
I did this by putting a gravity volume around my level and setting it’s gravity property to zero.
Since they use the raw joystick variables to move the character the arrow keys might not work, the WASD keys should work though. I prefer to define my own keyboard inputs. I showed how to do this in my tutorial on
Incoming search terms for the article:udk model character from start to finish (1) Filed: Tutorials
tags: From, Gamemaker