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!
Comments
In the original port of Civ 3, there are some stupid things. Like performance, it's silly slow. You're led to believe that they did some quick hack where they drew into some offscreen buffer and then copied the whole of it to screen as soon as any part changed. ANY mouse click takes those three tenths of a second to produce a response on my machine. No good feeling.
Posted by: Joakim Arfvidsson | March 23, 2006 12:46 AM
The question for when it's released will be performance. Civ4 can drag on Windows hosts, esp. older machines.
--
Posted by: Mindflayer | March 24, 2006 03:21 PM
Brad...Any news on making Enemy Territory mactel native? I've been missing ET ever since I got this iMac Core Duo...Thx!
Posted by: Lenn | March 24, 2006 04:38 PM
Just random curiosity… is that two minutes to break into the debugger with or without “Load Symbols Lazily” (XCode Prefs->Debugging) enabled?
Posted by: Ahruman | March 25, 2006 01:25 AM
Brad,
Is Aspyr planning a Universal Binary of CoD? My brother has CoD Deluxe, but only plays the MP versions because he says the SP versions lag on his shiny new 20" iMac Intel Duo.
Matt
Posted by: Matt Reimer | March 25, 2006 09:38 AM
How about binaries for Zero Hour, there is not speed different on my new iMac 20" Intel/Mac 2GB Ram and 256mg memory, it's still just as slow as my 867 G4 Quicksilver w/1.2GB Ram.
Posted by: Michael Mitchell | March 26, 2006 10:16 AM
"is that two minutes to break into the debugger with or without “Load Symbols Lazily” (XCode Prefs->Debugging) enabled?"
It is with that enabled. I was under the impression that this affects mainly shared libraries. Should I see improved debugger performance with it disabled?
Posted by: Brad Oliver | March 26, 2006 10:46 PM
"Brad...Any news on making Enemy Territory mactel native?"
It would require a patch to be pushed out for Win32 and Linux, since the binaries for the Mac are in the pk3 files that are distributed for all platforms. Dunno what the likelihood of that is.
Posted by: Brad Oliver | March 26, 2006 10:48 PM
I was wondering: does the ability to compile and run the same code on a PPC and Intel Mac help identify endianness-related bugs that appear during the port of a game? I'd guess that this kind of bug would only appear on the PPC Mac, which could be convenient to track them down. AM I wrong?
Posted by: Olivier | March 27, 2006 03:54 PM
Brad, why don't you forget these newer games for a while and concentrate on a universal binary for Dark Forces. You have to get your priorities in order!
Posted by: Kyle | March 31, 2006 02:21 PM
"Brad, why don't you forget these newer games for a while and concentrate on a universal binary for Dark Forces."
Just send over the code and I promise I'll get right on it! :-)
Posted by: Brad Oliver | April 3, 2006 03:25 PM
How about an updated SMAC? There is still a crashing bug in the Carbonized version (when holding the mouse button to use Go To, it sometimes crashes to the OS) and I'd love a Universal binary of it.
Posted by: P | April 4, 2006 07:16 AM
Brad:
Maybe one for Aspyr but as you are working on the Civ 3 patch...
1. Am I missing something or is it impossible to save LAN games? I keep trying but when you reload it turns into a one-player game. Is this a "feature" of the PC version? It's not the way I would have programmed it... I seem to remember in Civ 2 there was an element of choice. I would go and buy my father an iMac and copy of Civ 3 Mac tomorrow if either this gets fixed / corrected, but for hotseat (which saves fine) we can use his hideous old PC for a little while yet.
2. Using a 12" PowerBook, it would be nice if the "go to fullscreen" keyboard command removed the menu bar, even though the resolution doesn't change.
3. Why is it slower than the last version ov Civ 3? On my PB it's fine, but in the end game it does slow down a bit. It's perfectly playable and not a problem (and city rubble is worth it); I'm more wondering why that would have happened.
Appreciate the great work over the years.
Posted by: Alex | April 10, 2006 05:35 AM
I am glad to heard that you are working on a civ3c patch. That was one of my best Mac game purchases recently. (And I owned Civ3 before that - the expansions were worth the pennies.)
Re Xcode - did the new linker format in Xcode 2.3 help? I have not had the courage to try it on any of my large projects.
Scott
Posted by: Scott Ellsworth | April 11, 2006 11:47 AM
"Re Xcode - did the new linker format in Xcode 2.3 help?"
I wouldn't want to violate any NDAs, so I don't think I can directly answer that. In other completely unrelated news, I've found dramatically increased happiness from working in Xcode recently. ;-)
Posted by: Brad Oliver | April 13, 2006 03:08 AM
They are working on an ET patch for Intel Macs. They will release it around the time they release Enemy Territory: Quake Wars. :)
Posted by: Inferno | June 22, 2006 10:20 PM
I know that you will most likely never read this, but I've searched the internet for an hour and this is the closest I've come: Has the Jedi Academy patch been released yet? Is it abandoned? Or is it just still in production?
Posted by: Nathan | August 5, 2006 02:50 PM
Hey there!
Is there a problem with civ 3 complete and Mac OS Leopard ? Just bought a mac book, and cannot run this game at all. It works fine on my other mac (10.4), but not the new one. I installed the Universal patch.
Thank you!
Posted by: Neil | November 5, 2007 08:16 PM
Hi, I too am having problems with civ 3 complete on my new macbook with leopard. It won't run at all. Any suggestions?
Posted by: Graeme | December 31, 2007 03:45 PM
I can't get Civ 3 to work on my M OS Leopard either... I downloaded the Universal Patch and it still won't work. Any help?
Posted by: Matt Kramer | August 15, 2008 08:05 PM