Announcement

Collapse
No announcement yet.

DataLink

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

    DataLink



    DataLink is a module for UDK which allows you to save and load data outside of UDK. There are two parts to the module.

    Part A is a C++ layer which is responsible for the actual saving and loading data. It receives commands sent by UDK via TCP and sends requested data back.

    Part B is an Unrealscript layer which developers will use to save and load data. It receives data and sends commands to the C++ layer.

    Three formats are planned at this stage, which are configuration files, xml files and binary files. With the binary format, the developer is allowed to develop their own format for their game.

    #2
    Hold on, so are you saying this allows for external code? Meaning you could sort of add to the sourcecode without having access to it?

    Forgive me i'm not a programmer xD

    Comment


      #3
      He's using an external application to communicate with UDK via TCPLink.

      Comment


        #4
        good stuff
        can we try it? or in a future? ))

        may the force will be with you

        Comment


          #5
          nice app! wish I was a programmer though

          Comment


            #6
            How does the game launch the server component?

            Comment


              #7
              It doesn't. You have to launch it separately prior to starting the game.

              Comment


                #8
                Solid Snake, so would this allow the game being diven entirely by, say like RTS, RPG, or turn based game by just sending commands like "go here", "take that", "use this spell", "load different map"? Effectually allowing you to write your own network layer in uscript?

                Comment


                  #9
                  Hold on, so are you saying this allows for external code? Meaning you could sort of add to the sourcecode without having access to it?
                  Not as flexible as you may think. The interfaces are specific and are fixed. While it is technically possible to code larger portions of the game outside of UDK and communicate to UDK using TCP, I would not recommend it. This idea works because the data receive and send can be blocking actions if need be.

                  good stuff, can we try it? or in a future? may the force will be with you
                  This is a commercial module for UDK.

                  How does the game launch the server component?
                  Other way around, when you launch the server component it then launches UDK.

                  It doesn't. You have to launch it separately prior to starting the game.
                  The ultimate goal is to make it as transparent as possible. So ideally, the server application would run in the background as an invisible thread. Datalink's server itself will launch UDK and also close when UDK has been closed. So developers would create a shortcut to Datalink's server instead of the UDK.

                  Solid Snake, so would this allow the game being diven entirely by, say like RTS, RPG, or turn based game by just sending commands like "go here", "take that", "use this spell", "load different map"? Effectually allowing you to write your own network layer in uscript?
                  Well, the goal of DataLink isn't to provide you with an external console. Its goal is to allow you to send and receive data from a number of sources that you normally don't have access to. While it is possible to create the above, by getting it to read / write to config files transmitting commands in this manner, it is going to be better to write a more specific interface layer to do this.

                  Perhaps this may be another good module to developer.

                  Comment


                    #10
                    I just feel like adding this

                    A while ago I have created (with the help of some existing sourcecode) a MySQL interface for UT3!! Haven't tried this on the SDK, which I still need to download, but I'm pretty sure it'll work

                    Comment


                      #11
                      A MySQL interface or in general online resources is something else I wanted to look at in the future as well, but it does require some thought on caching and delayed event callbacks. Definitely possible and would also make some excellent additions to DataLink.

                      Did some quick research and DataLink will support HTTP 1.1 to provide online data sending and receiving.

                      Comment


                        #12
                        I've just finished writing the xml interface and I hope that these are enough features. If there are any features that are lacking please let me know and I will add them in.
                        • function CreateXml() - Creates a new XML document
                        • function DestroyXml() - Destroys an existing XML document
                        • function XmlExists() - Returns true if an XML document exists
                        • function GetXmlNodeContent() - Returns a node's content
                        • function GetXmlNodeProperties() - Returns a node's properties
                        • function GetXmlNode() - Returns a node's content and properties
                        • function GetXmlNodeChildren() - Returns a node's children
                        • function XmlNodeExists() - Returns true if a node exists
                        • function InsertXmlNode() - Inserts a new node
                        • function SetXmlNodeContent() - Sets the node's content
                        • function SetXmlNodeProperties() - Sets a node property
                        • function RenameXmlNode() - Renames a node
                        • function DeleteXmlNode() - Deletes a node
                        • function MoveXmlNode() - Moves a node
                        • function DeleteXmlNodeContent() - Deletes the node's content
                        • function DeleteXmlNodeProperties() - Delete a node property


                        Relevant functions have comma separated parent parameters, so any depth of nodes is accepted.

                        Relevant functions have comma separated property parameters, so any number of properties is accepted.

                        Comment


                          #13
                          Originally posted by Solid Snake View Post
                          A MySQL interface or in general online resources is something else I wanted to look at in the future as well, but it does require some thought on caching and delayed event callbacks. Definitely possible and would also make some excellent additions to DataLink..
                          I think I implemented that in the interface as well. Everytime a query is sent through code, it's stored in a queue, which is checked immediately after each query, immediately after receiving a query result and on an interval. Because all query's are stored in a queue, I can then use delegates that were sent along with the query's to call functions so something could actually start happening after the results are in.

                          Lol.. I hope this makes sense XD I can tell you it works really good

                          Comment


                            #14
                            Very Cool, I don't know that much about code, but all this stuff is still cool. Good luck, get back at me with the download when you're finish! Lol.

                            Comment


                              #15
                              Spankin' that code monkey!

                              This looks really interesting, I want to know more!

                              So, not being a coder - could someone explain how this will affect a game/the dev process?

                              From the little I've seen so far, the source code isn't shipped with this (?!?) so I presume this will enable coders more accessability?

                              Does it allow for lower level codeing i.e. C++ and how/why would a coder want to do this when (apparently - acording to the http://www.udk.com/documentation.html) any/all kind of games can be made with the available tools the engine is shipped with?

                              Please bear with me - i'm a designer/artist and not a coder - (although I do enjoy a good bit of U'script!)

                              Cheers

                              Comment

                              Working...
                              X