Game Development Community

TSE "Milestone 3.5" Update

by Kyle Carter · in Torque Game Engine Advanced · 06/30/2006 (11:06 am) · 246 replies

Hi guys,

We've checked the next TSE update into CVS. It's NOT Milestone 4 - so no fancy lighting - but it does include many bugfixes, a new vastly more efficient rendering infrastructure (ported from Marble Blast Ultra), way faster skinning, and the first drop of the new Atlas codebase.

Brian has more complete info on the delta in this update, and should be posting it sometime in the not too distant future - I just wanted to let you guys know what was up ASAP. :)

Please note that some parts of this are still a little rough, and the new Atlas codebase does not yet have the full complement of art tools, but everything is functional and ready to use.

This thread is for posting general feedback on the release and collaborating on any bugs that might come up. Please be patient, as here in the States we're just about to go into a 4 day weekend - so responses might be a little slow. But we are committed to making everything work 100%, so definitely let us know what your experiences are!

Regards,
Ben Garney
Torque Technologies Director
#81
07/02/2006 (12:06 am)
Thanks Ben for the batch rendering :)
I spawned a few friends for this event.

[IMG]http://img122.imageshack.us/img122/1861/base000388790dn.th.png[/IMG]

650 garden gnomes @ 1.5 million polygons in gnomes alone, (close to 1.75 million in total) down to 16fps but dang is it sweet :) Ignore the lack of lighting for some reason the Red and blue lighting channels have reversed themselves and we cant figure out why....so I am waiting to finish lighting until MS4

On a side note we are having some serious trouble getting atlas 2 to work I made a post in the bug report forum if you have a chance to look at it.

www.garagegames.com/mg/forums/result.thread.php?qt=47021

Thanks for helping us out :)
#82
07/02/2006 (1:27 am)
Try having them animated Jesse and your numbers will drastically change :p Unless you plan to use static gnomes.
#83
07/02/2006 (3:12 am)
Thanks Bryan, your project worked perfectly

Is the atlas supposed to not work?
#84
07/02/2006 (4:48 am)
@Robert

Quote:
Just add an ampersand to the relevant line and the problem goes away. The line should look like:


adio->setCallback(this, &AtlasTOC::cbOnChunkWriteComplete, key);

I'll make sure it gets into CVS before I go home today.

for VS2005 you need to change that in \engine\atlas\core\atlasresourcetoc.h(465)
#85
07/02/2006 (10:45 am)
Thank you Im trying this now...so what you saying is this should work properly with the updated file you gave me...thank you even if this doesnt work you, guyz have all been awsome in helping me!!

Bobby leighton
#86
07/02/2006 (11:04 am)
Is the directx9 lib folder supposed to be empty?
#87
07/02/2006 (11:22 am)
Also, i'm still getting errors after fixing the bit that Florian says just a few posts up:

Error	1	error LNK2005: _malloc already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	2	error LNK2005: _calloc already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	3	error LNK2005: _realloc already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	4	error LNK2005: _free already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	5	error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	6	error LNK2005: __invoke_watson already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	7	error LNK2005: __crt_debugger_hook already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	8	error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	9	error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	10	error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	11	error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	12	error LNK2005: __initterm_e already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	13	error LNK2005: __configthreadlocale already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	14	error LNK2005: __encode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	15	error LNK2005: __decode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	16	error LNK2005: _sprintf already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	17	error LNK2005: __errno already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	18	error LNK2005: ___xi_a already defined in MSVCRTD.lib(cinitexe.obj)	LIBCMTD.lib	
Error	19	error LNK2005: ___xi_z already defined in MSVCRTD.lib(cinitexe.obj)	LIBCMTD.lib	
Error	20	error LNK2005: ___xc_a already defined in MSVCRTD.lib(cinitexe.obj)	LIBCMTD.lib	
Error	21	error LNK2005: ___xc_z already defined in MSVCRTD.lib(cinitexe.obj)	LIBCMTD.lib	
Error	22	error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	23	error LNK2005: __XcptFilter already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	24	error LNK2005: __lock already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	25	error LNK2005: __unlock already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	26	error LNK2005: _vsprintf already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	27	error LNK2005: _mainCRTStartup already defined in MSVCRTD.lib(crtexe.obj)	LIBCMTD.lib	
Error	28	error LNK2005: ___set_app_type already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	29	error LNK2005: __CrtDbgReportW already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	30	error LNK2005: _wcstombs already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	31	error LNK2005: __stricmp already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	32	error LNK2005: _atoi already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	33	error LNK2005: __vswprintf already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	34	error LNK2005: _getenv already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	35	error LNK2005: _tolower already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	36	error LNK2005: ___iob_func already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	37	error LNK2005: _vprintf already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	38	error LNK2005: _fflush already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	39	error LNK2005: __strnicmp already defined in MSVCRTD.lib(MSVCR80D.dll)	LIBCMTD.lib	
Error	42	fatal error LNK1169: one or more multiply defined symbols found	d:\tse\example\TSE_DEBUG.exe	1
#88
07/02/2006 (11:43 am)
You're including more than one C runtime lib. Make sure there's only one of MSVCRTD.lib/MSVCR80D.lib/LIBCMTD.lib in your project lib settings.
#89
07/02/2006 (11:47 am)
Re: is Atlas working? - the original Atlas code is still in there and it still works fine. If you are already using the first version of Atlas, you can merge to this codebase and it'll all work just fine. There is also a preview of the Atlas rewrite I've been working on, which works but hasn't been tested as thoroughly as the first version (it's newer - physically impossible for me to test it that much :P).

The original Atlas is in the atlas directory, the rewrite is in the subdirectories under the atlas directory.

Oh - thanks for helping each other out so much here. We've got a really awesome community here at GG. :)
#90
07/02/2006 (12:27 pm)
I'm having issues with linker errors as well
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoUninitialize@0 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::FreeIDxDiagContainer(void)" (?FreeIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoUninitialize@0
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoCreateInstance@20 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoCreateInstance@20
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__CoInitialize@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::InitIDxDiagContainer(void)" (?InitIDxDiagContainer@DXDiagNVUtil@NVDXDiagWrapper@@QAEJXZ)
getdxver.obj : error LNK2001: unresolved external symbol __imp__CoInitialize@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantClear@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantClear@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantInit@4
getdxver.obj : error LNK2019: unresolved external symbol __imp__SysStringLen@4 referenced in function "long __cdecl GetDirectXVersionViaDxDiag(unsigned long *,unsigned long *,unsigned short *)" (?GetDirectXVersionViaDxDiag@@YAJPAK0PAG@Z)
../example/TSE.exe : fatal error LNK1120: 6 unresolved externals

I'm using the VC7 project as VC8's is apparently broken, and i'm not seeing anything else i can do unless i missed some small detail.
Using VC2k5 Express.
(still, only 12 is better than the 61 i was getting prior)
#91
07/02/2006 (12:29 pm)
Make sure you're including the OLE lib. I think it's ole32.lib or something like that - if you open the vc7 projectfile in a text editor, you can easily find the lib list and copy from there.
#92
07/02/2006 (1:04 pm)
I've got down to 6 errors when compiling, which I can't seem to make go away. (I had it at 1 error with a missing lib, but then it went up to 12. :( )

DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantClear@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantClear@4
DXDiagNVUtil.obj : error LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function "public: long __thiscall NVDXDiagWrapper::DXDiagNVUtil::GetProperty(struct NVDXDiagWrapper::IDxDiagContainer *,unsigned short const *,class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > *)" (?GetProperty@DXDiagNVUtil@NVDXDiagWrapper@@QAEJPAUIDxDiagContainer@2@PBGPAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
getdxver.obj : error LNK2001: unresolved external symbol __imp__VariantInit@4
getdxver.obj : error LNK2019: unresolved external symbol __imp__SysStringLen@4 referenced in function "long __cdecl GetDirectXVersionViaDxDiag(unsigned long *,unsigned long *,unsigned short *)" (?GetDirectXVersionViaDxDiag@@YAJPAK0PAG@Z)
../example/TSE.exe : fatal error LNK1120: 3 unresolved externals
Build log was saved at "file://c:\TSE\tse_3.5\tse\engine\out.vc7.win32.release\BuildLog.htm"
Torque Shader Engine - 6 error(s), 6 warning(s)
I added the ole32.lib to the Addition Dependances, which got the errors from 12 to 6. Any help would be helpful. :P :)
#93
07/02/2006 (1:05 pm)
I searched MSDN for VariantClear, the first function that it failed to link to, and got this page msdn2.microsoft.com/en-us/library/ms221165.aspx. It says at the bottom:

Quote:
Windows NT/2000: Requires Windows NT 3.1 or later. Windows 95/98: Requires Windows 95 or later. Header: Declared in oleauto.h. Library: Use oleaut32.lib.

So make sure you link oleaut32.lib.

PS - this is how to solve 90% of weird linker problems. :)
#94
07/02/2006 (1:08 pm)
Are you using vista by any chance? i had the issue that i setup VS 2005 correctly but it didnt link against the standard libs. followed the guides around and never got it working ... until i actually configured VC 2005 to run with admin rights ... it worked then

otherwise you can just manually include all the standard lib files
#95
07/02/2006 (1:14 pm)
By including oleaut32.lib instead of ole32.lib I get 7 errors instead of 6.
Using Windows XP Pro, not Vista yet. :)
#96
07/02/2006 (1:15 pm)
Do both.
#97
07/02/2006 (1:22 pm)
Just compiled with them both. :)

Torque Shader Engine - 0 error(s) !
Thank you !

Now got to order that new graphics card with more speed and RAM. Terrain is all black for my 128MB card, as explained above. :)
#98
07/02/2006 (1:54 pm)
Awsome, managed to get it compiled for me as well. :)

Edit: runs really well, but the terrain is white :x
#99
07/02/2006 (2:15 pm)
White terrain has to do with the Blended Terrain and the texture paths are hardcoded (currently).

Although, Old Atlas files aren't working for me either currently.. but then again theres alot of issues in our codebase which we're trying to figure out if it is us or some real bugs..
#100
07/02/2006 (3:20 pm)
Ok I tried that but to no avail...I did notice that in the project properties that there is no listing for RESOURCES where there used to be..???.so i tried to build the tse LIBS first I though maybe tse needed these to compile after I did that I get this for errors now.....

Linking...
LINK : warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
main.obj : error LNK2019: unresolved external symbol "class ResourceInstance * __cdecl constructAtlasFileResource(class Stream &)" (?constructAtlasFileResource@@YAPAVResourceInstance@@AAVStream@@@Z) referenced in function "bool __cdecl initLibraries(void)" (?initLibraries@@YA_NXZ)
waterBlock.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
tsMesh.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
atlasInstance.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
precipitation.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
interiorRender.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
sky.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
terrData.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
shapeBase.obj : error LNK2019: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z) referenced in function "public: virtual bool __thiscall ShapeBase::prepRenderImage(class SceneState *,unsigned int,unsigned int,bool)" (?prepRenderImage@ShapeBase@@UAE_NPAVSceneState@@II_N@Z)
fxFoliageReplicator.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
fxSunLight.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
particleEmitter.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInstManager::addInst(struct RenderInst *)" (?addInst@RenderInstManager@@QAEXPAURenderInst@@@Z)
waterBlock.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
tsMesh.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
atlasInstance.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
sceneGraph.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
sceneState.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
sky.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
terrData.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
precipitation.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
interior.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
interiorInstance.obj : error LNK2019: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A) referenced in function "void __cdecl 'dynamic initializer for 'gConsoleFunctionGroupInteriors__GroupBegin''(void)" (??__EgConsoleFunctionGroupInteriors__GroupBegin@@YAXXZ)
interiorRender.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
shapeBase.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
fxFoliageReplicator.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
fxSunLight.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
particleEmitter.obj : error LNK2001: unresolved external symbol "class RenderInstManager gRenderInstManager" (?gRenderInstManager@@3VRenderInstManager@@A)
particleEmitter.obj : error LNK2019: unresolved external symbol "public: void __thiscall RenderInst::calcSortPoint(class SceneObject *,class Point3F const &)" (?calcSortPoint@RenderInst@@QAEXPAVSceneObject@@ABVPoint3F@@@Z) referenced in function "protected: void __thiscall ParticleEmitter::prepBatchRender(class Point3F const &)" (?prepBatchRender@ParticleEmitter@@IAEXABVPoint3F@@@Z)
tsMesh.obj : error LNK2001: unresolved external symbol "public: void __thiscall RenderInst::calcSortPoint(class SceneObject *,class Point3F const &)" (?calcSortPoint@RenderInst@@QAEXPAVSceneObject@@ABVPoint3F@@@Z)
sceneState.obj : error LNK2019: unresolved external symbol "public: void __thiscall RenderInstManager::clear(void)" (?clear@RenderInstManager@@QAEXXZ) referenced in function "public: void __thiscall SceneState::renderCurrentImages(void)" (?renderCurrentImages@SceneState@@QAEXXZ)
sceneState.obj : error LNK2019: unresolved external symbol "public: void __thiscall RenderInstManager::render(void)" (?render@RenderInstManager@@QAEXXZ) referenced in function "public: void __thiscall SceneState::renderCurrentImages(void)" (?renderCurrentImages@SceneState@@QAEXXZ)
sceneState.obj : error LNK2019: unresolved external symbol "public: void __thiscall RenderInstManager::sort(void)" (?sort@RenderInstManager@@QAEXXZ) referenced in function "public: void __thiscall SceneState::renderCurrentImages(void)" (?renderCurrentImages@SceneState@@QAEXXZ)
../example/TSE_DEBUG.exe : fatal error LNK1120: 7 unresolved externals
Creating browse information file...
Microsoft Browse Information Maintenance Utility Version 8.00.50727
Copyright (C) Microsoft Corporation. All rights reserved.
Build log was saved at "file://c:\tse\engine\out.vc7.win32.debug\BuildLog.htm"
Torque Shader Engine - 33 error(s), 7 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Im lost....I would be happy to pay someone 5 bucks just to take the five mintues to compile me an .exe so I may get to work....please or maybe a way to get rid of these errors...please HELP!!