Author Topic: RakNet 3.5 Released  (Read 8584 times)

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
RakNet 3.5 Released
« on: March 31, 2009, 09:20:32 PM »
  • Fix delta directory transfer not able to read file contents on incremental reads because only the relative path was stored on the sender
  • NAT punchthrough rewritten, tested with nearly every manufacturer.
  • LightweightDatabaseServer will no longer incorrectly remove a row if you do not call RakPeer::Update() for a long time.
  • Various ReplicaManager2 fixes for non-authoritative client created objects.
  • Packet logger now shows acks and RakPeer::PushBackPacket commands. Also, now shows the correct messageID for regular sends.
  • Add DS_Multilist for use in future data structures, to replace DS_List, DS_Queue, DS_OrderedList.
  • Fixed Bitstream type mismatch in RakVoice, causing plugin to not work at all.
  • The RakVoice sample with Portaudio now supports NAT Punchthrough.
  • ReliabilityLayer now uses fast backoff on real or anticipated packetloss, reducing packetloss from about 16% to 2% for large data transfers.
  • Fixed returning the wrong emailId with Lobby2 GetEmail function for PostgreSQL
  • Switch plugins to use PluginInterface2, replacing PluginInterface, in order to support TCP.
  • Add PacketizedTCP class, sending discrete messages through TCP.
  • Support PacketizedTCP with the Autopatcher and FileListTransfer. Using TCP, the autopatcher can self-update even when RakNet's protocol changes.

seacher

  • Not-a-newbie
  • *
  • Posts: 5
  • Karma: 0
    • View Profile
Re: RakNet 3.5 Released
« Reply #1 on: April 01, 2009, 09:25:29 AM »
when I compiled the 3.5 release,but I found it can't found the NatPunchthrough.cpp,I think the lib has not the NatPunchthrough.cpp.

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #2 on: April 01, 2009, 12:46:37 PM »
It's NatPunchthroughClient and NatPunchthroughServer

chentob

  • Not-a-newbie
  • *
  • Posts: 47
  • Karma: 1
    • View Profile
Re: RakNet 3.5 Released
« Reply #3 on: April 02, 2009, 12:04:25 AM »
I try the 3.5 of RakNet,it is so good ,but there are some problem, it would crash when send very large data in begin 8 second.  The 3.4 is ok,but 3.5 would crash, I don't know why

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #4 on: April 02, 2009, 08:38:33 AM »
Download it again. It was a bad upload for a few hours.

gameman100

  • Not-a-newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Re: RakNet 3.5 Released
« Reply #5 on: April 03, 2009, 11:09:34 AM »
I could not compile my project and will get a lot of error messages using 3.5 when include <windows.h> and  "NatPunchthroughClient.h" or  "NatPunchthroughServer.h" at the same time ,I am using VC2008.

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #6 on: April 03, 2009, 05:24:41 PM »
I could not compile my project and will get a lot of error messages using 3.5 when include <windows.h> and  "NatPunchthroughClient.h" or  "NatPunchthroughServer.h" at the same time ,I am using VC2008.

If you put #include "WindowsIncludes.h" at the top of the file, does it fix the compile problems?

gameman100

  • Not-a-newbie
  • *
  • Posts: 2
  • Karma: 0
    • View Profile
Re: RakNet 3.5 Released
« Reply #7 on: April 03, 2009, 07:37:18 PM »
Yes ,it works ,thanks for the help:)

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #8 on: April 11, 2009, 12:51:44 AM »
If you are experience problems with flow control, try updating ReliabilityLayer.cpp and let me know if that fixes the problem:

http://raknetjenkinsso.svn.sourceforge.net/viewvc/raknetjenkinsso/trunk/Source/ReliabilityLayer.cpp

robcolbert

  • Not-a-newbie
  • *
  • Posts: 1
  • Karma: 0
    • View Profile
Re: RakNet 3.5 Released
« Reply #9 on: April 13, 2009, 06:35:13 PM »
In NatPunchthroughClient.h, would it be possible to add a virtual destructor to the NatPunchthroughDebugInterface struct?

Code: [Select]
struct NatPunchthroughDebugInterface
{
virtual ~NatPunchthroughDebugInterface() {} // <-- just add that
virtual void OnClientMessage(const char *msg)=0;
};

The reason is gcc generates a warning about the object containing virtual functions without having a virtual destructor. It's not just a style or purist thing. If you were to delete an instance pointer to NatPunchthroughDebugInterface, my destructor wouldn't be called.

Thanks,
-Rob

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #10 on: April 17, 2009, 01:20:42 PM »
In NatPunchthroughClient.h, would it be possible to add a virtual destructor to the NatPunchthroughDebugInterface struct?

Code: [Select]
struct NatPunchthroughDebugInterface
{
virtual ~NatPunchthroughDebugInterface() {} // <-- just add that
virtual void OnClientMessage(const char *msg)=0;
};

The reason is gcc generates a warning about the object containing virtual functions without having a virtual destructor. It's not just a style or purist thing. If you were to delete an instance pointer to NatPunchthroughDebugInterface, my destructor wouldn't be called.

Thanks,
-Rob
[/quote

I didn't see this until too late. It's done in SVN though.]

mychii

  • Not-a-newbie
  • *
  • Posts: 11
  • Karma: 0
    • View Profile
Re: RakNet 3.5 Released
« Reply #11 on: April 20, 2009, 11:28:02 PM »
I've compiled and used this 3.5 in visual studio and works fine. Yet in linux netbeans 6.1, there is an error when compiling the RPC3.

The error goes like this:
Code: [Select]
Plugin/RPC3/RPC3.cpp: In member function ‘virtual void RakNet::RPC3::OnClosedConnection(SystemAddress, RakNetGUID, PI2_LostConnectionReason)’:
Plugin/RPC3/RPC3.cpp:409: error: ‘peer’ was not declared in this scope
Plugin/RPC3/RPC3.cpp: In member function ‘virtual void RakNet::RPC3::OnShutdown()’:
Plugin/RPC3/RPC3.cpp:420: error: ‘peer’ was not declared in this scope

I found out the trouble around here in RCP3.cpp..
Code: [Select]
void RPC3::OnClosedConnection(SystemAddress systemAddress, RakNetGUID rakNetGUID, PI2_LostConnectionReason lostConnectionReason )
{
(void) peer; <-- causes the error
if (remoteFunctions.Has(systemAddress))
{
DataStructures::OrderedList<RPCIdentifier, RemoteRPCFunction, RPC3::RemoteRPCFunctionComp> *theList = remoteFunctions.Get(systemAddress);
delete theList;
remoteFunctions.Delete(systemAddress);
}
}

void RPC3::OnShutdown(void)
{
(void) peer; <--- causes the error
Clear();
}

then I just comment them out, and it works fine, but I don't know whether its neccessary/dangerous or not. I wonder what it is used for and causes an error?

gjaegy

  • Jr. Member
  • **
  • Posts: 76
  • Karma: 1
    • View Profile
Re: RakNet 3.5 Released
« Reply #12 on: April 21, 2009, 04:03:31 AM »
Quote
Support PacketizedTCP with the Autopatcher and FileListTransfer. Using TCP, the autopatcher can self-update even when RakNet's protocol changes.

Am I dreaming ?? This was something I was struggling with for month: how can i update to a newer raknet version without breaking the autopatcher ?

Ooops, I just realized I am confusing the Autopatcher and the DirectoryDeltaTransfer mechanisms... Or can I use TCP with the DirectoryDeltaTransfer as well ?
« Last Edit: April 21, 2009, 04:10:03 AM by gjaegy »

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #13 on: April 21, 2009, 09:27:01 AM »
then I just comment them out, and it works fine, but I don't know whether its neccessary/dangerous or not. I wonder what it is used for and causes an error?

That is fixed in the current version.

Rak'kar

  • Administrator
  • Hero Member
  • *****
  • Posts: 6895
  • Karma: 291
    • View Profile
    • RakNet
Re: RakNet 3.5 Released
« Reply #14 on: April 21, 2009, 09:28:07 AM »
Ooops, I just realized I am confusing the Autopatcher and the DirectoryDeltaTransfer mechanisms... Or can I use TCP with the DirectoryDeltaTransfer as well ?

You can use TCP with anything that does its networking with FileListTransfer. This includes DeltaDirectoryTransfer.