The Infinity Blade Forums Have Moved

We've launched brand new Infinity Blade forums with improved features and revamped layout. We've also included a complete archive of the previous posts. Come check out the new Infinity Blade forums.
See more
See less

[HELP] UDK and a good starting point?

  • Filter
  • Time
  • Show
Clear All
new posts

  • [HELP] UDK and a good starting point?

    Hi everyone!

    I've been browsing about on this forum, checking out various interresting topics here and there and I'm amazed by the ammount of creativity I've seen. I notice all theese awesome projects you guys got going on here and seeing them is inspiring.

    Now, I've only been a member here for a few days now and this is my first post. That said, I've only tinkered a little with a few Dungeon Defenders levels so I'm pretty much all new to UDK and I don't have much earlier experience as far as game development is concerned.
    A couple of years ago I survived a "3d game" guide for a program (I think was) called 'game maker', and after that, I made an unfinished, simple 2d, somewhat, mario-style platform-game with one level. Aside from making a few rather unfinished levels for Quake 1 in the Qoole level editor, that would be it as far as my experience in game design is concerned. That's it, this is where I come from.

    However, being a gamer, I've got quite a few good ideas on cool game mechanics for an FPS-game, so I've been checking up on different engines to try out. From what I've read and seen, everything seems to point towards the UDK.
    I've been followed out the 'Master Guide' and the 'Starter Guide' here on the forums, and I even downloaded the UDK-2009-11-2 version and translated them to the present version in order to gain more understanding from theese guides.

    I can import my own meshes, textures, sounds and other game content to the UDK editor. I have a fairly good idea on how to do theese sort of things. This would be great to me if I had a "blank file" to work with, or a very simple template to build upon.
    Forgive my lack of knowledge, but with UDK I have a fully functional Unreal Tournament Demo to build upon (and that alone), meaning there are all theese completely overwhelming scripts about all sorts of things.

    I don't mean to make 'UDK's relation to 'Unreal Tournament' sound like it's comparable to 'Creation Kit's relation with 'Skyrim', I'm just saying that very, very much complex Unreal-specific coding is woven pretty tightly to the fresh installation of UDK. Even if the 'U' in UDK stands for Unreal, the UDK, clearly, is perfect for stand-alone-projects other than maps and additional content for 'Unreal Tournament'.
    In fact, the UDK is advertized to be one of the very best engines to build totally new games upon and I wouldn't disagree. Still, this is where I get puzzled. :O

    I'd just love if there'd be a simpler, more basic gamecode to analyze and gain understanding from.

    You see... I think that most of the 'beginner-guides' are spot-on when it comes to modifying existing Unreal Tournament content. I've made walls that break and cloth that rips when fired upon, and I've used the matine to make a model move, animated, across a plane, and such etc. etc..
    Honnestly, there are plenty of very useful and cool, greatly detailed and well explained tutorials/guides around theese kind of things.
    From the prespective of modding and/or creating additional Unreal game content - they're really great "know-hows", and it's lovely to see how easy it can be done.

    However, from another point of view, this is merely manipulating things that will be useful at later stages in game development.
    -When leveldesign becomes relevant, that is. And I feel that the first things needs to come first, you know. Back to basics. Like the bits of code that decides how the characters movement is handeled.

    So, being locked on to the roots of game design, I've browsed around to find a good startingpoint. At this point, I'd be very pleased if I could manage to get a basic thing like simple WASD controls, a simple jump button and a mouselook and call that my game to work with and to build upon.
    Regarding the codes from Unreal - I find it very hard being absolutley inexperienced, trying to do some reverse-engineering on such complex gamecodes. For example, finding out how to remove or alter a thing like the 'double jump' when there are thousands of codes regarding moving the player around, knee deep in speedhack prevention checks and such... it is sooo hard because there's sooo much coding.

    I don't mean UDK should be a picnic for anyone to learn over a weekend, I'm just new and know very little.
    I hope I don't sound doumb saying this but.. I for one, would rather have something somewhat basic to build upon, than something very complicated to backwards-engineer. In other words; I'd like to think "How do I do this?" rather than "God, what is all this??". At least that's my impression.

    That said, I'm not specificly asking for an 'easy-to-use-FPS-template' to be handed out, no, there probably won't ever be a guide like "5 simple steps to make the prefect FPS-game". I'm just vastly, much more curious about first - creating the basics of a freshly new game of my own,, rather than tinkering with the details of an already finished product like Unreal Tournament. (God I have a massive headache at the moment. xD )
    Please, forgive me for sounding cynical, and, for being puzzled enough to raise questions like this.
    Anyway, we are all here to learn and we have all been newbies at one point. Helping souls are very welcome to lead me on to the right direction.

    Thanks! And Cheers!

    Notes: I never ment this post to be a long one (especially since I struggle with my English writing). And I've looked pretty much everywhere on the subject and I appologize if there's something I haven't found. So, to mods and admins: If a this subject has already been posted and answared elsewhere, or, should it in any way be unnecessary, feel free to delete or modify it. If so, a PM perhaps with a link would be greatly appreciated.

  • #2
    Ah, go through the basicgamequickstart files in documentation, that should get you going.


    • #3
      ok i'm to lazy to read the whole post, if you want a simple FPS then read through the UTGame code
      if its something else then have a look here rts & platformer


      • #4
        Thanks for the answers!
        I've taken your tips really seriously and I am very happy I've got them!

        XXWeaponXX7 :
        If you're referring to the documentation included in the latest release of the UDK then I've pretty much gone thrugh it. After I read your post I felt like "Please, if I had to make a 10 A4 pages worth of first imression/question just to only feel stupid finding it afterwards, then I have to admit that I'm an idiot...." However, I read it and it got me going for sure, but I'm not really sure I'm satisfyed with the ammount of information given.

        I'm sorry, it evolved to one of thoose monsterposts, I'm sorry, but reading the bits you did was probably enough. Yes, it is a very simple FPS I'm interrested in at the moment but thanks for the links! It was quite interresting to look at anyway. I've been looking into the UT code and I'm pretty sure I'll have to keep on doing that. Thanks!

        So here's my thaught's so far: (Assuming you all know what I mean by the following

        class XGM0001 extends UTGame;

        After reading some of the UT code (and still being overwhelmed by the ammount of coding) I decided to take a look on some sources from some of the releases. So, (amongst others) I downloaded the 'Zombies' "source", or rather the 'UDK project' and the UDK version (UDKInstall-2010-07-BETA) in which I suppose this was created from!!! . (I make this to an example not only cause I saw the potential of the UDK engine, but also because I was very impressed by the work.) So, looking into the scripts I realized that this (surprisingly - just like most other projects, which actually surprised me) derive from the 'UTGame' gamecode, rather deriving from the 'UDKBase' (or 'UDKGame' not quite sure what it was, whatever) gamecode (which I think would be ideal), or from GameInfo (which probably would mean a whole lot of work).

        This brings yet another question to my mind: If I were to create a simple FPS-game - would it be better to have the gamecode derive from UTGame rather than form UDKGame?

        The reason I'm asking is simple. I'm a newbie and I don't know better. But to elaborate :

        Assuming I'd derive my project from the UTGame instead. Some coding might make sense, some might not. After some work and an FPS of my own, I'd probably then end up with allot of called functions and allot of loaded scripts that aren't really used in my simple game anyway. So with the UT scripts loaded absolutley in vain, they might aswell cause problems and bugs on what I'm trying to create. To solve this, I'd assume (I'm still a newb) I'd have to NULL out most of theese functions and make sure they aren't affecting anything, since they might not make sense to me or they might be tinkering with functions that would ruin the Gameplay that I have intended. So, at the stage of releasing a product, with map-oriented optimization and such, I would be troubled. Because wether the final product Loads a bounch of scripts that it doesn't need and they are called for in the background, or if that final product loads a bounch of scripts that are, at a later stage, all nulled out --- ? I mean I don't know if any of that would affect performance, I really don't, but I can safely say loading stuff wether canceled or not in use is hardly a part of optimizing the final product. I could be wrong so please correct me.

        If I were to have my project derive from the UDKBase/UDKGame (whatever it was called) - then I wouldn't have much of an FPS code to begin with, so I'd pretty much would have to find my own way in setting up a WASD+mlook+fire+jump sort of basic FPS before I can even begin. Since UT is an FPS, I could probably pull this off by studying the UT code very, very closely. Still, there'd be very much coding involved before the aspects of a simple FPS can be demonstrated AND it would require lots of knowledge of 'what does what' within the UT code itself. To a newbie it's pretty overwhelming and will take quite some time.

        From my point of view, it'd be way much better to have a project that derives from UDKGame, rather than UTGame. But I don't know. And not that it matters, you see my point is this : Regardless, the Problem is Still there. There's so much coding. Most of it doesn't make sense if you're new because it's still about the same thing: Analyzing and understanding. In other words: whatever approach one might have it's all 'reverse-engineering'. It's so hard to seperate the essential codes from the additional codes. It's hard to seperate thoose codes that makes UT the Top-Notch Arena shooter, from what is a pure necessity for a basic shooter.

        I know I'm new to UDK and perhaps one day I might have a very simple FPS without too much unnecessary code in it. Because that's really what I aim for at the moment. Something simple to build on. I'm still trying to figure this out myself, but once again: if there's more tips from other UDK users, you are more than welcome to further point me in the right direction.


        • #5
          I've been mesing around a little.
          Today I tried this thing!

          After that I simply made a TEST map, set it to yourGame in the Gametype option in World editor.

          Then I played it via the editor "on PC" . Apart from the room in my TEST map, what I had was a, Unreal robot displayed in third person to jump around with. No guns, not anything.
          So apparently there was still a little Unreal left there somehow.
          But anyway, I guessed that this was what I had at the moment. ----Nope...

          Because when I used the frontend, recompiled and cooked everything, then launched the game with my TESTMAP as the only one to cook, I still had the Unreal Tournament Menu system.
          Anyway, I picked my TEST level. Then started a Death Match Game, since "yourGame" wasn't there for some reason (?).
          So what I get when I started my map, with my game mode, without any UT classes, was still Unreal.
          I had that gun in my hand and I had the UT interface and all the controlls from Unreal Tournament.. everything....

          How on earth can I make something of my own?

          How much Unreal do I have to delete/Null out ?
          And Why?

          How come I have to delete and rearrange everything untill I can have a plain and simple base to work with?

          This is so confusing...


          • #6
            Bear in mind that if you base it off of UTGame, there's a time limit that you would have to disable. The game ends after a certain period of time, though I'm not sure of where I the code that is. I usually go from UDKGame and borrow from UTGame other things like pawns, weapons, etc.


            • #7
              Oh, there is ?
              I suppose that people are intended to build upon UDKGame rather than UTGame, but then, why are we all tossed into the soup of UT Code to begin with?
              Cause after installing UDK, UTGame is on by default.
              It's good to have the UT codes to look at but come on, it's loaded by default?

              I'd like to have the UT code isolated out completely, so I perhaps could use it as a refference while I, like I've said in the previous posts, go from UDKGame as you said, but I don't know where UDKGame stopps and UTGame starts.
              Especially not after following a tutorial on how to create a game WITHOUT UT classes, yet still end up with UT menues, UT weapons and models and UT gamemodes etc.

              I've looked everywhere and I can't find a "from scratch" tutorial on this. All I find is the endless UTGame-stuff like "do this with the Kismet", "do this with the Matine", "Here's how to build your first room" (for the UTGame). I'd so much rather have found a guide on a "Hello World"-kind of level.

              All I want is the basic WASD-jump-duck-mouselook stuff and go from there.
              So, how can I completely Isolate the UTGame stuff from the editor? You know, knowing "this is what I have" as far as coding goes.

              How can I be sure to get rid of the UTGame stuff?
              How many .INI settings must I erase/change before knowing UTGame stuff is not going to be called by anything?
              What can I do to have the editor working even if I'd delete the UTGame and UTGameContent?


              • #8
                You're drawing a lot of assumptions too quickly. UTGame is a foundation for making FPS games and it's a huge codebase providing a lot of functionality. You need to familiarise, experiment and adapt before you can expect it to work 'your way'.

                If you're going for an FPS then it's worth using UTGame, or at least learning from it, but you can also roll your own completely from scratch by deriving from the base classes instead of UT.


                • #9
                  I really appreciate you guys reading my posts and helping me out. It's very kind of you.
                  My primary goal is to learn the UDK.

                  My standard approach would be to learn from nothing.
                  Like back when I was a kid:

                  <head><title>My Webbsite</title></head>
                  <body bgcolor="#D3E7E6">
                  This is my first webbsite!
                  <font size="1">Created in Notepad.</font>

                  "Hey, I've made a webbsite! This is all I've got thus far. I mean to design an entire forum when I'm done, but atleast now I master very, very basic webbdesigning! =D (...Now what would be the next step??...)"

                  Now I probably can't go all the way from scratch in UDK, but 413 files of UTGame uc-scripts with 2,31MB worth of coding is alot to start with in terms of analyzing and understanding.
                  Theese files are no joke. This is advanced stuff. It's alot of unwiring.
                  And charging in at theese files and fully understanding each of theese functions before I can make anything very, very basic - is extreme overkill.
                  I mean, it's all true what you guys are saying. I need to familiarize myself with it.

                  And at this time I'm just browsing thrugh theese files desperetly trying to find a place to Cut out everything that's 'overkill', so I can have a smaller portion of codes to start understanding 'why this works and what it does'.
                  I simply do not know how to exclude everything I do not need at this moment.

                  I mean, I make a class that extends UDKGame, one that extends SimplePawn and one that extends SimplePC.
                  What I want from this, is a GameMode that does nothing, a Pawn that does nothing and a PlayerController that does nothing, and start gaining understanding and eventually build upon that.
                  That's all I want to load at the moment. I'd like to rebuild this code, cook a basic map and see what I've got.
                  However, both the engine and the editor loads UT-stuff ayway.
                  Rebuilding and cooking via the frontend, the launching still gives me all the Unreal tournament stuff I'm trying to cut out.
                  Ex. the Menu system, which can't find my GameMode anyway, which leads to my TEST map opening up in Deathmatch mode, which is probably the reason why I spawn with UT weapons and UT HUD.

                  To me it's like having that piece of HTML-code in my example above, (testing that basic stuff), and ending up looking at a webbsite as advanced as Google, while the only thing that's noticable from my coding would be the fact that bgcolor is "#D3E7E6". All I wanted was my silly, basic thing to show up as the big nothing that is is.

                  I really don't want UT-stuff to appear "anyway".
                  How can I make sure that my simple coding is the only thing being loaded that's extending UDKGame?

                  I'm trying to suck it up by editing the INI files like a madman. But in the end, I end up with the editor complaining when rebuilding scripts. Eventually I have to reinstall the UDK and start over again, and again, and again.
                  I really appreciate you guys helping me out.

                  By the way, what would be the best software to use when viewing UC scripts? I find opening multiple files in Notepad++ a bit untidy and I'm constantly jumping back and forth between folders within the 'Development/src' and the 'UDKGame/Config' for INI-files.


                  • #10
                    Good luck on your travels.



                    • #11
                      Firstly, re-install UDK. Then edit the ini files to add your project as defined in the starting guides, by adding a +EditPackages entry so that your code gets compiled.

                      Then leave the ini files alone!

                      Next, don't bother cooking your game. Cooking is for producing milestone test builds, not for daily development. All you need to do is recompile the scripts either from the frontend app, or with a command line like this:

                      D:\UDK\UDK-2012-01\Binaries\Win32\ make -debug
                      Now you have two options for testing your game. You can either fire up the editor, load your map, click on View-> World Properties -> GameType and set both the DefaultGameType and GameTypeForPIE to your project's GameInfo class. That allows you to test the game in the editor.

                      Alternatively, a more efficient way to iterate builds when coding is to launch the game through the commandline, specifying map and gametype.

                      D:\UDK\UDK-2012-01\Binaries\Win32\UDK.exe TestMap?game=Sandbox.SBGame -log -remotecontrol -nostartupmovies
                      Use this as your workflow until you gain more experience and confidence. The command lines above can be executed through desktop shortcuts, or with the features of your IDE (code editor). Later you can search the forums for ways to tweak the ini's and get cooked builds to run correctly.


                      • #12
                        Oh, and you might want to reduce the length of your posts to focus more on the core issue. There are a lot of busy people here who will skip when confronted with a wall of text


                        • #13
                          Thanks! Unreal X-Editor seems perfect =D


                          • #14
                            Spoof! Very useful! Thanks!


                            • #15
                              Are you using an old build of UDK? All the recent ones I install always have "None" as the default gametype, not UTGame. (unless you're opening some of the included UT maps).

                              Also, I don't think the command lines are needed to rebuild code. After adding your gametype to the ini, simply opening UDK will prompt you to rebuild scripts.