Previous Blog Next Blog
Prev/Next Blog
by date

Torque Build Environment (TBE) Changes Course

Torque Build Environment (TBE) Changes Course
Name:Chris Calef
Date Posted:Dec 07, 2005
Rating:4.5 out of 5
Public:YES
Comments:YES
RSS Feed:GarageGames Blog feedor Subscribe with .
Profile Page:View profile page for Chris Calef

Blog post
Well, hello everyone! Sorry for my recent lack of .planning: don't think I'm not working on anything cool -- I'm just not at a stage where I'm ready to talk!

However, on the subject of TBE (the free Torque Build Environment, for those who don't know), there has been a major shift in direction and Jeff asked me to inform the community about it.

To cut directly to the chase: coinciding with the release of TGE 1.4, Garage Games is now officially recommending new users (and anyone else looking for a free compiler) to download Microsoft's Visual Studio 2005 Express, rather than using the GCC/Eclipse package we released last year.

If you've heard enough and you want to get started immediately,
Go Here For Instructions. (If it asks you to login and it doesn't work, keep trying, using your regular GG login information.)

If you want to know why we've made this decision, read on:



The reasons for this change are numerous. First and foremost, last year Visual Studio wasn't free, this year it is. (Unfortunately it is only free for a year, but it is most likely going to be quite cheap after that, and there will still be free options available; if there are problems next year we'll deal with them then. )

Given that the price to the end user is the same (free), it must be said that the price to Garage Games of maintaining support for an alternate compiler and IDE is significant.

To put it bluntly, for coding in C++, relative to Visual Studio... Eclipse bites. GCC is a pretty good compiler, but it doesn't have a very reliable debugger, and performance varies. A few times I have found dramatic differences in performance, and sometimes hard-to-track bugs, where the difference turned out to be simply that I had compiled my engine with GCC rather than VC++. Yes, these problems can be dealt with, one by one, but they all take extra time, and nobody in the office has a lot of extra time to keep throwing at this issue when there is another free solution sitting right there that works fine.

I hope I'm not breaking the hearts of too many fervent anti-Microsoft freedom fighters out there, (if this is you, what are you doing using Windows anyway??) :-) -- but the fact is, Visual Studio is a really professional product, and it does its job quite well. The debugger works exactly as you would want it to, the intellisense functions do their job, and most importantly, Visual Studio is, with a couple of exceptions, what everybody in the office is using. We can't slow down our own coding by using a second-rate tool, but at the same time we can't adequately support the MinGW/GCC/Eclipse development chain if we're not using it every day.

The release of TGE 1.4 brought this issue directly to the front, as it took several people (in and out of the office) several days of off-and-on work to get through the compiler and linker errors that came up when compiling the new engine under GCC. While this is great fun and all, we would much rather have our work go toward improving Torque.

So, there you have it. If you already have TBE and can't or won't use a Microsoft product no matter what, the issues with compiling TGE 1.4 did get resolved (thanks, everybody who helped!), and you can find instructions here

However, for everyone who wants to go ahead with Visual Studio Express, once again, you can find instructions on TDN here. (Again, if it gives you trouble logging in, try, try again! Ben is working on that. Use your regular GG site username/password.)

Thanks for listening, hope this helps everybody get on the same page! Good luck with it!

Chris

Recent Blog Posts
List:05/14/08 - Fun with BVH Files, in Torque.
03/12/08 - Hello, Goodbye, Israel, and LSystems
04/30/07 - The Grand Canyon is really, really, really big.
12/07/05 - Torque Build Environment (TBE) Changes Course
09/13/05 - Ragdoll Pack Gets Multiple Character Support
04/08/05 - Ragdoll Pack Is SHIPPED!!
02/24/05 - Ragdoll Pack On The Way
01/29/05 - Ragdoll Pack Preview

Submit ResourceSubmit your own resources!

Matthew Langley   (Dec 07, 2005 at 01:02 GMT)
Awesome... another free compiling option. Thanks for all the work you put into getting it to work and posting about it Chris :)

Jeremy Alessi   (Dec 07, 2005 at 01:08 GMT)
Thanks Chris, that was a great explanation!

Paul /*Wedge*/ DElia   (Dec 07, 2005 at 01:28 GMT)
That's fine and well, but I wish there were a more... "instant" way to setup the compiling. I've tried going over those instructions, but have still had no luck getting it to compile.

Chris Calef   (Dec 07, 2005 at 02:01 GMT)
hey, thanks for the feedback!

@Paul: I think one thing that would help a lot (I'll do it when I get back to the office tomorrow) is for somebody to upload the vc7 directory with all of the project changes done, that would eliminate all the errors that have to do with forgetting to follow one of the steps. It's easy to miss a few, there's a lot of little project setup things to deal with. In the meantime feel free to post your errors here, somebody can probably help.

Paul /*Wedge*/ DElia   (Dec 07, 2005 at 02:09 GMT)
I was getting some linker errors before, and I cleared that out and started over, and now I get a 60 some errors along the lines of

winD3DVideo.obj : error LNK2001: unresolved external symbol __imp__EnumDisplaySettingsW@12
winD3DVideo.obj : error LNK2001: unresolved external symbol __imp__DefWindowProcW@16
winD3DVideo.obj : error LNK2001: unresolved external symbol __imp__SetPixelFormat@12
winD3DVideo.obj : error LNK2001: unresolved external symbol __imp__AdjustWindowRect@12


Chris Calef   (Dec 07, 2005 at 02:13 GMT)
I should also mention here, that all knowledgeable visitors should please feel free to make additions and fixes to that wiki page!

I put it up after doing a couple of builds, but I didn't exhaustively test it again -- if you see that I missed something, you are hereby authorized to hit "Edit" on the top menu!

(And while you're at it, feel free to make other contributions to TDN... Wikis are fun!!!)

Chris Calef   (Dec 07, 2005 at 02:16 GMT)
@Paul: that's looking like you didn't get the Platform SDK library directories specified in your torqueDemo project, or you didn't get the Platform SDK installed correctly. Which projects did you set up include and lib directories for?

Paul /*Wedge*/ DElia   (Dec 07, 2005 at 02:42 GMT)
I doubt that's it, because I had different errors before when I messed up the pathname for the directories initially. I have the two include directories and the lib directory both setup properly as far as I can tell. Hopefully a working project file for VSE will get this all cleared up.

David Stewart   (Dec 07, 2005 at 02:51 GMT)
Paul, if its like the errors i'm getting, (argh! i thought i had it fixed) those are probably errors that happen when you are doing the debug version. Is that right?
When I do the release version, i don't get the errors.

Paul /*Wedge*/ DElia   (Dec 07, 2005 at 02:58 GMT)
Nope, this is just the same for either mode, though I would check your settings to make sure they are set to both the release and debug modes.

Chris Calef   (Dec 07, 2005 at 03:37 GMT)
hmm, I had to check to make sure mine works in Debug, too, but it does.

paul, what libraries do you have listed under Torque Demo-->Properties-->Linker-->Input-->Additional Dependencies?

Chris Calef   (Dec 07, 2005 at 04:01 GMT)
@Paul: the reason I ask is there was a step somebody mentioned that I forgot about (it's on the Wiki now, wasn't before):

Right click on Torque Demo in the solution explorer and choose properties. Select Linker > Input, and click on Additional Dependencies. I had to add in "User32.lib", "gdi32.lib" and "Advapi32.lib".

Paul /*Wedge*/ DElia   (Dec 07, 2005 at 04:23 GMT)
Shua! Thank you! That has got it working! Now I have to get to work on porting my old code...
Edited on Dec 07, 2005 04:23 GMT

Jesse (Midhir) Liles   (Dec 07, 2005 at 06:33 GMT)
I agree with this decision, even though I'm sure you guys are all aware that I'm still a fervent anti-Microsoft freedom fighter. I use Windows. I guess that makes me a hipocrite as well.

I am forced to agree with the decision to focus solely on Visual Studio for Windows TGE development, as Visual Studio is really the only time-effective way of developing C++ software in Windows. I don't like it, but it's true.

I would rather take a bullet for GNU than take a check from Microsoft, but, I still have to tip my hat to GG for what was obviously a tough decision to make and is ultimately (IMO) going to be better for the community as a whole.

Chris Calef   (Dec 07, 2005 at 16:50 GMT)
thanks, Midhir! That means a lot coming from you! :-)
Quote:

would rather take a bullet for GNU than take a check from Microsoft

ROFL -- much less write a check to Microsoft... but sometimes swimming downstream is just so much faster! :-)

Diesel   (Dec 07, 2005 at 18:52 GMT)
Quote:

and sometimes hard-to-track bugs, where the difference turned out to be simply that I had compiled my engine with GCC rather than VC++


Please elaborate

Chris Calef   (Dec 07, 2005 at 22:12 GMT)
Well, one in particular comes to mind with the forest pack (I know, it isn't out yet so you can't verify, sorry): my GCC version had a fog-related problem wherein all the nearby trees faded out into gray, and the VC version works fine. Not a slam on GCC, it might be something that was coded wrong and just didn't show up under Visual Studio's compiler for some reason. My point being, however, that stuff like this happens whenever you try to support two significantly different compilers on an ever-changing codebase.

Another option for the future, of course, is to use Microsoft's compiler by itself, which is free and will stay free, and then find another IDE and deal with makefiles. However, for this year by far the least troublesome option is simply using Visual Studio Express.

Ray Noolness Gebhardt   (Dec 08, 2005 at 13:13 GMT)
I know what you mean about different compilers bringing out different issues in a piece of code. That is one reason why I always like to build any code I write on both Windows and Linux. It often helps you find little bugs that you would not ordinarily find. Another cool thing is that if you get used to writing code that you know will work on the Microsoft compiler and GCC, its highly likely your code will also work when a new version of a compiler comes out.

Its all a matter of preference and resources though. I find that sometimes its not convenient or possible to do what I outlined in the paragraph above. Sometimes real life constraints like time, money or my favorite, laziness, take control. Laziness meaning I can't be bothered to compile my code on Linux today. ;)

Chris Calef   (Dec 08, 2005 at 20:10 GMT)
Yeah, definitely a good point, Ray. Just comes down to resources I guess. I definitely hope people still run torque on gcc no matter what, it's always nice to have backup systems!

Ron Yacketta   (Dec 09, 2005 at 15:56 GMT)
Quote:

I definitely hope people still run torque on gcc no matter what


Me to, or there will be no Linux/Mac support! ;)

Chris Calef   (Dec 09, 2005 at 19:31 GMT)
ha ha, right, well, let me amend that, "run torque on gcc under windows"

Anton Bursch   (Dec 07, 2006 at 03:10 GMT)
...
Edited on Dec 07, 2006 10:18 GMT

Shadow Voyage   (Dec 10, 2006 at 03:06 GMT)
got a couple of seemingly simple errors that are driving me nuts anyone, have some ideas?

7>c:\torque\sdk\engine\platformwin32\winstrings.cc(197) : error C2065: 'str1' : undeclared identifier
7>c:\torque\sdk\engine\platformwin32\winstrings.cc(197) : error C2065: 'str2' : undeclared identifier

7>BSCMAKE: error BK1506 : cannot open file '..\engine\out.VC8.DEBUG\volLight.sbr': No such file or directory

Compiling using VS2005 express edition
Edited on Dec 10, 2006 03:12 GMT

Christine Lee   (Mar 24, 2007 at 16:05 GMT)
Hi,
I think the patch for VS C 2005 is corrupt.

I've been studying the game engine for a few months trying to prepare to actually write some code/script.

I've followed the tutorials to configure VS C Express 2005 to use it as the compiler of choice. I ran into a problem where when I attempt to apply the patch, http://tdn.garagegames.com/wiki/images/e/e8/TGE_VS2005.zip, it says the file is corrupted.

I downloaded the file to a few different places on my desktop and attempted to extract it to the c:\torque directory. However after three different downloads to various spots on my computer, when I extract I get the same error, http://tdn.garagegames.com/wiki/images/e/e8/TGE_VS2005.zip. The archive is either in an unknown format or damaged. I use both RAR and ZIP.

I'm willing to believe I've done something wrong, but just in case the file is actually corrupt, I'd like to have access to a file that is not.

Thank you very much for all the work you put into getting this together and working with another "free" compiler.

Christine

Tiago Correia   (May 04, 2007 at 08:21 GMT)   Resource Rating: 4
Hi ,

I'm using TGE 1.4.2 and i'm trying to compile de Troke Demo project in Visual C++ 2005 Express and i get the 15 errors in the linking phase, like these:


Linking...
guiDirectoryFileListCtrl.obj : error LNK2019: unresolved external symbol "public: static class AbstractClassRep * __cdecl GuiListBoxCtrl::getStaticClassRep(void)" (?getStaticClassRep@GuiListBoxCtrl@@SAPAVAbstractClassRep@@XZ) referenced in function "public: static class AbstractClassRep * __cdecl GuiDirectoryFileListCtrl::getParentStaticClassRep(void)" (?getParentStaticClassRep@GuiDirectoryFileListCtrl@@SAPAVAbstractClassRep@@XZ)

guiDirectoryFileListCtrl.obj : error LNK2019: unresolved external symbol "public: __thiscall GuiListBoxCtrl::GuiListBoxCtrl(void)" (??0GuiListBoxCtrl@@QAE@XZ) referenced in function "public: __thiscall GuiDirectoryFileListCtrl::GuiDirectoryFileListCtrl(void)" (??0GuiDirectoryFileListCtrl@@QAE@XZ)


...

../example/torqueDemo_DEBUG.exe : fatal error LNK1120: 14 unresolved externals
Build log was saved at "file://c:\mygame\engine\out.VC8.DEBUG\BuildLog.htm"
Torque Demo - 15 error(s), 0 warning(s)



I used the patch like it is explained in http://tdn.garagegames.com/wiki/Torque/vs2k5 (like Chris Calef said)

Can anyone tell me what is the best IDE to work with TGE (Eclipse or Visual Studio) in 2007/2008?


Any help would be appreciated

Tiago Correia   (May 04, 2007 at 15:09 GMT)   Resource Rating: 4
Hi again,

The problem is solved ! I think the error i made was when i used the patch i overwrite all the files in extraction to my Torke directory. I tryed to overwrite only that mencioned in http://tdn.garagegames.com/wiki/Torque/vs2k5 and it works!

Best regards,
Tiago

You must be a member and be logged in to either append comments or rate this resource.