DEV-Blog: "Historia del Oclock" by Florianer

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • DEV-Blog: "Historia del Oclock" by Florianer

      ¡Ey, compañero ogamero, aquí Florianer!

      Si no me conoces, quizá este sea un buen punto de partida: youtube.com/watch?v=mvUvCyJPBB8

      Un día WeTeHa me pidió que le diera una idea en las nuevas funcionalidades sobre OClock y el nuevo sistema de funcionalidades. Vaya, es una larga historia...

      Comenzó como todos vosotros experimentaron: hice fleetsaving, inicié sesión a la hora de llegada y ¡me habían petado!, "¿Qué... por qué? ¡¿Y por qué de nuevo?! ¡Oh, demonios! ¡No quedan recursos, e incluso los escombros no están! Chequeando los mensajes me doy cuenta de dónde viene mi problema. La cagué con la velocidad de la flota y me perdí la llegada. O: No la cagué pero estaba ocupado con reuniones, codificando OGame, intentando encontrar el nuevo error aleatorio que el QA me acaba de traer y olvidé totalmente el tiempo. Diablos, no, no de nuevo. Así que comencé a establecer una alarma en mi móvil. Pero incluso así, de vez en cuando me olvidé hacerlo, porque en realidad no es el juego sino una aplicación de terceros.

      Para ligeramente alterar una cita famosa: "Y gracias a Dios no estoy sólo viendo el juego, también lo estoy controlando", tuve la idea de OClock. Después de la mesa redonda del sábado 10 de diciembre de 2016 (Santo Dios, os lo dije, larga historia, según mi calendario), conté algunas cosas sobre esta idea. Recibí feedback positivo y el lunes le presenté la idea a WeTeHa quién directamente la aprobó. Bien pormi, dado que era la última semana de trabajo del año y todos los proyectos y tareas navideñas estaban hechos, por lo que pude comenzar a trabajar en ello. Después de leer algo, ver algunos tutoriales tuve en funcionamiento un prototipo y pude enviar notificaciones. ¿Ya está? Ni de cerca. Tener un prototipo es estar lejos de estar listo para tenerlo en producción. Pero, el año estaba acabado, Enero llamó a la puerta y me dijeron que cambiara mis prioridades a un nuevo proyecto. Bueno, nuevos proyectos nunca vienen solos así que teníamos un cuello de botella y el gran lobby para juegos de navegador, espero que pudierais disfrutarlo. Estoy orgulloso de verlo y veo un montón de funcionalidades nuevas llegar también.

      Pero entonces era diciembre de 2017 y estuve un poco triste, dado que no había tiempo entre todos los proyectos para trabajar en OClock. Por lo que comencé a ver entre mi vieja rama experimental e intenté fusionar los cambios en el código hasta la última línea base. Y todo eso ocurrió después del final de mi jornada laboral. Media hora por aquí, 80 minutos por allá. Todo dependiendo de cuándo mis deportes comenzaban o si mi familia no había llegado a casa todavía y nadie me extrañaba <3 <3 <3 <3 a mi mujer y mis tres hijos. Sé lo que quería conseguir: Notificaciones push para conseguir ser notificado e iniciar sesión para hacer fleetsaving.

      De acuerdo, enviar notificaciones funcionaba de una manera aceptable y se mostraban en mi escritorio de Ubuntu con Google Chrome y en mi dispositivo Android. Comencé a construir un GUI para añadir a la lista de entradas de OClock con un estilo a OGame. Tuve que configurar un gran sistema de permisos de notificaciones push, que más o menos estaba la funcionalidad automática sin documentar, la lista y algunos botones para filtrar. Ahora encontrarás un botón para minimizar: tuve en cuenta que debo permitirte abrir OClock y tener automáticamente visible en cada página la opción de minimizar. También debatí sobre OClock con mi equipo.Como feedback decidí sólo abrir OClock después de hacer click en el nuevo botón del menú principal. Después de todos los cambios que hice en mi tiempo libre, también les pedí a mis compañeros desarrolladores que le echasen un ojo al código, dado que revisiones de código son obligatorias y nadie pone código en la rama de desarrollo o de implementación sin ser revisado. Vaya hombre. Todavía parece un bonito prototipo con algunas limpiezas. Pero esta revisión de código acabó con 52 anotaciones y tuve que arreglarlo prioritariamente para tener la petición de fusión de código aprobada.

      Finalmente,
      Funcionalidad de notificacines push → release/6.7.1
      Florian Mycka - #310, último cambio 24 Apr. 2018
      Desde ahora, mi código Oclock estaba en producción, pero todavía sin poder usarse. Conseguir una revisión de código y subir la solicitud aprobada no implica tener la aprobación del QA. Culpa mía: mi documentación estaba toda en mi cabeza. Así que el QA encontró tiempo para mirarlo pero no lo aprobó.

      Hmm, ¡¿cómo tenemos una funcionalidad online, que está testeada pero no completamente aprobada?! Me pregunté a mi mismo. Tenía una idea en mente, hablé con piink y llegamos a un acuerdo. Añadí el sistema de funcionalidad beta. Puedes leer un largo muro de texto de esta funcionalidad en las opciones de tu cuenta, si el sistema de funcionalidad beta está activado en tu universo. Simplemente te dice que una funcionalidad beta está funcionando, no debería romper el balance del juego pero podría no tener traducción adecuada, imágenes o estilo. Estoy realmente apasionado con OGame y quiero usar este sistema para traer funcionalidades antes de que estén terminadas. Puedes echar un vistazo en los servidores públicos de prueba (pioneers.ogame.gameforge.com) y votar por una idea. Espero, que esta idea tenga un montón de votos positivos, formemos un proyecto real sobre ello y volvamos a rehacerlo/pulirlo/acabarlo como cualquier otra funcionalidad en el juego.

      Hice algunos pequeños cambios:
      OGAME-2268 Arreglo OClock & SAC →release/6.7.1
      Florian Mycka - #357, último cambio 17 Jul. 2018

      OGAME-2347 Arreglo de errores fatales del error al logear y actualizar CliColors llamadas de preparación PBU →release/6.7.1
      Florian Mycka - #361, último cambio 26 Jul. 2018

      Oh, y escribí una pequeña y bonita documentación con imágenes, flechas y colores mostrando y explicando qué es el sistema de funcionalidad beta y el OClock y cómo funcionan. Y para decirle más y más gente que tengo algo realmente listo en producción, más y más gente están comenzando a apoyarme y ahora se anuncia para PTS (Public Test Servers) y supuestamente pronto disponible para el resto de universos.

      ¿Cuál es el plan? Además de una nueva funcionalidad 2 en 1, estoy trabajando en otra rama experiemental y una idea en mi pizarra desde... ¡¿ versión 6.3.0 ?! Debería añadir algunos atajos más ingeniosos para OClock. ¿Recuerdas la funcionalidad automática sin documentar? Bueno, muy simple. Enviar una flota y mirar la barra de evenos. Deberías encontrar un nuevo símbolo de reloj. Al hacer click ahí, la información del fleet es automáticamente añadida a tus entradas de OClock. La notificación será enviada a la llegada de la flota, a no ser que configures para que te llegue la notificación, por ejemplo, 5 minutos antes de la llegada del fleet. ¿Guay y provechoso? Pero tener ese icono también para edificios e investigaciones en la cola de construcción estaría bien, ¿cierto? ¡Más configuraciones, más OClock, más funcionalidades! Espero traeros más cosas útiles en el futuro: incluso si necesito construirlas durante un largo periodo en mi tiempo libre.

      ¡Para Legor! ¡Para OGame! ¡Para ti!
    • Post original del desarrollador (en inglés)


      Florianer wrote:


      Hey fellow OGame player, Florianer here!
      If you don’t know me, that’s maybe a good starting point: youtube.com/watch?v=mvUvCyJPBB8
      Some WeTeHa guy told me to give you an insight in the new features OClock and the Beta Feature System. Wow, that’s a long story…
      It started like all of you experienced – I sent out my save fleet, logged in at arrival time and all is gone! “What the … why? And why again?! Oh, damn it! No resources left, even the debris field is gone!” Checking the messages shows where my pain is coming from. I messed up the fleet speed and missed the early arrival. Or: I did not mess up, but was busy with meetings, coding OGame, trying to find the newest random bug QA just brought up – and totally forgot the time. Hell no, not again. So I started to set an alarm on my smartphone. But even that was something I regularly forgot to do, because it is not in the game and kinda a 3rd party tool.
      To slightly alter a famous quote: “And thank God I‘m not only watching the game, I‘m controlling it“ I had the idea of the OClock. After the OGame round table at Saturday, 10th of December 2016 (holy moly, told you, long story, according to my calendar) I told some of the stuff about this idea. I got positive feedback and on Monday I pitched this idea to WeTeHa who directly approved it. Good for me, it was the last working week of the year and all projects and Xmas stuff was done, so I was able to start working on it. After some reading, going through the tutorials I had a working prototype that was able to send push notifications. Tada. Almost there? Not even close. Having a prototype is being far away from production ready. But, the year was over, January knocked on the door and I was told to shift priorities to a new project. Well, new projects never come alone and so we had the funnel optimization and the big Browser Games Lobby, that I hope you also can enjoy. I‘m proud of it and I see a lot more features coming there as well.
      But then it was December 2017 – and I was kinda sad, that there was no time between all the projects to work on the OClock. So I started to look into my old experimental branch and tried to merge the code changes into the latest code base. And all that happened after the end of my working day. Here a half hour, there 80 minutes. All depending when my sports started or if my family was not yet at home and nobody missed me <3 <3 <3 <3 to my wife and my 3 kids. I know what I wanted to achieve: Push notifications to get me notified to log in and save my fleet.
      Okay, sending out those notifications worked in an acceptable way and showed up on my Ubuntu desktop initialized by Google Chrome and on my Android phone. I started to build some GUI to add and list OClock entries in an OGame fashion. I had settings to grant push notification permissions, the more or less undocumented “auto offset” feature, the list and some filter buttons. Right now you will find a Minimize button – I had in mind to let you open the OClock and have it automatically visible on every page with this minimize option. I also discussed the OClock in my team. As a feedback I decided to only open the OClock after clicking on the new main menu button. After all the changes I did in my spare time, I also abused my fellow developers to have a look on the code – code reviews are mandatory and no code gets into the development/release branch without a review. Oh man. It was still a nice looking prototype with some clean ups. But this code review resulted in 52 annotations I had to fix prior to get the merge request approved.
      Finally,
      Feature pushnotifications → release/6.7.1
      Florian Mycka - #310, last change 24 Apr. 2018
      From this point on, my OClock code was in production, but still not usable. Getting a code review and a pull request approved does not imply to get it approved from QA. My fault – my documentation was all in my head. So QA found time to look over it, but did not approve it.
      “Hmm, how to get a feature online, that is tested but not fully approved?!” I asked myself. I had an idea in mind, talked to Piink and it was settled. I added the Beta Feature System. You can read the long wall of text for this feature in your account settings, if the Beta Feature System is enabled on your game round. It simply tells you that a Beta Feature is working, should not break the game balance, but may not use proper localized text, images or styling. I’m really passionate about OGame and want to use this system to bring features to you before they are finished. You can have a look outside of the public test servers (pioneers.ogame.gameforge.com) and vote for an idea. I hope, that if an idea gets lots of up votes, we form a real project out of it and re-work/polish/finish it like every other feature in the game.
      I did some more smaller changes:
      OGAME-2268 Fix OClock & ACS →release/6.7.1
      Florian Mycka - #357, last change 17 Jul. 2018

      OGAME-2347 Fix oclock fatal errors from error log and update CliColors calls as PBU preparation →release/6.7.1
      Florian Mycka - #361, last change 26 Jul. 2018
      Oh, and I wrote a nice little documentation with pictures and arrows and colors showing and explaining what the Beta Feature System and the OClock is and how it works. And by telling more and more people that I have something kinda production ready, more and more people started supporting me and now it is announced for PTS and hopefully soon available on live servers.
      What is planned? Besides a new 2-in-1 feature I’m working in another experimental branch and an idea on my whiteboard since … 6.3.0 ?! I may add some more nifty shortcuts for the OClock. You remember the “undocumented auto offset”? Well, pretty simple. Send away a fleet and look at the event bar. You will find a little new clock symbol. By clicking on that, the fleet’s information is automatically added to your OClock entries. The notification will be sent out at the fleet’s arrival time unless you set the offset to, let’s say 5, and the notification will be send out 5 minutes before the fleet’s arrival. Cool and helpful? But getting such an icon for buildings or researches on the queue boxes would be nice, right? More settings, more OClock, more features! I hope to bring you more useful stuff in the future – even if I need to build them over such a long period in my spare time.
      For Legor! For OGame! For YOU!