Community News Licensing Documentation Showcase Features Download UDK.com  
Old 11-06-2009, 06:02 PM   #11
Solid Snake
Senior Member
 
Join Date: Jun 2007
Location: Christchurch
Posts: 280
Default

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.

Last edited by Solid Snake; 11-06-2009 at 09:35 PM.
Solid Snake is offline   Reply With Quote
Old 11-07-2009, 08:11 AM   #12
Solid Snake
Senior Member
 
Join Date: Jun 2007
Location: Christchurch
Posts: 280
Default

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.

Last edited by Solid Snake; 11-07-2009 at 08:13 AM.
Solid Snake is offline   Reply With Quote
Old 11-07-2009, 08:44 AM   #13
FakeTruth
Senior Member
 
FakeTruth's Avatar
 
Join Date: Jun 2008
Posts: 393
Default

Quote:
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
FakeTruth is offline   Reply With Quote
Old 11-07-2009, 09:40 AM   #14
kennboy1
Junior Member
 
Join Date: Nov 2009
Posts: 6
Default

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.
kennboy1 is offline   Reply With Quote
Old 11-08-2009, 11:48 AM   #15
Jonny T
Junior Member
 
Join Date: Nov 2009
Posts: 1
Big Grin 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
Jonny T is offline   Reply With Quote
Old 11-08-2009, 06:22 PM   #16
Solid Snake
Senior Member
 
Join Date: Jun 2007
Location: Christchurch
Posts: 280
Default

The role of DataLink is to allow Unrealscripters for the UDK to be able to access external resources such as binary files, config files, HTTP resources and xml files.

While the UDK is able to already access config files, the current state of the config options is a little bit limiting compared to what it was in UT2004.

UDK at this point does not support binary files or xml files.

UDK can get data using HTTP requests without using DataLink, but I have included it as well to make it easier.

When DataLink is used, developers will have access to both the Unrealscript and C++ code. However, I can only provide support for just the precompiled version of the C++ program.

Binary/HTTP/Xml example:
Your game is an RPG game which saves the players profile onto the disk, but also keeps a version online. When the player wishes to play offline because he/she does not have internet access then your game will use the player profile found on disk. DataLink is used here to get the data from a binary/xml file into Unreal Engine. When the player has finished playing, the game then wants to save any progress to disk. DataLink is used here to save the data into a binary/xml file. If the player has access to the internet, then you will want the game to get the data from the internet. DataLink is used here to ask the server for that data. When the player has finished playing, DataLink is used again to save the progress by sending the progress data back to the server.

Config example:
As far as I can see, there does not appear to be a settings menu in the UDK. There also other options found in the config files that you normally do not have access to it seems. DataLink can be used to access these config files and values.

Last edited by Solid Snake; 11-08-2009 at 06:27 PM.
Solid Snake is offline   Reply With Quote
Old 11-08-2009, 06:31 PM   #17
ffejnosliw
Senior Member
 
ffejnosliw's Avatar
 
Join Date: Aug 2006
Location: 3DBuzz
Posts: 873
Default

Interesting stuff, James.
ffejnosliw is offline   Reply With Quote
Old 11-09-2009, 10:45 PM   #18
Conjured
Member
 
Conjured's Avatar
 
Join Date: Nov 2009
Posts: 34
Default

So, this could be used to create (read from/write to) an online HIGH SCORES board for single player games to compare their score against other players world wide?
Conjured is offline   Reply With Quote
Old 11-09-2009, 11:48 PM   #19
Brexer
Member
 
Join Date: Nov 2009
Location: Denmark
Posts: 86
Default

Quote:
Originally Posted by Conjured View Post
So, this could be used to create (read from/write to) an online HIGH SCORES board for single player games to compare their score against other players world wide?
If thats all you need, you can already do that using the already present HTTP requests system inside unreal engine, eg using php.

Submit highscore link (example)

Code:
HTTP post
http://www.mysite.com/score-add.php?playername="hello"&score=320

HTTP get
http://www.mysite.com/score.php?limit=10 (for top 10 output)
well, maybe not THAT simple, but something like that :P
__________________
Everything is negotiable - in business you never get what you deserve, only what you negotiate.
Brexer is offline   Reply With Quote
Old 11-10-2009, 10:09 PM   #20
Solid Snake
Senior Member
 
Join Date: Jun 2007
Location: Christchurch
Posts: 280
Default

Hmm, I thought about this some more and I might have to rewrite these interface classes. What I was planning to do before was just to send commands back and forth, but that's actually not necessary at all. What I really should be doing is creating an XMLObject that exists in Unrealscript. This might be fun to parse though, but I shall see how this goes.

But the more I think about it, the more XML seems less useful to DataLink. After all there's no real need for a deep hierarchy variable system that XML offers. I think at this point I might pull back the XML feature and work on a DataObject like system.

Last edited by Solid Snake; 11-10-2009 at 10:13 PM.
Solid Snake is offline   Reply With Quote
Reply

Thread Tools
Display Modes


All times are GMT -4. The time now is 04:45 AM.


Powered by vBulletin
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Copyright ©2009 Epic Games, Inc. All Rights Reserved.
Video Game Voters Network