TGE1.5 and Torque Plugin Resource
by Gordon Marsh · in Torque Game Engine · 01/24/2007 (3:40 pm) · 6 replies
All,
I'm trying to merge my TGE1.5-based project in with Neil Marshall's TGE1.4 Make-Torque-a-browser-plugin resource:
tdn.garagegames.com/wiki/TGE/Code/How_to_make_torque_a_plugin
With a minor tweak to the GameInterface::PostEvent method I got the thing to run in a browser nicely. However, I don't think the resource was originally meant to be used connecting to a dedicated server, only as a standalone client/server.
My startup GUI's use a lot of servercommands and clientcommands, and these work fine. However, it errors out when the mission tries to load saying: "You do not have the correct version of the Arcane-FX demo or the related art needed to play on this server (Invalid Packet)".
The log also reveals:
If I compile the same files as the standalone client then it works fine.
Does anyone have any suggestions as to what may be the problem? It smacks of a security problem but I've turned off my firewall completely and still the issue persists.
Any suggestions gratefully recieved,
Gords
I'm trying to merge my TGE1.5-based project in with Neil Marshall's TGE1.4 Make-Torque-a-browser-plugin resource:
tdn.garagegames.com/wiki/TGE/Code/How_to_make_torque_a_plugin
With a minor tweak to the GameInterface::PostEvent method I got the thing to run in a browser nicely. However, I don't think the resource was originally meant to be used connecting to a dedicated server, only as a standalone client/server.
My startup GUI's use a lot of servercommands and clientcommands, and these work fine. However, it errors out when the mission tries to load saying: "You do not have the correct version of the Arcane-FX demo or the related art needed to play on this server (Invalid Packet)".
The log also reveals:
*** New Mission: Dating/data/missions/avalah.mis *** Phase 1: Download Datablocks & Targets A 'PlayerData' datablock with id: 3 already existed. Clobbering it with new 'AudioDescription' datablock from server. A 'PlayerData' datablock with id: 4 already existed. Clobbering it with new 'AudioDescription' datablock from server. A 'PlayerData' datablock with id: 5 already existed. Clobbering it with new 'AudioDescription' datablock from server. A 'PlayerData' datablock with id: 6 already existed. Clobbering it with new 'AudioDescription' datablock from server. Connection error: Invalid Packet.. Issuing Disconnect packet.
If I compile the same files as the standalone client then it works fine.
Does anyone have any suggestions as to what may be the problem? It smacks of a security problem but I've turned off my firewall completely and still the issue persists.
Any suggestions gratefully recieved,
Gords
About the author
#2
No. commandToServer and commandToClient are NetEvents which are exposed to script. Torque does not use TCP/IP in stock unless you tell it to.
01/25/2007 (6:45 am)
Quote:
Do the commandToServer and commandToClient functions use TCP by any chance while the NetEvent functionality (which I think is used to send the datablocks to load the mission) use UDP?
Could this be a reason why I see errors at the mission load stage when Torque is a web plugin, but not when sending commandToServer messages?
No. commandToServer and commandToClient are NetEvents which are exposed to script. Torque does not use TCP/IP in stock unless you tell it to.
#3
Your plugin project will have some extras (under explorer, netscape and web folders in the project) but otherwise try and make the projects identical.
My problem was in some way caused by the server sending packets down that the client plugin didn't know how to deal with.
01/30/2007 (6:28 pm)
For anyone interested in using the plugin resource with a dedicated server - the problem I was having was basically down to the client (plugin) project and server project having some different files in them.Your plugin project will have some extras (under explorer, netscape and web folders in the project) but otherwise try and make the projects identical.
My problem was in some way caused by the server sending packets down that the client plugin didn't know how to deal with.
#4
tdn.garagegames.com/wiki/TGE/Code/How_to_make_torque_a_plugin
02/09/2007 (5:18 am)
I've integrated the Torque Plugin with TGE 1.5 and updated the TDN page with the new version. I've left the 1.4 version there for people who haven't updated yet.tdn.garagegames.com/wiki/TGE/Code/How_to_make_torque_a_plugin
#5
np3DPluginFF_p.c
..\engine\np3DPluginFF\np3DPluginFF_p.c(85) : fatal error C1189: #error : You need a Windows 2000 or later to run this stub because it uses these features:
np3DPluginFF_i.c
stdafx.cpp
plugin.cpp
..\engine\np3DPlugin\plugin.cpp(3) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
nsScriptablePeer.cpp
c:\test\tge_1_5_2\engine\np3dplugin\plugin.h(4) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
npp_gate.cpp
..\engine\np3DPlugin\npp_gate.cpp(5) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
npn_gate.cpp
..\engine\np3DPlugin\npn_gate.cpp(5) : fatal error C1083: Cannot open include file: 'npplat.h': No such file or directory
np_entry.cpp
..\engine\np3DPlugin\np_entry.cpp(6) : fatal error C1083: Cannot open include file: 'npplat.h': No such file or directory
np3DPlugin_p.c
..\engine\np3DPlugin\np3DPlugin_p.c(86) : fatal error C1189: #error : You need a Windows 2000 or later to run this stub because it uses these features:
np3DPlugin_i.c
np3DPlugin.cpp
dlldata.c
..\engine\np3DPlugin\dlldata.c(22) : error C2065: 'np3DPlugin' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(27) : error C2146: syntax error : missing ';' before identifier 'PROXYFILE_LIST_START'
..\engine\np3DPlugin\dlldata.c(27) : error C2146: syntax error : missing ';' before identifier 'REFERENCE_PROXY_FILE'
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(32) : error C2146: syntax error : missing ';' before identifier 'DLLDATA_ROUTINES'
..\engine\np3DPlugin\dlldata.c(32) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(32) : error C2065: 'aProxyFileList' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(32) : error C2065: 'GET_DLL_CLSID' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(35) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(35) : error C2078: too many initializers
..\engine\np3DPlugin\dlldata.c(35) : error C2143: syntax error : missing ';' before '}'
ax3DPlugin.cpp
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(116) : warning C4581: deprecated behavior: '"apartment"' replaced with 'apartment' to process attribute
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : error C2337: 'support_error_info' : attribute not found
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : error C2337: 'registration_script' : attribute not found
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : fatal error C1903: unable to recover from previous error(s); stopping compilation
constructorSimpleMesh.cc
I am using Beyond Compare to bring over the files and using vs2005 pro to compile. Any pointers on where to start?
08/10/2007 (10:08 pm)
I get this when trying to compile.....np3DPluginFF_p.c
..\engine\np3DPluginFF\np3DPluginFF_p.c(85) : fatal error C1189: #error : You need a Windows 2000 or later to run this stub because it uses these features:
np3DPluginFF_i.c
stdafx.cpp
plugin.cpp
..\engine\np3DPlugin\plugin.cpp(3) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
nsScriptablePeer.cpp
c:\test\tge_1_5_2\engine\np3dplugin\plugin.h(4) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
npp_gate.cpp
..\engine\np3DPlugin\npp_gate.cpp(5) : fatal error C1083: Cannot open include file: 'pluginbase.h': No such file or directory
npn_gate.cpp
..\engine\np3DPlugin\npn_gate.cpp(5) : fatal error C1083: Cannot open include file: 'npplat.h': No such file or directory
np_entry.cpp
..\engine\np3DPlugin\np_entry.cpp(6) : fatal error C1083: Cannot open include file: 'npplat.h': No such file or directory
np3DPlugin_p.c
..\engine\np3DPlugin\np3DPlugin_p.c(86) : fatal error C1189: #error : You need a Windows 2000 or later to run this stub because it uses these features:
np3DPlugin_i.c
np3DPlugin.cpp
dlldata.c
..\engine\np3DPlugin\dlldata.c(22) : error C2065: 'np3DPlugin' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(27) : error C2146: syntax error : missing ';' before identifier 'PROXYFILE_LIST_START'
..\engine\np3DPlugin\dlldata.c(27) : error C2146: syntax error : missing ';' before identifier 'REFERENCE_PROXY_FILE'
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(32) : error C2146: syntax error : missing ';' before identifier 'DLLDATA_ROUTINES'
..\engine\np3DPlugin\dlldata.c(32) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(32) : error C2065: 'aProxyFileList' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(32) : error C2065: 'GET_DLL_CLSID' : undeclared identifier
..\engine\np3DPlugin\dlldata.c(35) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
..\engine\np3DPlugin\dlldata.c(35) : error C2078: too many initializers
..\engine\np3DPlugin\dlldata.c(35) : error C2143: syntax error : missing ';' before '}'
ax3DPlugin.cpp
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(116) : warning C4581: deprecated behavior: '"apartment"' replaced with 'apartment' to process attribute
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : error C2337: 'support_error_info' : attribute not found
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : error C2337: 'registration_script' : attribute not found
c:\test\tge_1_5_2\engine\np3dplugin\ax3DPlugin.h(125) : fatal error C1903: unable to recover from previous error(s); stopping compilation
constructorSimpleMesh.cc
I am using Beyond Compare to bring over the files and using vs2005 pro to compile. Any pointers on where to start?
#6
In addition, I'm pretty sure you are trying to build the np3DPluginFF project (Firefox only), rather than the np3DPlugin project (IE + Firefox). The FF only plugin just plain doesn't work (I've deleted that entirely from my version of the workspace), so you might want to build the combined ActiveX + Netscape plugin that's in the np3DPlugin project.
08/13/2007 (8:23 am)
I'm afraid I've only done this with Visual Studio 2003 (via the VC7 project) and Xcode. I didn't make any attempt to update the VC2005 or VC6 project to work with Torque 1.5. You could look at the changes I made from the 1.4.2 to 1.5 versions of the VC7 project and apply the same things to the VC2005 project. If I recall it was mostly just adding some additional files that were new to 1.5.In addition, I'm pretty sure you are trying to build the np3DPluginFF project (Firefox only), rather than the np3DPlugin project (IE + Firefox). The FF only plugin just plain doesn't work (I've deleted that entirely from my version of the workspace), so you might want to build the combined ActiveX + Netscape plugin that's in the np3DPlugin project.
Torque Owner Gordon Marsh
Do the commandToServer and commandToClient functions use TCP by any chance while the NetEvent functionality (which I think is used to send the datablocks to load the mission) use UDP?
Could this be a reason why I see errors at the mission load stage when Torque is a web plugin, but not when sending commandToServer messages?
Gords