Game Development Community

TGEA MS 4.2 Release

by Brian Ramage · in Torque Game Engine Advanced · 01/23/2007 (4:17 pm) · 119 replies

Hey guys,

MS 4.2 should be up now. Like I said in my blog post, no new features, it was mostly work fixing
memory leaks, fixing bugs, cleaning up some areas, etc. Here's a list of some of the fixes:


- Fixed a bunch of memory leaks. Pretty much everything major should be fixed now, although
I don't believe the Atlas memory leak fixes made it into 4.2, so that will be in RC1.

- setTexture() optimization - reduces redundant texture states
- Xinput controller connected query fix
- Atlas dynamic lighting enabled
- Fixed Load/SaveGuiDlg support.
- Killed "newMission" loading from main menu.
- Fixed project files for VC2003 and VC2005
- Double sided Material fix
- Misc lighting fixes and updates
- Detail maps work on legacy terrain


Here is a list of known major and intermediate issues with this build:

- terrain painting error - causes crash when painting with "set empty" brush
- crash when editing camera spline path
- deleting SimGroup "environment" causes crash
- occasional crash when changing resolutions
- going into mission editor in walkthrough drops camera inside waypoint marker
- legacy terrain issues with tops of peaks missing in editor mode
- lighting messed up when switching between fullscreen and windowed

If you are seeing bugs that are not on this list, please go ahead and post them in the "Bugs" area on the forums. If they are significant and reproducable, we'll get to them for RC1 which we're hoping we can get to you in a week or two. That release will include a "default material" feature so you don't have to create a Material for every single texture in your game.

In addition to the bug fixing, we're working on fleshing out the docs more. If you have any requests for areas of the engine that you'd like to see more documentation on, go ahead and post them and we'll try and hit as many as we can.

December 2006 DirectX SDK - I just wanted to let you all know that there are issues between TGEA and that DXSDK. Those issues won't be resolved until after TGEA goes 1.0. Please use the October 2006 SDK until then.
#41
01/25/2007 (2:48 pm)
OK - after spending the entire evening with Ben - super many thanks!!! - we managed to find the cause of the white terrain.

It does show up as a very weird artifact on the terrain, so there might be a bug hidden in the lighting system.

First a little video to show the problem in more detail:

www.airacepilots.com/for_ben/TerrainLightProblem.wmv

The problem comes from the terrainLight datablock shipped with MS 4.1 and 4.2. Combined with the new batcher in Atlas, the above squared lighting shows up with some parts of the terrain being lit/unlit.

This only happens when (in the terrainLight) datablock has a brightness of 1 with a low radius (tested with the default 30).

When the radius is changed to 2000, then the entire terrain is lit up correctly. And when turning down the brightness it all looks as expected.

So John Kabus should maybe take a look at the code together with Ben? to see if there is a deeper problem/bug here. How a light of radius 30 can have this effect is beyond me :-)

Again a big thanks to Ben
#42
01/25/2007 (3:13 pm)
Glad you got it working, Thomas! :)

(I've forwarded this issue over to John Kabus for review.)
#43
01/25/2007 (3:15 pm)
Heya,

Im currently getting 41 errors on compile - mostly related to this windows.h file:

j:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\TGEA\tse\engine\platformWin32/platformWin32.h(20) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

Im compiling with Visual C++ 2005 and have tried both vc7 and 8 versions

I have the October Direct X SDk and my machine is running x64.

I can post all the errors if required, is it anything to worry about? The engine appears to run ok, or is it simply related to the fact im running x64?

Link to build Log: http://homepages.ihug.co.nz/~janter/addiktive/BuildLog.htm

Cheers

addikt
#44
01/25/2007 (3:39 pm)
Make sure you have the platform SDK installed properly. We have an upcoming doc with details on this (will be part of next release I believe).
#45
01/25/2007 (4:28 pm)
Addiktive, this is a non-final version of the doc:
http://docs.google.com/View?docid=dxwrbvc_2fj7jgr
#46
01/25/2007 (5:22 pm)
@Cornell - are you getting the mPlane crash in the stock missions, or just in your own custom levels? Is the issue just a .dif file? If so, email to me and I'll take a look at it.

@Billy - I tried that, and was not able to reproduce. Have you changed the default setitngs on your graphics card? Forced FSAA on? Changed the default "quality" setting?

@Pat- those screenshots of the include and library directory setup are incorrect - the DXSDK directories should be at the top of those lists. Including links to the Platform SDK and October 2006 SDK would also be useful.
#47
01/25/2007 (6:36 pm)
Thanks guys I managed to get it compiled without any errors. I needed to reinstall and correct the paths to the Platform SDK.

The other question I have is in regard to that white square issue on atlas.

We dont get a completely white texture, but have the occasional white or blue square in random locations that change as you move around them.

Im not sure if its related to the problem thomas had.

Heres a picture, its random as to the location and number of the squares each time:

http://i62.photobucket.com/albums/h108/addictive1/Legend/sqaures.jpg

cheers

addikt
#48
01/25/2007 (7:57 pm)
@ Thomas - I'll take a look at it.
#49
01/25/2007 (8:03 pm)
The stock missions work fine.
Tried brand new land piece with nothing in it and soon as kork even gets near it comes up with Mplane error, if I drop him into the void nothing happens.


EDIT*
Welp its not Kork doing it figured out how to get the blueguy imported into TSE and he doing the same thing soon as he drops near the landform.
#50
01/25/2007 (8:47 pm)
@Brian
Oh my god, small things can mess things up totally.
My detail texture file that was included in the demo was corrupted in some way.
When i used one of my own files, every tiny little detail showed without no problems.
A big thanks for all the help, i have learned a lesson :) !!
#51
01/25/2007 (8:54 pm)
I just tried a new mission file just in case mine was corrupted. It still failed with mplane.h error and I notice there are new things in the script for new missions looks like some particle type stuff.

EDIT*
Tried to run debug on my laptop but coming up with some invalid configuration but the precompile works.
#52
01/26/2007 (5:20 am)
On the default options / audio panel (tested via the demo) the upper part is cut off. Was like that with last build didn't know if anyone else had seen that.
#53
01/26/2007 (6:10 am)
Cornell, have you tried this?
#54
01/26/2007 (9:41 am)
Yeah I figured it was something about not having a C++ installed or the SDK's. Didnt have time this morning before running off to work.

Also are there any type of issues with Dual Core processor's with TGE/TSEA, which is why I wanted to try it on my single core laptop. Just incase it was causeing some crazy interger/floating point calculation.
#55
01/26/2007 (9:52 am)
@Cornell: Can you post your call stack for this mPlane crash?

@addiktive: What happens if you go to AtlasClipMapBatcher::render() and comment out each one of the lines? Can you localize the rendering problems to a specific function call being present?
#56
01/26/2007 (10:14 am)
Still learning programming, so bear with me but can this be done in Torsion which is how I run everything except for master compiling the engine which I use Visual C++ express?
#57
01/26/2007 (11:16 am)
Here's a vote for Atlas being a higher priority. The main reason (beyond price) I went with TSE is because of the support for large terrain. There are a lot of engines out there but not many that can do large terrain.
#58
01/26/2007 (1:06 pm)
Where exactly is the AtlasClipMapBatcher::render() line? Which file is it in?

I also vote for atlas being a high priority, its the main reason we chose Torque.

Cheers

addikt
#59
01/26/2007 (1:46 pm)
OK noob question time, how does one go about getting a call stack report? Can it be done in Torsion or Is there a tutorial that will show me how to run TSE in VS C++ express just like in torsion.

*edit
Tried it on my laptop still getting mplane error. Still trying to setup a stack report.
#60
01/26/2007 (4:35 pm)
Well think this is what your looking for Ben. Ran the debug in VC++ express and it set a break for me and spit this out in the call stack window.

ntdll.dll!7c901230()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
> TSE_DEBUG.exe!Platform::debugBreak() Line 15 + 0x8 bytes C++
TSE_DEBUG.exe!PlatformAssert::process(PlatformAssert::Type assertType=Fatal, const char * filename=0x00dad2e4, unsigned int lineNumber=249, const char * message=0x00dad30c) Line 89 C++
TSE_DEBUG.exe!PlatformAssert::processAssert(PlatformAssert::Type assertType=Fatal, const char * filename=0x00dad2e4, unsigned int lineNumber=249, const char * message=0x00dad30c) Line 109 + 0x25 bytes C++

TSE_DEBUG.exe!PlaneF::set(const Point3F & k={...}, const Point3F & j={...}, const Point3F & l={...}) Line 252 C++
TSE_DEBUG.exe!PlaneF::PlaneF(const Point3F & j={...}, const Point3F & k={...}, const Point3F & l={...}) Line 107 C++
TSE_DEBUG.exe!AtlasGeomChunk::registerConvex(const unsigned short offset=21, Convex * convex=0x03860ed4, AtlasInstance2 * object=0x03848350, const Box3F & queryBox={...}) Line 1072 + 0x17 bytes C++
TSE_DEBUG.exe!AtlasGeomChunk::buildCollisionInfo(const Box3F & box={...}, Convex * c=0x03860ed4, AbstractPolyList * poly=0x00000000, AtlasInstance2 * object=0x03848350) Line 933 C++
TSE_DEBUG.exe!AtlasInstanceGeomTOC::buildCollisionInfo(const Box3F & box={...}, Convex * c=0x03860ed4, AbstractPolyList * poly=0x00000000, AtlasInstance2 * object=0x03848350) Line 560 + 0x1f bytes C++
TSE_DEBUG.exe!AtlasInstance2::buildConvex(const Box3F & box={...}, Convex * convex=0x03860ed4) Line 581 C++
TSE_DEBUG.exe!Convex::updateWorkingList(const Box3F & box={...}, const unsigned int colMask=25256092) Line 460 + 0x31 bytes C++
TSE_DEBUG.exe!Player::updateWorkingCollisionSet() Line 3355 C++
TSE_DEBUG.exe!Player::processTick(const Move * move=0x03710d28) Line 1152 C++
TSE_DEBUG.exe!ProcessList::advanceObjects() Line 231 + 0x43 bytes C++
TSE_DEBUG.exe!ProcessList::advanceClientTime(unsigned int timeDelta=4) Line 165 C++
TSE_DEBUG.exe!clientProcess(unsigned int timeDelta=4) Line 593 + 0xe bytes C++
TSE_DEBUG.exe!DemoGame::processTimeEvent(TimeEvent * event=0x0012fc88) Line 732 + 0x9 bytes C++
TSE_DEBUG.exe!GameInterface::processEvent(Event * event=0x0012fc88) Line 72 + 0x13 bytes C++
TSE_DEBUG.exe!GameInterface::postEvent(Event & event={...}) Line 154 + 0x13 bytes C++
TSE_DEBUG.exe!TimeManager::process() Line 1012 + 0x19 bytes C++
TSE_DEBUG.exe!DemoGame::main(int argc=1, const char * * argv=0x01843608) Line 543 C++
TSE_DEBUG.exe!run(int argc=1, const char * * argv=0x01843608) Line 885 + 0x1c bytes C++
TSE_DEBUG.exe!main(int argc=1, const char * * argv=0x01843608) Line 963 + 0xd bytes C++
TSE_DEBUG.exe!__tmainCRTStartup() Line 318 + 0x19 bytes C
TSE_DEBUG.exe!mainCRTStartup() Line 187 C
kernel32.dll!7c816fd7()