BREW: The Story So Far
2002 has been an exciting year in the arena of mobile gaming, especially here in the United States. Although Europe has been crowing about their superiority in the areas of 3G deployment, handset features, and business model development, the United States market for mobile gaming has shown signs of dramatic growth. Much of this activity can be attributed to the formal launch of Qualcomm's BREW by Verizon Wireless.
Last year, BREW was merely yet another API in the mobile application platform wars. This year, we have seen BREW become a real way to generate revenue from wireless applications. Shortly after Verizon's trial run in San Diego, they announced at the BREW 2002 developer's conference an encouraging uptake in high-end handsets as well as application sales. Among the most popular applications were, of course, games. Now with a major marketing blitz on the horizon and a number of sleek new BREW handsets making their way to Verizon stores, we are about to see what the national market will think of BREW.
BREW as a technology has evolved over the past year with the release of BREW 1.1 and 2.0. The API is usually a version or two ahead of the handsets with 1.1 devices just now coming to market. However, Qualcomm has taken developer suggestions to heart, and it shows in the many encouraging additions and changes with each new release.
BREW 1.1 is a relatively minor upgrade to BREW, with a few new features and API additions. One of the more important features for game developers is the addition of a stretchblt function. Now, it is possible to rescale device-native bitmaps to arbitrary sizes when drawing them to the screen. This may provide something of a solution for the myriad of different screen sizes on BREW devices, but the resolution and color-depth of the average handset probably makes stretching images a less than optimal solution.
BREW 1.1 also introduced the Brew Compressed Image format. BCI files are compressed bitmaps-sort of an alternative to the PNG standard. That's not to say BREW does not support PNGs, BREW extensions that do just that are on the way. However, the BCI format is now native to the API, and an editing tool now comes with the SDK archive. It is also possible for a single BCI to include multiple images for animation and other effects. With many games, the majority of the application's size lies in the bitmaps embedded in the resource files. With BCIs, it is possible to dramatically reduce the precious space taken in the file system by images.
As stated before, BREW 1.1 handsets are just now making their way to America. One of the first of these devices is the Motorola T720. This sleek handset sports a vibrant 12-bit (4096 color) TFT LCD screen with a resolution of 120x130 pixels in addition to impressive 40-note polyphonic MIDI capabilities. The T720 has as one of the largest memory capacities of any current BREW handset with 400k of RAM, a 4096 byte stack, and 1500k of file system space. This is quite a step up from the early BREW devices with a mere 60k of RAM and a 500 byte stack.
For game developers, BREW 2.0 brings a few much-needed features to the table. Perhaps most important is the inclusion of native sprite and tile support. BREW now allows developers to create high-speed tile scrolling engines using a variety of different-sized sprite and tile images (8x8, 16x16, 32x32, etc). Demos shown at BREW 2002 showed impressive performance using a Super Mario Brothers-style application.
BREW 2.0 also introduces the concepts of transformations to bitmap objects. These transformations allow images to be rotated, scaled, and even flipped on the fly. These are applicable to normal bitmaps as well as sprite and tile objects. Currently there are limitations to the rotation and scaling (usually only allowing 90 degree increments and scaling by a power of 2), but the addition of image flipping is a real benefit for those of us carefully managing applet size and memory budgets. Now, it is simply a matter of dynamically flipping a sprite when you want it to face left instead of right.
BREW 2.0's Device Independent Bitmap (DIB) interface now allows pixel-level access to images, including the handset's frame-buffer. This opens the door for powerful pixel screen effects, as well as other conveniences associated with accessing images at the pixel level. For instance, it is now possible to take the frame-buffer image and save it as a file.
The first BREW 2.0 handsets are just now beginning to surface in South Korea, the world's most mature BREW market. Prototypes now exist from such OEMs as Hyundai, with actual retail models to follow soon. When we will see these in the United States is anybody's guess at the moment.
BREW 3.0 and Beyond
Perhaps the most noteworthy developments involve what will be in BREW 3.0 and other future editions of the SDK. Qualcomm has been listening to developers around the world and are focusing on dramatically improving the SDK and development tools with new features and fixes.
At the BREW 2002 developer's conference, Qualcomm showed off their new BREW 3D API. Running on prototype hardware, a lit model of an airplane was able to be rotated and moved in real-time using the phone's keypad. The frame rate was far from interactive, but representatives from Qualcomm's chip division marked the performance at somewhere around 3,000 polygons per second. Of course, when you break this down to per-frame amounts, it may not seem like much. But, for cell phone game standards, perhaps something similar to Nintendo's StarFox or other early attempts at 3D gaming are possible.
With regards to 3D, Qualcomm is not working in a vacuum. Qualcomm has been working with 3D game and application developers to make sure that the API and chipsets meet our needs. They are also developing a suite of tools that will allow content to be exported from popular modeling packages and other industry standard applications such as 3D Studio Max and the like.
As for the API, Qualcomm has been investigating various standards. Will BREW 3D be its own API, or perhaps some flavor of Embedded OpenGL or other competing micro 3D standards? This is all still in the planning phases. The only thing I was able to squeeze out of a representative at BREW 2002 is that the API will most likely use fixed-point math.
There's not much to say about 2D performance in BREW 3.0. Although Qualcomm claims that we will see figures of around 100 simultaneous on-screen sprites. Of course, much of the current performance bottleneck lies in the actual LCD screen itself. Many current LCDs have something like a 200ms refresh rate, so regardless of the graphics performance in the hardware you are doomed to 5-7 fps. Qualcomm states that a lot of the newer devices will see refresh rates approaching 15 fps.
Sound continues to improve in BREW 3.0. Multiple channel simultaneous playback of sounds and MIDI is coming in 3.0. This means it will be possible to mix several different sounds together instead of having to stop the currently playing sound to start another.
Although not exclusively a feature of BREW 3.0, QCELP support is destined to become more common in handsets by the time this API revision is released. QCELP is Qualcomm's audio codec that allows the recording and playback of highly compressed digital sound. Although current handsets can only play digital sound out of the earpiece, newer handsets may play digital sounds out of the external speaker allowing for digital sound in games as well as for use as ringtones and other alerts.
BREW 3.0 will include a grab-bag of other neat features that may or may not be useful to game developers. For instance, BREW 3.0 will include a standardized camera API for upcoming handsets that include a digital camera. BREW's media API will include support for MPEG4 video streaming and playback. Qualcomm is also investigating serial I/O solutions along with Bluetooth, IR, and other features or peer-to-peer communication.
Qualcomm plans on upgrading the current platform from an ARM7 CPU to an ARM9. This brings the average BREW 3.0 device's computing power well above and beyond that of the Gameboy Advance. It is unknown if this leap in CPU power will mean much to game developers if the LCD refresh rates and graphics hardware are not similarly enhanced.
However, the biggest news is this: BREW 3.0 will include a complete tools revamp including the ability to use GCC to compile native ARM binaries. That's right, you heard me-Qualcomm will allow the use of the free GCC ARM compiler in the creation of BREW applications. Currently you must spend $1500 on ARM's BREW Builder to compile a native binary that runs on an actual handset. This is a major barrier to mobile application development considering the miniscule budgets for such projects. With the release of BREW 3.0, the free GCC toolchain will be available as an alternative to ARM's expensive compiler suite.
Qualcomm continues to expand the BREW market both domestically and overseas. With the Verizon rollout well underway, Qualcomm's other American partners, Alltell and U.S. Cellular, are now in the test phases. Combined, they will bring around 10 million more potential customers to the market. Qualcomm also recently announced a deal with China Unicom to bring BREW to another 55 million potential customers. Qualcomm is actively working with Latin American carriers, and the Japanese rollout on Japan's #2 carrier, KDDI, continues. With BREW's centralized billing and distribution system, accessing the world market for wireless applications with a single standard has never been closer.
Qualcomm's biggest hurdle has been getting into the critical European market. Because of Europe's early adoption of GSM and GPRS, there seems to be a major political barrier with getting Qualcomm, the creator of the competing CDMA standard, a foothold in the European market. Qualcomm has hinted that there will be a major announcement in 2003 involving the "usual suspects" of the European wireless industry.
Considering the massive investment European carriers have made in GSM/GPRS and various flavors of 3G, not to mention the legal and bureaucratic obstacles to installing competing technologies in Europe, it is more likely that BREW will be coming to GSM/GPRS chipsets than CDMA coming to Europe. It is already known that future BREW chipsets will include multi-mode capabilities that not only use CDMA/CDMA2000, but support GPRS, GSM, and other systems. In fact, at 3GSM World in France, Qualcomm showed BREW running on a GSM handset. With major BREW handset partners such as Samsung gaining momentum in the European marketplace, it is not much of a leap to see them eager to bring BREW to Europe.
The Future Looks Bright
Although many still seem to marginalize BREW as some sort of fringe standard, Qualcomm continues to stride forward while industry powerhouses such as Microsoft have had far less success in the same arena. Qualcomm has quickly grabbed large chunks of the marketplace and rallied a formidable band of carriers and handset manufacturers behind the BREW standard. All while J2ME continues to fragment into custom extensions and packages and the painfully slow development of MIDP-2.0 drags on. In fact, BREW now even runs Java MIDP applets with J2ME/MIDP soon to be available as a downloadable BREW extension.
BREW remains the one of the few technologies outside of Japan that not only allows developers to create compelling content, but also make money. Gaming giants such as Sony Online Entertainment, THQ, and SEGA are not only taking notice, but also creating high profile games bringing this new market to the forefront. You cannot consider yourself a serious mobile games developer without taking a good look at BREW as your next platform.