The Game Creators
The Game Creators Home Online Shop Click to Login
  Hot: Christmas CompetitionNovember NewsletterModel Pack 36DB Pro Pack 2009DGS BonanzaCharacter PackFPS Creator Bonanza;
The Game Creators
Program Announcements / Tempest - A peer-to-peer UDP multiplayer plugin - Free release

Go to the first page of this board Return to the Forum Menu Post Message
334 Messages - Page   of 9   
Bookmark and Share Search the Forum Next 40

Author Message
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 8th Mar 2006 13:46     Edited: 26th Mar 2008 05:41     | link | toggle

This software is no longer available. Consider using Multisync instead.

News
8/May/2006 - 1.1.2 released. Change log:

+ Code Snippet
8/May/2006 1.1.2.0 ----------------------------------------------
* Changed THost to use 0.0.0.0 as IP address if none is specified
* Implemented LAN searching functionality. So far it is very basic
  and can only search on one port at a time. See included example
  for use.
* Added another variation of TJoin that allows you to use a game
  number rather than an IP address.
-----------------------------------------------------------------


3/April/2006 - Tempest is now compatible with DBC. For the most part it works, although I seem to get crashes when doing certain things(although the things I am doing are not things you would normally do with it). I have reuploaded the RAR to the same place, see below for the link.

----------------------------------------------------------------
After almost a year of on-and-off development(and still developing) I have decided to release this.

I created this plugin to allow speedy transfer of data between players, making it most useful for faster paced games. The two most important factors in this are the fact that it uses the peer-to-peer network model, and the low-overhead UDP protocol. I took into account the fact that UDP isn't a reliable protocol and I coded a guarantee system to ensure that messages would get to their destination(this can be used by specifying a flag when sending a message).

Features
* Reliable UDP
* Supports up to 64 players
* Easy message construction - most standard data types supported
* Uses a global player ID system
* Message IDs supported
* Allows retrieval of player addresses

Function List
+ Code Snippet
THost              - Starts hosting the multiplayer game.
TJoin              - Joins a multiplayer game.
TDisconnect        - Disconnects from the multiplayer game.
TSync              - Allows Tempest to update.
TSend              - Sends the message to a selected player.
TSendAll           - Sends the message to all players but yourself.
TGetMessage        - Grabs a message from the queue.
TGetSender         - Returns the ID of the player who send the last message.
TGetMessageSize    - Returns the size of the message.
TNewPlayer         - If there is a new player, this returns their ID.
TPlayerExist       - Returns 1 if the specified player exists in the game.
TSetLocalPort      - Sets the local port(can be a range) to receive data on.
TSetRemotePort     - Sets the remote port to connect to.
TGetMaximumPlayers - Returns the maximum amount of players allowed in the game.
TConnected         - Returns 1 if you are connected in the multiplayer game.

TPutByte           - Puts a byte in the message.
TPutWord           - Puts a word in the message.
TPutInt            - Puts an integer in the message.
TPutFloat          - Puts a float in the message.
TPutString         - Puts a string in the message.
TGetByte           - Gets a byte from the message received.
TGetWord           - Gets a word from the message received.
TGetInt            - Gets an integer from the message received.
TGetFloat          - Gets a float from the message received.
TGetString         - Gets a string from the message received.
TSetMessageID      - Sets the ID of the message.
TGetMessageID      - Gets the ID of the message received.
TLockMessage       - See manual for description.
TUnlockMessage     - See manual for description.

TGetThisID         - Returns your ID in the game.
TGetPlayerName     - Returns the name of the specified player.
TGetPlayerIP       - Returns the IP address of the specified player.
TGetPlayerPort     - Returns the port number of the specified player.

TRegisterGame      - Registers game via selected method.
TGetGameList       - Retrieves list of current games available to join.
TGetGameAmount     - Returns the amount of games that are available to join.
TGetGameData       - Returns information about a specified game.


This software is no longer available.

Back to top
Report this message as abusive
Hawkeye

User


Joined: Fri Sep 19th 2003
Location: SC, USA
Posted: 8th Mar 2006 13:51           | link | toggle

Wow, generous This'un Ima have a look at alright...


I am but mad north north-west; when the wind is southerly I know a hawk from a handsaw - Hamlet, Hamlet
Back to top
provosmusic.com
Report this message as abusive
Chris Franklin

User


Joined: Tue Aug 2nd 2005
Location: UK
Posted: 8th Mar 2006 13:53           | link | toggle

WoW thanks ben so much for gogetax saying it would cost

Back to top
DBCoder - All around coding forums (And ways to avoid scams) Send AIM user a message
Report this message as abusive
SageTech

User


Joined: Fri Dec 3rd 2004
Location: Orlando, Florida
Posted: 8th Mar 2006 14:19           | link | toggle

Benjamin, i can not thank you enough, ive been waiting so long for this plugin, and was just looking at using directplay when i came to this page. Since it has all the function equivilents of what i use in my current engine using direct play, i can transfer it easily. Thank you, and when you release the new version i fully intend to buy it if it costs money.

If you're so smart, why are you reading my post?
Back to top
BattleLegacy Send AIM user a message
Report this message as abusive
Megaton Cat

User


Joined: Sun Aug 24th 2003
Location: Toronto, Canada
Posted: 8th Mar 2006 14:26           | link | toggle

Awsome freebie for the cheapskate in your heart.

Back to top
http://catfolio.net/
Report this message as abusive
Sergey K

User


Joined: Sun Jan 4th 2004
Location: Cyberspace
Posted: 8th Mar 2006 14:53     Edited: 8th Mar 2006 14:59     | link | toggle

Quote: "WoW thanks ben so much for gogetax saying it would cost
"
actually, he decided to release a free version of it (not full version though) because he started the development long time ago, and he already wants that people will use it

Back to top
Goga\'s WebPage (My Projects)
Report this message as abusive
Torrey

User


Joined: Fri Aug 20th 2004
Location: Ohio
Posted: 8th Mar 2006 15:02           | link | toggle

This is an excellent plugin, I've heard great things about it from the Blackout project. Your knowledge of networking really shows with the design used to benefit users.

Back to top
Blackgate.us Send AIM user a message
Report this message as abusive
Chris Franklin

User


Joined: Tue Aug 2nd 2005
Location: UK
Posted: 8th Mar 2006 15:16           | link | toggle

We need a board dedicated to ben

Back to top
DBCoder - All around coding forums (And ways to avoid scams) Send AIM user a message
Report this message as abusive
blanky

User


Joined: Tue Aug 3rd 2004
Location: ./
Posted: 8th Mar 2006 15:22           | link | toggle

I've been using this for a while, and I can safely say that no other multiplayer plugin can rival it. It actually contains more commands than just send & receive (shock horror), automatically keeps track & pings other players in sessions and all of that other goode stuffe.

(The 'Reliable UDP' is more useful than you can imagine... Because it can be switched on and off for each piece of data you send, you could (for example) send player positions as fast, unreliable, but bullet shots as reliable.)

Oh yeah, and it actually works. I give Benjamin brownie points for that.

... installing gentoo ...
Back to top
h5o
Report this message as abusive
Chris Franklin

User


Joined: Tue Aug 2nd 2005
Location: UK
Posted: 8th Mar 2006 15:24     Edited: 8th Mar 2006 15:25     | link | toggle

*runs test app*

Edit:
Routers blocked it

Back to top
DBCoder - All around coding forums (And ways to avoid scams) Send AIM user a message
Report this message as abusive
Mnemonix

User


Joined: Mon Dec 2nd 2002
Location: Skaro
Posted: 8th Mar 2006 19:32           | link | toggle

Let me see ur networking plugin
U dont have it
Sorry U need to go download internet factory then
It should do it for you and Benjamin oops its TempestDude.


Very good plugin benjamin(probably, as I have not tried it yet)

WE SHALL BECOME ALL POWERFUL! CRUSH THE LESSER RACES! CONQUER THE GALAXY! UNIMAGINABLE POWER! UNLIMITED RICE PUDDING ! ! ! ETC. ! ! ! ETC.! ! !
Back to top
Send AIM user a message
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 8th Mar 2006 19:59     Edited: 26th Sep 2006 08:29     | link | toggle

Thank you all for the kind comments.

Quote: "so much for gogetax saying it would cost"
It was originally going to be soley a commercial product, but I decided more recently to release a free version aswell.

Quote: "Edit:
Routers blocked it"
Huh? Do you mean your firewall? Or are you trying to connect with someone else and your router isn't properly configured for it?

Tempest - P2P UDP Multiplayer Plugin (DBP/DBCe)
Download the free version
Back to top
Download: tempest networking guide.doc Size: 6234 bytesReport this message as abusive
The admiral

User


Joined: Thu Aug 29th 2002
Location: Cyberspace
Posted: 8th Mar 2006 20:52           | link | toggle

Wow thanks very generous I could use this for my fps.

The admiral
Back to top
Flyer Command Home Site Send AIM user a message
Report this message as abusive
Lukas W

User


Joined: Fri Sep 5th 2003
Location: Norway
Posted: 9th Mar 2006 01:27           | link | toggle

benjamin rox but only if this is dbc compatible!

HorizShootiz progress 96%
Back to top
Send AIM user a message
Report this message as abusive
Baggers

User


Joined: Mon May 31st 2004
Location: Yonder over dem dere hills
Posted: 9th Mar 2006 06:27           | link | toggle

Ben you legend !
Thats amazing stuff there my man. My project tips it's proverbial hat to you.
Once again thanks.

Back to top
Report this message as abusive
Hamish McHaggis

User


Joined: Fri Dec 13th 2002
Location: Modgnik Detinu
Posted: 9th Mar 2006 12:35           | link | toggle

Having used this plugin for a while now (probably over half a year), I can say that it is well worth using. Far superior to the DBPro commands, and very stable now.

Back to top
BlackOut Open Source FPS
Report this message as abusive
Chris Franklin

User


Joined: Tue Aug 2nd 2005
Location: UK
Posted: 9th Mar 2006 12:42           | link | toggle

Quote: "Huh? Do you mean your firewall? Or are you trying to connect with someone else and your router isn't properly configured for it?"
Happens with my other games sometimes it says bad proxy config on tm sunrise

Back to top
DBCoder - All around coding forums (And ways to avoid scams) Send AIM user a message
Report this message as abusive
SageTech

User


Joined: Fri Dec 3rd 2004
Location: Orlando, Florida
Posted: 9th Mar 2006 13:52           | link | toggle

ben,

I seemed to have encountered an error, im sure its due to my fualty coding, but could you explain exactly what this error log seems to be reporting, and perhaps what could have cuased it?

+ Code Snippet
Tempest v1.0 Free Release

[14:41:51] Attempting to host...

-----------------Settings-------------------
Name : host
Local IP Address: 127.0.0.1
Remote IP Address: ?.?.?.?
Local Port: 3999
Remote Port: ?
---------------------------------------------

[14:41:51] Game started

[14:42:30] jase has joined

[14:42:47] Recv error 10054

[14:42:47] Send error caused time-out

[14:42:47] Connection with player 2 lost(Timed out)


If you're so smart, why are you reading my post?
Back to top
BattleLegacy Send AIM user a message
Report this message as abusive
Turoid

User


Joined: Sat Nov 1st 2003
Location: The Netherlands
Posted: 9th Mar 2006 15:13     Edited: 4th May 2007 14:07     | link | toggle

Ben, just a small question. Does the client also have to open his ports on his router/firewall? Thanks!

I am awesome and always right.
Back to top
Report this message as abusive
blanky

User


Joined: Tue Aug 3rd 2004
Location: ./
Posted: 9th Mar 2006 16:05           | link | toggle

@sage tech administrator:

Recv. error 10054 means that the Winsock socket had a timeout. During initial testing, I had this error several times... although (unfortunately) me & benjamin talk an awful lot, and I can't find the MSN log archive.

I'll get back to you on that. (Out of interest, try making sure that you are hosting on 127.0.0.1 and trying to connect to 127.0.0.1. Also make sure that your server settings are in reasonable bounds (i.e. not 128 players, that just stops ANY players from connecting)).

etc
Seeing your connection code would be lubbly too.

... installing gentoo ...
Back to top
h5o
Report this message as abusive
Google Ad
Back to top
 
Barnski

User


Joined: Thu Jan 26th 2006
Location: Switzerland, Zurich
Posted: 9th Mar 2006 17:48           | link | toggle

10054 means "connection reset by peer"

it can happen for example if you send a UDP message to a destination where no one is receiving it (e.g. the partner closed its socket / or hasn't started it yet). Then you get a packet, and when you receive it, it will resolve into that error, simply stating that the other partner has reset the connection. It can be used to detect if someone disconnected.
It happens also in my plugin, when using UDP. So this error is not to be considered as dramatic, its rather normal I would say.

greets,
Barnski.
Back to top
MyWinsockPlugin
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 9th Mar 2006 20:55           | link | toggle

Quote: " benjamin rox but only if this is dbc compatible!"
It isn't quite compatible. Although to make it compatible I would only have to make a few changes I guess.

Quote: " Having used this plugin for a while now (probably over half a year), I can say that it is well worth using. Far superior to the DBPro commands, and very stable now."
Thanks man!

Quote: "I seemed to have encountered an error, im sure its due to my fualty coding, but could you explain exactly what this error log seems to be reporting, and perhaps what could have cuased it?"
Show me the log of the client that tried to connect.

Quote: " Ben, just a small question. Does the client also have to open his ports on his router/firewall?"
Yes.

Quote: "it can happen for example if you send a UDP message to a destination where no one is receiving it (e.g. the partner closed its socket / or hasn't started it yet)"
Yes, it happens when the socket is closed. However if the socket wasn't bound at the time of the packet being sent then the error would be 10061(WSAECONNREFUSED).

Quote: "So this error is not to be considered as dramatic, its rather normal I would say."
It is normal, if it happens where it is supposed to.

Tempest - P2P UDP Multiplayer Plugin - 70%
Back to top
Report this message as abusive
Hamish McHaggis

User


Joined: Fri Dec 13th 2002
Location: Modgnik Detinu
Posted: 10th Mar 2006 16:25           | link | toggle

Ben - Hmm, I replaced the Tempest_Blackout.dll with the new tempest.dll, and the TJoin bug seems to be back. You can only use TJoin once, whether it fails or succeeds the first time, it always fails from then on.

Back to top
BlackOut Open Source FPS
Report this message as abusive
SageTech

User


Joined: Fri Dec 3rd 2004
Location: Orlando, Florida
Posted: 10th Mar 2006 22:08           | link | toggle

Ben, I was woundering, can you think of any problems that would arise if i were to run tempest AND multisync in the same application? such as as the players movements being handled by tempest, and multisync for a chat server?

If you're so smart, why are you reading my post?
Back to top
BattleLegacy Send AIM user a message
Report this message as abusive
Oneka

User


Joined: Sat Apr 24th 2004
Location: Hampton,VA
Posted: 10th Mar 2006 22:36           | link | toggle

@Sage Tech
You would be better off waiting for MultiSync 2 where you can send UDP and TCP packets...


Making better games everday!
Oh yeah and just so you know its Oh-nek-a not One-ka!
Back to top
Send AIM user a message
Report this message as abusive
SageTech

User


Joined: Fri Dec 3rd 2004
Location: Orlando, Florida
Posted: 10th Mar 2006 22:43           | link | toggle

Its funny, everytime i think ive found what i need to continue work on my game, i find i need something else. Ahwell, guess il to some expirimenting.

If you're so smart, why are you reading my post?
Back to top
BattleLegacy Send AIM user a message
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 11th Mar 2006 08:54           | link | toggle

Quote: "Ben - Hmm, I replaced the Tempest_Blackout.dll with the new tempest.dll, and the TJoin bug seems to be back. You can only use TJoin once, whether it fails or succeeds the first time, it always fails from then on"
Oh dear. Well, unfortunately I'm also suddenly having trouble with TDisconnect, so for now you'll have to revert back to the other one.

Quote: "Ben, I was woundering, can you think of any problems that would arise if i were to run tempest AND multisync in the same application?"
No problems that I can think of.

Tempest - P2P UDP Multiplayer Plugin - 70%
Back to top
Report this message as abusive
Hamish McHaggis

User


Joined: Fri Dec 13th 2002
Location: Modgnik Detinu
Posted: 11th Mar 2006 14:54           | link | toggle

Note, the bug before I believe was that the whole program crashed out when trying to connect again, but now the command just fails (slightly less problematic).

Back to top
BlackOut Open Source FPS
Report this message as abusive
Chris Franklin

User


Joined: Tue Aug 2nd 2005
Location: UK
Posted: 13th Mar 2006 10:49           | link | toggle

just as i was about to use tempest in my game

Back to top
DBCoder - All around coding forums (And ways to avoid scams) Send AIM user a message
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 13th Mar 2006 12:10           | link | toggle

Quote: " just as i was about to use tempest in my game"
It's not exactly a showstopper is it? Besides, I think I've fixed it(although I'm waiting on confirmation from Hamish).

Tempest - P2P UDP Multiplayer Plugin - 70%
Download the free version
Back to top
Report this message as abusive
Roxas

User


Joined: Fri Nov 11th 2005
Location: http://forum.thegamecreators.com
Posted: 14th Mar 2006 09:51           | link | toggle

Wow. I love your plugins.. And this is greatest one smoothly fps


There is something funny in picture? Then you gotta try out Moomins In MushroomForest game!
Back to top
Report this message as abusive
Sergey K

User


Joined: Sun Jan 4th 2004
Location: Cyberspace
Posted: 14th Mar 2006 11:00           | link | toggle

the fps is even not up to the plugin..
i mean, i got tempest for long time already, and i didnt noticed it taking fps at all..

Back to top
Goga\'s WebPage (My Projects)
Report this message as abusive
Opposing force

User


Joined: Wed Aug 10th 2005
Location: England
Posted: 16th Mar 2006 09:28     Edited: 16th Mar 2006 09:29     | link | toggle

Benjamin i need your help

In Dark Basic Pro I used Tempest and I must say it is rather good
your very useful cube example is all well and good untill I came to add collision. It is quite hard to explain so here is a code snippet...

+ Code Snippet
set window on

`Constants --------------------------------
#constant MAXPLAYERS 10
#constant SENDGAP 100
`------------------------------------------

`Types ------------------------------------
type playerstates
   keyup as boolean
   keydown as boolean
endtype
`------------------------------------------

`Data -------------------------------------
global OURID as integer
global LASTSENT as integer
global MSGAMOUNTS as integer
global MSGAMOUNTR as integer
global YANGLE as float

dim playerdata(MAXPLAYERS) as playerstates
`------------------------------------------

`Ask for choice of mode
print "1. Host"
print "2. Join"
Input "Choice: ", choice

`If no choice then quit
if choice=0 then end

`If choice is 1 then host a multiplayer game
if choice=1

   `Ask for username and IP to host on
   input "Nickname: ", nick$
   input "IP: ", ip$

   `If either variable is empty, set a default
   if nick$="" then nick$ = "Host"
   if ip$="" then ip$ = "127.0.0.1"

   `Host the multiplayer game
   result = THost(ip$, MAXPLAYERS, nick$)

   `If hosting failed then report to user and quit
   if not result
      print "Failed to host game"
      wait key
      end
   endif
endif

`If choice is 1 then join
if choice=2

   `Ask for username and IP to host on
   input "Nickname: ", nick$
   input "IP: ", ip$

   `If either variable is empty, set a default
   if nick$="" then nick$ = "Client"
   if ip$="" then ip$ = "127.0.0.1"

   `Join the multiplayer game
   result = TJoin(ip$, nick$)

   `If hosting failed then report to user and quit
   if not result
      print "Failed to join game"
      wait key
      end
   endif
endif

`Retrieve our ID in the game and store it
OURID = TGetThisID()

`Set up sync
sync on
sync rate 60

`Make the player objects and hide ones not in use
for x=1 to MAXPLAYERS
   make object cube x, 10
   color object x, rgb(100+rnd(155), 100+rnd(155), 100+rnd(155))
   position object x, 0, 5, 0
   set object collision to boxes x
   if not TPlayerExist(x) then hide object x
next x

`Make a matrix
make matrix 1, 1000, 1000, 10, 10
load image "sands.bmp", 1
prepare matrix texture 1, 1, 4, 4

do

if keystate(14)=0
msg$ = msg$ + entry$()
else
if entry$() <> "" then msg$ = left$(msg$,len(msg$)-1)
endif
text 0,300,"MyText: "+msg$
clear entry buffer


   `Output the framerate
   text 0, 0, "Screen FPS: "+str$(screen fps())

   `Show who is online
   for x=1 to MAXPLAYERS
      if TPlayerExist(x)
         text 0, x*13, TGetPlayername(x)+"("+str$(x)+") is connected."
      endif
   next x

   `Update everything
   HandleControls()
   HandleCamera()
   if TConnected() then HandleNetwork()
   HandleMovement()

   `Let Tempest update itself
   TSync

   `Refresh the screen
   Sync
loop

function HandleMovement()
   for x=1 to MAXPLAYERS
      if OURID<>x and object exist(x)
         if playerdata(x).keyup then move object x, 1
         if playerdata(x).keydown then move object x, -1
      endif
   next x
endfunction

function HandleControls()
   if upkey() then move object OURID, 1
   if downkey() then move object OURID, -1
   if leftkey() then dec YANGLE
   if rightkey() then inc YANGLE
   yrotate object OURID, YANGLE

   `This shows how the host can boot a player
   if spacekey()
      TKillPlayer 2
      repeat : until not spacekey()
   endif

   `This shows how to disconnect
   if shiftkey()
      TDisconnect
      repeat
      until not shiftkey()
   endif
endfunction

function HandleCamera()


`-------------------------------------------------------
rem this part is the collision bit
`-------------------------------------------------------

         Rem Detect collision
         If Object collision(ourid,0)>0 then position object ourid,X#,0,Z#

         Rem get player object position and store in X# and Z#
         X# = Object position x(ourid)
         Z# = Object position z(ourid)



   xPos# = cos(270-YANGLE) * 50 + object position x(OURID)
   zPos# = sin(270-YANGLE) * 50 + object position z(OURID)
   position camera xPos#, 30, zPos#
   point camera object position x(OURID), 5, object position z(OURID)
endfunction

function HandleNetwork()
   `Player states
   newPlayer = TNewPlayer()
   if newPlayer>0 then show object newPlayer

   `Send
   if LASTSENT+SENDGAP<timer()
      TPutFloat object position x(OURID)
      TPutFloat object position z(OURID)
      TPutFloat YANGLE
      TPutByte upkey()
      TPutByte downkey()
      TSetMessageID 2
      if rnd(10)<5 then TSendAll 1 else TSendAll
      LASTSENT = timer()
      inc MSGAMOUNTS
   endif

   `Receive
   repeat
      newMsg = TGetMessage()
      if newMsg
         inc MSGAMOUNTR
         from = TGetSender()
         write string 1, "From: "+str$(from)+" ID: "+str$(TGetMessageID())
         x# = TGetFloat()
         z# = TGetFloat()
         yA# = TGetFloat()
         playerdata(from).keyup = TGetByte()
         playerdata(from).keydown = TGetByte()
         XVAL = x#
         ZVAL = z#
         if object exist(from)
            position object from, x#, 5, z#
            yrotate object from, yA#
         endif
      endif
   until not newMsg
endfunction


the collision code should definitely work. I use it in every single Dark Basic Pro project of mine with no error. But when I use it with your Dll and when the player cube bumps into another object then the player cube just goes back to the start position? Please can you help me, the collision works in Multisync just fine but not in tempest using this example, what am i doing wrong???

Felony Rise 10% complete
Middle Earth ORPG 2%
Back to top
Report this message as abusive
Van B

Moderator


Joined: Tue Oct 8th 2002
Location: The Swan.
Posted: 16th Mar 2006 09:40           | link | toggle

Quote: "But when I use it with your Dll and when the player cube bumps into another object then the player cube just goes back to the start position?"

Well...

Your function for the collision:

+ Code Snippet
function HandleCamera()


`-------------------------------------------------------
rem this part is the collision bit
`-------------------------------------------------------

         Rem Detect collision
         If Object collision(ourid,0)>0 then position object ourid,X#,0,Z#

         Rem get player object position and store in X# and Z#
         X# = Object position x(ourid)
         Z# = Object position z(ourid)



   xPos# = cos(270-YANGLE) * 50 + object position x(OURID)
   zPos# = sin(270-YANGLE) * 50 + object position z(OURID)
   position camera xPos#, 30, zPos#
   point camera object position x(OURID), 5, object position z(OURID)
endfunction


This function sticks the object at X#,0,Z# when theres a collision right? - well in a function, these values are empty, your effectively putting the object at 0,0,0. You must have mixed up your variables somewhere, maybe these variables should be globalised? - something like that anyway.


Van-B

Put away, those fiery biscuits!
Back to top
Report this message as abusive
Opposing force

User


Joined: Wed Aug 10th 2005
Location: England
Posted: 16th Mar 2006 09:46           | link | toggle

yes, but in all of my other projects the code works fine and stops the player object at its current position if it comes into contact with another object. In Benjamins other dll, multisync it works fine also. I don't know if you have Dark Basic Classic but there is a tutorial "tutorial5" that I base all my collision on.

Felony Rise 10% complete
Middle Earth ORPG 2%
Back to top
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 16th Mar 2006 14:50           | link | toggle

There are two problems with that code. The first Van B pointed out, and the other problem is that you are creating 10 objects, and starting them and yourself at the same position, which means you won't be able to move from the start.

Tempest - P2P UDP Multiplayer Plugin - 70%
Download the free version
Back to top
Report this message as abusive
Opposing force

User


Joined: Wed Aug 10th 2005
Location: England
Posted: 16th Mar 2006 15:16           | link | toggle

oh, 10 objects ok but when i tested out that example on one PC using 127.0.0.1 i hosted the game then ran the exe again and joined the game but when i tried to join for a third time it failed? If it can handle 10 players (the example) then why can you only have one person join? Is is something to do with just using 127.0.0.1 that it only allows 2 instances running on the same computer?

Felony Rise 10% complete
Middle Earth ORPG 2%
Back to top
Report this message as abusive
Benjamin

User


Joined: Sun Nov 24th 2002
Location: France
Posted: 16th Mar 2006 21:00     Edited: 16th Mar 2006 21:00     | link | toggle

It is because by default it doesn't use a port range for the client when connecting. You can specify a port range using: TSetLocalPort portFrom, portTo

Use it before TJoin. But only make sure it does that if you are connecting, and not hosting.

Tempest - P2P UDP Multiplayer Plugin - 70%
Download the free version
Back to top
Report this message as abusive
Megaton Cat

User


Joined: Sun Aug 24th 2003
Location: Toronto, Canada
Posted: 16th Mar 2006 21:03           | link | toggle

Hey I like this. [nod smiley]

Back to top
http://catfolio.net/
Report this message as abusive
Opposing force

User


Joined: Wed Aug 10th 2005
Location: England
Posted: 17th Mar 2006 08:13           | link | toggle

Quote: "
It is because by default it doesn't use a port range for the client when connecting. You can specify a port range using: TSetLocalPort portFrom, portTo

Use it before TJoin. But only make sure it does that if you are connecting, and not hosting.
"

cheers

Felony Rise 10% complete
Middle Earth ORPG 2%
Back to top
Report this message as abusive

Go to the first page of this board Return to the Forum Menu Post Message
334 Messages - Page   of 9   
Search the Forum Next 40

This is a multi-page thread older than 30 days.
Go to the last page to check if you can reply to it.

Forum Search

Enter a word or phrase to search our Forum for:

Thread Subject Search
Search Phrase:
Search Scope: Entire forum
Just this board
 
Google Forum Search
Search Phrase:
 
Apollo v2.02


Dark Game Studio
Privacy Policy AUP Top of Page