http://GameProgrammer.Com

Mailing List
   Thread Index
   Date Index

Game Programmer

Game Programming

Graphic Programming

Optimization Techniques

Links


Picking A Platform, July 1997

Bob Pendleton
bobp@pendleton.com


What in the world is a "platform?" A "platform" is the combination of hardware and software that your game will run on. The platform includes not just the hardware, but which version or versions of the hardware. The software part of a platform includes the OS, all the libraries you use, the compilers and assemblers, the linker, and all the software needed to recreate an exact duplicate of the final binary of your shipping product. The complete description of a "platform" can get pretty complex.

Hardware Platforms

This article has a date in the title because the reasons for picking a game platform and the available game platforms changes quickly and regularly. I wouldn't want someone to read this article a year from now and think I was nuts because everything had changed! In July of 1997 the main game hardware platforms are:

  • Arcade Game Machines

  • Location Based Games

  • Home Game Consoles

  • Personal Computers

  • The Internet

Arcade Game Machines

Currently arcade game machines are distinguished form other game platforms by the cost and performance of the hardware. They have huge screens and now days they all seem to have special input/output devices. Currently arcade games are by far the most expensive way to play games.

The arcade business is in a slump that has lasted for years. There is good news on the horizon though. With the development of high performance graphics and very fast new processors the top of the line arcade games have about the same performance as the top of the line PCs. This fact gives the arcade game builders a strong economic incentive to replace their expensive custom systems with far less costly PC based systems.

This means that we can expect to see the cost of arcade games, and we hope arcade play, drop considerably. We can also expect to see most arcade games come out on PCs a year or two after they come out in arcades. It takes about two years for the current top of the line PCs to become consumer PCs. This change to using PCs in arcade games means that studying game programming on PCs will give you the knowledge you need to develop for arcade games.

Location Based Games

Do you remember when their used to be video games in pizza parlors and bars? You used to see table versions of games that you could set your drink on and play against the guy across the table from you. There were video games with hardwood cabinets that looked good in restaurants. You would play a game while you waited for a table. You used to even see video games in airport terminals. That's what we mean by "location based games." Games that fit in the public spaces of our lives.

It looks like the development of the Internet and high performance multimedia PCs is going to bring back bar game even if it doesn't bring video games back to all the places you used to see the. Plans are going ahead to distribute consoles based on powerful Pentium based PCs to bars all over the country. The idea is to let people select from a large number of different games all from the same console. The game will load from a local disk or over the 'net.

To work on the new location based game systems you are going to need to know PC game programming and network programming.

Home Game Consoles

The top current game consoles are, in no particular order:

  • Sega Saturn

  • Sony Playstation

  • Nintendo 64

The Super Nintendo Entertainment System (SNES) is also still going strong.

Console games are a very attractive platform to write games for. Games for these machines usually sell lots of copies, and the prices for those games are quite high. The problem with writing for these games is that you need special development systems to write games for them. And, the details of how to program these machines are rather closely guarded trade secrets of the console manufactures.

I've had a lot of questions about why the console companies make it so hard to write games for their consoles. To understand why they control the information so carefully you have to understand their business model. When you buy a PC you pay the full cost plus some profit for the the manufacturer, the distributor, and the folks who sold it to you. Since they have all made their money they don't care how you use the PC after you buy it. You can get a good multimedia PC for around $1,000US. But, you might have noticed that a game console only costs a few hundred dollars. I was In Toys-R-Us today, buying some Legos, and I say the Nintendo 64 on sale for $149US. Game consoles may be cheaper to build than a PC, but they aren't that much cheaper.

Game console manufacturers sell the console as cheaply as they can so that a lot of people will have them. They know that people who buy game consoles will buy games. So, they set up their businesses so that they make their money off of the games, not the console. They get a cut from every game sold for their consoles. If you could make games for their consoles without them getting a cut of the profits they would go out of business. So, they have to make it so that only people who have license agreements with the console manufacturers can write games for the consoles.

This business model used to work very well. But, as the capabilities of PCs keep increasing and the cost of PCs keeps dropping it will be harder and harder for the game console manufacturers to make money. Last year I heard a high level manager from one of the large game console companies predict that within 5 years the PC will be the dominant game platform.

Personal Computers

By "personal computers" I mean both IBM PC clones and Apple Macintosh computers. According to the 7th GVU Internet survey, http://www.cc.gatech.edu/gvu/user_surveys/ 25.59% of the machines used to access the Internet are Macs. Despite all the bad news from Apple, the Mac game market still exists. And, with so many Mac software developers switching to the PC, it may be easier for a new developer to get started in this market than in the PC game market. It's too early to count the Mac out of the market. The down side is that it is very hard to get Mac software into stores and even traditional Mac mail order outlets are starting to reduce the number of Mac titles they stock.

My experience is that the Mac game market is quite different from the PC game market. People don't buy PCs for all the same reasons they buy Macs. They buy both of them so they can bring work home from the office. They buy both of them so they don't need an office. They buy both of them to play games. They buy them to help the kids with their school work. But, people are more likely to buy a Mac to help out the kids with school because the kids use Macs in school and they are more likely to buy a PC for all the other reasons because they use PCs at work, and can "bring home" the productivity software they have at work for use on their home computers. They are also more likely to buy a PC to play games because all the new games come out for the PC first. People who buy computers for the kids to do home work don't buy action games for the kids to play on their computers. If they buy games at all they buy educational games, so called edutainment titles. People who buy PCs to play games are much more likely to buy games.

In terms of numbers the IBM PC clone is by far the most widely used hardware platform and various versions of Windows are the most widely used operating systems. The 7th GVU survey showed that 47.88% of all machines used to access the Internet are running Windows 95. If you add in Windows 3.1and Windows NT you find that 64.54% are running some form of Windows. If you add up all the systems that are capable of running MSDOS applications, that is, all the machines running some form of Windows, OS/2, or MSDOS, you find that 67.89% of the computers on the Internet can run MSDOS applications.

According to recent survey press releases 41% of US households have some sort of a computer. Of those computers 40% are Pentiums and 49% are running Windows 95. All in all it looks like roughly 2/3s of all the computers in peoples homes in the US are Intel architecture computers, mostly Pentiums and 486s, running some version of Windows or MSDOS. Add in the fact that Microsoft claims to have sold 100 million copies of Windows 95 and Windows NT and it become impossible to ignore the PC and 32 bit Windows as a game platform.

The down side of the PC market is that everybody is focused on it. In 1996 roughly 6000 commercial games were written for the PC. Because of limited shelf space most commercial PC games never reach store shelves.

The Internet

The Internet is a platform? Yep, the combination of browsers, HTML, scripting languages, Java, and all the web servers out there is a huge platform. And, as computers get cheaper, and web-top-boxes like WebTV spread and increase their capabilities, this platform has a good chance of spreading into most of the homes in the world. The key is that all the open technologies of the Internet work on all the computers in peoples homes and offices. Instead of talking about a market made up of 25% or even 66% of computers, we are talking about a market made up of 100% of computers, a growing number of web-top-boxes, and soon millions of new and existing cable TV set top boxes. Game developers must pay attention to this platform.

Picking A Hardware Platform

So what hardware platform am I going to write about? Being like most of you out there I don't have access to what I need to write about any of the game consoles. Everything I do know about game consoles is covered by NDAs (Non-Disclosure Agreements) so I can't write about them anyway. And, I no longer have access to the documentation and development systems needed to develop games for consoles. The other hardware platforms I talked about are either the Internet, Windows/MSDOS/Intel architecture we all call a "PC," and the Apple Macintosh. The Internet is just going to get bigger. And, as much as Mac fans wish it would just go away little things like China's decision to buy PCs for every elementary school in China means that the PC is here to stay and the price of PCs is going to drop radically during the next 5 years (not much of a prediction :-)

It looks like the two key hardware platforms that I would want to learn about are the Internet and the PC. These are the two platforms that are growing the fastest. And the two platforms that have the greatest "reach," that is, they are the two platforms that the most people have access to.

Unfortunately, they are also two of the hardest platforms to develop for. The Internet is hard because of the rapid change in the platform and the seemingly unending wars over what is, or is not, a standard part of the platform. The PC is hard because it has been around for so long. It is hard to even try to define a "standard" PC and with MSDOS, Windows 3.1, Windows 95, and Windows NT all currently in use it's hard to even figure out what it means when you say the word "PC."

Defining just what a PC is has been such a problem that the Software Publishers Association has published a series of standards, called the MPC Standards, that define three different versions of multimedia PC. They are all pretty much out of date now, but if you pick any one of the MPC standards as your definition of a PC you will include just about all the PCs sold for game playing in the last 6 years.

Software Platforms

The "software platform" is all the software that is needed to create and run an application. To get more specific, the software platform is made up of:

  • Operating Systems

  • Programming Tools

  • General Purpose Libraries and APIs

  • Application Specific Libraries and APIs

There are two operating systems to worry about. There is the OS under which development is done and there is the OS on which the application runs. For instance, you might be developing an MSDOS program with a development system that runs on Windows 95. My picks for the OS of the future are:

  • 32 bit Windows, including Windows 95, Windows NT, and Windows 98 due early next year. These are the most used OSes in the world.

  • 32 bit MSDOS. What, isn't MSDOS dead? And isn't it a 16 bit system? MSDOS is a 16 bit system but you can develop and run 32 bit programs on it using a variety of commercial and free development systems.

    Anyway, although users aren't very fond of MSDOS, it is still a great platform for programmers because MSDOS doesn't get in the way of accessing the hardware. Not getting between the programmer and the hardware is also its worse feature...

  • Java. Both the language and the OS. Java is an advanced, portable, programming language that is turning up everywhere. Although still very new Java is maturing faster than any system I have ever seen.

Tools and APIs

Windows is the big winner and the big loser in the tools area. There are an enormous number of good compilers and development environments for Windows. But, they are all commercial systems and 32 bit development environments are still quite expensive. Microsoft has made support of interactive entertainment a serious priority in the last few years and has released several versions of their DirectX game development tool kit. DirectX is great.

Commercial 32 bit MSDOS development tools are also fairly expensive. But, perhaps the best C/C++ compiler available, the Free Software Foundation's gcc, is available for free in the form of DJGPP. There is a shortage of commercial quality multimedia APIs for DJGPP, but there are several usable libraries available.

The Java JDK is available for free download from JavaSoft. Along with the JDK a number of different commercial quality APIs are also available for free download. Java is also unique in that many commercial development tools are available for considerably less than C/C++ development systems from the same companies.


Copyright © 1997 Robert C. Pendleton. All rights reserved.