Game Development Community

dev|Pro Game Development Curriculum

Torque Build Environment (TBE) Changes Course

by Chris Calef · 12/06/2005 (4:46 pm) · 26 comments

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
Page «Previous 1 2
#1
12/06/2005 (5:02 pm)
Awesome... another free compiling option. Thanks for all the work you put into getting it to work and posting about it Chris :)
#2
12/06/2005 (5:08 pm)
Thanks Chris, that was a great explanation!
#3
12/06/2005 (5:28 pm)
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.
#4
12/06/2005 (6:01 pm)
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.
#5
12/06/2005 (6:09 pm)
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
#6
12/06/2005 (6:13 pm)
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!!!)
#7
12/06/2005 (6:16 pm)
@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?
#8
12/06/2005 (6:42 pm)
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.
#9
12/06/2005 (6:51 pm)
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.
#10
12/06/2005 (6:58 pm)
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.
#11
12/06/2005 (7:37 pm)
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?
#12
12/06/2005 (8:01 pm)
@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".
#13
12/06/2005 (8:23 pm)
Shua! Thank you! That has got it working! Now I have to get to work on porting my old code...
#14
12/06/2005 (10:33 pm)
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.
#15
12/07/2005 (8:50 am)
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! :-)
#16
12/07/2005 (10:52 am)
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
#17
12/07/2005 (2:12 pm)
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.
#18
12/08/2005 (5:13 am)
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. ;)
#19
12/08/2005 (12:10 pm)
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!
#20
12/09/2005 (7:56 am)
Quote:I definitely hope people still run torque on gcc no matter what

Me to, or there will be no Linux/Mac support! ;)
Page «Previous 1 2