Announcement

Collapse
No announcement yet.

How suited would UDK be for a 4X game?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    How suited would UDK be for a 4X game?

    Edit: The issue has moved from practical implementations of game features to workarounds regarding the speed and limitations of unrealscript

    Edit: Post edited in order to present my problems better, some of the problems were removed since they where self explanatory. Also done in order to correct the retarded view it might have given me

    I'm currently working on the design document for a 4x game set in space, similar to master of orion or any other 4x game you might have heard about. The flow of the game will be turn based on a galactic scale, and realtime battles on a more local scale (think orbital combat). In other words, it is mimicking the gameflow of Total War


    There are several obstacles that needs to be worked around in order to use a game engine like UDK for this sort of game, however it is out of my scope to write a custom engine for this project so I will explore any option that makes it possible without enforcing clunky mechanics on the end user


    My current, theoretical i might add, workarounds are:
    • Where would all the stars and planet go?
      All objects in the game would be stored in a database built in uscript, with the excpetion of 'space' background the maps are completely empty. Whenever a new map layer is needed, uscript will spawn the objects at their given position and synchronously fade them in or out depending on whats needed


    My currently problems
    • Speed and stability of uscript
      4x games can be dauntingly epic in size, tens of thousands of objects will need a place to be stored and routines to manage them. The speed of which uscript can handle this is uncertain, but I do suspect it depends on just how deeply I wish to simulate interactions between objects



    Would using UDK be possible, or do you see any issues with using it for a 4x game?

    #2
    4X games really need specialist engines to handle their unique requirements - UDK will struggle to meet your needs.

    Comment


      #3
      Originally posted by ambershee View Post
      4X games really need specialist engines to handle their unique requirements - UDK will struggle to meet your needs.
      I study robotics at my local university and I have a good grasp on writing code, but there is no way that I could write my own game engine that could meet my requirements.

      Simply put, writing a custom engine is out of reach for me.

      Comment


        #4
        The point where UDK fails is computing the world (as far as I know). Though something like Galactic Civilizations could be done, as it doesn't need terrain. You could just have the space background and then randomly distribute planets, suns and asteroid fields for example.

        Comment


          #5
          Robotics and game design aren't the same thing.... What you described could pretty much be done with any engine, and I think a lot of them will run into the same issues that Xendance and Ambershee brought up. It's doubtful that you'll be able to generate any kind of land or anything like in Spore, especially because you're going to run into a lot of trouble trying to get the gravity functions to work differently, however something like Sins of a Galactic Empire would be possible but not the easiest thing to do with the generation.

          Another issue I can think of would be the size, I'm not sure how well the UDK is going to handle giant worlds. In my experience, not very well, however you could just scale everything down without much issue given your genre.

          But really, for something like that I would probably want something that's architecture is heavily modifiable or flexible, which the UDK really isn't.

          Comment


            #6
            Originally posted by UnspoiledWalnut View Post
            Robotics and game design aren't the same thing....
            Alright, I just wanted to point out that I write code on a regular basis.
            It is true that it's still different from game design, I would probably not be able to write a good enough engine myself, but my point was that all the game logic is something I am capable of writing.

            Originally posted by UnspoiledWalnut View Post
            What you described could pretty much be done with any engine, and I think a lot of them will run into the same issues that Xendance and Ambershee brought up.
            What I'm looking for is an engine with a powerful object oriented scripting language and a usable UI api, this is something UDK does well and thus why I consider using it. Writing my own custom engine is not something I am capable of.

            Originally posted by Xendance View Post
            The point where UDK fails is computing the world (as far as I know). Though something like Galactic Civilizations could be done, as it doesn't need terrain. You could just have the space background and then randomly distribute planets, suns and asteroid fields for example.
            Originally posted by UnspoiledWalnut View Post
            It's doubtful that you'll be able to generate any kind of land or anything like in Spore, especially because you're going to run into a lot of trouble trying to get the gravity functions to work differently, however something like Sins of a Galactic Empire would be possible but not the easiest thing to do with the generation.
            I wont generate any landscape, I did play with the idea of procedurally generated landscapes, but I think it would be too computing intensive to do and I wont be able to implement it in UDK

            Originally posted by UnspoiledWalnut View Post
            Another issue I can think of would be the size, I'm not sure how well the UDK is going to handle giant worlds. In my experience, not very well, however you could just scale everything down without much issue given your genre.
            My initial take on this is that I can stream in a new empty world (with all that space background etc), read any astrological objects that resides there from my database and spawn them at the given coordinates. In other words, no object is ever saved into the map itself, they will always be removed and respawned as needed.

            Originally posted by UnspoiledWalnut View Post
            But really, for something like that I would probably want something that's architecture is heavily modifiable or flexible, which the UDK really isn't.
            Indeed, but yet again a custom engine is out of the question for me.

            Comment


              #7
              Yes you've said writing an engine isn't what you want to do, and I never told you to. I'm just saying that there are engines out there more flexible than this one is that would be better suited for large, if not infinite, sizes of playable areas. You might able to do that with this using a system of level paging or something, but I think it would be kind of confusing to implement.

              Comment


                #8
                Right sorry, I might have repeated that a bit too much

                Making the map flow seamless doesn't sound impossible even with the limitations given, clever use of fading could make the transition work.

                Comment


                  #9
                  'Gravity' in whatever form it may be present really isn't a problem - the problem is more scale. It's difficult to manage 'vast' scales in UDK especially from an omnipotent player perspective who can effectively move between any point in the game world very quickly. Ultimately, the world size is going to be limited, as floating point errors will be abundant if you move too far outside of the limits of the area that is determinably playable within floating point accuracy.

                  Comment


                    #10
                    Originally posted by ambershee View Post
                    'Gravity' in whatever form it may be present really isn't a problem - the problem is more scale. It's difficult to manage 'vast' scales in UDK especially from an omnipotent player perspective who can effectively move between any point in the game world very quickly. Ultimately, the world size is going to be limited, as floating point errors will be abundant if you move too far outside of the limits of the area that is determinably playable within floating point accuracy.
                    This is a concern, it's quite possible that it will prevent me from using a free roam seamless camera. I could circumstance it by having multiple layers of maps of different scale, this wont allow you to say go from planet a to planet b in the same solar system without going back to the higher level map or using a shortcut/ui action, but it will remove grand scale issue.

                    I could make it so that you cannot zoom closer to the next layer unless theres an actual layer there. (Also using a boolean to keep track of if a player knows somethings actually there so the player don't try to find hidden mission/story areas by 'scanning' the map)

                    I feel that it all depends on how fast uscript can spawn/despawn the actors and fade them in and out.

                    Comment


                      #11
                      'Gravity' in whatever form it may be present really isn't a problem - the problem is more scale.
                      Not the way he is doing it, I thought he wanted to make it something like Spore or something where it would have a geocentric system when walking on planets.

                      This is a concern, it's quite possible that it will prevent me from using a free roam seamless camera. I could circumstance it by having multiple layers of maps of different scale, this wont allow you to say go from planet a to planet b in the same solar system without going back to the higher level map or using a shortcut/ui action, but it will remove grand scale issue.
                      This is was one of things I was thinking about for a game idea I had a while ago, but I never got around to trying it so I don't know how well it would work.

                      But, I think instead if you just scaled everything down to whatever amount so that it would give the illusion of having a much much larger area, it would also work if you used LOD effectively. But this way it would let you not worry about backing in and out all the time to switch between the systems, but I don't know just HOW small or large you can really scale objects before distorting them. This is the way I would personally do it, but you would need to work on the perspective systems so that when you back out really far it won't need to render EVERYTHING that has been loaded.

                      Comment


                        #12
                        Originally posted by UnspoiledWalnut View Post
                        But, I think instead if you just scaled everything down to whatever amount so that it would give the illusion of having a much much larger area, it would also work if you used LOD effectively. But this way it would let you not worry about backing in and out all the time to switch between the systems, but I don't know just HOW small or large you can really scale objects before distorting them. This is the way I would personally do it, but you would need to work on the perspective systems so that when you back out really far it won't need to render EVERYTHING that has been loaded.
                        Sounds like thats something I just need to figure out by testing I suppose

                        Comment


                          #13
                          My plan was more of a world map for a global war game with procedurally generated cities, but that's kind of paused for the time being until I figure out how I'm going to do it. But I basically had the same two ideas: either the way I described, or what you planned with just several 'steps' of maps depending on the distance.

                          But the occlusion is the biggest issue, since if you can see any part of the model it will all be rendered. So, this way, I would figure out levels of zoom, with the farthest levels you only see either the stars, and then maybe some kind of an array of icons to see where everything is since obviously you'll still want to be able to control what you have, or if it's turn based you can see where everything is at. Then, in the middle somewhere you can see the planets or something, along with the icon system but maybe more detailed so you can figure individual units or groups into it, and then at the closest, you can see everything in full detail and individual unit models. I don't think it would be necessarily hard to set up, but would take a while to figure it out so that it works perfectly.

                          Comment


                            #14
                            Reducing the size of the player can help with faking vast spaces.

                            Comment


                              #15
                              He shouldn't need to, it's an FPS.

                              Comment

                              Working...
                              X