Registro

Spigot 1.8 de Minecraft en proceso

Spigot 1.8 de Minecraft en proceso:

 

«El 2 de septiembre del 2014, Minecraft 1.8 fue lanzado al publico en general. Desde esta fecha nuestro equipo habia aclarado que estarían trabajado en actualizar Spigot a esta version. Hoy, casi 6 semanas después, estoy muy contento de poder anunciar un pequeño vistazo de que estamos haciendo, que ha logrado este proceso, y hacia donde nos encaminaremos.

Debido a acusaciones y amenazas legales en contra de tanto nuestro código fuente como de nuestros repositorios de descargas, se nos ha impedido trabajar tan pronto como realmente hubiésemos querido; después de muchas semanas de consejo, consultas legales y el soporte de ustedes , nos hemos decidido ha completar esta actualización de Minecraft como habíamos previsto. Este es un proceso en extremo tedioso y complejo que nos toma gran parte de nuestro tiempo; pero puede ser dividido en muchos pasos.

Como nota de interés, Minecraft 1.8 es una de las actualizaciones mas grandes hechas, con 11 meses de tiempo entre la ultima actualización a Minecraft 1.7 y numerosos cambios internos como el muy esperado sistema «Block State» así como otros 350 «classes» agregados.

 

Spigot


1.- El primer paso en completar una actualización es desmarañar el .jar de Minecraft Server. Este proceso se nos es facilitado a través de varias herramientas tanto publicas como privadas, pero al final se termina acabando en labor manual. Aunque algunos miembros de nuestro equipo han estado trabajando en este proceso desde hace tiempo, el trabajo oficial inicio hace 3 semanas , y nos tomo 1 semana en finalizar los primeros proyectos. Para darles una idea de lo complicado que es esto, nuestro actual juego de «mappings» (lenguaje tecnico, creo) consiste en alrededor de 4700 entradas, todas siendo revertidas de nombres complicados como «aa.b(x,y,z,int, int)» a nombres comunes que podamos usar.

Esta es la primera vez que hemos completado una tarea así, nos hemos encontrado con bastantes dificultades en producir código fuente con el que podamos trabajar. En particular, hemos empezado a reescribir SpecialSource a SpecialSource-2 y aplicar una serie de parches hechos a mano sobre Fernflower, nuestro decompilador de elección.

2.-Después de pasar una semana desmarañando server jar, tuvimos que reintegrar este código actualizado a CraftBukkit. Idóneamente la mejor manera de hacer esto es usando herramientas de fusión que integren los cambias realizados a CraftBukkit, pero frustrantemente después de pasar casi 8 horas seguidas intentando esto, el resultado fue un completo desastre!, esto es debido a la magnitud de la actualización y alcance de los cambios internos, decidimos al final que tendría que ser necesario aplicar estos parches y cambios de forma manual a CraftBukkit, básicamente reescribimos todo! Una de las ventajas de haber hecho esto es que pudimos trabajar por partes y poder tener el código del servidor integrado de forma que podamos compilar y arrancar el servidor. Después de eso, podremos iniciar el testeo con plugins como eventos individuales y agregar características de las API. Este proceso nos tomo un par de semanas.

3.– Durante el proceso de completar el paso 2, encontramos segmentos que no fueron desmarañados, en parte por que no se hicieron en CraftBukkit y en otra por que simplemente los pasamos por alto, o por que no sabíamos su significado o uso. Así que de nuevo nos regresamos al paso 1 a corregirlos. Este proceso fue relativamente rápido y fue algo que tuvimos que hacer de forma repetida durante todo el proceso.
La primera vez que hicimos esto fue ligeramente mas difícil por que el código decompilado era muy diferente de las versiones previas, esto fue por que fue completado usando herramientas antiguas de CraftBukkit en lugar de nuestras nuevas herramientas.
Como otro punto de interés, nuestros parches sobre FernFlower lograron lo siguiente:

Renombrar variables locales desde «var0» a un sistema mas familiar visto en otros decompiladores (i,j,k,object,etc)
Remover comentarios y notas
Remover importes innecesarios
Hacer referencia de variables estáticas por su importancia o nombre cualificado
Corregir referencias de método debido a (….? algo sobre información omitida) Este fue de gran interés debido a que era la causa de muchos bugs desconocidos en CraftBukkit y Spigot.

4.– Este es el paso en el que nos encontramos ahora, y puede ser dividida en dos tareas distintas que pueden ser trabajadas al mismo tiempo

Agregar nuevas características a la API – Minecraft 1.8 tiene la llegada a una nueva tanda de características. algunos ejemplos de cosas que requeriran API’s son: los nuevos mobs, banners, y percheros para armaduras. Elementos adicionales como los bordes del mundo no son prioridad por que pueden ser controlados con facilidad desde minecraft vanilla. Tambien son lo suficientemente sencillos para que los miembros de la comunidad los implementen.

Corregir bugs – Aunque el servidor arranque y cargue plugins, todavía hay interminables bugs lo que lo hace casi imposible de ser usado. Nuestro trabajo aquí es testear el juego y las características de las API tanto como podamos y corregirlas antes del lanzamiento, nuestra meta es lanzar una grandiosa pieza de software desde el día 1.
Hemos hecho mas de 70 reportes de bugs entre nosotros mismos en la ultima semana y muchos de ellos ya han sido corregidos. Incluyen todo desde el rango de respawning en el void (el vació de minecraft) hasta hornos que no funcionan por data del mundo corrupta.

5.– Actualizar Spigot! Esto es algo de lo que tenemos mas experiencia por que lo hemos hecho ya varias veces en el pasado. Lamentablemente para nosotros, el código de Spigot esta siempre creciendo de tamaño lo que significa que cada actualización nos es mas tardada y difícil que la anterior. Afortunadamente ahora podemos revisar cada cosa que hayamos hecho, lo que lleva a actualizaciones mas rápidas. Aun no hemos empezado con este paso, pero esperamos hacerlo en el futuro cercano. Esta actualización sera particularmente desafiante, debido a la magnitud de cambios internos, particularmente nuestros propios cambios.

6.– Testear testear testear. Ok, hemos actualizado CraftBukkit y Spigot, con todas las características requeridas para poder publicar la versión. Por desgracia estas actualizaciones y características vienen acompañadas con una gran cantidad de bugs que deben ser aplastados (corregidos). Este paso es mas de lo mismo que el numero 4, pero sera mas extenso por que sera el ultimo paso antes de la publicación de la versión.

No, ninguna compilación sera lanzada en este punto. Por favor no lo pidan. Quizás abramos algunos servidores de pruebas para la comunidad para ayudar a identificar los bugs menos conocidos.
La gente va a responder de forma inevitable a este post y se quejara sobre el software que no hemos lanzado. la razón es simple. Nosotros no lanzaremos actualizaciones que sabemos que están bugueadas, rotas o incompletas. Esta actualización es para que funcione lo mejor que se pueda desde el inicio. Lanzarla muy temprano seria como lanzar un producto hecho a la mitad al final del paso 2. Si, se compilara, pero no creo que haga mas que eso.

Gracias por tomarse el tiempo de leer hasta aquí, espero que todo los pasos de arriba les den una idea del tiempo y magnitud de trabajo que le invertimos en esta nueva versión. También, me gustaría aclarar que comparar el proceso de actualizar Spigot a actualizar un plugin es imposible. Nosotros medimos nuestro tiempo en semanas. nuestros archivos cambiados en cientos y nuestras lineas de códigos decenas de miles. Particularmente frustrante ver posts como «Este plugin ya tiene soporte 1.8, por que el equipo de Spigot es tan lento? ya liberen el código!» es una de las razones por las que hacemos este post.

Con la mención de nuestras medidas de tiempo, nos llegamos a la pregunta inevitable: «Cuando Spigot 1.8 sera lanzado?». Les tengo la respuesta a esta pregunta, y es una muy clara:

Pronto TM


Pero con toda seriedad, estamos intentando que el día de lanzamiento sea en los inicios de noviembre o tan tarde como inicios de diciembre. En otras palabras de un mes y medio a dos meses y medio desde que iniciamos nuestro trabajo. Tomando en cuenta el tamaño de esta actualización (la actualización mas grande de minecraft hasta la fecha) y que tanto les ha tomado otros desarrolladores lograr estas actualizaciones en versiones anteriores (y esto sin tomar en cuenta los problemas legares que nos hemos topado o una educación de tiempo completo) sentimos que ha sido un tiempo razonable.»

 

Esta noticia fue lanzada por MinatoKonoha y traducida por LiegeMaximo como podes ver en este post.

7 Respuestas a Spigot 1.8 de Minecraft en proceso

Deja una respuesta

© Mundo-Minecraft.com Todos los derechos reservados
Contacta con la administración