XNET Multiplayer Network Engine

Blitz3D Forums/Blitz3D Userlibs/XNET Multiplayer Network Engine

C64(Posted 2009) [#1]
Hi Blitzers,

XNET for BlitzBasic3D and Blitz+ you can download Now !

If you Interrest on it please feel free to try it or use it for noncommercial stuff for free.

More infos and a Playe for Questions about XNET you can find at www.c64.feuerware.com



DOWNLOAD XNET

Sincere regards C64


CodeGit(Posted 2009) [#2]
The link supplied to your web site does not work. Also, with the amount of hacking that has taken place on the blitzbasic site recently, I am very weary of running anything without being totally sure it is authentic. Unfortunately most users are going to feel the same way.


C64(Posted 2009) [#3]
Hi CodeGit,

The link to my website is working !

Or did you mean there are some Security fails ?!.

(sry my english isn't the best ! )

regars C64


RifRaf(Posted 2009) [#4]
Downloaded the rar file from C64 site and unpacked it.. No virus detected in the contents.

C64. If you add more B3D sample code , ill buy the commercial version. I would like to see sample client and host. Currently the package contains just client example for local host.


C64(Posted 2009) [#5]
Hehe :) Thx RifRaf,

No problem i write more Samples but this one you can use as Host and Client i write my NetStuff codes allways in this way that you can use one programm as host or as client, try it. Start it 1 times it will be a Host and all other next opened Instances from you APP would be connect as Client.

But the next days i think i can put some more Examples on my Website.

Sincere regards C64.


ZJP(Posted 2009) [#6]
Hi,

Downloded.
Very simple to use and fast.Good job. ;-)

JP


CodeGit(Posted 2009) [#7]
Hi C64

The link is working now. I will take a look as I am interested in a solid fast network package.


C64(Posted 2009) [#8]
@ZJP and CodeGit sounds good Thx !


ZJP(Posted 2009) [#9]
;-)

Looking for Blitz3d examples of these commands:

XNETCreateMessage%(object%)
XNETSendMessage%(messageobject%)
XNETSendSecureMessage%(messageobject%)
XNETMessageObject%(messageobject%)

JP


C64(Posted 2009) [#10]
Hi ZJP,

I try it to put a Message example today on my Forum, but it looks that something don't work atm. Sry ! I will Fix this !!

regards C64


lo-tekk(Posted 2009) [#11]
I think i've found a mistake in your .decls:
XNETSendSeureMessage%(messageobject%):"XNETSendSecureMessage"

Might be
XNETSendSecureMessage%(messageobject%):"XNETSendSecureMessage"



C64(Posted 2009) [#12]
Hi ZJP,

its done :)

Oh oh hard work, i think in the next time it is better when i don't release anythig if i feel me tired. I hope all bugs are kill'd now ! The Samples run without any error.

@LO-TEKK :) thx

please download the V1.023r !!

Some lines code ....
(change nick with "/nick NICKNAME")
Graphics 500,600,32,2

SetBuffer (BackBuffer())

XNETConfigServerDialog ("www.c64.feuerware.com","xnet/scripts/hostmanager") 

Global  Session
Global  Timer		= CreateTimer (30)
Global  Name$		="No Named"+MilliSecs()								
Global  InputLine$	
Global  LocalObject 
Global  rY =0
Global  NetSession = False ; TRUE FOR REGISTER HOST OR JOIN AVAIBLE XNET-CHATS
				

Port=52001
IP$ ="127.0.0.1"

If NETSESSION=True 

			  XNETGetHostList ()

		While XNETHostFromList () And Session=0

		IP$		=XNETHostIP	 	()
		Port	=XNETHostPort	()
		Info	=XNETHostInfo   ()
	
						
		Wend
		
EndIf 

	   Session=XNETJoinSession (IP,Port)	
		
		AppTitle ("CLIENT")

If Not Session 
		AppTitle ("HOST")
	   Session=XNETHostSession  (Port)
	
If NETSESSION=True XNETRegisterHost (Session,"XNET-TEST-CHAT")

EndIf 				
	
Const name_slot=1
Const chat_slot=2
			
	
If Not Session RuntimeError    ("ANYTHING WAS WRONG !!!")		

LocalObject = XNETCreateObject (Session)
	  		  XNETSetString    (LocalObject,name_slot,Name)

							
;__________________________________________________________________________________

While Not KeyHit (1)
		
		Cls
		

XNETUpdateSession  (Session)
		
		ControlChat()
		ControlXNET()

		
		
		Flip 0


WaitTimer (timer)

Wend 

;__________________________________________________________________________________


Function ControlChat ()


	Local char=GetKey()



		If char

		Select char

			Case 13
			
			
			If Not Instr (Mid(Lower(inputline),1,5),"/nick")
						 
				If Trim (inputline)>"" addline Name+"> "+inputline
			
				MSG=XNETCreateMessage 		(LocalObject		  		  )
					XNETSetString 	  		(MSG,chat_slot,inputline	  )
					XNETSendSecureMessage   (MSG,0  			  		  )

				Else

			
				   NEWNAME$ =Trim(Mid (inputline,7))
				If NEWNAME>""
				  
				   inputline= "CHANGED NICK TO >"+NEWNAME 
				   ADDLINE NAME+" >"+inputline				    
				   Name=NewName
				
				EndIf
				
				MSG=XNETCreateMessage 		(LocalObject		  		  )
					XNETSetString 	  		(MSG,chat_slot,inputline	  )
					XNETSendSecureMessage   (MSG,0  			  		  )
			
			
					XNETSetString 	  		(LocalObject,name_slot,name	  )
				
				EndIf 
			
			
				inputline=""
	
	
	
	
			Case 32
			inputline=inputline+" "
			
	
	
	
			Case 8

			inputline=Mid(inputline,1,Len(inputline)-1)
			
	
	
	
			Default 
	
			inputline=inputline+Trim (Chr(char))
	
			End Select 

		EndIf
		

	        inputline_$=Inputline


  If MilliSecs() Mod 500 < 300 inputline_=inputline+"_"

  Color 200,200,200

  Rect 2,GraphicsHeight ()-22,GraphicsWidth ()-4,1

  Color 250,250,250

  Text 2,GraphicsHeight ()-20,inputline_	




If ry =>  600 chat.row = First row : Delete chat.row 
ry = 2

For chat.row = Each row
If ry<580 Text 2,ry,chat\txt
ry=ry+20

Next



End Function 


Function addLine (txt$)

	If Trim (txt) >""
	Chat.row=New row
	chat\txt=txt
	EndIf 

End Function 

Global Chat.row
		
Type row
Field txt$
End Type 

;__________________________________________________________________________________

Function ControlXnet()


			 XNETGetObjects  (Session)
  				
   			 While XNETCountList    () 

					OBJ=XNETObjectFromList ()
	
				If XNETObjectRemote   (OBJ)
				
					If XNETGetObjectState (Obj) = 1
				
					ADDLINE XNETGetString (obj,name_slot)+" has joined"
				
				EndIf 
	
				EndIf 
					
					 

			 Wend
					
					
						
			 XNETGetMessages (Session)
   				
   			 While XNETCountList    () 

					 Msg	=XNETObjectFromList  (	 )			 
				   Sender	=XNETMessageObject	 (MSG)
					
			 MSGString$		=XNETGetString 		 (Sender,name_slot)+">"
								
			 MSGString =MsgString+ XNETGetString (MSG,chat_slot	   )
			 		 
			 ADDLINE MSGSTRING
	
		     Wend
		


End Function




Sincere Regards


Santiworld(Posted 2009) [#13]
hi C64, i searching for something for use multiplayer mode in my racecar game....

i want to have multiplayer LAN, IP, and online server...

the game use ode physics.. and i have like 12 cars for race.

can works your xnet for my game?, i download the demo, but, you don't have a demo using something like cars to see how works?

regards..
santiago

blitz forum for the car game :
http://blitzbasic.com/Community/posts.php?topic=83490


C64(Posted 2009) [#14]
Hi Latatoy,

I think it's possible, i have test this with 40 Objects (20 for each session 2 Sessions = 40 Objects ) in 3D where each Object sends PosX,PosY,PosZ,Pitch,Yaw,Roll without any timingstuff i think this is a very imortent part for NetGames but this is only a Example how XNET can works for you. So i think i don't need this part in a Example ;) .

Look at my website, i hope you can and you want use XNET !!!

3D - Sample

http://www.c64.feuerware.com/page/?q=node/98

Holocube nE. this use XNET.

http://www.c64.feuerware.com/page/?q=node/76



Sincere regards C64

(Sry for my Bad English, i hope you understand all)


RifRaf(Posted 2009) [#15]
C4 , ill be using this lib soon. I was curious if you had any free php script samples we could have access to, I personally do not have any php knowledge and would benefit from any resources you have. A simple game lobby list type of thing would be great if you have one laying around.


stayne(Posted 2009) [#16]
There's some php stuff in the hostmanager.rar archive (included in the download).


Guy Fawkes(Posted 2009) [#17]
Also, is there a good blitz3d example which shows u how to use mysql with blitz3d & the php site? :)


C64(Posted 2009) [#18]
Hi, DarkShadowWing

Install the SQLimport.imp to your Database then Upload the Hostamanger script to your Webspace and all should be run if you have make a correct

XNETConfigServerDialog (YOUR_URL$,SCRIPT_PATH$) 


You can use the XNET Hostmanager too, if you try or if you have'nt any Webspace.

XNETConfigServerDialog ("www.c64.feuerware.com","xnet/scripts/hostmanager") 


Here some more Examples, http://www.c64.feuerware.com/page/?q=forum/24 .

Any suggestion for XNET or the XNET hostmanager are welcome,post in my Forum !!


Sincere regards C64.


RifRaf(Posted 2009) [#19]
With Blitz3D All the samples give me a mav on

XNETSetString

In Blitzplus the program simply crashes at XNETSetString with no mav.. windows dialog of program crash comes up.

Any idea whats going on with that?


C64(Posted 2009) [#20]
Hi RifRaf,

I don't know what's can be wrong, all samples works fine in Debug and in Relasemode!

Do you have a piece of code ?! Do you have try the Chatexample from my website ?!

You have Version 1.023 ??

Regards C64


Guy Fawkes(Posted 2009) [#21]
C6, I would give him a link to the 1.023.

If u want, I can get it :)


C64(Posted 2009) [#22]
why to hell some people thief my numbers tztztz :)

http://www.c64.feuerware.com/xnet/downloads/xnet.rar

just a simple link no problem ;) Thx DarkShadowWing.

regards C6644 (save is save ;) )


RifRaf(Posted 2009) [#23]
that zip just had help files, linux debug files and blitzmax examples.. no B3D/B+ examples no DECL and no DLL .. ?


C64(Posted 2009) [#24]
Of corse it has the DECL and the DLL inside. All DLL relevant stuff are in the DLL_STUFF Folder, and there are too Examples.

You make me unsure :) i extra test the rar File again and there is all inside.

regards C64.


RifRaf(Posted 2009) [#25]
Sorry you are right, the Rar in rar w/seperate folder extractions was messing with me. Found them all now.

However this did not fix the problem. Im runnig vista.. Not sure what the problem is. BlitzPlay can start up a net game on the same port so I dont think its my firewall. Perhaps Vista has issues with DLLs calling out to the net or even local ports.

Dont worry about it, if its working for everone else its probably some weird security setup my machine has or somthing.


Santiworld(Posted 2009) [#26]
hi c64, maybe i'm asking to much

is there anyway to see some car demo with xnet?

i very interest to buy if i see how work the xnet in high speed entitys

regars!
santiago


C64(Posted 2009) [#27]
Hi,

I have modify the 3D Sample so now it works in the same way i use it for Holocube, means high speed Entitys :). I hope this can help you.

http://www.c64.feuerware.com/page/?q=node/107

Sincere regards C64


C64(Posted 2009) [#28]
Hi Latatoy & all !

Iv'e modify the XFighter Sample so you can now Fly together :),you can find it at the XNET Forum on my Website. If ii get some Feedback i will put some additionell Features to the Code like, Display playernames over the Planes, and a simple Chat.

I test it local and it runs very fine.


Regards C64.


Santiworld(Posted 2009) [#29]
excelent!! c64, i go to check now... :)


Santiworld(Posted 2009) [#30]
i post some msg in your forum...


C64(Posted 2009) [#31]
Hi, Latatoy sry but i can't find a new Post.


Santiworld(Posted 2009) [#32]
i try to post in your forum, but, some text are in german :p

i download the holocube, i can't find the way to conect one pc with other.

bots works fine.
host netgame works.

but the other 2 options, don't.
maybe i doing something wrong...

regards


C64(Posted 2009) [#33]
Hi Latatoy,

The Host must have open the Port for the Game.

You can find the Port in the Setingt.set down under the IP.

Hope this help's.

And Please Show to my Website the XFIGHTER sample should be work now.

regards C64.


Santiworld(Posted 2009) [#34]
:(

i can't find the way to make it work...

i trying to use the xfighter sample.

i copy the code, and paste in a new blitz file.
i save it in the same folder of the xfighter.
and i copy the image too, but nothing..

error msg : (Function xnetcreateobject not found)

in the holocube, i change the ip, but i don't know how to open the ports..
i try with many ports, and nothing..

sorry, i very noob and novice with the IP , and ports stuff..

what i am doing wrong? (sorry my english)


C64(Posted 2009) [#35]
Hi,

Why the Code can't find XNETCreateObject ?! It's all in the DLL and in the Decl's :( , you have install the 1.023 decls and DLL ??

What's your OS, you have ICQ or you are sometimes an a BlitzChat tell me i think we can solve Problems faster with "direkt" Communication.

On my Side the Code runs very fine, but at the first time i have build a bug where the Hostlist was read, but now it Works this fine too, and i have add the additions where i talk some posts bevore.

Your English is Ok for me, if i don't understand anything i would ask you
again so this isn't a problem, if you understand me :) .



regards C64.


C64(Posted 2009) [#36]
Hi,

Sry it give some trouble with Vista and the DLL stuff ! I will try to fix this or write a new LowLevel Network Modul like Bnet (only for XNET).

I have no Idea what's wrong, the Modul runs very fine on all supported OS but the DLL have some problems on Vista but run on XP without any troubles.

Hope for solutions :) cu soOn...

regards C64


Chroma(Posted 2009) [#37]
Now that's funny! I coded a udp multiplayer module in 2002 called XNet!! You been rifling through my worklogs?!!? Haha...but sorry I snagged the name first so I'm still gonna use it. :p