Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Discussion / Networking problem

Author
Message
Eelko Gielis
21
Years of Service
User Offline
Joined: 30th Oct 2002
Location: Netherlands
Posted: 30th Oct 2002 14:13
Version DB 1.13
platforms WinMe and Win98

I've got a problem sending and receiving data inbetween 2 computer via either IPX or TCP LAN network.
The program I wrote is sending information to the network, and if I send just one piece of data it's working just fine.
If I'm sending more than one type of data in a datablock the extraction of them on the other machine goes wrong.

Can somebody help me with this, thanks.

Eelko Gielis, The Netherlands
TheNVS
21
Years of Service
User Offline
Joined: 25th Oct 2002
Location: United States
Posted: 31st Oct 2002 01:15
i dont know much about networks(i am working it out) but i sugest that you create a simple text program and run two programs sending information to each other on one computer. this would give you a better chance to understand mutiplayer commands.

by the way, does if get annoying going to one computer then to the other. i have done that trying to fix the network and configurerations and it was a annoying.

Eelko Gielis
21
Years of Service
User Offline
Joined: 30th Oct 2002
Location: Netherlands
Posted: 31st Oct 2002 14:53
I tried the commands seperate and that works.
But I'm combining the commands and try to send incripted data to the other PC and it gets mingled up somewhere.

Here is the code, just add some picture for the logo:

REM **************************************
REM Game : Knock Out
REM Discription : Network game for two.
REM Knock out the boxes of
REM the opponent with a Ball
REM Start date : May 9 2002
REM End date : Oct 28 2002
REM Programmer : M.E. Gielis
REM E-mail : me_gielis@hotmail.com
REM Version DB : v1.13
REM **************************************

REM Set the ambient light for creating shadows
SET AMBIENT LIGHT 5
color ambient light rgb(10,10,255)

SYNC ON
SYNC RATE 30
SET DISPLAY MODE 800,600,16
HIDE MOUSE

SYNC

DRAW TO FRONT

LOAD BITMAP "Logo.bmp"
SET CURRENT BITMAP 0

FOR T=1 TO 256
SYNC
NEXT T

CLS

FLUSH VIDEO MEMORY

REM Make a network connection
Player=0
SET CURSOR 1,10
PRINT "Knock Out v2.0"
PRINT "Date: 18-05-2002"
PERFORM CHECKLIST FOR NET CONNECTIONS
PRINT "* * * CHECKLIST FOR NETWORK CONNECTIONS * * *"
FOR T=1 TO CHECKLIST QUANTITY()
PRINT "* ";T;" ";CHECKLIST STRING$(T)
NEXT T
PRINT "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
INPUT "Choose a connection: ";Connect
PRINT " "
REM Make a connection and search for a networkstation
PRINT "Set Connection to ";CHECKLIST STRING$(Connect)
SET NET CONNECTION Connect, " "
PRINT " "
INPUT "Are you hosting(1) or joining(2) a game: ";HostJoin
IF HostJoin=2
Player=2
MAKE MEMBLOCK 2,8
PRINT "You are Player 2"
PRINT "Waiting..."
REPEAT
PERFORM CHECKLIST FOR NET SESSIONS
IF NET GAME EXISTS()<>0 THEN PRINT "Net game found..."
IF CHECKLIST QUANTITY()>0 THEN PRINT "Number of games: ";CHECKLIST QUANTITY()
UNTIL CHECKLIST QUANTITY()>0
JOIN NET GAME 1,"Player2"
PRINT "'Player2' joined session ";CHECKLIST STRING$(1);" on the network"
ENDIF
IF HostJoin=1
CREATE NET GAME "KnockOut","Player1",2,2
Player=1
MAKE MEMBLOCK 1,8
PRINT "You are Player 1"
PRINT "Wait for other player"
SYNC
REPEAT
SYNC
UNTIL NET PLAYER CREATED()>0
PRINT "Player found"
ENDIF

CLS

REM Make a light, color and direction
MAKE LIGHT 1
POSITION LIGHT 1,450,-400,450
POINT LIGHT 1,0,0,0
COLOR LIGHT 1,RGB(255,25,25)
SHOW LIGHT 1
SET LIGHT RANGE 1,700

MAKE LIGHT 2
POSITION LIGHT 2,450,-400,-450
POINT LIGHT 2,0,0,0
COLOR LIGHT 2,RGB(25,255,25)
SHOW LIGHT 2
SET LIGHT RANGE 2,700

MAKE LIGHT 3
POSITION LIGHT 3,-450,-400,450
POINT LIGHT 3,0,0,0
COLOR LIGHT 3,RGB(25,25,255)
SHOW LIGHT 3
SET LIGHT RANGE 3,700

MAKE LIGHT 4
POSITION LIGHT 4,-450,-400,-450
POINT LIGHT 4,0,0,0
COLOR LIGHT 4,RGB(255,200,200)
SHOW LIGHT 4
SET LIGHT RANGE 4,700

REM Load all the objects
REM The playfield
MAKE OBJECT CUBE 1,1000
SET OBJECT 1,1,1,0,1
POSITION OBJECT 1,0,0,0
COLOR OBJECT 1,RGB(50,50,50)

REM The ball
MAKE OBJECT SPHERE 2,50
POSITION OBJECT 2,0,-420,200
COLOR OBJECT 2,RGB(20,20,80)
YROTATE OBJECT 2,135

REM Make playfield walls
MAKE OBJECT CUBE 3,200
POSITION OBJECT 3,0,-500,500
SCALE OBJECT 3,447,150,50
COLOR OBJECT 3,RGB(100,200,200)
MAKE OBJECT CUBE 4,200
POSITION OBJECT 4,0,-500,-500
SCALE OBJECT 4,447,150,50
COLOR OBJECT 4,RGB(100,200,200)
MAKE OBJECT CUBE 5,200
POSITION OBJECT 5,500,-500,0
SCALE OBJECT 5,50,150,500
COLOR OBJECT 5,RGB(200,200,100)
MAKE OBJECT CUBE 6,200
POSITION OBJECT 6,-500,-500,0
SCALE OBJECT 6,50,150,500
COLOR OBJECT 6,RGB(200,200,100)

REM Make Player blocks
REM Player 1
Make Object Cube 10,50;Position Object 10,-400,-410,400 ;Scale Object 10,100,100,180;Color Object 10,RGB(0,200,0)
Make Object Cube 11,50;Position Object 11,-400,-410,300 ;Scale Object 11,100,100,180;Color Object 11,RGB(0,200,0)
Make Object Cube 12,50;Position Object 12,-400,-410,200 ;Scale Object 12,100,100,180;Color Object 12,RGB(0,200,0)
Make Object Cube 13,50;Position Object 13,-400,-410,100 ;Scale Object 13,100,100,180;Color Object 13,RGB(0,200,0)
Make Object Cube 14,50;Position Object 14,-400,-410,0 ;Scale Object 14,100,100,180;Color Object 14,RGB(0,200,0)
Make Object Cube 15,50;Position Object 15,-400,-410,-100;Scale Object 15,100,100,180;Color Object 15,RGB(0,200,0)
Make Object Cube 16,50;Position Object 16,-400,-410,-200;Scale Object 16,100,100,180;Color Object 16,RGB(0,200,0)
Make Object Cube 17,50;Position Object 17,-400,-410,-300;Scale Object 17,100,100,180;Color Object 17,RGB(0,200,0)
Make Object Cube 18,50;Position Object 18,-400,-410,-400;Scale Object 18,100,100,180;Color Object 18,RGB(0,200,0)

REM Player 2
Make Object Cube 20,50;Position Object 20,400,-410,400 ;Scale Object 20,100,100,180;Color Object 20,RGB(200,0,0)
Make Object Cube 21,50;Position Object 21,400,-410,300 ;Scale Object 21,100,100,180;Color Object 21,RGB(200,0,0)
Make Object Cube 22,50;Position Object 22,400,-410,200 ;Scale Object 22,100,100,180;Color Object 22,RGB(200,0,0)
Make Object Cube 23,50;Position Object 23,400,-410,100 ;Scale Object 23,100,100,180;Color Object 23,RGB(200,0,0)
Make Object Cube 24,50;Position Object 24,400,-410,0 ;Scale Object 24,100,100,180;Color Object 24,RGB(200,0,0)
Make Object Cube 25,50;Position Object 25,400,-410,-100;Scale Object 25,100,100,180;Color Object 25,RGB(200,0,0)
Make Object Cube 26,50;Position Object 26,400,-410,-200;Scale Object 26,100,100,180;Color Object 26,RGB(200,0,0)
Make Object Cube 27,50;Position Object 27,400,-410,-300;Scale Object 27,100,100,180;Color Object 27,RGB(200,0,0)
Make Object Cube 28,50;Position Object 28,400,-410,-400;Scale Object 28,100,100,180;Color Object 28,RGB(200,0,0)

REM Player 1
MAKE OBJECT CUBE 30,25
POSITION OBJECT 30,-300,-410,0
SCALE OBJECT 30,150,100,250
REM Make object color green
COLOR OBJECT 30,RGB(0,255,0)

REM Player 2
MAKE OBJECT CUBE 40,25
POSITION OBJECT 40,300,-410,0
SCALE OBJECT 40,150,100,250
REM Make object color red
COLOR OBJECT 40,RGB(255,0,0)

REM Make a camera
POSITION CAMERA 0,490,0
POINT CAMERA 0,0,0

REM Set collision
SET OBJECT COLLISION ON 2
SET OBJECT COLLISION TO BOXES 1
SET OBJECT COLLISION TO BOXES 30
SET OBJECT COLLISION TO BOXES 40
SET OBJECT COLLISION TO BOXES 3
SET OBJECT COLLISION TO BOXES 4
SET OBJECT COLLISION TO BOXES 5
SET OBJECT COLLISION TO BOXES 6
REM Boxes Player 1
SET OBJECT COLLISION TO BOXES 10
SET OBJECT COLLISION TO BOXES 11
SET OBJECT COLLISION TO BOXES 12
SET OBJECT COLLISION TO BOXES 13
SET OBJECT COLLISION TO BOXES 14
SET OBJECT COLLISION TO BOXES 14
SET OBJECT COLLISION TO BOXES 15
SET OBJECT COLLISION TO BOXES 16
SET OBJECT COLLISION TO BOXES 17
SET OBJECT COLLISION TO BOXES 18
REM Boxes Player 2
SET OBJECT COLLISION TO BOXES 20
SET OBJECT COLLISION TO BOXES 21
SET OBJECT COLLISION TO BOXES 22
SET OBJECT COLLISION TO BOXES 23
SET OBJECT COLLISION TO BOXES 24
SET OBJECT COLLISION TO BOXES 24
SET OBJECT COLLISION TO BOXES 25
SET OBJECT COLLISION TO BOXES 26
SET OBJECT COLLISION TO BOXES 27
SET OBJECT COLLISION TO BOXES 28

IF Player=1
REPEAT

FloatNr=128
WHILE FloatNr<>512
SET CURSOR 1,150
PRINT "NO FLOAT"
GET NET MESSAGE
IF NET MESSAGE TYPE()=2
FloatNr=NET MESSAGE FLOAT()
ENDIF
ENDWHILE

SET CURSOR 1,10
PRINT "PLAYER 1"
IF NET PLAYER DESTROYED()<>0
CLS
SYNC
PRINT "NET GAME PLAYER IS DESTROYED"
PRINT " "
PRINT "Free Network"
FREE NET GAME
PRINT " "
PRINT "Free Video Memory"
FLUSH VIDEO MEMORY
IF MEMBLOCK EXIST(1) THEN DELETE MEMBLOCK 1
IF MEMBLOCK EXIST(2) THEN DELETE MEMBLOCK 2
PRINT "Press Enter to end"
SYNC
WAIT KEY
END
ENDIF
IF NET MESSAGE EXISTS() THEN SET CURSOR 1,30;PRINT "MESSAGE"
GET NET MESSAGE
Player2Mess = NET MESSAGE INTEGER()
IF NET MESSAGE TYPE()=2
SET CURSOR 1,130
PRINT "FLOAT : ";NET MESSAGE FLOAT()
ENDIF
IF Player2Mess = 1 THEN MOVE OBJECT 40,2;SET CURSOR 1,50;PRINT "PLAYER 2 UP"
IF Player2Mess = 2 THEN MOVE OBJECT 40,-2;SET CURSOR 1,50;PRINT "PLAYER 2 DOWN"

IF UPKEY() THEN MOVE OBJECT 30,2;SEND NET MESSAGE INTEGER 0,1
IF DOWNKEY() THEN MOVE OBJECT 30,-2;SEND NET MESSAGE INTEGER 0,2

Angle=RND(4)

IF OBJECT COLLISION(1,2)=0
IF ANGLE = 0
POSITION OBJECT 2,0,-420,0
YROTATE OBJECT 2,180
ENDIF
IF ANGLE = 1
POSITION OBJECT 2,0,-420,0
YROTATE OBJECT 2,45
ENDIF
IF ANGLE = 2
POSITION OBJECT 2,0,-420,0
YROTATE OBJECT 2,135
ENDIF
IF ANGLE = 3
POSITION OBJECT 2,0,-420,0
YROTATE OBJECT 2,225
ENDIF
IF ANGLE = 4
POSITION OBJECT 2,0,-420,0
YROTATE OBJECT 2,315
ENDIF
ENDIF

IF OBJECT collision(10,2)>0 THEN HIDE OBJECT 10
IF OBJECT collision(11,2)>0 THEN HIDE OBJECT 11
IF OBJECT collision(12,2)>0 THEN HIDE OBJECT 12
IF OBJECT collision(13,2)>0 THEN HIDE OBJECT 13
IF OBJECT collision(14,2)>0 THEN HIDE OBJECT 14
IF OBJECT collision(15,2)>0 THEN HIDE OBJECT 15
IF OBJECT collision(16,2)>0 THEN HIDE OBJECT 16
IF OBJECT collision(17,2)>0 THEN HIDE OBJECT 17
IF OBJECT collision(18,2)>0 THEN HIDE OBJECT 18

IF OBJECT collision(20,2)>0 THEN HIDE OBJECT 20
IF OBJECT collision(21,2)>0 THEN HIDE OBJECT 21
IF OBJECT collision(22,2)>0 THEN HIDE OBJECT 22
IF OBJECT collision(23,2)>0 THEN HIDE OBJECT 23
IF OBJECT collision(24,2)>0 THEN HIDE OBJECT 24
IF OBJECT collision(25,2)>0 THEN HIDE OBJECT 25
IF OBJECT collision(26,2)>0 THEN HIDE OBJECT 26
IF OBJECT collision(27,2)>0 THEN HIDE OBJECT 27
IF OBJECT collision(28,2)>0 THEN HIDE OBJECT 28

IF OBJECT collision(30,2)>0
BallAngle = OBJECT ANGLE Y(2)
IF BallAngle > 180
if BallAngle=45 then NewAngle=315
if BallAngle=135 then NewAngle=225
if BallAngle=225 then NewAngle=135
if BallAngle=315 then NewAngle=45
YROTATE OBJECT 2,NewAngle
ENDIF

IF BallAngle < 180
if BallAngle=45 then NewAngle=135
if BallAngle=135 then NewAngle=45
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=225
YROTATE OBJECT 2,NewAngle
ENDIF
ENDIF

IF OBJECT collision(40,2)>0
BallAngle = OBJECT ANGLE Y(2)
IF BallAngle > 180
if BallAngle=45 then NewAngle=135
if BallAngle=135 then NewAngle=45
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=225
YROTATE OBJECT 2,NewAngle
ENDIF

IF BallAngle < 180
if BallAngle=45 then NewAngle=135
if BallAngle=135 then NewAngle=225
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=45
YROTATE OBJECT 2,NewAngle
ENDIF
ENDIF

IF OBJECT collision(3,2)>0
BallAngle = OBJECT ANGLE Y(2)
if BallAngle=45 then NewAngle=135
if BallAngle=135 then NewAngle=45
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=225
YROTATE OBJECT 2,NewAngle
ENDIF

IF OBJECT collision(4,2)>0
BallAngle = OBJECT ANGLE Y(2)
if BallAngle=45 then NewAngle=135
if BallAngle=135 then NewAngle=45
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=225
YROTATE OBJECT 2,NewAngle
ENDIF

IF OBJECT collision(5,2)>0
BallAngle = OBJECT ANGLE Y(2)
if BallAngle=45 then NewAngle=315
if BallAngle=135 then NewAngle=225
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=45
YROTATE OBJECT 2,NewAngle
ENDIF

IF OBJECT collision(6,2)>0
BallAngle = OBJECT ANGLE Y(2)
if BallAngle=45 then NewAngle=315
if BallAngle=135 then NewAngle=225
if BallAngle=225 then NewAngle=315
if BallAngle=315 then NewAngle=45
YROTATE OBJECT 2,NewAngle
ENDIF

MOVE OBJECT 2,2
WRITE MEMBLOCK DWORD 1,2,((Object Position X(2)+500)*100)
WRITE MEMBLOCK DWORD 1,3,((Object Position Z(2)+500)*100)

SET CURSOR 1,70
PRINT "BALL X ";Object Position X(2)
SET CURSOR 1,90
PRINT "BALL Y ";Object Position Z(2)

SEND NET MESSAGE MEMBLOCK 0,1,1

SYNC
UNTIL CONTROLKEY()
IF MEMBLOCK EXIST(1) THEN DELETE MEMBLOCK 1
IF MEMBLOCK EXIST(2) THEN DELETE MEMBLOCK 2
ENDIF

IF Player=2
REPEAT
SET CURSOR 1,10
PRINT "PLAYER 2"
IF NET PLAYER DESTROYED()>0
CLS
SYNC
PRINT "NET GAME PLAYER IS DESTROYED"
PRINT " "
PRINT "Free Network"
FREE NET GAME
PRINT " "
PRINT "Free Video Memory"
FLUSH VIDEO MEMORY
IF MEMBLOCK EXIST(1) THEN DELETE MEMBLOCK 1
IF MEMBLOCK EXIST(2) THEN DELETE MEMBLOCK 2
PRINT "Press Enter to end"
SYNC
END
ENDIF
CheckMessage:
IF NET MESSAGE EXISTS() THEN SET CURSOR 1,30;PRINT "MESSAGE"
GET NET MESSAGE
IF NET MESSAGE TYPE()=1
Player1Mess = NET MESSAGE INTEGER()
IF Player1Mess = 1 THEN MOVE OBJECT 30,2;SET CURSOR 1,50;PRINT "PLAYER 1 UP"
IF Player1Mess = 2 THEN MOVE OBJECT 30,-2;SET CURSOR 1,50;PRINT "PLAYER 1 DOWN"
IF NET MESSAGE EXISTS() THEN GOTO CheckMessage
ENDIF
IF NET MESSAGE TYPE()=4
NET MESSAGE MEMBLOCK 2
Position Object 2,(((MEMBLOCK DWORD(2,2))/100)-500),-420,(((MEMBLOCK DWORD(2,3))/100)-500)
SET CURSOR 1,70
PRINT "BALL X ";(MEMBLOCK DWORD(2,2)/100)-500
SET CURSOR 1,90
PRINT "BALL Y ";(MEMBLOCK DWORD(2,3)/100)-500
IF MEMBLOCK EXIST(2) THEN DELETE MEMBLOCK 2
IF NET MESSAGE EXISTS() THEN GOTO CheckMessage
ENDIF

IF UPKEY() THEN MOVE OBJECT 40,2;SEND NET MESSAGE INTEGER 0,1
IF DOWNKEY() THEN MOVE OBJECT 40,-2;SEND NET MESSAGE INTEGER 0,2

REM Sync for the network
SEND NET MESSAGE FLOAT 0,512

IF OBJECT collision(10,2)>0 THEN HIDE OBJECT 10
IF OBJECT collision(11,2)>0 THEN HIDE OBJECT 11
IF OBJECT collision(12,2)>0 THEN HIDE OBJECT 12
IF OBJECT collision(13,2)>0 THEN HIDE OBJECT 13
IF OBJECT collision(14,2)>0 THEN HIDE OBJECT 14
IF OBJECT collision(15,2)>0 THEN HIDE OBJECT 15
IF OBJECT collision(16,2)>0 THEN HIDE OBJECT 16
IF OBJECT collision(17,2)>0 THEN HIDE OBJECT 17
IF OBJECT collision(18,2)>0 THEN HIDE OBJECT 18

IF OBJECT collision(20,2)>0 THEN HIDE OBJECT 20
IF OBJECT collision(21,2)>0 THEN HIDE OBJECT 21
IF OBJECT collision(22,2)>0 THEN HIDE OBJECT 22
IF OBJECT collision(23,2)>0 THEN HIDE OBJECT 23
IF OBJECT collision(24,2)>0 THEN HIDE OBJECT 24
IF OBJECT collision(25,2)>0 THEN HIDE OBJECT 25
IF OBJECT collision(26,2)>0 THEN HIDE OBJECT 26
IF OBJECT collision(27,2)>0 THEN HIDE OBJECT 27
IF OBJECT collision(28,2)>0 THEN HIDE OBJECT 28

SYNC
UNTIL CONTROLKEY()
IF MEMBLOCK EXIST(1) THEN DELETE MEMBLOCK 1
IF MEMBLOCK EXIST(2) THEN DELETE MEMBLOCK 2
ENDIF

PRINT "Free Network"
FREE NET GAME

PRINT "Free Video Memory"
FLUSH VIDEO MEMORY

END
TheNVS
21
Years of Service
User Offline
Joined: 25th Oct 2002
Location: United States
Posted: 3rd Nov 2002 21:49
sorry, i dont have the enhanced mode of darkbasic so i cant really run the program or see what is wrong. i could create mutiplayer games but cant handle memblocks. i dont know about those.

Eelko Gielis
21
Years of Service
User Offline
Joined: 30th Oct 2002
Location: Netherlands
Posted: 11th Nov 2002 11:30
Tanks, what do you use then for a networkgame?
TheNVS
21
Years of Service
User Offline
Joined: 25th Oct 2002
Location: United States
Posted: 11th Nov 2002 19:25
is Tanks a programer's name or thanks?

dreamweaver
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 16th Nov 2002 11:39
Could be of Irish descent j/k.

dreamweaver sleeps

http://www.pumpkinsoftware.co.uk the makers of Fruit 'n' Loot & Psycho Pumpkins.

Proc AMD 475 mhZ, 128mb ram, crap onboard ATI 8mb video chip, DX8.1, win 98se, DB v1.13.

Login to post a reply

Server time is: 2024-04-26 18:13:06
Your offset time is: 2024-04-26 18:13:06