TweetFollow Us on Twitter

BZFlag

Volume Number: 20 (2004)
Issue Number: 06
Column Tag: Programming

BZFlag

by Dave Mark

A SourceForge Open Source Project

Lots to talk about this month. There's a new version of Xcode up on the net, I got an excellent new toy I'll touch on briefly, and for the main event, we're going to download and build an open source Mac OS X program called BZFlag.

The Latest Version of Xcode

There's a new version of Xcode on the Apple Developer Connection web site. Definitely worth the download. Make your way over to:

http://connect.apple.com

Login, then click on the Download Software link. Figure 1 shows the section of the page dedicated to the new version of Xcode, version 1.2.

If you are working off of an unadulterated Panther install, chances are good that you won't have an easy time using Safari to download the pieces that make up the new Xcode installer. Fortunately, there's a nifty piece of freeware that will make your job much easier.

MisFox is from a German programmer named Alexander Clauss and allows you to edit all the file mappings and protocol helpers used by Mac OS X. In our case, we want to set the FTP helper app to whatever FTP client you happen to be dating at the moment. Here's the URL for MisFox:

http://www.claussnet.de/misfox/misfox.html


Figure 1. The Xcode download listing in Safari.

When I wrote this, version 1.2.1 was the most recent release. Figure 2 shows the main MisFox window. Note that there are 3 tabs to choose from: Default Applications, File Mappings, and Protocol Helpers. I used the Default Applications tab to set my default FTP application to Interarchy.


Figure 2. The MisFox Default Applications pane.

If you go back to Figure 1, you'll see a Download button to the right of the Xcode Tools 1.2 CD. Once you use MisFox to set your default FTP client, Safari will hand the list of files behind that Download button to your client for easy downloading.

Xcode 1.2 consists of 21 segments. Download them, and if they are not automatically reassembled, just double-click on one of them. The disk image will be mounted and you can run the installer. Obviously, make sure you backup your hard drive before you do the install, just in case something goes horribly, horribly wrong.

When you first launch the new Xcode, you'll have a chance to go through the release notes to see what's new with the new version. If you miss your chance, go to the Help menu and select Show Release Notes. Lots of good info here. Still some issues to address, but lots of fixes, making this release of Xcode more stable overall.

An Awesome New Keyboard

In the March 29th issue of TidBits, Adam Engst wrote a glowing review of the Tactile Pro keyboard from Matias. Here's a picture of the keyboard:

http://halfkeyboard.com/tactilepro/ viewer/tp_mainpic.html

Here's Adam's eloquent review:

http://db.tidbits.com/getbits.acgi?tbart=07607

I live on my PowerBook. Have a 17" Apple Studio Display. But have never found a keyboard I was really happy with. Until now. As you'll find when you read Adam's review, the designers made some excellent decisions when it came to laying out the keyboard. But to me, the most important aspect of this keyboard is its incredible responsiveness. The keys on my PowerBook keyboard are mushy. Perhaps a better way of saying this is, I can't feel the micro-switches underneath the keys when I press them. The keys on the Tactile Pro keyboard, however, clack when I press them, the reassuring clack of a micro-switch being depressed. The throw of each key is deeper, meaning that I have to press each key down further as I type. This might seem like a bad thing, but it is not. I can tell when I've pressed a key and the Tactile Pro keyboard is much more forgiving that any other keyboard I've tried. The result is much faster typing speeds with much higher accuracy.

If you've ever typed on the old Apple Extended Keyboard (think back to the days of the original Macintosh II), you'll have a sense of the Tactile Pro. They used the same mechanical keyswitches, and the result is brilliant. You can buy it online at http://tactilepro.com, $99.95.

Mac OS in an Open Source World

A long, long time ago, back before Cocoa and the second coming of Steven P. Jobs, the Mac was pretty much an island. You were either a Mac person or you were not. When it came to Mac sample code, there were some wonderful communities set up, but they were always either Apple-driven, or catered for the most part to Mac people. If you found some cool Unix/X windows code, chances are pretty good that any sample projects were set up for Windows or Unix-based environments, Mac folk need not apply.

Now that Mac OS X has passed through the steep portion of its adoption curve, there is much more of an acceptance of the Mac among the open source crowd. A perfect example of this can be seen at the big dog of development web sites, http://sourceforge.net.

Now, you might think that your favorite web site has lots of sample code and a big community of users, but no. This is big. SourceForge has more than 800,000 registered users (and that number does not include the hundreds of thousands of developers who just like to poke around) and more than 80,000 hosted projects. Those are crazy huge numbers.

In the olden days, there might have been a few scattered Mac projects, but they would have been few and far between. Navigate over to http://sourceforge.net and click on the software map button, just below the banner ad towards the top of the window. Here's the URL that will get you there directly:

https://sourceforge.net/softwaremap/ trove_list.php

This is a useful page if you are looking for a project and know the topic. But you can also browse by other categories, including OS. Click on the Operating System link. Again, here's the direct link:

https://sourceforge.net/ softwaremap/trove_list.php?form_cat=199

Figure 3 shows the OS categories, along with the number of projects in each category. More than three thousand Mac OS projects. This is cool!


Figure 3. The list of SourceForge projects, listed by OS.

If you click on Mac OS, and then on Mac OS X, you'll find 2,290 Mac OS X projects, 1,526 of which are Cocoa projects. That is a pretty rich vein of interesting material to explore. And, who knows, you might find a project that interests you so much that you'll dig in and get involved with the development process. SourceForge (and Open Source, in general) is cool that way.

It is worth noting that there are many projects that support the Mac or will just plain run on the Mac that are not necessarily in the MacOS category. For example, there are several thousand Mac-savvy projects in the OS Independent and POSIX categories.

Read through the rest of this column, then start digging around, see what you can find.

Building BZFlag

Each month, SourceForge nominates a Project of the Month. This past April, the project of the month was a cool tank-based shooter game named BZFlag. Here's a link to the SourceForge BZFlag page:

https://sourceforge.net/potm/potm-2004-04.php

Cool! Pictures of Tim Riker, David Trowbridge, and Sean Morrison, BZFlag's key developers. The page contains a lot of interesting info, including an interview with the principals. This is pretty typical of a "potm" (project of the month) page. The potm URLs are well constructed, so you replace the 2004-04 with a 2004-03 to get to the March project of the month:

https://sourceforge.net/potm/potm-2004-03.php

The potm page is more of a marketing page. On it, you'll find a link to the SourceForge BZFlag Project page:

https://sourceforge.net/projects/bzflag

This is the actual SourceForge home for BZFlag, where you'll go to download the various sources and binaries for the different platforms BZFlag supports. These pages are very well organized. Figure 4 shows the listing of recent BZFlag file releases. The link at the bottom of the figure takes you to a page with a much more exhaustive listing.


Figure 4. The list of recent BZFlag file releases on the project page.

If all we were interested in was the app itself, we could download the binary for our platform. Now BZFlag is a lot of fun to play, but there's something gratifying about successfully building an app on your own machine, especially an app as complex as this one.

Click on the bzflag source link towards the bottom of the list. Be sure to click on the one with the most recent date. As you can see, I'll be working with the one labeled April 25, 2004.

This link will take you to a page listing various source releases, including the one you selected. Source code is archived in a number of different ways, depending on the OS. In general, you do not want to download a .zip file. This will likely be a build intended for a Windows machine. The permissions will not be setup for Mac OS X, and there will also likely be carriage return/line feed confusion as well. For Mac OS X, look for a tar.bz2 or a tar.gz archive.

Click on the link labeled:

bzflag-1.10.5.20040426.tar.bz2

This will take you to a download page. Select your nearest location and click the link to start the download. StuffIt Expander will expand the archive just fine.

In the Finder, open the newly expanded directory. In my case, it was called bzflag-1.10.5.20040426. Now open the subdirectory src/platform/MacOSX. As the name implies, these are the build files for Mac OS X.

When the Xcode project window appears, click on the targets popup menu (it's in the upper-left corner) and select BZFlag (Figure 5).


Figure 5. The BZFlag targets popup from the BZFlag project window.

Now select Build and Run from the Build menu. This is gonna take a while, so this might be a good time to alphabetize those Zamfir pan flute CDs you've been collecting.

When you start the build, if nothing appears to be happening, it may be that you have the split closed in your build window. If your build window is not divided into two distinct panes, click on the dot on the bottom edge of the window and drag it up, towards the middle of the window (Figure 6). The build is driven by a set of Makefiles (Unix build scripts) and the script steps are shown in the bottom pane, while Xcode's compile messages will be shown in the top pane.


Figure 6. Be sure you split your build window by dragging the dot from the bottom of the window towards the middle.

If you get an error message during the build process, try changing the target to BZAdmin, doing a Build of that target, then selecting BZFlag as a target and doing a Build and Run again. Worst case, do a Build of the Everything target, then select BZFlag and do a Run. You need to run the BZFlag target to run the game.

Have fun playing BZFlag. It will take over the entire screen and put up a simple menu. Navigate the menu with the arrow keys and the return key. Escape takes you back up a level. Your choices are Join Game, Options, Help, and Quit. Review the help and options if you like, then select Join Game. This will take you to a new menu screen. Select Find Server, scroll through the list of servers to find a game you like, select the game, then select Connect.

That's it. You're in the game. And there is always a game going. It is amazing how big this game has gotten. When you are done playing, hit escape, then arrow down to Quit.

Doing a Unix Build

Not every Mac OS X project will ship with an Xcode project. That's OK, though. As long as the developers included the appropriate make files, we can use those to do our build. So if you had some trouble with your Xcode build or if you just want to give the Unix build process a try, here's the process.

Use the cd command to navigate into the top level of the BZFlag folder you downloaded. For example, I unstuffed my archive onto my desktop. From my home directory, I did:

cd Desktop

and then I did:

cd bzflag-1.10.5.20040426

I then did:

./autogen.sh 

The leading "./" tells the Unix shell to execute the shell script contained in the file autogen.sh found in the current directory, that is, in the directory bzflag-1.10.5.20040426.

The script hangs a bit, then spits out this message:

BZFlag sources are now prepared. To build here, run:
 ./configure
 make

And that's exactly what you want to do next. First, type:

./configure 

This will create a bunch of Makefiles and do a few other things. When it is done, type this command:

make

Got a dual processor G5? If so, do a:

make -j2 

This tells make to split the task into two concurrent jobs. Gets the job done in half the time!

This will take a while. You'll be compiling a fairly large batch of code, so sit back and dream about Gilligan's Island. Who would you be? Hmmm...

By the way, in case you were wondering, gcc is the C compiler, and g++ is the GNU C++ compiler.

The build should take about 10 minutes (obviously, depends on your processor). To run the binary, be sure you are still in that top directory and type the command:


src/bzflag/bzflag 

If you get an error message, do an ls and verify that there is a directory named src in the current directory. If not, you may have changed directories

Till Next Month...

Hopefully, between the Xcode method and the Terminal method, you've gotten BZFlag to run. Here are a couple of BZFlag related sites that can help you with your gameplay:

http://www.dervishdukot.org/home/bzflag/bzflag.html

http://bzflag.org/wiki

Also, if you are IRC-savvy, you can make your way over to #bzflag on irc.freenode.net with any questions or comments.

Your homework assignment is to search through some of the other Open Source projects on SourceForge.net listed in the Mac OS X area, find one you like, and get it to build.

A huge shout out to Sean "brlcad" Morrison for his most excellent help in getting BZFlag to build.

Oh, and be sure to head over to http://www.spiderworks.com and sign up for the email list. See you next month...


Dave Mark is a long-time Mac developer and author and has written a number of books on Macintosh development. Dave has been writing for MacTech since its birth! Be sure to check out Dave's latest and greatest at http://www.spiderworks.com.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Tidy Up 5.3.7 - Find duplicate files and...
Tidy Up is a full-featured duplicate finder and disk-tidiness utility. Features: Supports Lightroom: it is now possible to search and collect duplicates directly in the Lightroom library. Multiple... Read more
Pinegrow 5.97 - Mockup and design web pa...
Pinegrow (was Pinegrow Web Designer) is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation,... Read more
BlueStacks 4.210.0 - Run Android applica...
BlueStacks App Player lets you run your Android apps fast and fullscreen on your Mac. Feature comparison chart How to install Bluestacks on your Mac Go to MacUpdate and click the green "Download"... Read more
WhatsApp 2.2027.10 - Desktop client for...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more
Art Text 4.0.1 - $29.99
Art Text is graphic design software specifically tuned for lettering, typography, text mockups and various artistic text effects. Supplied with a great variety of ready to use styles and materials,... Read more
Adobe Dreamweaver CC 2020 20.2 - Build w...
Dreamweaver CC 2020 is available as part of Adobe Creative Cloud for as little as $20.99/month (or $9.99/month if you're a previous Dreamweaver customer). Adobe Dreamweaver CC 2020 allows you to... Read more
Adobe Acrobat DC 20.009.20074 - Powerful...
Acrobat DC is available only as a part of Adobe Creative Cloud, and can only be installed and/or updated through Adobe's Creative Cloud app. Adobe Acrobat DC with Adobe Document Cloud services is... Read more
beaTunes 5.2.10 - Organize your music co...
beaTunes is a full-featured music player and organizational tool for music collections. How well organized is your music library? Are your artists always spelled the same way? Any R.E.M. vs REM?... Read more
DiskCatalogMaker 8.1.5 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
Meteorologist 3.4.1 - Popular weather ap...
Meteorologist is a simple interface to weather provided by weather.com. It provides the ability to show the weather in the main menu bar, displaying more detail in a pop-up menu, whose contents are... Read more

Latest Forum Discussions

See All

Steam Link Spotlight - Disco Elysium
Steam Link Spotlight is a feature where we look at PC games that play exceptionally well using the Steam Link app. Our last entry was Signs of the Sojourner Read about how it plays using Steam Link over here. | Read more »
Distract Yourself With These Great Mobil...
There’s a lot going on right now, and I don’t really feel like trying to write some kind of pithy intro for it. All I’ll say is lots of people have been coming together and helping each other in small ways, and I’m choosing to focus on that as I... | Read more »
Pokemon Go's July Community Day wil...
Pokemon Go developers have announced the details concerning the upcoming Gastly Community Day. This particular event was selected by the players of the game after the Gas Pokemon came in second place after a poll that decided which Pokemon would... | Read more »
Clash Royale: The Road to Legendary Aren...
Supercell recently celebrated its 10th anniversary and their best title, Clash Royale, is as good as it's ever been. Even for lapsed players, returning to the game is as easy as can be. If you want to join us in picking the game back up, we've put... | Read more »
Detective Di is a point-and-click murder...
Detective Di is a point-and-click murder mystery set in Tang Dynasty-era China. You'll take on the role of China's best-known investigator, Di Renjie, as he solves a series of grisly murders that will ultimately lead him on a collision course with... | Read more »
Dissidia Final Fantasy Opera Omnia is se...
Dissidia Final Fantasy Opera Omnia, one of Square Enix's many popular mobile RPGs, has announced a plethora of in-game events that are set to take place over the summer. This will include several rewards, Free Multi Draws and more. [Read more] | Read more »
Sphaze is a neat-looking puzzler where y...
Sphaze is a neat-looking puzzler where you'll work to guide robots through increasingly elaborate mazes. It's set in a visually distinct world that's equal parts fantasy and sci-fi, and it's finally launched today for iOS and Android devices. [... | Read more »
Apple Arcade is in trouble
Yesterday, Bloomberg reported that Apple is disappointed in the performance of Apple Arcade and will be shifting their approach to the service by focusing on games that can retain subscribers and canceling other upcoming releases that don't fit... | Read more »
Pixel Petz, an inventive platform for de...
Pixel Petz has built up a sizeable player base thanks to its layered, easy-to-understand creative tools and friendly social experience. It revolves around designing, trading, and playing with a unique collection of pixel art pets, and it's out now... | Read more »
The King of Fighters Allstar's late...
The King of Fighters ALLSTAR, Netmarble's popular action RPG, has once again been updated with a plethora of new content. This includes battle cards, events and 21 new fighters, which increases the already sizeable roster even more. [Read more] | Read more »

Price Scanner via MacPrices.net

Clearance 2019 13″ 2.4GHz/256GB MacBook Pro o...
B&H Photo has dropped their price on the clearance 2019 13″ 2.4GHz/256GB Quad-Core Silver MacBook Pro by $500 off Apple’s original MSRP to a new low of only $1299. Expedited shipping is free to... Read more
$219 Apple AirPods Pro are back at Verizon, s...
Verizon has Apple AirPods Pro on sale again for a limited time for $219.99 on their online store. Their price is $30 off Apple’s MSRP, and it’s the lowest price we’ve seen for AirPods Pro. Available... Read more
Apple’s $779 13″ MacBook Air deal returns to...
Apple has clearance, Certified Refurbished, 2019 13″ MacBook Airs available again starting at $779. Each MacBook features a new outer case, comes with a standard Apple one-year warranty, and is... Read more
$200 13″ MacBook Pro discounts are back at Am...
Amazon has 2020 13″ 2.0GHz MacBook Pros on sale again today for $150-$200 off Apple’s MSRP. Shipping is free. Be sure to purchase the MacBook Pro from Amazon, rather than a third-party seller, and... Read more
Deal Alert! Apple AirPods with Wireless Charg...
Sams Club has Apple AirPods with Wireless Charging Case on sale on their online store for only $149.98 from July 6, 2020 to July 9, 2020. Their price is $50 off Apple’s MSRP, and it’s the lowest... Read more
Xfinity Mobile promo: Apple iPhone XS models...
Take $300 off the purchase of any Apple iPhone XS model at Xfinity Mobile while supplies last. Service plan required: – 64GB iPhone XS: $599.99 save $300 – 256GB iPhone XS: $749.99 save $300 – 512GB... Read more
New July 2020 promo at US Cellular: Switch an...
US Cellular has introduced a new July 2020 deal offering free 64GB Apple iPhone 11 smartphones to customers opening a new line of service. No trade-in required, and discounts are applied via monthly... Read more
Apple offers up to $400 Education discount on...
Apple has launched their Back to School promotion for 2020. They will include one free pair Apple AirPods (with charging case) with the purchase of a MacBook Air, MacBook Pro, iMac, or iMac Pro (Mac... Read more
July 4th Sale: Woot offers wide range of Macs...
Amazon-owned Woot is blowing out a wide range of Apple Macs and iPads for July 4th staring at $279 and ranging up to just over $1000. Models vary from older iPads and 11″ MacBook Airs to some newer... Read more
Apple Pro Display XDR with Nano-Texture Glass...
Abt Electronics has Apple’s new 32″ Pro Display XDR model with the nano-texture glass in stock and on sale today for up to $144 off MSRP. Shipping is free: – Pro Display XDR (nano-texture glass): $... Read more

Jobs Board

Physical Therapist Assistant - *Apple* Hill...
Physical Therapist Assistant - Apple Hill Rehab - Full Time Tracking Code 62519 Job Description General Summary: Under the direct supervision of a licensed Physical Read more
Operating Room Assistant, *Apple* Hill Surg...
Operating Room Assistant, Apple Hill Surgical Center - Full Time, Day Shift, Monday - Saturday availability required Tracking Code 62363 Job Description Operating Read more
Perioperative RN - ( *Apple* Hill Surgical C...
Perioperative RN - ( Apple Hill Surgical Center) Tracking Code 60593 Job Description Monday - Friday - Full Time Days Possible Saturdays General Summary: Under the Read more
Product Manager, *Apple* Commercial Sales -...
Product Manager, Apple Commercial Sales Austin, TX, US Requisition Number:77652 As an Apple Product Manager for the Commercial Sales team at Insight, you Read more
*Apple* Mac Product Engineer - Barclays (Uni...
Apple Mac EngineerWhippany, NJ Support the development and delivery of solutions, products, and capabilities into the Barclays environment working across technical Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.