|
0 registered members (),
5,207
guests, and 4
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
session connect multiplayer
#13042
07/07/03 10:26
07/07/03 10:26
|
Anonymous
OP
Unregistered
|
Anonymous
OP
Unregistered
|
Hello,
I'm trying to modify the multiplayer demo office to use session_connect to allow the client to change servers. Could someone please give me info or example code that would allow me to do this.
Thanks, Mark
|
|
|
Re: session connect multiplayer
#13043
07/08/03 08:34
07/08/03 08:34
|
Joined: Mar 2003
Posts: 5,377 USofA
fastlane69
Senior Expert
|
Senior Expert
Joined: Mar 2003
Posts: 5,377
USofA
|
Good Luck midget.... I've been working with switching servers via session_connect for the last 3 weeks. Considering that every other 3DGS problem I've ever had was resolved within a week, this is pretty annoying. I've followed the script in the manual (make sure to download the latest manual version) and I can't get my client to jump servers while all three are running on the same machine and in other combos (such as servers on same machine/ c lient on separate machine, etc). I'm currently finilizing my tests, but near as I can tell 1) NO ONE IN THE 3DGS COMMUNITY HAS OR IS USING MULTI SERVER ZONES. 2) THE EFFECTIVENESS OF SESSION CONNECT AS GIVEN BY THE MANUEL IS SUSPECT. 3) NO ONE WILL REPLY TO YOUR POST ON THE SUBJECT. Swampy, trust me I feel you pain. Multi zone servers is one of the strong selling points of 3dgs yet I have YET to see ANY evidence that it actually works. No demos nor projects that I have seen use it. We'll keep in touch bro. I'm finilizing my last rounds of test on the system and if I find whats going on, you better believe I'm going to shout it on the forums. On the other hand, if I keep meeting resistance, I will email conitec derictly and have them sort it out. I suggest a similar strategy. Keep in touch and if you get it to work, don't be stingy and let us know!!!!!! GL!!!
|
|
|
Re: session connect multiplayer
#13044
07/08/03 10:03
07/08/03 10:03
|
Anonymous
OP
Unregistered
|
Anonymous
OP
Unregistered
|
Hiya fastlane,
Thanks for the reply. I got it working w/ office. Here's the info if you are interested:
function change_mode { session_connect("zone2","[your server ip] level_load(office_wmb); waitt(3); randomize(); temp.X = 300 + random(100); temp.Y = -400+ random(100); temp.Z = 50; player = ent_create arlock_mdl,temp,player_client);
}
add to bottom of script on_2 = change_mode;
obviously you'll need have another server running w/ -sn zone2 option. Let me know if that helps. Good luck 2 ya
|
|
|
Re: session connect multiplayer
#13045
07/08/03 10:04
07/08/03 10:04
|
Joined: Feb 2003
Posts: 2,826 Margaritaville (Redneck Rivier...
myrlyn68
Senior Expert
|
Senior Expert
Joined: Feb 2003
Posts: 2,826
Margaritaville (Redneck Rivier...
|
Although I have no idea how to handle this (and I have not really bothered to try since it is a Pro feature), I do have a couple comments. 1) There is atleast one group which are using multiserver zones in their project. (Ross System's Unknown) http://www.krythoth.com/The reason why very few people are willing to help on this topic, is most likely because almost no one has bothered to pursue it. The truth is pretty simple on this, if you want to run a server farm tohandle a seriously laid out zoned world, it requires a lot of high dollar hardware. Most people who are using 3DGS (even commercially) are not making games which would require the software to run that, since the cost/returns margin is greatly against them. If you were to try to market your game as a "Be your own Boss" MMOG, very few people would be interested...again due to the high dollar hardware needed to run the system on. In regards to getting a good answer, contact Conitec - thats one of the bonuses for Pro...one year of Tech support. Also contact Ross Systems. I doubt they will give you the exact answer to your problem, but they are a serious business, so I am sure that some kind of an arrangement could be reached.
Virtual Worlds - Rebuilding the Universe one Pixel at a Time.
Take a look - daily news and weekly content updates.
|
|
|
Re: session connect multiplayer
#13046
07/09/03 04:55
07/09/03 04:55
|
Joined: Mar 2003
Posts: 5,377 USofA
fastlane69
Senior Expert
|
Senior Expert
Joined: Mar 2003
Posts: 5,377
USofA
|
Good Job Midget!!! In my program, the level name and the session name are the same. And the player create routine is elsewhere in the code. Both of these may be issues. It is SOOOOO refreshing to know that someone got it working. Knowing that it works gives me such confidence. I will use your code as a templete. NOw that I know that someone else has got it to work, I just KNOW I can do it too!!!! BTW, I think I read somewhere that the Unknown project was using their on network API and not A5 network engine. Given that the Unknown project has been around for a few years and the new network engine is only like 6 months old. And you are right about the reason why no one answers these questions. Though I would disagree that you need uber high end servers to make it happen. My Multiplayer games is only for 20 to 30 people per zone, more than enough for off the shelf hardware. Midget, can't tell you how much you post means to me. YOu are the first and only person that I know of that has gotten session connect to work and put it on the boards!!!! To the Script Editor!!!!!!!! Thanks!
|
|
|
Re: session connect multiplayer
#13048
12/06/03 21:32
12/06/03 21:32
|
Anonymous
OP
Unregistered
|
Anonymous
OP
Unregistered
|
Hi, I am trying to learn game development with game studio A6. I recently downloaded the gamestudio trial version 6.11 I am trying to make a multiplayer game. I tried this with the following code.
== ifdef CLIENT; ifdef SERVER; client_move(); // sends keyboard/mouse move to server //while( connection == 0 ) //{ // wait(1); //} // //temp.x = 0; //temp.y = 0; //temp.z = 0;
// create(<cbabe.mdl>, temp, my_player); ifelse; client_move(); // sends keyboard/mouse move to server while( connection == 0 ) { wait(1); }
temp.x = 10; temp.y = 10; temp.z = 10;
create(<fisch1.mdl>, temp, my_player2); endif; endif;
==
I ran the program as 1. Server/client by running it with -sv -cl arguments 2. client by running it with -cl argument
Both these two are running on the same machine.
The server/client runs fine. When the client is run, as soon as it connects to the server it crashes. The error says it tried to reference 0x000000 memory location or something like that. The server also freezes.
Can someone tell me if this happens to your programs too.
If you got the game running in multiplayer mode in A6 how did u get that done?
If this is a bug whom do we contact to report this bug.
I would greatly appreciate if someone could give me a simple code part that is working in multiplayer mode so that i can reference to it in my development.
thanking you, adi
|
|
|
Re: session connect multiplayer
[Re: fastlane69]
#13050
12/09/03 03:59
12/09/03 03:59
|
Anonymous
OP
Unregistered
|
Anonymous
OP
Unregistered
|
Hi there, Firstly I want to thank you for your kind help. I tried the following code in accordance to your suggestions.
ifdef SERVER; client_move(); while (connection == 0) { wait(2); } player = ent_create(player_mdl,nullvector,player_client);
endif;
ifdef CLIENT; client_move(); while (connection == 0) { wait(2); } player = ent_create(player_mdl,nullvector,player_client);
endif;
the player_client function is as follows, function player_client() { my.skin = num_client; // if (my.skin==1){my.X = 1000;my.Y = -1000;my.z = 20;} // if (my.skin==2){my.X = -1000;my.Y = 1000;my.z = 20;} // if (my.skin==3){my.X = 1000;my.Y = 1000;my.z = 20;} // if (my.skin==4){my.X = -1000;my.Y = -1000;my.z = 20;}
if (my.skin ==1){player_connected |= 1;player1 = my;while (player1 == null){wait(1);}} if (my.skin ==2){ player_connected |= 2;player2 = my;while (player2 == null){wait(1);}} if (my.skin ==3){player_connected |= 4;player3 = my;while (player3 == null){wait(1);}} if (my.skin ==4){player_connected |= 8;player4 = my;while (player4 == null){wait(1);}} num_client += 1; if (num_client > 5){wait(1);remove (me);return;} MY.ENABLE_DISCONNECT = Off; MY.EVENT = _actor_connect; send_var (player_connected); my.fat = off; my.narrow = on; my.trigger_range = 24; my._movemode = _mode_walking; my._force = 0.75; my._banking = -0.1; my.__strafe = on; my.__bob = on; my.__trigger = on; my.__fall = on; my._health = 100;
ifdef std; my.shadow = off; drop_shadow(); ifelse; // not std ifdef extra; my.shadow = off; drop_shadow(); ifelse; // not std, not extra my.shadow = on; // shadow on comm or above endif; endif;
my.scale_x = 1.2; my.scale_y = 1.2; my.scale_z = 1.2;
player_walk(); if (MY.shadow == OFF) { drop_shadow(); } }
=============================================== The problem remains the same. The program crashes as soon as it connects to the server. The server gives the display saying a client joined, then the client crashes.
Am I doing something wrong at the server end? How does the client send to the server the info that the person is moving? How does the server broadcast it to the rest of the clients? Does the server and the client have to do something explicitly to send this information?
I was just wondering, if you had some multiplayer game working in A6? If you could share it here so that I can learn from that and see what is wrong I will be greatly obliged.
Thanking you, Adi.
|
|
|
|