PDA

Ver la Versión Completa : Programación Colaborativismo y escalabilidad



Chaito
27/01/2016, 14:21
Buenas, llevo pensando esta idea hace tiempo, hace un tiempo atrás se la comuniqué al Staff actual del server.

Me parece que pasados los años, y todos los problemas y egoismos de los que fue victima el Ao tienen algunos caminos viables de crecimiento.

Cuando jugabamos (al menos yo) a esto, era un pibe de 14 años en un cyber, hoy soy ingeniero y hace 8 años que trabajo en desarrollo, y como yo debe haber MUCHOS, que tienen ganas de colaborar y de alguna forma devolverle algo al juego.

Dicho esto, creo que uno de los problemas mas grandes que se le hizo a sí mismo el juego (o a su comunidad), fue dividirse. Imperium AO es el mejor ejemplo de esto, pushearon como locos para que liberen el código y arrebataron lo que les servía e hicieron la suya sin compartir progreso. A menor escala, otros servers mas pequeños hicieron lo mismo, muchas de las cosas resultaron en un montón de código reimplementado muchas y muchas veces por gente distinta, que no quería compartir sus avances al juego en sí.

Yo no soy un fan del software libre, pero creo que en determinados ambientes es lo más adecuado, y no pretendo otro thread de "liberen el código!!!" cual Barrín en el año 2004. Solamente vengo con la idea de fomentar un cambio en la workflow de colaboraciones, y fomentar aquellos como yo que si tienen ganas de tirar un rato de código y subir un Pull Request, se pueda.

Tengo entendido que el proyecto ahora está utilizando un repo git (Al fin, CVS se cae a pedazos), y que hicieron bocha de progresos. Vengo jugando y la verdad que se notan. Muchos avances igual quedan cortos en el tiempo por la idea restrictiva a la colaboración. No de parte del staff ni de la idea de cuando se liberaron los fuentes eh, sino que el marco de trabajo para que esta idea funcione nunca fue dado como corresponde, y la comunidad tampoco era suficientemente madura para llevarlo a cabo.

Fork y pull request es la primera opción, como funciona casi todo en github, y con un workflow claro para aceptar colaboraciones (tanto para versiones de ahora como para posibles versiones futuras, o solución de bugs, lo que sea).

No se que les parece, no tengo tampoco la solución exacta, es una idea que la presento para que se discuta y se presenten pros, cons, y caminos a seguir.

Saludos a todos!

fedevdp
27/01/2016, 14:49
a favor plenamente de que el staff se abra un poco a que entre gente que sepa.. y no tenga la excusa de "lo hacemos gratis" "no tenemos tiempo" etc etc... todo sea por un mejor funcionamiento del ao

HunT
27/01/2016, 14:54
Ahí le hice llegar este th a ale para que vea que onda. Me pidió que avise que va a estar al tanto y se va a ocupar pero no ahora. Esperemos y aparecerá por acá o mandará MP a quien creó el th.
Es lógico teniendo en cuenta que no durmió nada anoche jajaja, paciencia. Excelente tu predisposición vieja, yo casi que no entiendo mucho pero porque tengo 0 idea del tema pero festejo tu buena voluntad (Y).

Saludos!

sebaenam
27/01/2016, 15:12
No podría estar más de acuerdo.
Traté de hacer llegar por montones de medios durante los meses en que el juego estaba parado, mi intención de ayuda gratuita solo por devolverle algo a lo que me dió tantas alegrías, y no me dieron bola. Mails que quedaban en la nada, mensajes de facebook en la misma situación... Estudio desarrollo de Videojuegos, laburo como programador java y Apps de Android, y creo que tengo aptitudes para hacer que crezca más rápido el server.
Me sumo a esto, y si arman algún chat para concretar, espero que me incluyan así aporto alguna idea de como llevarlo a cabo.
Un saludo y gracias por el aporte!

HunT
27/01/2016, 15:32
Ojalá que puedan ayudar, gente con sus conocimientos supongo que viene de 10!!! A mi me gustaría poder ayudar con esas cosas pero me veo totalmente excedido :(. En algún momento quise aprender a mapear inclusive, algo aprendi, pero no llegue a ningun puerto jaja.

Gracias por la predisposición muchachos! Suerte :)

Chaito
28/01/2016, 11:51
Also tener un tracking de issues abierto a la comunidad (sin posibilidades de editar, salvo subir nuevos bugs candidatos tal vez), y asi cualquiera q quiera puede agarrar cualquier bug abierto y fixearlo y subir un pull request.

Esta mecanica de trabajo se utiliza muchísimo en Open Software de gran envergadura (Proyectos como Hibernate, Play, etc por ejemplo, que son de uso masivo) y funciona. La gente colabora. A una amiga hace poco le aceptaron un PR en Play.

Habría que darle una vuelta de rosca, pero creo que es el mejor camino que el Ao podría tomar para su evolución y mejora. Realmente depender de un staff cerrado (que ojo, para mi es muy bueno el laburo que hicieron y los felicito) y con dificultades para colaborar y compartir progreso, va a estar jodido.

Espero que lo lea alguien del Staff :P

bartt
28/01/2016, 12:48
No entendi ninguna de las palabras técnicas q usaste. Pero asumo que el problema de abrirse y dejar participar a todos es la seguridad del juego. Cuanta más gente haya tocando, y más gente con tanto conocimiento, más difícil es evitar q aparezca un chanta que deje un huequito en alguna parte del código q le permita sacar ventaja o directamente romper el servidor.

Igualmente, es verdad q estaría buena la participación de la mayor cantidad de gente posible que permita implementar ideas, fixear bugs, resolver errores, etc lo antes posible!

En definitiva, postie sólo xq estoy al pedo en el laburo. Saludos para todas

Chaito
28/01/2016, 14:57
En realidad no tanto, porque que haya colaboración no significa que todos puedan meter cambios en el código. Significa que todos pueden proponer cambios (features, resolución de bugs, etc) para que el staff los revise y si sirven los adopte al repositorio oficial del juego, a grandes razgos. Estos cambios jamás pasarían sin supervisión del staff, pruebas y un code review exhaustivo.

Nightw
28/01/2016, 16:38
Hola Chaito.

Me parecen perfectos todos los puntos que mencionas. Ya tenemos la organization en github lista para el momento en que consideremos necesario subir el source para empezar a laburar de forma colaborativa y si, laburar con un branch bloqueado y pull requests es lo ideal para este tipo de casos, y el mecanismo más usado por la mayoría de los proyectos open source del mundo.

¿laburaste alguna vez en un proyecto de AO? Si te interesa colaborar de alguna forma y tenes tiempo mandame un PM y charlamos!

bartt
28/01/2016, 16:45
Ay que lindo cuando hay amor

HunT
28/01/2016, 16:48
bartt, veo que los vemos mas o menos desde el mismo lado de la vereda jajajaja. Se ven lindos no? ojala prospere :D

Ojalá mucha gente pueda prenderse en colaborar de esta manera (Y)

Nacho
28/01/2016, 17:50
Maldito y sensual Nightw

GoDKeR
28/01/2016, 19:25
Veo que apuntamos a lo mismo:

http://foro.comunidadargentum.com/threads/2981-Se-libera-Y-si-se-libera-donde

Saludos!

Donirthile
28/01/2016, 19:28
Mi pregunta es por q el ao sigue usando TCP, pudiendo usar UDP y mejorar el rendimiento de paquetes

Chaito
29/01/2016, 15:35
Mi pregunta es por q el ao sigue usando TCP, pudiendo usar UDP y mejorar el rendimiento de paquetes

No tengo mucho conocimiento del por qué, pero la mayoría de las conexiones que mantienen un estado de transporte caminan sobre TCP. UDP es mas para Streaming (comunicaciones de una vía, tipo broadcasts, cosas así) y relaja un poco sobre el estado conversacional que TCP ofrece (en ambas vías).

Eso desde mi punto de vista, que mi conocimiento de redes no es mucho :P




Respecto a lo tuyo Nightw, te mando un MP en estos días, si participé de algunas formas en distintos proyectos de Ao, de hecho charlamos un rato hace unos meses por este tema vía MP también, y ahora que volví a jugar después de... 11 años? me pareció copado reflotar la idea de software colaborativo.

Gracias por la buena onda,
Christian

Hiux
29/01/2016, 16:57
No tengo mucho conocimiento del por qué, pero la mayoría de las conexiones que mantienen un estado de transporte caminan sobre TCP. UDP es mas para Streaming (comunicaciones de una vía, tipo broadcasts, cosas así) y relaja un poco sobre el estado conversacional que TCP ofrece (en ambas vías).

Eso desde mi punto de vista, que mi conocimiento de redes no es mucho :P

Respecto a lo tuyo Nightw, te mando un MP en estos días, si participé de algunas formas en distintos proyectos de Ao, de hecho charlamos un rato hace unos meses por este tema vía MP también, y ahora que volví a jugar después de... 11 años? me pareció copado reflotar la idea de software colaborativo.

Gracias por la buena onda,
Christian


Gracias a vos por querer hacer progresar al juego!

La ayuda siempre viene genial :D

Donirthile
30/01/2016, 17:04
No tengo mucho conocimiento del por qué, pero la mayoría de las conexiones que mantienen un estado de transporte caminan sobre TCP. UDP es mas para Streaming (comunicaciones de una vía, tipo broadcasts, cosas así) y relaja un poco sobre el estado conversacional que TCP ofrece (en ambas vías).

Eso desde mi punto de vista, que mi conocimiento de redes no es mucho :P




Respecto a lo tuyo Nightw, te mando un MP en estos días, si participé de algunas formas en distintos proyectos de Ao, de hecho charlamos un rato hace unos meses por este tema vía MP también, y ahora que volví a jugar después de... 11 años? me pareció copado reflotar la idea de software colaborativo.

Gracias por la buena onda,
Christian


Es simple el TCP, hace reintentos y tiene una estructura armada y facil de configurar, el UDP no realiza intentos si puede un paquete lo pierde y manda otro inmediatamente, es lo mas logico para este tipo de juegos casi todos los juegos usan UDP. Ojala en algun momento avanze y mejoraria el trafico de Datos.