bfioca
11-22-2003, 09:34 PM
Hi all,
I've been reading this forum for a few days now (read: lurking), and I figured I'd try my hand at shedding some light on the issue of maybe why the Online version isn't quite ready yet.
Here's some background first. I was a beta tester, so I've seen Live. I'm also a software developer who works in the field of internet distributed systems. The company I work for, in fact, has recently been experiencing issues not unlike (presumably) those of Ubi/Cyan on their live servers.
The main issue is this: real-time distributed systems are *hard*. There are many reasons for this, the main one being the nature of the internet - firing packets off, some getting lost/dropped, resends, out-of-order communications, etc. The internet was never designed with real time systems in mind. In fact, much of the work going on with the next generation internet (IPv6) has to do with this issue.
Another major issue is intra-server concurrency. When you have hundreds of people on a server, all in contention for the same resources, there are many, many possibilities for failure, including deadlock issues, out-of-synch problems, the list is pretty large.
Compounding the complexity of planning for and solving these issues is the fact that for a system such as an online game, there are no load-testing programs out there you can use to test for bugs. You are basically forced to test in the production environment, since there is almost no way of simulating a real-world load in the QA cycle. No matter how much design and testing you do, until you get your software out there being hammered on you won't really know how it behaves under stress.
Now you may be saying "yeah, but that's why they had the beta test," and I agree with you to some extent. From what I saw of the beta, they were constantly making improvements, but the one thing that never really got much better was the lag caused by too many people. Lag is caused when the servers get bogged down with trying to keep track of everyone/everything and then having to send all of that information to everyone connected. There are ways to optimize this (You may have seen other MMORPGS deal with this problem by having the client assume a person continues doing what he's doing until it hears otherwise - causing the avatars to skip around, or float when they jump, etc.) But I'm sure Cyan doesn't want to compromize the look of the environent or the smoothness of the experience at all, which leads to the need for *entirely new ways of thingking* on this subject to fix these problems.
In short, these guys are really breaking into new territory here. What they're attempting to do from a distributed computing/real-time systems standpoint has never been done before. I imagine they are working extremely hard to make this game outrageously immersive and interactive in ways no-one has ever seen before, and I understand how obscenely difficult it is do accomplish what they're trying to do.
What most likely happened is when Cyan said that they needed more time to perfect the online game, Ubi pushed them into releasing the Prime version to get the cash flow up to a point to enable them to really produce the game they wanted to make. I'm all for this, as the alternative solution would have been to compeltely compromise the fundamental beauty and complexity of the online game.
Thanks for reading, I hope I've maybe cleared some of this up. I'm hoping I get my invite on monday. Cyan/Ubi - Please consider this an application for a Dev position (resume available upon request)
Brian Fioca
brian@fioca.com
I've been reading this forum for a few days now (read: lurking), and I figured I'd try my hand at shedding some light on the issue of maybe why the Online version isn't quite ready yet.
Here's some background first. I was a beta tester, so I've seen Live. I'm also a software developer who works in the field of internet distributed systems. The company I work for, in fact, has recently been experiencing issues not unlike (presumably) those of Ubi/Cyan on their live servers.
The main issue is this: real-time distributed systems are *hard*. There are many reasons for this, the main one being the nature of the internet - firing packets off, some getting lost/dropped, resends, out-of-order communications, etc. The internet was never designed with real time systems in mind. In fact, much of the work going on with the next generation internet (IPv6) has to do with this issue.
Another major issue is intra-server concurrency. When you have hundreds of people on a server, all in contention for the same resources, there are many, many possibilities for failure, including deadlock issues, out-of-synch problems, the list is pretty large.
Compounding the complexity of planning for and solving these issues is the fact that for a system such as an online game, there are no load-testing programs out there you can use to test for bugs. You are basically forced to test in the production environment, since there is almost no way of simulating a real-world load in the QA cycle. No matter how much design and testing you do, until you get your software out there being hammered on you won't really know how it behaves under stress.
Now you may be saying "yeah, but that's why they had the beta test," and I agree with you to some extent. From what I saw of the beta, they were constantly making improvements, but the one thing that never really got much better was the lag caused by too many people. Lag is caused when the servers get bogged down with trying to keep track of everyone/everything and then having to send all of that information to everyone connected. There are ways to optimize this (You may have seen other MMORPGS deal with this problem by having the client assume a person continues doing what he's doing until it hears otherwise - causing the avatars to skip around, or float when they jump, etc.) But I'm sure Cyan doesn't want to compromize the look of the environent or the smoothness of the experience at all, which leads to the need for *entirely new ways of thingking* on this subject to fix these problems.
In short, these guys are really breaking into new territory here. What they're attempting to do from a distributed computing/real-time systems standpoint has never been done before. I imagine they are working extremely hard to make this game outrageously immersive and interactive in ways no-one has ever seen before, and I understand how obscenely difficult it is do accomplish what they're trying to do.
What most likely happened is when Cyan said that they needed more time to perfect the online game, Ubi pushed them into releasing the Prime version to get the cash flow up to a point to enable them to really produce the game they wanted to make. I'm all for this, as the alternative solution would have been to compeltely compromise the fundamental beauty and complexity of the online game.
Thanks for reading, I hope I've maybe cleared some of this up. I'm hoping I get my invite on monday. Cyan/Ubi - Please consider this an application for a Dev position (resume available upon request)
Brian Fioca
brian@fioca.com