The latest version of this page can be viewed here.

HaloBrowser

HaloBrowser is an application that, given a list of Halo game servers, queries all of them for their current status, runs those that respond through a set of filters you specify in an ASCII text (.TXT) file, finds servers on which players you know are playing, and displays the resulting list of servers. Once the list is on-screen, a server can be selected to view all of the detailed information about its current game and, when desired, launch Halo to join that game.

In other words, it's a Halo game server browser. I wrote HaloBrowser because I couldn't find any other single piece of software that did everything I wanted:

QTracker has a player finder but doesn't show much info about a game. HaloSpy is great for seeing everything there is to know about a game (almost), but checking one server at a time is tedious and slow. SeeMePlayMe and GameSpy both gave me enough hassle that I never got to really see what they can do. And Halo's in-game browser, well, that just sucks. Finally, nothing I know of comes close to doing what I want in terms of filtering.

As a bonus, I used HaloBrowser as an opportunity to start learning Java, something I've been long overdue in doing (I'm a software engineer by profession).


System Requirements
What HaloBrowser Can Do
What HaloBrowser Lacks
Issues in the Current Release
Screenshots
How to Get HaloBrowser
Installation
Using HaloBrowser
Contact Info & Further Help
License
Acknowledgements


System Requirements

Hardware

If your system can run Halo, it can run HaloBrowser.

Software

As a Java program, HaloBrowser can generally run on any OS that supports Java. Except for launching Halo, of course, so it really only makes sense to run it on Windows. I use Windows2000; HaloBrowser should work fine on other current OSs from Microsoft so let me know if any issues arise.

While I hope to eventually package HaloBrowser as a standalone application (an .EXE), for now it requires a JVM (Java virtual machine -- basically an installation of the Java runtime software) on your PC. This is free software available at java.sun.com. If you do not already have Java on your PC, download and install "J2SE 1.4.2", specifically JRE 1.4.2_04 or later. Only the runtime environment (JRE) is needed; the SDK is for folks who write Java software.

Internet Connection

HaloBrowser generates a fair amount of network traffic as it queries its list of game servers. I have no idea how its traffic pattern compares to other server browsers, & I do not know how well it will run on a non-broadband connection. But if issues arise they should be solvable.

Back to top


What HaloBrowser Can Do

HaloBrowser features include:

Back to top


What HaloBrowser Lacks

I expect the two biggest complaints about HaloBrowser to be that (a) it does not currently provide server "ping" information and (b) it can not automatically obtain a current list of on-line Halo servers.

Regarding ping info, it's been left out so far only because it's one of the larger remaining tasks yet has not been terribly important for my own needs. I play enough that I am often familiar with which servers have high or low pings, plus I have no problem running 'ping' manually if I want to check a server. In addition, my observations that over 20% of Halo servers don't respond to pings at all leads me to believe that this feature, while desirable, is not an absolute requirement for at least some Halo players. I expect it will eventually be implemented.

The need for a a preexisting list of servers, on the other hand, I am very unhappy about. Nothing would please me more than to be able to query GameSpy or another "server server" for a list of on-line Halo servers. However, everything I've looked at so far requires a client like HaloBrowser to authenticate itself with the server server, and I haven't found how to do that. If anybody can provide this information, or pointers to open source code that already does it, this capability will definitely be added to HaloBrowser.

Other items that are missing or would be nice to add are

Note 1: For the technically inclined -- I spent many, many, many hours trying to get a build with the GNU 'gcj' compiler. While I did eventually manage to generate an .exe, it immediately crashes with a generic Windows error.

Note 2: Since I'm a command line geek and have Cygwin on my machine, I just open QTracker, select its entire list of servers, do a copy & paste into my server list file and run it through 'sort -u'. That ain't gonna work for the average gamer though.

Back to top


Issues in the Current Release

Back to top


Screenshots

Querying / refreshing the server list:
Query-in-progress screenshot

Query results: Query results screenshot The server marked in green passed my filters, and it has a player match. The Blood Gulch games are moved down the list because I've told HaloBrowser I prefer non-Blood Gulch games. And the server marked in yellow would normally be filtered out but remains because it has a player match.

Server details: Server details screenshot

Back to top


How to Get HaloBrowser

Click here.

I plan to move the HaloBrowser project on to SourceForge at which point it will be downloadable from there as well.

Back to top


Installation

To install HaloBrowser, place the downloaded ZIP file into an empty directory (folder) and unzip it.

Open the file HaloBrowser.ini in a text editor such as NotePad and change the PathToHalo string to the directory where you have installed Halo. Important: Use either forward slashes ('/') or double backslashes ('\\') between directories. In addition, if the directory string contains any spaces then the entire string must be placed within quotation marks ('"'). Do not include any trailing slashes or backslashes.
Examples:
PathToHalo = "C:\\Program Files\\Microsoft Games\\Halo"
or
PathToHalo = D:/bin/Halo .

Double-click "HaloBrowser" (or, if your Windows Explorer is set to show file extensions, HaloBrowser.bat). Usage instructions are here.

Back to top


Contact Info & Further Help

Questions, suggestions and bug reports may be sent to the microsoft.public.xbox.halo newsgroup, which is also available via Google. I do this because Usenet (newsgroups) is an infinitely better discussion mechanism than web forums.

If the above means fails to get a response from me, you can send email to the address shown in the image below. I realize this is less convenient for you than providing something to click on or copy & paste; it is an attempt to avoid spammers' email address harvesters.
My email address

Back to top


License

HaloBrowser is distributed under the BSD license:

Copyright (c) 2004, Thomas J. Ziomek
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this
  list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.
- Neither the name of its author nor the names of other contributors may be used
  to endorse or promote products derived from this software without specific
  prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The source code for HaloBrowser is currently available here. This link will become unusable if or when the HaloBrowser project is moved onto SourceForge.

HaloBrowser was developed with the Eclipse IDE and uses the Eclipse SWT graphics library, which is covered by the Common Public License a.k.a. CPL.

HaloBrowser makes use of the Jodd library [license and copyright, essentially the BSD license].

HaloBrowser makes use of the JTopas library which is under the Free Software Foundation's Lesser General Public License or LGPL.

Copyright and licensing information for Java is located in your Java installation.

As best I can tell the HaloBrowser license and copyright meet the requirements of all the libraries it uses. If this is incorrect, please notify me and the problem will be fixed.

Back to top


Acknowledgements

In addition to the creators of the Eclipse tool and SWT, Jodd and JTopas libraries mentioned above, the Halo Client module in POE was valuable for showing how info is encoded into the 'player' and 'game' flag fields of the server query response.

Back to top


Copyright (c) 2004 Thomas J. Ziomek. All rights reserved.