[Wizard] Armies of Exigo

Gamer's Internet Tunnel, formerly Gamer's IPX Tunnel

[Wizard] Armies of Exigo

Postby Carlos_Ed » Sun Apr 03, 2005 4:10 pm

Hello all!

Before anything, let me say that I too have been successful in setting GiT to work with the game "Armies of Exigo". And as such, I would like very much to create a Wizzard for this game. If successful I will post it here in this thread. There are a few problems, to be ironed out yet. Namelly the support for 3 and more players and to add flexibility in the Wizard to suport/bypass/work with several common "obstacles" in communications (Firewalls, NATs, routers... etc). I have some understanding about networks and their components. But since I haven't had any actual contact with many configuration types out there, I would thank any actual help on creating the script (wizard). Ark, any tips on how I should make the scripts? - Or where should I find the documentation on GiT whiz scripting language?

The second version of this Wizard is available. Download it here:
http://pwp.netcabo.pt/Rx.NET/git_-_armies_of_exigo_v0.4.exe

EDIT
The first version of this wizard is created, you can download'it here:
http://pwp.netcabo.pt/Rx.NET/git_-_armies_of_exigo_v0.1.exe

EDIT
Fixed file download links to new address.

PS: I surelly would like to start seeing GiT attract more Wizzard authors. Since it seems the only way to make GiT accessible to the general community.
Last edited by Carlos_Ed on Mon Jul 25, 2005 6:08 pm, edited 5 times in total.
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Sun Apr 03, 2005 4:21 pm

Documentation for wizards is included with the program, check in the C:\Program Files\GIT directory. Also you can just open the sample wizard files (*.git files) in notepad and see how they work. Using the generic wizards as a base is probably best.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Sun Apr 03, 2005 4:25 pm

:shock:

Well THIS is what I call a quick answer. Thnkx for the tip. Another thing. What do you think of having a sticky Thread with an index of Wizards for games, and their downloading links?
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Sun Apr 03, 2005 4:26 pm

I will just include wizards in future versions if people submit them here.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Sun Apr 03, 2005 4:33 pm

That's nice! I am not saying we have to have a library here.
Just to have the scripts that aren't included in the most recent GiT version/package. And as you release future versions, the wizards that are ready to be included on the releasing package can be deleted from the index. But hey, you are probably right though, we don't have all that many scripters out there... :(

EDIT: I am starting as you said, picked up the Generic UDP wizard, opened it and printed the 6 page TXT describing the scripting language. Maybe tomorrow I'll have the first ready to test version.

PS(offtopic): I see you have included zLib compression as I strongly sugested. Thanks!! It really makes a diference on people with low upload rates. SPECIALY ON RTS GAMES! :D
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Sun Apr 03, 2005 4:48 pm

Somewhere I have a post about my test with AoM and ZLib and AoM already compressed its packets so that ZLib was making them slightly bigger. GIT does detect this now and just discards the compressed packet if it became larger and sends the noncompressed data anyways, but you may end up wasting CPU cycles compressing and throwing away data if the game already uses compression like AoM.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Sun Apr 03, 2005 4:54 pm

Well... good news, I have finished the wizard. It's ready for it's first testing. It was... well... "very easy" doesn't quite say it... :shock:

ROTFLMAO!

Anyway, how do I post it here?
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Carlos_Ed » Sun Apr 03, 2005 5:06 pm

Nevermind, I think I have figured it out.. let's see if this works. I will put it in the first post on this thread.
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Carlos_Ed » Mon Apr 04, 2005 11:11 am

Today I had the oportunity to test the wizard script with more that 2 players, actually 3.
The script posted here, was way too easy to make, of course it had to be incorrect in some way :lol: . We started it up to test a 3 player "Armies of Exigo" game. It didn't work at first. Because somehow the part where the UDP connections between everyone are calculated, screwed up. this screws up on the "Generic TCP or UDP" wizard included in the latest GiT package (v0.99beta4) that my script is based upon. And in the end we got connections between two players on diferent ports. Ark can confirm here, that this won't create a connection between those two players. Why? Maybe because of the way GiT works in this mode, maybe because of certain game behaviours, I honestly don't know. So we manullay configured the connections, so that everyone connected to everyone as supposed to be (all connections are UDP Fastest mode, on the indicated ports.):

PC1 -----213----> PC2
PC1 -----214----> PC3

PC2 -----213----> PC1
PC2 -----215----> PC3

PC3 -----215----> PC2
PC3 -----214----> PC1

Everyone saw the game session created, everyone was able to join. No apparent lag. When we started the game, after the loading screen, it stopped in "Wating for Players". We then tried the TCP listen/connect method. This one didn't work either. We were just about to give up when I had the idea of trying to use the UDP method without the connections between the game clients themselves, like this:

PC1 -----213----> PC2
PC1 -----214----> PC3

PC2 -----213----> PC1

PC3 -----214----> PC1

How fortunate! It worked! Like a charm! Much better than I ever expected to. Now this wil require a some more wizard scripting to implement but I am sure I can implement this connection method in the Wizard. More testing soon to see if this applyes to 4 player games. Any feedback on this is greatly aprecciated as to improve the Wizard I am scripting.

I am thinking of spliting the wizard in two ways, wether the case of hosting or joining a game session. In the case of hosting a session, the script will return the info of the ports to give to the other players, so that they will specify it correctly when runnig the script as if joining a session. For the clients, is way simpler: request the host internet address, request the port and set the UDP connection accordingly.
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Mon Apr 04, 2005 12:27 pm

Thats strange, since the only difference then is that the clients can't see traffic from eachother, but the server can still see all traffic either way.
Generally, all games should work with the first setup where each GIT has two connections, and some games where clients must connect to clients will ONLY work with that setup, but if the clients don't need to connect to other clients, the 2nd setup there with less connections will work.

I don't see why it doesn't work with all of the connections in place though. Was GIT somehow creating a packet storm of infinite packets? GIT checks the source MAC address and, for example, if a packet came from PC2 tunneled to PC1, PC1 would mark the packet's source MAC as non-local and never re-forward packets from that MAC, so PC3 would never get the packet, unless PC2 sent them directly to PC3.

Just to verify, each PC is on its own LAN right? If you have two PCs on one LAN, you only need one instance of GIT.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Mon Apr 04, 2005 4:33 pm

I don't think GiT was flooding the communications, because the data throughput was well within limits. The thing is as I have said it. It only worked by removing the connections between clients.
If GiT forwards the same packet to all the connections, wouldn't it make sense that the clients recieved some sort of sync packets out of place, or something? ... I don't know, it really is wierd. And even wierder, is the fact that as I keep thinking about it, I even find it wierder how it didn't even work with the "correct" connections. :?
Better get a priest or something to exorcise my machine... LOL

Note: EACH PC is on it's OWN LAN. Ok, really I am the only one that has a LAN at home (PC1 is the gateway). The others are set up using MS Loopback devices. Hey! Could the Loopbacks have been assigned the same MAC addresses? That could create problems... then again, it would also create problems in the config. that worked... really, better get that priest over here! :lol:
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Carlos_Ed » Tue Apr 05, 2005 12:01 pm

Ark, which exactly are the criteria used by "sortlines <var>" to sort the lines on variable? Does it affect the actual variable value?
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Tue Apr 05, 2005 12:14 pm

The variable's lines are sorted alphanumericaly (according to ascii character values probably)
Internally, GIT splits the variable up into 1 string per line, sorts all of those strings, then puts them backtogether as a multiline string.
GIT's wizard doesn't really work with arrays, but multiline strings give you some array-like functionality.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Postby Carlos_Ed » Tue Apr 05, 2005 1:46 pm

ok, I just bumped into somthing...

Code: Select all
#The joining session page
   loadvar hostaddr
   loadvar hostport
   loadvar fwdconn
   setvar heading "Joining a Session"
   setvar subheading "Enter the correct info bellow."
   addline control "label||Enter the Session's Host Adress:"
   addline control "text1|hostaddr||4"
   addline control "label||Enter the port assigned to you by the host:"
   addline control "text1|hostport||6"
   addline control "label||(Ask the host for this info.)"
   setvar fwdconn hostaddr
   appendstring fwdconn ":"
   appendstring fwdconn hostport
   appendstring fwdconn METH_UDP
   savevar   hostaddr
   savevar hostport
   savevar fwdconn
   showpage
   
   setvar hosts fwdconn


Am I doing something worng here? Because it seems the "hosts" variable keeps getting assigned this value: ":0 (UDP - Fastest)", with THAT code up there. I know that this can be done in a bit better way, but this piece of code should work, right? If not, why then?

NOTE: "hostaddr" and "hostport" are assigned correct values at their respective text boxes.
Carlos_Ed
 
Posts: 37
Joined: Tue May 18, 2004 6:38 am

Postby Ark » Tue Apr 05, 2005 1:55 pm

You probably want the "showpage" line to be up above more... The script executes line by line and the way you have it, hostaddr and hostport are loaded from the registry, fwdconn is set to them, the values are saved to the registry, then the user gets to modify hostaddr and hostport via the wizard page you setup.
Also, you probably don't need to save/load fwdconn to the registry since you just generate it from hostaddr/hostport each time.
Ark
Site Admin
 
Posts: 2108
Joined: Sat Sep 13, 2003 4:21 pm

Next

Return to GIT

Who is online

Users browsing this forum: No registered users and 27 guests

cron