A travel in the world of UDK

It's been a long time I wanted to prototype a game using a well known game engine. At that time, I hesitated between UDK and Unity. And I finally chose to go with UDK. To be honest, I didn't search for a comparison sheet between these 2 products, nor did I really go in a very big thinking process about what would be the best tool for me to use to prototype, as I even didn't know what kind of game, I wanted to do.

Nevertheless, I finally chose UDK because at that time it was more attractive to me (the power of the tools which have been used to create such great games!), and because I know a few people who had used it on a daily basis, and hoped they could help me. And also, being in the video game industry, I think it will help to have a good insight of how the tools are made, have become, after plenty years of development, when I will contribute with my fellow programmer colleagues in the studio to the elaboration of our own tools. And finally, on a more personal aspect, to have some knowledge about a major game engine such as Unreal Engine will be a great advantage if I ever have to work for another company.

Anyway, UDK  I chose, with UDK I had to suffer. Because it is such a gigantic tool, you have to spend a few days using it to start to understand how all this machinery work. Hopefully, they have a great documentation, UDN, a rather helpful forum, and the (whole?) unreal script codebase of Unreal Tournament.

But unfortunately, there are some drawbacks:

  • it's sometimes hard to have answers to questions you might ask
  • the documentation inside the unreal script codebase is somewhat sparse
  • UDK is really oriented toward FPS
  • there are not a lot of updates of the tools (with Unreal Engine 4 coming soon, I'm wondering if it's not going to be worse)
  • there are no assets you can download / buy as with Unity, to speed up the development
  • there is no free kick-ass IDE you can use to help programming with UnrealScript (yet?)

Concerning that last point, 2 tools are better than the others, IMHO. The sublime text 2 package, and Unreal Script IDE, which is built inside of Visual Studio. I tend to, use the latter, because it has more powerful breakpoints and debugging facilities (everything is managed inside the IDE, unlike the sublime text 2 package, which makes you juggle between the editor, the game, and the debugger...) But I often switch to ST2, because it's the best text editor out there, and it's way better when you want to search in the codebase for a specific function, event, whatever...

Now that I knew what tool I would use, I just had to figure out the kind of game I wanted to develop. I hesitated between 3 styles:

  • a Mario kart like
  • some crazy dogfights with planes (crimson skies like)
  • a NBA Jam like

It has been a hard choice to make. But having spent countless hours with my friends playing basket ball for real, and also on NBA Jam finished to convince me that this third option would be the most fun, according to the Karaoke rules of game development.

So I had a game in mind. I had a tool to develop it. I just needed some time. This is what I lacked the most during my first period on this project. Be it periods of crunch at work, or not wanting to program when I come back at home, it's not always easy to fetch time and motivation to make the project moves forward. But I recently got some holidays, so I could spend some time on it, get significant improvements on the game, which in turn made my motivation grew up.

And to try to keep that motivation at a minimum level, I would like to challenge myself a bit. I will try to post some updates about the prototype regularly on this blog. It may be some posts to show new features, or posts to explain how I get around some problems I meet with the engine, or just tutorial-like posts.

I already have a few ideas in mind, like (in random order of importance) AI, trajectory computations of the ball, debug features, animation trees, HUD  displays, player/ai states...

I hope these posts will help some people who may be struggling with UDK. But what I really hope, is that it will bring some interest around the game. I think it will help me to stay motivated if I know some people like the game, and give me some feedback about it.

Now is the time to conclude this post, and to think about what will be my very first topic about the development of the next must have sports game 🙂

Happy Coding!