Stephen Letschin - firstname.lastname@example.org | Steve Matuszek - email@example.com | Greg Sturniolo - firstname.lastname@example.org
November 25, 1996
This paper was developed as part of the requirements for the course: CMSC 331 Priciples of Programming Languages, University of Maryland Baltimore County.
Computer games for most computer systems have their beginnings in Pong. This rudimentary game established games as part of the computing landscape, and secured gaming a place at the forefront of technology. Over time, Pong was replaced by text-based, often role-playing, games. While these games were more involved than Pong in concept, they lacked the graphical capability of the games yet to come. These text-based games were quickly replaced by games involving basic graphics and, ocassionally, sound. Over time, these graphic games developed with better graphics and improved player interaction. In recent years, games such as DOOM have developed that allow the standard gaming enviornment to extend to multiple players over a network. These network-based games have continued to improve and involve more and more features. Latest generation network games such as Descent provide 3-D, CD-quality sound, multi-user support, and numerous other improvements. These networked-games are but a prelude however to the capabilities that exist for games played over the World Wide Web, the graphical portion of the biggest network in the world, the Internet.
ActiveX is "a set of technologies that enable software components to interact with one another in a network environment, regardless of the languages in which they were created. ActiveX is built on a Component Object Model (COM) and leverages 5+ years of Microsoft investment." (Microsoft web page). ActiveX is the heir apparent to OLE and OLE control (OCX) architectures.
Since ActiveX is based on existing OLE and OCX technology, migration of existing OLE and OCX objects is quickly feasible. This provides a wealth of existing code for usage on the Web. As well as the code, there are any number of OLE/OCX programmers whose expertise is therefore instantly applicable.
ActiveX objects can bedeveloped not only for usage with the WWW but for integration into any number of applications that support OLE. These include word processors, spreadsheets, database applications, etc.
Additionally, ActiveX's close ties to the Visual Basic development environments (both were created by Microsoft) allow for easily designed ActiveX controls. Visual Basic is also well known to numerous programmers already, meaning again that programmers skilled in it need not learn much more in order to be able to develop for ActiveX.
First and foremost, ActiveX is currently implemented only for Windows 95 and Windows NT. Additional implementations for Macintosh and Windows and 3.1 are in development by Microsoft, but are not fully functional. Microsoft's recent decision to release ActiveX to the Active Group, an industry-wide development test forum, may help partially to alleviate this platform dependence on the client side. However, Microsoft's refusal to release server-side development may severely hamper further platform support.
And, of course, ActiveX only works inline with Microsoft's own web browser, Internet Explorer. There are third-party solutions appearing to allow Navigator to use ActiveX, but Netscape does not intend to support it.
Despite the ability of ActiveX to use existing OLE/OCX objects, many of these objects were developed using C and C++ and often include direct hardware calls, severely compromising their usefulness on the Web.
Significantly, many corporations that are developing interactive Web applications are choosing Java over ActiveX. This limited industy support, combined with Microsoft's own embracing of Java technology, make ActiveX's future uncertain at best.
We couldn't find any ActiveX games that would run on any of our systems. Hopefully, ActiveX will be fully supported on more platforms soon.
Sun, in the Java white paper, describes Java as a "simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multi-threaded, and dynamic programming language." It began as an attempt to create a programming language, then called Oak, that could run on any of the numerous different platforms within the company. With the explosive growth of the World Wide Web, its developers realized that the cross-platform language would be ideal for Web applications.
Java is a compiled language, based on platform-independent byte codes, executed on the Java Virtual Machine. This increases its performance in terms of speed.
Its biggest advantage is that it can be run on both Netscape Navigator and MSIE, on any platform for which there exists a Java Development Kit. This includes Windows 95 and NT, Macintosh OS, and most major UNIX window systems. It does not currently include Windows 3.1, but Netscape has already pledged to support it in Navigator once a 3.1 JDK is released.
As for the Java Virtual Machines themselves, their most important feature is how seamlessly they fit into their respective operating systems. Specifically, the Java Abstract Windowing Toolkit allows for simple use of otherwise complicated OS components such as dialog boxes, windows, scroll bars, and so forth.
In sharp contrast to the lack of industry support enjoyed by ActiveX, Java has been embraced by most major computer corporations, as well as some electronics manufacturers, as an excellent starting point for all sorts of network applications.
It has been said that Java is essentially C++ with the object-oriented components "done right". Its close similarity to this language allows it to be learned with a minimum of effort by a maximum number of programmers who already know C++, an industry standard. Furthermore, there are uncountable C++ classes than could be simply converted into Java code.
Java includes in its design automatic garbage collection, dynamic variable declaration, and a complete lack of pointers. These by themselves eliminate the cause of the most common and insidious errors in C++, saving time and providing greater reliability.
Java, as stated before, doesn't run on Windows 3.1. This is just one operating system, yet it is still the one run by the majority of users.
The browsers themselves, in fact, have needed more memory as the Java Virtual Machine has been incorporated right into the application.
One sample game is called Gridlock and can be found on Riddler ( http://www.riddler.com/ ), a site featuring many professional-level Java games. The nice graphics, sophisticated user interface, quick response time, and head-to-head capability are representative of most Java games we tested, and showcase many of the language's capabilities.
After long research of games already written for the Web, our initial impression was that most of the best games tested had been written in Java. To explain the reasons for this, we will revisit our application specifications and evaluate each language's strengths and weaknesses.
Java games look good, run well, and there are a lot of them out there. In this case at least, it appears that the standard the industry is adopting is in fact the best choice.