Online Shooter tutorial

Posted By: JohnnyIsDutch

Online Shooter tutorial - 07/28/10 12:57

Hello all,

Is there a tutorial on this forum for an online shooter? not workshop25 of Litec, can someone here post the link to the
tutorial or can someone make one, because on google I can not
find one. I need him not only for myself but I think there are more interest.

about how to connect and
how to send data and receives data with a source please, Thanks
Posted By: Rei_Ayanami

Re: Online Shooter tutorial - 07/28/10 13:07

there is an aum series about online games (and a shooter i think)
Posted By: JohnnyIsDutch

Re: Online Shooter tutorial - 07/28/10 13:11

aum75 but i cannot work with it, it is to advanced
Posted By: Quad

Re: Online Shooter tutorial - 07/28/10 13:51

then you probably should not make and online shooter
Posted By: Blink

Re: Online Shooter tutorial - 07/28/10 14:35

That's not helpful, Quadraxas. Johnny, you use the AUM's to learn how to make such games by trying the tutorials and workshops. search the AUM's and read all of the documentaion, plus study the workshops, that will help you.
Posted By: JohnnyIsDutch

Re: Online Shooter tutorial - 07/28/10 16:10

oke, i go to do it, but i think that i know how it works but i have a problem with my code:
Code:
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////// O.w.n..c //////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////


function main()
{
  if (!connection) 
    error("The Server is offlinea");
  else 
    while (dplay_status < 2) wait(1); // wait until the session is opened or joined

  dplay_localfunction = 2; // run actions both on server and client
  level_load ("O.w.n..wmb");
  vec_set(camera.x, vector (-600, 0, 100)); // set a proper camera position

  if (connection & CONNECT_SERVER)  // this instance of the game runs on the server
    ent_create ("cbabe.mdl", vector (100, 50, 40), Player); // then create the red guard!
  else // otherwise, it runs on a connected client
    ent_create ("cbabe.mdl", vector (-100,-50, 40),Player); // create the blue guard	
}


function camera_follow(ENTITY* ent) 
{ 
   while(1) 
   { 
   vec_set(camera.x,vector(-128,0,45)); 
   vec_rotate(camera.x,ent.pan);
   vec_add(camera.x,ent.x);
   vec_set(camera.pan,vector(ent.pan,-10,0)); 
   wait(1); 
   } 
}

action Player()
{ 
	{    
   var walk_percentage = 0;
   while (1) 
   {
   if (my.client_id == dplay_id) { // the following code runs on the player's client only
   my.skill1 = key_w - key_s; // forward/backward
   send_skill(my.skill1,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server
   my.skill2 = key_a - key_d; // left/right rotation
   send_skill(my.skill2,SEND_UNRELIABLE|SEND_RATE); // send rotation request to the server
   }  
  
   if (connection & CONNECT_SERVER) 
   {
   my.pan += my.skill2*5*time_step;   // rotate the entity using its skill2
   var distance = my.skill1*5*time_step;
   c_move(me, vector(distance,0,0), NULL, GLIDE); // move it using its skill1
   walk_percentage += distance;
   ent_animate(me,"walk",walk_percentage,ANM_CYCLE); // animate the entity	
	wait(1);
	}
	wait (1);
	}
}

here my acklog with the error
Quote:
Log of A8 Engine 8.02.0 run at Wed Jul 28 18:08:23 2010
Johnny Reinders on Windows NT/2000/XP version 6.1 Build 7600
Options O.w.n..c -cl -sv -diag -t.
App: E:\Program Files\GStudio8\acknex.exe in E:\Program Files\GStudio7\work\O.w.n\

MM mixer opened
DSOUND device opened
DI interface opened
Start Window opened(c) Conitec - www.3dgamestudio.com
A8 Engine - Trial Edition V8.02.0 - Jul 27 2010
Development version
30 days left

Mouse found
Speakers (2- BCD3000) opened
ATI Mobility Radeon X1400 pure T&L device 1ff9 detected
D3D device ATI Mobility Radeon X1400 1ff9 selected.
ackphysx.dll opened
ackwii.dll opened
Compiling O.W.N..C - [Esc] to abort....
Error in line 19:
'Player' undeclared identifier
< ent_create ("cbabe.mdl", vector (100, 50, 40), Player); // then create the red guard!
>
.. 0.102 sec
Error compiling O.W.N..C
Error E355: Startup failure - any key to abort
Program aborted

Close level,DLL,objects
Free input,funcs,panels,defs,syns,views,strings,vars..ok
Free sounds,bmaps,fonts,hash,defs1,script..ok
Close dx,multimedia,D3D
Disconnect,connection,engine,nexus..ok
A8 Engine - Trial Edition V8.02.0 - Jul 27 2010
(c) Conitec - www.3dgamestudio.com
30 days left
Unfreed: 939, INC, 2136 bytes
Close window at 4.192

Posted By: Rei_Ayanami

Re: Online Shooter tutorial - 07/28/10 16:12

your script name and wmb aren't very good choosen wink

and the main, should be at the botton of the code wink

and Player is also no good name (player_act or something)
Posted By: JohnnyIsDutch

Re: Online Shooter tutorial - 07/28/10 17:45

but if i replace Player to player walk then is it also that problem
Posted By: fangedscorpion

Re: Online Shooter tutorial - 07/28/10 18:03

Did you make sure that the player_walk has a _ between the player and the walk?

try this updated code:
Code:
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////// O.w.n..c //////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////





function camera_follow(ENTITY* ent) 
{ 
   while(1) 
   { 
   vec_set(camera.x,vector(-128,0,45)); 
   vec_rotate(camera.x,ent.pan);
   vec_add(camera.x,ent.x);
   vec_set(camera.pan,vector(ent.pan,-10,0)); 
   wait(1); 
   } 
}

action player_walk()
{ 
while(my!=NULL)
	{    
   var walk_percentage = 0;
   while (1) 
   {
   if (my.client_id == dplay_id) { // the following code runs on the player's client only
   my.skill1 = key_w - key_s; // forward/backward
   send_skill(my.skill1,SEND_UNRELIABLE|SEND_RATE); // send movement request to the server
   my.skill2 = key_a - key_d; // left/right rotation
   send_skill(my.skill2,SEND_UNRELIABLE|SEND_RATE); // send rotation request to the server
   }  
  
   if (connection & CONNECT_SERVER) 
   {
   my.pan += my.skill2*5*time_step;   // rotate the entity using its skill2
   var distance = my.skill1*5*time_step;
   c_move(me, vector(distance,0,0), NULL, GLIDE); // move it using its skill1
   walk_percentage += distance;
   ent_animate(me,"walk",walk_percentage,ANM_CYCLE); // animate the entity	
	wait(1);
	}
	wait (1);
	}
}
}


function main()
{
  if (!connection) 
    error("The Server is offline");
  else 
    while (dplay_status < 2) wait(1); // wait until the session is opened or joined
	
  dplay_localfunction = 2; // run actions both on server and client
  level_load ("O.w.n..wmb");
  vec_set(camera.x, vector (-600, 0, 100)); // set a proper camera position

  if (connection & CONNECT_SERVER)  // this instance of the game runs on the server
    ent_create ("cbabe.mdl", vector (100, 50, 40), player_walk); // then create the red guard!
  else // otherwise, it runs on a connected client
    ent_create ("cbabe.mdl", vector (-100,-50, 40),player_walk); // create the blue guard	
    wait(1);
    
}



The problem was that you had multiple brackets in your player action without having a while loop or anything and that was cutting off half of the action.
Posted By: carlpa

Re: Online Shooter tutorial - 07/29/10 14:27

Perhaps a bit peripheral but:

Is there a reference to a basic discussion of how multi-user on-line programs work in GS and what are the limitations in timing, hardware, etc. This would be a summary or review. I know the information is scattered in the manual, wilki and this forum. A review article would be nice. Thank you, Danke, xie xie.
Posted By: raidthewood

Re: Online Shooter tutorial - 08/21/10 16:40

Im new, but my programming background tells me...if you are just starting out with a new language, and program, like me... you should start simple, why not first make other games, more simple games instead? Its one thing to make a game, its another to make it multilayer. Start small, then, only then should you go big....starting big is what scares people away from actually learning!

best of luck =)
© 2023 lite-C Forums