Hey All, this is a re-send of last night's failed post due to language. I've edited the offending passages with *s surrounding the edits so you'll be able to get the original drift if you like.
Have a great day ! Enjoy!… Smiles, Cara :) Jeff Kesselman's Blog Community: Java Games Archives History is made of this... Posted by jeffpk on April 27, 2004 at 04:44 PM | Permalink | Comments (24) History is made of this... Another week, another games ramble. The history of computer games can be viewed a myriad of different ways. For me, the big “historical events” have been the growth of new genres. Once a genre is established it will get worked in every possible manner but to me those have always been the boring details. I find DOOM far more interesting a phenomenon then Quake4 or DOOM2 because all these games add is technical refinements to a fundamental formula that was established by DOOM. At the end, the experience may be refined and enhanced but its still an experience I've had before (running around with a gun in my hand trembling at whats around the next corner) and that bores me. To me games that were really historical landmarks are relatively few and far between. Just to illustrate, I have below a short list of games I feel fit into this category and why. It is of course a subjective and personal list and it is biased to some degree by the kinds of games I like to play and thus knew best. These are all computer games or arcade games that I believe directly influenced computer games. I've also left out education which again is a separate category for another time. (1)Pong, Atari. The first game to recognize that moving dots on a TV screen inert actively could be fun. (2)Tanks, Atari. The first (very privative) combat vehicle sim. (3)Adventure, (student at MIT whose name escapes me). The genre setter for interactive novels and the root of all adventure games. (4)Code Wars. The first programming combat game and the granddaddy of all the programmable robo-sim games of today. (5)Riddle of the Sphinx, Activision. The first graphic adventure game. (6)Wizardry. The first CRPG and the fundamental genre setter for all CRPGs to follow. (7)Pool of Radiance, SSI. The first CRPG with a third person combat mode. (8)Hack (later Rouge). The first all third person RPG. (9)Donkey Kong, Nintendo. The first platform game. (10)Bill Budge's Pinball Construction Set, Electronic Arts. The first “game” that was a toy to build your own games with. (Ignoring BASIC and other languages.) (11)The Sub-Logic Flight Simulator, Sub-logic (later acquired by Microsoft). The first flight sim for a mass market micro-computer. (12)???, Electronic Arts. I can't remember the name of this but it was the first submarine-simulator game. (13)Need For Speed, Electronic Arts. Set the standard for driving simulations. (14)Crush Crumble and Chomp, Automated Simulations. The first “you play the monster and destroy things” game. (15)Whatever the first SSI hex war-game was. (I can't remember they had so many and they were all so much alike.) (16)The first sailing simulator, whose name again escapes me. (17)Warlords. Arguably the first strategic level battle simulator and the granddaddy of the RTS category today. (18)Balance of Power, EA (Chris Crawford). Set the standard in grand- strategic political games. (19)Trust and Betrayal: The legacy of Siboot, EA (Chris Crawford). The first experiment in real machine opponent personality and AI. Arguably the granddaddy of games like “Good and Evil.” (Also one of the only games ever to be released first on Macintosh ;) ) (20)Maze Wars, (freeware, many versions). The first multi-terminal real time game and one could argue the granddaddy of all FPSs. (21)Xtrek, (freeware). The first multi-terminal third person shooter. (22)DOOM, ID software. The first environmental horror survival game. Yes I know most people consider it the granddaddy of FPSs but I'd actually disagree slightly. Maze Wars had already established the “run around the maze and shoot things” genre. What was really new about the DOOM experience, I'd argue, was that it made you AFRAID to turn the next corner. Genre wise I'd argue that DOOM has more in common with House of the Dead then with Max Payne. (23)Summer Games, Electronic Arts. The first sports game. (24)Impossible Mission, Electronic Arts. The first sneaking game. (25)Hitman: Code Name 57. The first “sneak up and kill someone” game ;) Okay its really a mix of pre-existing genres but I couldn't resist it. This game DID gie me a fundamentally different experience playing it then any game I had played before. (26)Neverwinter Nights (the original), SSI. The first “massively” multiplayer on-line RPG. (After multiple enhancements, massive topped out at about 500 simultaneous players as I recall (27)MechWarrior. The first giant robot sim. I'm sure there are others but I'm going to stop here and ask all of you to add your own. Keep in mind that to be part of this list the game should have defined a truly new genre with a genre being defined as a fundamentally new experience and not just a twist on an old one. Just better graphcis (or graphcis v. text) shouldn't be enough to qualify it. Thats an incremental imrpovement. Adventure for instance made me think I was physically somwhere else doing something else and thus no other game can lay claim to originallity just on that score. This is all of course subjective but I think its interesting to think about. Now what I really wanted to get to is... what next? We haven't had a real genre burster for a long time. I think one might argue that City of Heroes for instance is at least partly a genre buster being the first massively multiplayer supers game. Doing a world of Supers is a whole different problem then doing a game where there is only one super hero-- the player. How they've approached it is interesting. While large parts of it are derivative of previous RPGs, they've come up with what might be considered a new synthesis that gives a fundamentally new play experience. I contend that there is huge untapped potential in the online space and the next big leaps are likely to occur there. Online games are fundamentally different from single player games .In single player games, you primary job as game designer is to craft an interesting and engaging experience. In online games though arguably more important then the challenges are designing an environment that creates a functioning and engaging community. A friend of mine in high-tech policy (he was a senior high-tech ad visor to the Clinton administration) once said to me: “The killer app of the Internet is each other.” In retrospect think he was right and it will be interesting to see what new genres of games emerge as game designers Grok this. Things that go BOOM! Posted by jeffpk on April 20, 2004 at 07:42 PM | Permalink | Comments (4) This week's Blog is gonna be a ramble. I hope at least its a fun one. Things that go BOOM! Well I've been playing for about a week in the City of Heroes beta. I'm not wrong often, but when I am I do my best to own it. I've described this in the past as “The Greatest Game That Will Never Ship.” I was wrong. Its simple, but done, and will be going live on the 28th. Whether it survives going live only time will tell. They have been doing their best to have us testers simulate launch load but I doubt we're even close to whats gonna hit these machines opening day. Lets face it Sword and Magic and Lords and Ladies has a pretty limited target demographic. But wearing bright colored Spandex and making things go BOOM has a pretty wide appeal. Based purely on what I see I'm going to make some guesses to their server architecture and what they've encountered so far. It looks to me like the basic design of the game is very much EQ like in server design. They have central “congregation” servers where people tend to clump and then mission areas you get sent off to. Unlike EQ the mission areas are spawned dynamically on entrance. Thus if my team and your team go on the same mission we end up in different areas. As well as spreading the load out some, this has the nice effect that you don't get to your mission just to discover someone else has already accomplished it. It also builds strong team spirit as those are the folks you really “are playing with.” The whole setup is of course sharded into multiple “servers” each of which is really the cluster of servers running that instance of the game. Having said this, it looks like they discovered during test that their congregation hubs just couldn't handle even the sharded the load. As such the effectively “sub-sharded” those areas into multiple instances. Atlas Park for instance is actually 6 or 8 different instances of Atlas Park and you chose which one you want to go to when you enter that region. The good news is that it keeps those areas from becoming over-crowded. The bad news of course is that it introduces an obvious “break with reality” into the game. “Hey I'm in Atlas Park under the Atlas statue where are you?” “I'm there too.” “Oh.... ", pause, "Atlas park 2?” “No, Atlas Park 5.” The hacky nature of this makes me strongly suspect it was a kludge to handle over-loading on the server, client, or both. Are Roleplay Games about Roleplay? Role play, N. In role-playing, participants adopt characters, or parts, that have personalities, motivations, and backgrounds different from their own. Source: http://encyclopedia.thefreedictionary.com/Role-play An interesting, and to me frustrating, observation from playing CoH is that the majority of the community not only don't role play, but don't even understand what role play is and why you would want to do it. As an old Pen and Paper role-play gamer this is the primary draw to me and role-play only works in an environment where people understand it and participate in it. Now come launch those like me are talking about staking off one server as the “role-play server” and moving there en masse but this begs a bigger question. Namely, is Role-play the primary goal of an OLRPG? If so then all the games to date pretty much fail in their goal. I have only actually ever seen one game that taught/encouraged people to learn how to role play. A pen and paper game called TORG. By its however nature that aspect would not convert to an automated environment because it requires a human to judge the role-play and modify results accordingly. On the other hand. These non-role-players, as lame as they might seem to me, are having fun and are paying big bucks up to the game developers. In any game development effort that sounds like a success. So maybe, just maybe, whats wrong is the name and we should stop calling these “Online Role Play Games” and start calling them something else. I'd vote for OLBMCJ myself (Online Bash Monsters & Collect Junk.) Conclusion Well, I have to say that even with server oddities, simplistic game play and lame kiddies who wouldn't know role-play if it bit them in the *butt* , City of Heroes is a lot of fun. How long it will hold my interest is tough to tell, I generally burn out on these things after I've explored most of the new-experiences and role-play potential. I also have some concerns about launch day. Cryptic is doing all the right things in testing, but its clear they already had scaling issues even with the just the beta population and there is no way then can predict or model the flood of pent up demand for this product. About all they could do is limit the number of boxes they ship, but that could have other bad impacts on their sales. All I know is I intend to be there banging on the login server with the rest of them the day they open the gates! Faster, Better, Cheaper. That's What! Posted by jeffpk on April 13, 2004 at 06:34 PM | Permalink | Comments (58) In AT's interesting Blog "You Can Make Real Games In Java!!! Yeah... But So What?" he raises a lot of interesting questions. What I don't entirely agree with though are his answers: "Problem is, as far as these guys are concerned, anything we can do in Java, they can do in C++. And they already know how to write games in C ++, so proving equivelant (sic) capability is no real argument at all." By definition, anything that can be done in any language can be done in assembler. Yet higher level languages continue to evolve and developer. Why is this? The answer is that just getting the job done is not enough. If there is a tool that will get the job done faster, cheaper or quicker then that is often the right tool to use. Sometimes its tough to convince someone to try a new tool. It took me forever to convince my wife that using the heal of a shoe to drive a nail in was giving her inferior results for too much effort and that she should leanr to use a hammer. Needless to say today though she doesnt reach for a shoe when hanging a picture. "Cross-Platform? Well, cross-compilers for games have been around for a while, and when game companies are thinking cross-platform they're primarily thinking PC, PS2 & Xbox not PC, Mac & Linux, so Java's not really gonna help them there. " Tell this to Bioware, who set out to write Neverwinter Nights as a cross platform C project for Mac, Linux and Win32. In the end the Linux and Mac versions shipped highly incomplete and have not been maintained with upgrades the way Win32 has. Why was this? Because while you CAN write cross platform C, its *darn* hard. In the end trying to do so adds so much to your expense of development that you really can't afford to target those secondary markets. Bioware eventually gave up and used Win32 specific tools to build the ore of their product-- the Aurora toolset. As a result that is not part of the Mac or Linux releases and what could have been major breakthrough products on thsoe platforms instead became incidental curiosities. "Why care about the Mac market. Its only 10% of the desktops", you might ask. Yes, its only 10% but its a voracious market under-supplied for game content. That market supported and built Bungee, the company responsible for Halo, through all its start-up years. Thats real money folks IF you can get there cheap enough that the expense of opening the market doesn't eat the all the profits. Java can do that. C can't. Its that simple. And who is to say Java won't extend its reach to other important platforms like the game consoles? The game console manufacturers are driven by their developers. Thats a fact of the industry. All it would take is one developer writing a super-hot game in Java and then telling Sony, "Gee we'd like to port to your platform but we need Java" and I guarantee you Java would arrive on PS[whatever]. Athomas next comments on the memory management situation in Java. "No offense to the truly brilliant minds who continue to catapult the JVM leagues ahead in power and capability with each release, but memory management in games, especially on constrained devices like consoles, largely consists of pre-allocating objects and disposing of them when you're done. Having a process you don't control eating CPU cycles in the middle of a tight game loop isn't really seen as a bonus." The mistake here is equating the state of current Java memory management with the possibilities of proper game-oriented GC. Let me tell you as someone who wrote games and game portability libraries that "little process" of self memory-management that game developers follow that AT describes is a royal pain in the rear. A proper game GC, where you could tell it "this is the maximum hit I want per game loop iteration right now" would be a godsend and reduce development and debug time significantly. It would also reduce the large number of memory errors that games today typically ship with. (Ever play your favorite game for a really extended period of time and have it lock or crash out? Surprise, thats probably bad memory management at work.) More importantly though is what garbage collection really enables, which is proper object oriented coding. Today game programmers don't write OOP. They may use C++ but by and large they use it as a C compiler with stricter type checking. Given their tools today they cannot separate their code effectively into reusable objects and modules. Global memory management means monolithic code, its really that simple. Java GC frees you from that. You can allocate temporary on-the-fly objects as needed and be assured they will get collected without other parts of the code needing to know anything about them. And thats the real reason why GC is essential. Does today's GC meet game needs? Unfortunately not, but the developers of the Java spec in their wisdom preserved a lot of maneuvering room for new GC algorithms and I'm confident we will eventually see GCs that can handle game needs. "What about RMI? Object Serialization? " Sorry AT, this is a straw man. Noone having to manage and count individual bytes uses these. Instead, you should have asked "what about NIO and scattered reads and writes?" These are the Java facilities for low level packet twiddling and they are a lot more convenient then their C counterparts. conveniences means faster development and less bugs. However, I'd even argue with the assertion that serialization is not of value. Used judiciously it again can give you code modularity without a very high overhead. A great example is the UUID class that is used throughout the back-end of the Sun Sim Server (I'm told by the way we're going to change its name back to Sun Game Server so get ready to see that in the future.) UUIDs are generated in a few different factories and then passed around and used by other parts of the stack that never need to know their insides. Without serialization, the layer that transports such things must know their internals. I can see this convenience and code modularity (again read "faster development, fewer bugs, better maintainability") reaching out through the edge of the back-end and over the net as bandwidth issues become less and less. There are already game consoles that require broadband for game play. What's 10 or 12 extra bytes on a 128K connection? Then there are some other qualities of Java AT didn't get to. Like the fact that the entire language is designed to "fail-early". Many errors that plague C programs are caught at compile-time in Java (eg uninitialized variables, dead code, memory leakage through orphaned data blocks). Others are caught as soon as they occur and exceptions are thrown (eg null pointer access, array over-run and under-run.) These are all things that plague games in release today. So not only is writing Java more convenient, its inherently more bug-proof. Finally, and perhaps most importantly, Java is a language built to handle complexity. In C++ you pay penalties for making your code modular and reusable. In Java, thanks to the miracle of run-time compilation, the easiest and fastest ways to do things are often also the most modular and reusable. Reused code is tested code, leading again to faster development and fewer bugs escaping into the field. Okay so maybe Java IS good for game developers. It opens markets by reducing porting costs. It allows the developer to deliver more reliable code quicker. Most importantly It allows the developer to reduce the complexity of the game programming problem down to manageable units. But what's wrong with Java as a scripting language? The answer is nothing is inherently wrong with it. In fact, its so easy and obvious, its already a fait accompli. Management always likes targets that are already accomplished-- they can declare victory and go on. But setting your goals on already accomplished things gets you no where. Java has the potential to radically transform the game industry, making better and more reliable games easier to build and deploy. It would be a crying shame to set our goals at anything else. We've seen transitions like this before in the game industry. Perhapses I'm the only one in the GTG long enough in the tooth to remember this but I lived through the transition of game coding from assembly to C. And the partial transition to C++. These transitions *are* painful there is no denying it. Some developers will absolutely refuse to move, and will eventually find themselves marginalized like the assembly coders are today. Another set will only move when its a proven thing. When the waters seem safe. Those guys will be scrambling for jobs and catching up on their skills. Some will manage the transition and some will fall by thge wayside. But the leaders, the guys who are *always* at the front of the industry, are already playing with alternate technologies like Java. They do it at home on their time so when the shift comes they will be ready for it. The big question for the game developer is which group do you really want to be part of? The big question for us at Sun is, do we want to ride the front of the wave which means pushing Java into new uses or do we just want to sit safely on the beach content with the uses and users of today. Myself, as John Brunner puts it in "Shockwave Rider"-- I'm a chaos surfer! Always have been. Thats why I'm here at Sun pushing Java for game development instead of writing "web services" or whatever managements favorite easy-win is today. Why? To quote a song well known to old fogies like me, “'Cause Mama, that's where the fun is!” --- View my Online Portfolio at: http://www.onemodelplace.com/CaraQuinn --- Gamers mailing list __ [email protected] If you want to leave the list, send E-mail to [EMAIL PROTECTED] You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/[EMAIL PROTECTED] If you have any questions or concerns regarding the management of the list, please send E-mail to [EMAIL PROTECTED]
