2008-08-21 13 views
24

Project Darkstar fue el tema de la reunión mensual JavaSIG en las oficinas de Google en Nueva York anoche. Para aquellos que no conocen (probablemente a todos), Project Darkstar es un marco para los juegos multijugador en línea masivos que intenta hacerse cargo de todas las "cosas difíciles". La idea básica es que usted escriba la lógica de su servidor de juego de tal manera que todas las operaciones se dividan en pequeñas tareas. Transfiere estas tareas al marco Project Darkstar, que maneja la distribución a un nodo específico en el clúster, cualquier problema de concurrencia y finalmente persiste la información.¿El proyecto Darkstar es realista?

Al parecer, hacer este tipo de cosas es un problema muy diferente para los videojuegos que para las aplicaciones empresariales. Jim Waldo, quien dio la conferencia, afirma que los juegos MMO tienen una proporción de lectura/escritura de DB de 50/50, mientras que las aplicaciones empresariales son más como 90% de lectura, 10% de escritura. También afirma que la mayoría de los MMO existentes guardan todo en memoria de forma exclusiva, y solo se vuelcan a un DB cada 6 horas. Esto significa que si un servidor se cae, usted perdería todo el trabajo desde el último volcado de DB.

Ahora, el proyecto en sí parece realmente genial, pero no creo que la industria lo acepte. Primero, debes escribir tu código de servidor en Java. El código del cliente se puede escribir en cualquier cosa (Jim afirma que ActionScript 3 es el más popular, seguido por C++), pero el material del servidor tiene que ser Java. Me parece bien, pero realmente tengo la impresión de que todos en la industria de los juegos odian Java.

En segundo lugar, a diferencia de otras industrias en las que los desarrolladores prefieren utilizar marcos y bibliotecas existentes, a los chicos de la industria de los juegos les gusta escribir todo ellos mismos. No solo eso, les gusta reescribir todo para cada nuevo juego que producen. Las cosas están empezando a cambiar donde los desarrolladores están usando Havok para física, Unreal Engine 3 como su plataforma, etc., pero en su mayor parte parece que todo sigue siendo propiedad.

Entonces, ¿los chicos del Proyecto Darkstar están perdiendo el tiempo? ¿Puede un marco general como este realmente funcionar para juegos complejos con el rendimiento que se requiere? Incluso si funciona, ¿las compañías de juegos están dispuestas a usarlo?

Respuesta

24

Editar: Esto fue escrito antes de que Oracle comprara Sun y comenzara un alboroto para matar todo lo que no los convierte en mil millones de dólares por día. Vea los comentarios para un Tenedor de OSS.Todavía estoy de acuerdo con mi opinión de que cosas como esa (MMO Middleware) son realistas, solo necesitas una compañía que no la deje atrás.

El mercado puede estar dominado por pocos juegos grandes, pero eso no significa que no haya mucho espacio para más juegos de nicho. Seamos realistas: si quieres llegar a más de 100.000 jugadores, terminas construyendo tu propia tecnología, al menos para el núcleo crítico. Eso es lo que hizo CCP para EVE Online (StacklessIO), eso es lo que Blizzard hizo para World of Warcraft (aunque usan muchas bibliotecas de terceros), eso es lo que Mythic hizo para Warhammer Online (aunque están basados ​​en Gamebryo).

Sin embargo, si pretende ser un MMO pequeño y de nicho (como las docenas de MMOs Free-to-Play/Itemshop), entonces hacer que la red funcione correctamente es increíblemente difícil, la coherencia de los datos es aún más difícil y la escalabilidad el mayor b * tch.

Pero la tecnología del juego no es su único problema; también debe hacer frente a Billing. Solo tarjeta de credito? Diviértete vendiendo en Alemania, la gente allí quiere ELV. Ahí es donde necesita un proveedor de facturación confiable, pero aún necesita conectar la aplicación de facturación con sus cuentas para asegurarse de que las cuentas se bloqueen/reactiven cuando falla la facturación.

Existen algunas compañías que ya ofrecen "Servicios de Infraestructura MMO" (es decir, Arvato's EEIS), pero la conclusión es: Cosas como Project Darkstar ES realistas, pero suponiendo que se puede construir un Multi-Billion-MMO completamente en un Tercero Stack es optimista, posiblemente idealista.

Pero, una vez más, inventar completamente toda la tecnología es aún más estúpido: use las cosas de terceros que necesita (es decir, facturación, representación de fuentes, salida de audio ...), pero write the stuff that really makes or breaks your business (es decir, pila de red, interfaz de usuario etc.) por su cuenta. (Nota: la publicación de Jeff puede ser a bit flawed, pero la dirección general es correcta en mi humilde opinión.)

Adición: Además, la industria de los juegos licencia y reutiliza mucho los motores. Los motores de juego más destacados son el Unreal Engine, Source Engine y id Tech, que consumen docenas, sino cientos de juegos. Pero hay algunos motores menos conocidos (fuera de la industria). Hay Gamebryo, Middleware detrás de juegos como Civilization 4 y Fallout 3, había RenderWare que ahora es solo EA-in-House, pero se usa en juegos como Battlefield 2 o The Sims 3. Existe la fuente abierta Ogre3d, que se usó en some comercial titles.Si solo buscas Sound, hay cosas como FMOD o si quieres hacer font-rendering, ¿por qué no darle una vuelta a FreeType?

Lo que digo es: Los motores de terceros/Middleware sí existen, y se están usando con éxito desde hace más de una década (sé con certeza que el motor Wolfenstein de id se licenció para otras empresas, y eso fue en 1992), incluso por grandes compañías en títulos multimillonarios. Lo importante es el soporte, porque un buen motor sin ayuda en caso de un problema no tiene ningún valor o al menos es muy caro si el desarrollador tiene que pasar su tiempo de desarrollo del juego con la depuración innecesaria del motor.

Si la gente de Darkstar logra obtener el lado de soporte correcto y 2 o 3 títulos de perfil más alto, creo que podría tener éxito al abrir el mercado de MMO a desarrolladores e independientes mucho más pequeños.

+1

¡Gracias por el esfuerzo! –

+0

Interesante e informativo – Andy

+4

Informativo: El proyecto Darkstar ha sido cerrado por Oracle, sin embargo, hay un fork operado por algunos miembros del equipo de desarrollo original llamado Red Dwarf Server que se puede encontrar en http://www.reddwarfserver.org/. – Kynth

-1

No trabajo en la industria de los juegos, pero me parece que esto hará lo mismo para los videojuegos que los motores Quake y Half-Life. Es decir, promoverán que los jóvenes desarrolladores se interesen en la industria y promoverán el desarrollo de juegos independientes.

Por lo que puedo decir, las compañías de videojuegos no reutilizan la mayor parte de su código, porque si lo hacen implica que su nuevo juego es simplemente una repetición de uno viejo. Todo el mundo quiere un nuevo y genial motor de física, mejores gráficos, nuevas formas de jugar. La mayoría de los motores y frameworks de videojuegos están hechos para un escenario específico y, por lo tanto, no son muy flexibles para otras situaciones.

Tal vez Darkstar lo haga bien, pero lo dudo, ya que generalizar solo funciona para tanto.

+1

Pero Darkstar trata del código de back-end, no del código del lado del cliente: los jugadores (en general) no se preocupan por la tecnología de back-end cuando hablan de querer algo más grande y mejor. –

2

Por lo que puedo decir, las compañías de videojuegos no reutilizan la mayor parte de su código, porque si lo hacen implica que su nuevo juego es simplemente un refrito de uno antiguo.

Um ... si te refieres a la larga cola de las compañías de videojuegos, tal vez. Dentro de una empresa que ha tenido una serie de juegos exitosos, generalmente hay un poco de reutilización. Los cambios importantes en el hardware pueden dar como resultado abandonar mucho trabajo, pero realmente depende de la compañía.

3

Suena como técnico inútil para mí. El mundo de los MMO está controlado por unas pocas grandes compañías de juegos que ya cuentan con su propia tecnología. A los desarrolladores de juegos independientes les encanta intentar crear MMO y a veces lo hacen, pero esos juegos raramente ganan tracción.Las compañías más grandes que se introduzcan en el mundo de los MMO probablemente otorgarán licencias de tecnología "probada" o ampliarán la suya propia.

Las compañías de juegos reutilizan grandes cantidades de código de un juego a otro. La mayoría de las compañías de juegos han desarrollado su propia tecnología internamente y la utilizan en todos los juegos que producen. Ocasionalmente, harán algo así como reemplazar su código de física con un motor de física de un tercero. Si su base de código interna (motor de juego, herramientas de diseño, canalización interna) comienza a envejecer demasiado, o se vuelven difíciles de manejar, pueden cambiar a uno de los motores de juegos grandes como Unreal. Incluso entonces, grandes trozos de código continuarán siendo reutilizados de juego en juego.

1

Suena divertido diseñar y codificar, pero creo que finalmente se reduce a useless abstractions (robarle a Joel).

1

Es muy común que los juegos reutilicen los "motores de juego", incluso los de terceros. Esto suena como un paso más en esa dirección.

1

Creo que es una gran cosa que hacer. Los desarrolladores no tienen que preocuparse por todas estas cosas que el proyecto darkstar se ocupa, y es muy fácil de usar. Pero no solo se trata de hacer que funcione y no tener que aprender todo sobre la comunicación por Internet, también se trata de rendimiento. El proyecto darkstar ha estado en desarrollo por más de 2 años y sigue mejorando, más rápido y más robusto.

Creo que será difícil y probablemente no valga la pena escribir estas cosas cuando se apunta a un juego específico, cuando en su lugar se pueden usar tecnologías como esta. Y también obtienes buena información durante el tiempo de ejecución indicándote en qué parte de una aplicación hay una causa de desaceleración o interbloqueos para que puedas mejorarla.

Cuestiones relacionadas