Video gaming is now the biggest entertainment industry on the planet. According to strategic marketing firm DFC Intelligence, worldwide video game revenues reached $23 billion at the close of 2003, and are projected to reach $30 billion by 2007. An entire generation of Americans, now in their 30s, regard playing video games as no different than watching television or going to the movies. Sun Microsystems, in June of 2003, announced the creation of the Game Technologies Group, to build Java technology-based next-generation technology for the game developer community, with a focus on the fastest-growing sector of the industry: connected online games.
To head this group, Sun turned to Chris Melissinos, a self-proclaimed video game addict, who wrote his first game when he was 12, and currently owns 27 game consoles. As Sun's Chief Gaming Officer, Melissinos is responsible for the development of Sun's programs, offerings, and vision in targeting the electronic entertainment industry. He drives an industry-wide movement toward Java technology-based game development, as well as building infrastructure programs for massively-connected game play.
We met with Melissinos recently to talk about the future of games and Java technology.
You are a self-proclaimed video addict. What attracted you to this area?
I became involved with computers at the dawn of the home computer age. The first computer I played games and started programming on was a TRS-80 Model III. But my interest in programming really exploded when we got a Commodore Vic 20 at home. After the computer booted up, you had roughly three kilobytes of data space left over to build your game. That I could create a particular environment out of my imagination that I could control, and manipulate as I chose, was very compelling. It's an incredibly empowering feeling, which I think fueled the very earliest video game endeavors. You're building virtual worlds and characters and stories that never existed before, but now have some permanence. I wrote my first game when I was 12 and I continue to love video games more and more. Today, I own 27 game consoles, several PCs, and my children are avid game players as well.
What is it in human nature that makes gaming so popular?
I think it's connected to our basic desires as human beings. One is for discovery and exploration. In some of the most popular games you have to discover what's going on in the environment, and how the creatures interact. Myst was the #1 selling PC game of all time until Sims eclipsed it. The creators of Myst will tell you that they were aiming for a much older demographic when they wrote the game, which is all about exploration and discovery in a world where things aren't what they seem. Locks that don't look like locks open doors. Puzzles need to be solved in order to progress in the game. They found, to their surprise, that it attracted a wide variety of ages and audience. The basic appeal was that an entire virtual world opened up for you and was yours to discover and interact with.
- Chris Melissinos,
Another reason gaming is so popular is the true sense of community that has emerged in online gaming. We're at the beginning of the massively multi-player, connected games where ten or fifteen thousand of your "closest friends" play in a game universe. You band together to complete quests, and trade items with other people, and conduct community activities within this virtual space. Online games allow us to interact with other people in a virtual world where we can be what we can't be in life. We can be warriors or wizards, or the guy that saves the day. We can be blacksmiths, if we choose. We can step outside of our mundane roles and escape to other worlds.
A third reason gaming is so hot is pure adrenaline -- there's nothing like experiencing a 12-hour game tournament and emerging at the top!
If I'm a Java developer interested in working in the gaming area, where are the best opportunities?
The games industry is different from other technology sectors in that it's viewed as an artistic pursuit in addition to a technology- based one. Of course, technology is employed to write the programs, but art is central. To create good games, a developer should have wide ranging skill sets. Everything from English and language skills to history, to mathematics, and art help one succeed in the gaming industry. To create games you have to be a Renaissance person.
Being a Java developer isn't enough. I would ask: Do you have a solid game concept? Are you following online gaming's time conventions? To create games, you should understand the various disciplines that go into building games. What makes a game fun? What does compelling game play mean? How do I create a solid story line? If you're creating, for instance, a historical game, you should know history.
And the type of game is important. If you're building what are called first-person shooters, you will need straight technical and level-design expertise. Story lines almost always play secondary to the game mechanics. If you're building a game like Civilization 3, you need people on your team with a background in history so they can bring all of that content to the historical battle simulator. If you are building a Final Fantasy type of game, storytelling and employing great writers is critical.
Many people involved in the game space have doctorates, or are specialists in a particular field. From a technical perspective, we have a terrific Web resource, the java.net/games community, (http://community.java.net/games/) which is the video games section of the java.net properties, with everything from technology code up and running, to demonstrations, to tutorials in building game components using current Java technology. Also, we sponsor a forum with over 2800 registered developers that focuses on everything from network technologies for creating games using Java technology to 3D graphics. Second, I recommend the other Web resources such as gamedev.net, (http://gamedev.net/) and some of the other game development boards.
Many universities are now offering two-year, or even four-year degrees in game development. The University of Maryland offers some courses in game development. Schools like Full Sail, which is a media school based out of Orlando, Florida, offers a fully accredited two-year degree focusing specifically on media. There are other schools such as the DigiPen Institute of Technology out of Washington state, which was originally founded by Nintendo, that offer degrees to students in game development.
Suppose game developers want to migrate to the Java platform. What kind of technical barriers might they face?
The most difficult barrier is psychological, which is the mistaken belief that Java technology is slow. Java technologies do not compromise what you are trying to build. Java technologies today perform as well as C++. The amount of tools that are now available for Java development is fantastic -- everything from Sun's products to Open Source projects and tools are available. There is a tremendous amount of information available about migrating to Java technologies from C++ and other technologies, again available through java.net as well as other sites like gamedev.net.
- Chris Melissinos,
Benefits of moving to the Java platform from C++ include accessibility to more platforms, decreased development time, automatic garbage collection, and not having to track down bugs and memory leaks. These benefits allow a faster time to market and enable you to run your game on more than one platform. And again, the key point is that the performance is there. Roughly 90% of all the PC games that were released in the past year could have been done with existing Java technologies.
What drives Sun's focus on games?
Sun sees an enormous emerging market as, for the third year in a row, game revenues have outpaced those generated by Hollywood. And we see certain problems emerging in the industry that Sun is capable of solving because of our expertise at working with networks. For years, games have followed a limited model. Small groups of people build games using specific technology to run on specific platforms. So developers today may spend all of their resources developing a game that runs only on PlayStation 2. This model worked for 20 years, but in the last few years, games are being played that run on many different devices. It has become very difficult now to pinpoint exactly where a person is playing. Five years ago, you played video games on your PlayStation, and did email and Web surfing on a PC, and made phone calls on your cell phone.
Now, you can do all of these things on all the various devices. So, as consumers become untethered from specific devices for specific functions, you are now in essence chasing them as they move from device to device. I can get my email on several different devices. So, I don't need to be stuck on this one particular device. Sun identified a particular problem, namely that most games today are still built on a particular platform. So, Sun asked this question: How do we provide a technology framework that doesn't sacrifice performance, but allows game developers to quickly get their intellectual property on multiple devices? Java technology provides by far the most ubiquitous platform by which to get a game onto a wide variety of devices.
So the challenge is to build technologies on the Java platform that enable this to happen?
Exactly. We are currently building some very specific game-focused technologies in the Java language. We have released three separate technologies to the Open Source community -- Java bindings for Open GL, Java bindings for Open AL, which is open audio library, and JInput, which allows you to take a fishing controller, plug it into a computer, and have the computer understand that it's a fishing controller and how it works. By delivering technologies to the Open Source Community, we've been able, for instance, to have the input API ported over to the Linux platform inside of a week and a half by the community.
We originally put our technologies into the Java Community Process, but we found that the games industry moved faster than the JCP, so we decided to introduce them to the Open Source community. When it comes time to lock down those standards, we will reintroduce the complete APIs back into the Java Community Process with a reference implementation. But the fastest, most effective way to get the games community what they needed was to introduce the technologies into the Open Source community.
So, again, the first problem we sought to solve was: How do we get a good, high performance, compelling stack of technology that will let game developers get their content out to multiple devices?
- Chris Melissinos,
Television works well because it has a standard distribution that enables it to deliver content -- NTSC (National Television Standards Committee) in the United States. I can take one piece of content -- let's say a rerun of "Friends" -- and as NBC, I can put it on the network, and basically have thousands of televisions of varying sizes, shapes, and models all view the content, whether it's a two inch hand-held television in Washington, DC, or a Jumbotron in a stadium across the country in San Francisco. The same content can be viewed on different devices through different distribution mechanisms, because I have a standard of distribution. What is the equivalent for interactive content? There isn't one. This is what we're building towards -- standardizing the distribution of interactive content through the ubiquity of Java technology.
And Sun is leading the way.
Absolutely. In fact, we've been told over and over again by game companies, "There is no other company that can do it but Sun." We are approaching the problem from a very different perspective, because traditionally the games industry has always been very heads down in their thinking: "If you want to build a game and get your highest performance, you're going to have to focus on this one platform, and you're going to have to focus deep, and do all the tricks and tweaks you can possibly do to get that game running effectively on this machine."
Well, who has the time and money and resources to focus on five machines at the same time? The reason we believe that Java technologies will emerge as the standard is that the cost for developing games today is so prohibitive that game companies must look to more than one platform to recover their investment. The average game costs six million dollars to build.
Suppose I create my game and invest five or six million dollars. I must market it and put it on the shelf with 200 other games, and hope that it sells well enough in the next three months that it doesn't get discounted and sent to the bargain bin along with 90% of the games. By using the Java APIs that we are introducing into this space, we will give developers the ability to monetize three platforms at the same time.
So, the ultimate vision of Java technology and games is one in which games are available anywhere, anytime, facilitated through a network computing infrastructure enabled by Java technology?
There are two parts to it. The first involves using Java technology to get your content on to as many platforms as possible to return as much of your investment as quickly as possible. Secondly, many scalability issues are inherent in today's massive multiplayer or connected games, games that are serviced by a network.
Sun has had tremendous success in marketplaces with such scalability issues. I like to say that the biggest massive multiplayer game in the world is Wall Street. If you look at online Wall Street trading systems, they very closely mimic what happens in an online video game, except that in Wall Street, you have millions of people with millions of connections doing real-time financial transactions with more reliability, more redundancy, and more availability than anything the games industry has built to date.
- Chris Melissinos,
Sun has been in this business for over 20 years. So our challenge is to bring the expertise we have in building massively connected environments into the games industry. To make a highly scalable, robust, game-centric set of technologies for the server side. We are going to be demonstrating these technologies in late March of this year at the Game Developers Conference. We expect to stimulate a fundamental shift in the way game companies build their back-end networks.
Finally, how do we combine the expertise that Sun has in building big infrastructures, with Sun's wealth of knowledge in building client-side technologies for game content, and bridge them together using a multitude of devices? Here's an example. The fastest and hottest growing gaming device has to be the mobile phone. Mobile phone games have taken off in the past year and are expected to continue their run rate throughout the next several years. But most game developers look at the phone, and view it as just another console except that they've traded the shrink wrap distribution of software for the over air provisioning of software. But by approaching cell phones in this way, we aren't taking advantage of their best features -- one, they're mobile, and two, they can be connected for more than just downloading your game. At the Game Developers Conference in March, we will demonstrate how a cell phone can become a compelling part of an online game that you would normally play on your PC.
What if my cell phone could be used to do things like trade items with people that are playing on their PCs and their videogame consoles so when I'm not at home, I can still engage with people I normally play with? What if I could use an online portal to do parts trading for my automobile that I use in an online game? What if I could use my cell phone to trade items with other game players, give friends that I play with online the ability to reach me on a variety of devices to do everything from inviting me to join a game to informing me about the virtual game world in real time? "There's a giant Orc in front of us, and Chris, you're the only guy with the slayer of Orc sword. Can you give it to me?" "Well, guys, I'm actually in the middle of a meeting. So, let me go ahead and send it to you via my cell phone." By allowing these game mechanics to extend beyond one specific platform, we offer so many other things that are available now, not only to the players, but to the game developers as well. The ability to keep their content and their intellectual property in front of their consumer as they move from device to device becomes viable.
Also, it will be possible to charge for that access across those devices. By using Java technology, we're leveraging the ubiquity of the platform that exists on these devices. So, we think there are some very exciting possibilities moving forward for both game players and developers.