Chips Ahoy!
Intel chips, that is. I've been working on many things these past few weeks. The "day" job has been Civ4 with scattered showers of a Civ3 patch. We're making great headway on Civ4 - I believe the worst is behind us now. The game is rendering a good 80-90% of everything correctly, and it's playable for a pretty good stretch. I've been working on a crashing bug that's been slowing down progress, but I have a workaround now that'll prevent the crash, although it's not something I'd want to ship in the game by any stretch.
Civ3 is being patched to fix a few crashes and problems with third-party scenarios. It's also being built as a universal binary so it'll be native on the new Intel Macs. That part was relatively easy. The hard part is that network games now seem to go out of sync if there are PPC and Intel clients in the same game. Hopefully I'll have that licked soon - this patch is starting to drag. When you fire up the CodeWarrior Remote Debugger, it gives you a window with a quote at the top: "double your debugging, double your fun!" This quote is equally applicable to networking problems, let me tell you.
For kicks, I've been working on universal binaries of Jedi Academy and Jedi Knight 2. Those are mostly done now. They ran afoul of some bugs in Apple's OpenAL implementation on dual-processor Macs which made them highly unstable, but lucky me - Apple posted a fix for these exact issues a few days back to the Creative CVS. So I'm cautiously optimistic that all I need to do now is grab those latest OpenAL fixes, build it and it'll be ready for testing and release.
We've run into a few Xcode issues that have caused us some interesting times. First is build size. We use precompiled headers to speed up build time, and it helps dramatically. Civ4 is roughly 1500 source files and takes a good 15 minutes to build on the Core Duo chip. The downside to using precompiled headers is that it bloats the .o files. So at the end of the build, we have roughly 1500 .o files that range in size between 3.5 and 6 megs. This in turn gives the linker fits - we can't currently build a universal binary in Xcode for the debug builds as some of the subtarget libraries spew a vm_allocate failure error trying to allocate 1.6 gigs. Thatsa spicy meatball! Still, we're able to build either PPC or x86 and debug those. This bulk also tends to affect the debugger. Breaking into the debugger in Civ4 takes - on the Core Duo - almost 2 minutes. At first I thought it was simply hung or broken but as I was asking one of my colleagues about it, the debugger eventually sprang to life. Luckily some of our smaller projects (like Civ3) don't suffer from this, athough I still have to watch my disk space. I inadvertently chewed up 12 gigs the other day (and filled my hard drive in the process) doing a build of Civ3 Complete followed by a build of Play the World - each takes up around 6 gigs of intermediate space.
We still maintain our PowerPC builds in CodeWarrior, so this helps quite a bit. When we run into problems debugging in CodeWarrior or Xcode, we just switch to the other. Usually one of them is up to the task. Ah, the life of a Mac developer!