Good evening, everybody.
I consider myself to be a dedicated and motivated hobby game developer who is willing to learn as much as he can in order to achieve his goal: creating the game in his mind. During the past ten years I've been working with various game engines, starting off with a very simple 2D engine in early 2000. When the first affordable (or even free) 3D game engines hit the world wide web, I also managed to learn how to work within a 3-dimensional environment with textures, traces, euler angles and what not. Things were looking good these days, and then I discovered UDK. Excited about what might be possible with an engine as powerful as this, and even to get the chance to use it for free, I downloaded and installed it and went through all the awesome video tutorials provided by 3DBuzz. I could not have been any happier back then, because the editor proved to be amazingly powerful and yet easy to use at the same time. Whatever my goal was - there seemed to be a special sub-editor for that just as if Epic knew that I was comming this way. I was really happy with UDK. Well, until I tried to actually *program* anything. Lacking a real script editor for the very specialized language of unrealscript (it is not like they would have used any more common language!) it was quite a hassle to actually find and install a working development environment for UnrealScript.
Then, finally with everything set up (and with a bad feeling too, call it intuition if you want), I set out to find a beginner's tutorial. I've found some, however, either they were outdated, UnrealTournament-Related, or incomplete in some way. So basically I've been able to figure out most of the syntax of Unrealscript (which at least enabled me to understand parts of epic's UT code) and what classes you need to even GET STARTED with a project. But until today, I haven't seen one single tutorial for unrealscript which I would call "beginner-friendly, easy to understand, and complete". No way. And by "complete" I mean that the tutorial should not only explain "You need a GameInfo class, a Pawn class and a PlayerController class" and leaving the rest up to the reader, but going a little further, maybe creating a simple game prototype.
In the forum, when a beginner asks where to start with unrealscript, the advice to read through classes like "Object" or "Actor" is often given - but to a beginner who has not the slightest idea of what's really going on in code and probably never worked with object orientation before, this is not very helpful (I think we all agree on this point). Even for me, having a good idea about how object orientation works and having a good amount of experience with java, it proved to be a huge challange to really understand every line of code in there. Providing a built-in demo version of UT3 was probably the BIGGEST mistake Epic could have *ever* made with UDK. The reason for this is simple if you see it from a beginner's view. As a typical newbie, you want your reference code to be as easy as possible, right? After all, you want to learn the basics when reading it and maybe copy a function here and there.
But - and again, I think you will all agree here - UT3 code is *highly* specialized code geared towards best functionality (sacrificing simplicity at times), written by professional developers. There's network-stuff like server-client-connections, there are a heck of a lot of classes, there's a good deal of native code we can't look at, there are UT-specific things like replication info classes and so on and so forth. This NEVER ENDS. And the worst part of it all: some UT classes and mechanics are tightly connected with some classes quite high in the class hierarchy, which turns "getting rid of all UT-realated code" into a real nightmare. So basically if you extend... let's say... UDKGameInfo, then you will already have inherited UT-related code, allthough the name "UDKGameInfo" itself does not imply that at all. Epic always likes to claim that UDK can be used for each and every type of game - then why do they lay stones in our way? In other engines I worked with in the past, if you did not set up anything in your code and ran the executable, it would give you a black screen (after all, you did nothing) - in UDK, it gives you a full picture-perfect first person shooter, including all special twists and turns. What the hell.
So far, getting into programming with Unrealscript (because of the reasons mentioned above) became literally impossible for me, despite all my patience and training in java, despite the fact that I can work in other engines without any troubles with the scripting languages themselves (at least not as grave as with UnrealScript). Therefore the question that I have to ask myself (and Epic!) is: If I have such troubles getting started with UDK, how does someone feel who has never touched the field of game engineering ever before...? In case that I am not part of the target audience of UDK - then who is? On the main page, Epic answers the question "Who it's for" with "Anyone. Everyone. You." - to me right now, this couldn't sound any more sarcastic. It is entirely possible that really advanced game developers and indies will enjoy UDK and have a good time working with it and the product as such is as awesome as can be, however, if Epic wants the UDK to be for "everyone" then they still have a lot of work to do.
So far, that's everything I have to say regarding this topic right now. Sorry for sounding a little depressed, but it is true that I don't see any solution for the above mentioned problems for me - and the truth sometimes hurts. I hope that my arguments are enough to start a good discussion and maybe - maybe! - Epic will listen.
Greets,
Alan
I consider myself to be a dedicated and motivated hobby game developer who is willing to learn as much as he can in order to achieve his goal: creating the game in his mind. During the past ten years I've been working with various game engines, starting off with a very simple 2D engine in early 2000. When the first affordable (or even free) 3D game engines hit the world wide web, I also managed to learn how to work within a 3-dimensional environment with textures, traces, euler angles and what not. Things were looking good these days, and then I discovered UDK. Excited about what might be possible with an engine as powerful as this, and even to get the chance to use it for free, I downloaded and installed it and went through all the awesome video tutorials provided by 3DBuzz. I could not have been any happier back then, because the editor proved to be amazingly powerful and yet easy to use at the same time. Whatever my goal was - there seemed to be a special sub-editor for that just as if Epic knew that I was comming this way. I was really happy with UDK. Well, until I tried to actually *program* anything. Lacking a real script editor for the very specialized language of unrealscript (it is not like they would have used any more common language!) it was quite a hassle to actually find and install a working development environment for UnrealScript.
Then, finally with everything set up (and with a bad feeling too, call it intuition if you want), I set out to find a beginner's tutorial. I've found some, however, either they were outdated, UnrealTournament-Related, or incomplete in some way. So basically I've been able to figure out most of the syntax of Unrealscript (which at least enabled me to understand parts of epic's UT code) and what classes you need to even GET STARTED with a project. But until today, I haven't seen one single tutorial for unrealscript which I would call "beginner-friendly, easy to understand, and complete". No way. And by "complete" I mean that the tutorial should not only explain "You need a GameInfo class, a Pawn class and a PlayerController class" and leaving the rest up to the reader, but going a little further, maybe creating a simple game prototype.
In the forum, when a beginner asks where to start with unrealscript, the advice to read through classes like "Object" or "Actor" is often given - but to a beginner who has not the slightest idea of what's really going on in code and probably never worked with object orientation before, this is not very helpful (I think we all agree on this point). Even for me, having a good idea about how object orientation works and having a good amount of experience with java, it proved to be a huge challange to really understand every line of code in there. Providing a built-in demo version of UT3 was probably the BIGGEST mistake Epic could have *ever* made with UDK. The reason for this is simple if you see it from a beginner's view. As a typical newbie, you want your reference code to be as easy as possible, right? After all, you want to learn the basics when reading it and maybe copy a function here and there.
But - and again, I think you will all agree here - UT3 code is *highly* specialized code geared towards best functionality (sacrificing simplicity at times), written by professional developers. There's network-stuff like server-client-connections, there are a heck of a lot of classes, there's a good deal of native code we can't look at, there are UT-specific things like replication info classes and so on and so forth. This NEVER ENDS. And the worst part of it all: some UT classes and mechanics are tightly connected with some classes quite high in the class hierarchy, which turns "getting rid of all UT-realated code" into a real nightmare. So basically if you extend... let's say... UDKGameInfo, then you will already have inherited UT-related code, allthough the name "UDKGameInfo" itself does not imply that at all. Epic always likes to claim that UDK can be used for each and every type of game - then why do they lay stones in our way? In other engines I worked with in the past, if you did not set up anything in your code and ran the executable, it would give you a black screen (after all, you did nothing) - in UDK, it gives you a full picture-perfect first person shooter, including all special twists and turns. What the hell.
So far, getting into programming with Unrealscript (because of the reasons mentioned above) became literally impossible for me, despite all my patience and training in java, despite the fact that I can work in other engines without any troubles with the scripting languages themselves (at least not as grave as with UnrealScript). Therefore the question that I have to ask myself (and Epic!) is: If I have such troubles getting started with UDK, how does someone feel who has never touched the field of game engineering ever before...? In case that I am not part of the target audience of UDK - then who is? On the main page, Epic answers the question "Who it's for" with "Anyone. Everyone. You." - to me right now, this couldn't sound any more sarcastic. It is entirely possible that really advanced game developers and indies will enjoy UDK and have a good time working with it and the product as such is as awesome as can be, however, if Epic wants the UDK to be for "everyone" then they still have a lot of work to do.
So far, that's everything I have to say regarding this topic right now. Sorry for sounding a little depressed, but it is true that I don't see any solution for the above mentioned problems for me - and the truth sometimes hurts. I hope that my arguments are enough to start a good discussion and maybe - maybe! - Epic will listen.
Greets,
Alan
Comment