User level editor and networking stuff
by Rivage · in Torque Game Builder · 09/29/2006 (12:25 pm) · 11 replies
Hello :)
I have 2 questions for those who already play with networking and script.
First of all, networking :
I have an idea where at least 4 player (maybe 8) could move at the same time during a small moment (let say 10 sec.). A kind of "Moving phase" like tactical's rpg. Is this actualy possible without changing TGB sources ? Does the networking system is fast enough to achieve good result ? (i know it's about real time... Not turn based :s )
Finally i need to provide a full level/object/npc/behaviour editor to this game. Those objects are complex (specialy without a script language specific to the game). Is there any chance to see a virtual machine Scripting module in TGB ? (using for example Small, Lua, basic or why not TorqueScript himself)
TGB could be usefull for this project (without changing the sources !) exept for those 2 features.
Thanks ;)
I have 2 questions for those who already play with networking and script.
First of all, networking :
I have an idea where at least 4 player (maybe 8) could move at the same time during a small moment (let say 10 sec.). A kind of "Moving phase" like tactical's rpg. Is this actualy possible without changing TGB sources ? Does the networking system is fast enough to achieve good result ? (i know it's about real time... Not turn based :s )
Finally i need to provide a full level/object/npc/behaviour editor to this game. Those objects are complex (specialy without a script language specific to the game). Is there any chance to see a virtual machine Scripting module in TGB ? (using for example Small, Lua, basic or why not TorqueScript himself)
TGB could be usefull for this project (without changing the sources !) exept for those 2 features.
Thanks ;)
About the author
Leadwerks
#2
Yes, in fact if CommandToClient is TCP/IP a Guaranteed packets protocol it will probably be too slow and with too much of latency for this type of game :(
Too Bad !
I could drop the script tool for third party but absolutely not the networking side cause it's the core of this game :(
ps : It's good see someone understanding what "without changing TGB sources" means ^^
Since i'm here i only get : Then do it yourself with C++ lol
10/02/2006 (7:03 am)
Thanks for your answers ;)Yes, in fact if CommandToClient is TCP/IP a Guaranteed packets protocol it will probably be too slow and with too much of latency for this type of game :(
Too Bad !
I could drop the script tool for third party but absolutely not the networking side cause it's the core of this game :(
ps : It's good see someone understanding what "without changing TGB sources" means ^^
Since i'm here i only get : Then do it yourself with C++ lol
#3
If TGB can't do what you want, you might wnt to look at TGE, after all it's the engine that brought us starseige tribes which was very network heavy. There's also a few resources floating around for custom scripting modules and the like, but it'd still require some C++ hacking to get what you want. Still I think that'd be easier than doing it with TGB.
The only other game engines I know of are the pop-cap games framework (no idea about networking though) or if you know Java then you might want to look at the company that did puzzle pirates (can't recall their name right now). They've released most of their source (not sure if it's licence free though) for PP and for some of the bits they used in Bang Howdy as well. Whilst they mostly work with Java, what they've done with it and JME (JME is a game framework & scenegraph built on top of JOGL) really is top shelf stuff.
Sigh... I'm waffeling again. It must be night time. I need to stop working with zombies, I'm going insane! (I do this on random forums most nights, don't worry).
10/03/2006 (1:47 am)
I'd still recomend you look into what's possible with TCP/IP. I remember Zach Simpson of mine-control/shadow-garden fame wrote an article about how he used TCP/IP for a realtime stratergy game once. Then again, i've no real idea of what you're wanting beyond general realtime networking so it may just be a waste of your time ;)If TGB can't do what you want, you might wnt to look at TGE, after all it's the engine that brought us starseige tribes which was very network heavy. There's also a few resources floating around for custom scripting modules and the like, but it'd still require some C++ hacking to get what you want. Still I think that'd be easier than doing it with TGB.
The only other game engines I know of are the pop-cap games framework (no idea about networking though) or if you know Java then you might want to look at the company that did puzzle pirates (can't recall their name right now). They've released most of their source (not sure if it's licence free though) for PP and for some of the bits they used in Bang Howdy as well. Whilst they mostly work with Java, what they've done with it and JME (JME is a game framework & scenegraph built on top of JOGL) really is top shelf stuff.
Sigh... I'm waffeling again. It must be night time. I need to stop working with zombies, I'm going insane! (I do this on random forums most nights, don't worry).
#4
The only tihng not included with the TGB GameConnection class is the concept of ghosting objects (streaming real time updates) when compared to TGE...but it is a full UDP interface. It directly supports all that's necessary for "establishing" a UDP connection (which is a misnomer obviously, UDP doesn't have a true concept of connections), as well as transmitting events across the connection.
commandToServer and commandToClient are not TCP/IP. They are Guaranteed Delivery Net Events implemented over UDP.
10/03/2006 (2:18 am)
I'd like to correct a small misunderstanding here: the TGb "TCPObject" is certainly TCP/IP, but TGB has a full UDP GameConnection class that communicates with the server (if you have one set up) using application level ack/nack on top of UDP, with several categories of guarantee.The only tihng not included with the TGB GameConnection class is the concept of ghosting objects (streaming real time updates) when compared to TGE...but it is a full UDP interface. It directly supports all that's necessary for "establishing" a UDP connection (which is a misnomer obviously, UDP doesn't have a true concept of connections), as well as transmitting events across the connection.
commandToServer and commandToClient are not TCP/IP. They are Guaranteed Delivery Net Events implemented over UDP.
#5
Ho nice to know it because as a matter of a fact when i'm using UDP i do exactely the same Guaranteed Delivery work with event driven (at my own level obviously :).
I will test this feature and see if that fast enough for that particulary type of game. Don't you talking about a C++ class ? Cause i can't see the TorqueScript version of it (no use and no sense to me then).
@Cameron Owen
I won't go with TGE as the knowledge curve is way to long for me and if i really want to use an already done networking library i will use K-NetLib. Yeah there isn't many game engine as far as i know but well after all it's only a question a tools and handy commands set surrounded by framework (well... in a shorcut way).
I hope TGB dev team won't stay with the actual limitations and most of all won't rebuild TGB to a 2.0 version.
Thanks for your answers all ;)
10/03/2006 (12:17 pm)
@Stephen ZeppHo nice to know it because as a matter of a fact when i'm using UDP i do exactely the same Guaranteed Delivery work with event driven (at my own level obviously :).
I will test this feature and see if that fast enough for that particulary type of game. Don't you talking about a C++ class ? Cause i can't see the TorqueScript version of it (no use and no sense to me then).
@Cameron Owen
I won't go with TGE as the knowledge curve is way to long for me and if i really want to use an already done networking library i will use K-NetLib. Yeah there isn't many game engine as far as i know but well after all it's only a question a tools and handy commands set surrounded by framework (well... in a shorcut way).
I hope TGB dev team won't stay with the actual limitations and most of all won't rebuild TGB to a 2.0 version.
Thanks for your answers all ;)
#6
If you need unguaranteed, or simple guaranteed, then you'll need to dig into source code a bit most likely, but it's possible that you may be able to use them without--I honestly don't know.
10/03/2006 (2:17 pm)
@Rivage: take a look at the checkers tutorial, it demonstrates how to establish a connection with a server, and if all you need is Guaranteed Ordered delivery network events, that's exactly what commandToServer and commandToClient are.If you need unguaranteed, or simple guaranteed, then you'll need to dig into source code a bit most likely, but it's possible that you may be able to use them without--I honestly don't know.
#7
10/03/2006 (6:23 pm)
Thanks Stephen ;)
#8
10/08/2006 (5:05 pm)
Check out this demo I did. It demonstrates a semi real time networking gameplay based on the commandToClient/Server interface. Now depending what you want to do this may not be sufficient for you, but the demo is a good proof of concept that if you do it right it might be feasible.
#9
10/09/2006 (2:14 pm)
Are there any tutorials that show how to test networking stuff on one computer? I know you need two copies of TGB running, but other than that I have no clue. I can never mess with the networking demos because I don't have anyone to connect to... and I usually can't get past the first menu(s).
#10
10/09/2006 (2:16 pm)
@Joe, you can test networking on a single computer if you compile out a DEBUG build... run one in release (host the server on that) and then connect over "Query LAN" with the DEBUG instance running.
#11
Or if you don't have access to the source TGB you could get VMware and run an emulated PC that you can connect to via the lan, granted you'll need an os to run on it.
10/16/2006 (2:12 pm)
@joe Or if you don't have access to the source TGB you could get VMware and run an emulated PC that you can connect to via the lan, granted you'll need an os to run on it.
Torque Owner Cameron Owen
As for the editor, well, TGB is the editor, and Torque Script is the VM scripting module. If you want to provide that kind of functionality to your end users then I'd wager the easiest way would be to build a cut-down and custorm version of TGB editor from the source to dustribute with it. Not sure GG would let you do that with TGB, but it's how most people do it for TGE games (that I've seen).
I've also seen mention of other scripting languages used with TGE (not TGB) such as python, but I've not even looked at the TGB source yet so that could be a long shot.