Wednesday, August 03, 2011

The new Hell

We recently thought it was a good time to upgrade the tools and library code that we use. So we went on and upgraded to VS 2010, used the latest version of OGRE 1.8 (un-stable), upgraded almost all other dependent libraries like PhysX, NxOgre, OgreVideo, Theora, ogg, vorbis, ...etc. Recompiled all the ones that had the source code available using VS 2010, quickly fixed the errors related to porting and put all where they belonged and tried to run the game with the old levels we had. Guess what, nothing worked!

Serious crashes and hangs everywhere.

Hmm... it might be related to the new OGRE we thought, maybe because of the way we have changed the use of Threading? Maybe an incompatibility with the new OpenAL? Can it be related to VS 2010? So we started.... we started to try out all different permutations possible with the libraries, ... the new code with the old OGRE, the old code with the new OGRE, the new code with VS 2008, OGRE 1.7, ... OGRE 1.6 ... and any other imaginable configuration, hoping to find the exact module causing the new issues. After almost a week, nothing was found! Strange stuff happened with every change.

Now we are back to the old code base that runs perfect on VS 2008 with all the rusty libraries that are rock solid. Will follow the upgrading of the libraries sometime in the future but this time one by one with proper test suites to run after each change.

Lesson learned: Do not upgrade everything possible over NIGHT!


Ashkan said...

Did you really need the experiment to learn this? i don't think so but i can not understand why you did this? maybe the curiosity of to see the number of errors or crashes per minute :)
i always come here to enjoy much reading your posts and hopefully learn something but this time after reading first few words, i said with myself, the ended up in trouble and reverted everything on their repo.
but a question, does upgrading only visual studio with the last stable revision (your released tag) breaks anything? they should not break compatibility and as i know they only added some C++0X features and nothing else.
and another question came up while thinking about your codebase, do you use subversion for source control? if yes, do you use tortoiseSVN as client?

Amir H. Fassihi said...

Well, for us changing VS means a rebuild of a lot of dependent libraries, since they need to be a VS 2010 build also.

We use SVN and tortoise, yes.