PDA

Ver la Versión Completa : [Programación] Servidor en C/C++



Parra
06/05/2015, 06:29
Bueno como imagino que sabrán, Dakara ha sido liberado.




Acabo de publicar el código fuente del servidor de Dakara Online:

https://github.com/DakaraOnline/dakara-server

Saludos

Propongo que el oficial empiece a usarlo, de hecho (desde mi punto de vista) esta obligado a utilizarlo.

No veo ninguna razon por la que no hacerlo, incluso si os parece dificil el codigo, como es una traduccion, es igual que en VB6 (nombres de funciones, modulos...), así que no pueden negarse.

Los sistemas nuevos que se hayan implementado a partir de 13.0 pueden traducirse con el traductor de Alejo de VB6 a C++ y ya esta.

Espero que algun miembro del staff de programación se pase por aquí y de su opinion.

No utilizarlo sería retrogrado y absurdo, con esto podran tener una escalabilidad mayor (frontend async con demultiplexación proporcionado por libevent si no recuerdo mal), servidores más baratos y robustos, funcionando en Linux...

Espero que me escuchen y no hagan como de costumbre.

Un saludo.

Wilem Jr
06/05/2015, 07:36
Bueno como imagino que sabrán, Dakara ha sido liberado.





Propongo que el oficial empiece a usarlo, de hecho (desde mi punto de vista) esta obligado a utilizarlo.

No veo ninguna razon por la que no hacerlo, incluso si os parece dificil el codigo, como es una traduccion, es igual que en VB6 (nombres de funciones, modulos...), así que no pueden negarse.

Los sistemas nuevos que se hayan implementado a partir de 13.0 pueden traducirse con el traductor de Alejo de VB6 a C++ y ya esta.

Espero que algun miembro del staff de programación se pase por aquí y de su opinion.

No utilizarlo sería retrogrado y absurdo, con esto podran tener una escalabilidad mayor (frontend async con demultiplexación proporcionado por libevent si no recuerdo mal), servidores más baratos y robustos, funcionando en Linux...

Espero que me escuchen y no hagan como de costumbre.

Un saludo.

Tiene bugs y esas cosas Parra?, que ventajas tiene contra un BV6?

Parra
06/05/2015, 07:48
Tiene bugs y esas cosas Parra?, que ventajas tiene contra un BV6?
Supongo que algun bug quedará pero Alejo lo ha limpiado muy bien.

La ventaja principal (además de que corre de forma nativa, sin apoyarse sobre una VM o conjunto de librerías como hace VB6, haciendolo mucho más eficiente) es que su filosofía de atender a peticiones es mucho mejor.

En VB6 tenemos un hilo (trabajador) que hace toda la faena, desde atender peticiones a todas las funciones del servidor. Una de sus tareas es atender (por polling, mediante consulta), de forma asincrona las peticiones.

El tener tanto trabajo para un unico trabajador incluido las conexiones, hace que sea muy pesado, y que escale verticalmente (la cantidad de usuarios es linealmente dependiente de los recursos consumidos, así que cuantos más usuarios necesitas un servidor con mejor hardware y más caro).

En Dakara se utiliza libevent, que se apoya sobre hardware y el sistema operativo para atender a las peticiones de forma asíncrona y demultiplexadas, de forma proactiva o reactiva (osea, por polling o mediante interrupciones de hardware, depende del SO y del hard).

Esto hace que puedas antender muchisimos usuarios a la vez con un consumo constante, y dedicar el tiempo completo del trabajador (trabajadores en el caso de C++, que puede manejar multiples hilos) dedicados a las tareas del backend del servidor, como la IA, simulación del mundo, etc.

Con esto puedes tener más usuarios, con menos coste, en servidores mucho más baratos y robustos.

Yo creo que vale la pena.

PD: Tiene como licencia la AGPL en su ultima version así que todavía tendran menos problemas en usarla.

Wilem Jr
06/05/2015, 07:52
Supongo que algun bug quedará pero Alejo lo ha limpiado muy bien.

La ventaja principal (además de que corre de forma nativa, sin apoyarse sobre una VM o conjunto de librerías como hace VB6, haciendolo mucho más eficiente) es que su filosofía de atender a peticiones es mucho mejor.

En VB6 tenemos un hilo (trabajador) que hace toda la faena, desde atender peticiones a todas las funciones del servidor. Una de sus tareas es atender (por polling, mediante consulta), de forma asincrona las peticiones.

El tener tanto trabajo para un unico trabajador incluido las conexiones, hace que sea muy pesado, y que escale verticalmente (la cantidad de usuarios es linealmente dependiente de los recursos consumidos, así que cuantos más usuarios necesitas un servidor con mejor hardware y más caro).

En Dakara se utiliza libevent, que se apoya sobre hardware y el sistema operativo para atender a las peticiones de forma asíncrona y demultiplexadas, de forma proactiva o reactiva (osea, por polling o mediante interrupciones de hardware, depende del SO y del hard).

Esto hace que puedas antender muchisimos usuarios a la vez con un consumo constante, y dedicar el tiempo completo del trabajador (trabajadores en el caso de C++, que puede manejar multiples hilos) dedicados a las tareas del backend del servidor, como la IA, simulación del mundo, etc.

Con esto puedes tener más usuarios, con menos coste, en servidores mucho más baratos y robustos.

Yo creo que vale la pena.

PD: Tiene como licencia la AGPL en su ultima version así que todavía tendran menos problemas en usarla.

Y sigue teniendo ese "problema" que tenia dakara que tenia delay cuando poteabas con Click + u?

Parra
06/05/2015, 07:54
Y sigue teniendo ese "problema" que tenia dakara que tenia delay cuando poteabas con Click + u?
Ni idea, pero eso son cosas sencillas de arreglar. No estoy al tanto de los bugs concretos. Pero con un mayor staff y testers seguro que son mucho más fáciles de encontrar y depurar.

Wilem Jr
06/05/2015, 08:02
Ni idea, pero eso son cosas sencillas de arreglar. No estoy al tanto de los bugs concretos. Pero con un mayor staff y testers seguro que son mucho más fáciles de encontrar y depurar.

Buenisimo parra, gracias por el aporte... OJALA que el Staff lo utilise si es mejor que un vb6

D'Artagnan
06/05/2015, 19:27
Hola. Te edité el título, por favor leé el reglamento antes de crear un tema.

Gracias por la propuesta, se tendrá en cuenta.

Saludos.

Wilem Jr
06/05/2015, 20:12
Hola. Te edité el título, por favor leé el reglamento antes de crear un tema.

Gracias por la propuesta, se tendrá en cuenta.

Saludos.

Che D'Artagnan ponele mas onda cuando posteas, por que eso que acabas de poner es poco creible, y mas la parte que dice "Se tendrá en cuenta".

Parra
06/05/2015, 20:25
Hola. Te edité el título, por favor leé el reglamento antes de crear un tema.

Gracias por la propuesta, se tendrá en cuenta.

Saludos.
Disculpa por la etiqueta, soy nuevo en este foro.



Che D'Artagnan ponele mas onda cuando posteas, por que eso que acabas de poner es poco creible, y mas la parte que dice "Se tendrá en cuenta".
Es una actitud a la que estoy acostumbrado. Desde un principio supe que no me iban a tener en cuenta.

Me da pena porque esa actitud empobrece mucho el proyecto.

D'Artagnan
06/05/2015, 22:56
"Poco creíble" es algo muy subjetivo. No hay tal actitud que comentás, simplemente es un tema muy debatido y todos estamos de acuerdo en que el servidor necesita una actualización de varios aspectos (una re-implementación completa, si se quiere), por lo que no hay necesidad de iniciar una nueva discusión (en el buen sentido de la palabra). Pero, como comenté en otro tema, en este momento hay otras prioridades. Para cuando la versión esté terminada y funcionando de forma estable, seguramente la cúpula directiva se siente a definir estos temas. Cabe aclarar, sin embargo, y como vos sabrás, que no basta con una simple traducción de código, sino que, como me comentaba Budi, a este proyecto le hace falta una re-estructuración en general de la cual el traductor no se hace cargo. Y ya en lo personal, yo no optaría por C/C++ (por más que haga un vasto uso de estos lenguajes).

Entonces, como dije, gracias por la sugerencia y ya la tenemos en cuenta. La tarea del moderador es un tanto monótona, así que no se lo tomen personal.

Saludos!

Parra
07/05/2015, 07:42
Primero, una reimplementacion es muy jodida de hacer... y dudo que lo haga el staff.

Lo estoy haciendo yo en 3D y llevo 5 años y no he acabado, así que imaginate.

La traduccion es la unica opcion viable y si lees la doc (paper) que dejó Alejo entenderás por que.

Y segundo, me parece muy bien que no te guste C/C++, pero para un MMO has de utilizarlo si o si, ya vi otros proyectos con Java, y el mismo que se supone estaba trabajando el oficial, pero me parece absurdo. Si Minecraft ya explota con muchos menos usuarios.. imaginate esto.

Yo creo que no tiene sentido ni cuestionarlo, porque esto ya está hecho.

Si quieren hacer refactoring pueden, tomando modulo a modulo, pero asi siempre van a tener el servidor funcional.

Igual, no se ni porque me gasto, porque nunca se me ha escuchado en AO, siempre he salido mal parado cuando he querido aportar xD

Les deseo suerte, y ese es mi consejo, yo lo haría así, por tiempo y coste contra beneficio, es la mejor opción.

HunT
07/05/2015, 08:55
Buenisimo el consejo Parra, te recomiendo que trates de hacer borrón y cuenta nueva. Entiendo que podes estar frustrado de previas situaciones en las que fuiste ignorado pero, ojala puedas darle el beneficio de la duda a este Staff y dejar la opcion a que te sorprendan para bien, tomando muy en cuenta tus aportes.
Suelo darle bola a tus post, por mas que no entiendo una mierda :A y me parece muy correcta tu forma de plantear las cosas, pese a que a veces discrepas con alguien, siempre con respeto.
Sería genial que el AO "oficial" pueda contar con tu colaboración (en la medida que se de), creo que podrías aportar mucho, así que, ojala mas adelante se encare este tema de la mejor manera.
Es entendible lo que dice el mosquetero tambien, en este momento imagino todos los recursos del Staff en mantener la version en curso asi que, por mas que vos entiendas la importancia del cambio de lenguaje, hay q esperar a resolver ese tema primero :)
Alejo tambien parece ser muy groso en lo que hace así que, seguramente sirva lo que dejo :D

Saludos!

LA BONDIOLA PICANTE
07/05/2015, 11:27
Buenisimo el consejo Parra, te recomiendo que trates de hacer borrón y cuenta nueva. Entiendo que podes estar frustrado de previas situaciones en las que fuiste ignorado pero, ojala puedas darle el beneficio de la duda a este Staff y dejar la opcion a que te sorprendan para bien, tomando muy en cuenta tus aportes.
Suelo darle bola a tus post, por mas que no entiendo una mierda :A y me parece muy correcta tu forma de plantear las cosas, pese a que a veces discrepas con alguien, siempre con respeto.
Sería genial que el AO "oficial" pueda contar con tu colaboración (en la medida que se de), creo que podrías aportar mucho, así que, ojala mas adelante se encare este tema de la mejor manera.
Es entendible lo que dice el mosquetero tambien, en este momento imagino todos los recursos del Staff en mantener la version en curso asi que, por mas que vos entiendas la importancia del cambio de lenguaje, hay q esperar a resolver ese tema primero :)
Alejo tambien parece ser muy groso en lo que hace así que, seguramente sirva lo que dejo :D

Saludos!

+1

Foxhound
07/05/2015, 11:48
Seguramente el staff de programación se lo habrá planteado en algún momento, pero por x o y no se se hizo. La verdad es que el juego de por sí ya es retrogrado y el oficial las últimas versiones quedó atrás en lo que es innovación comparado con algunos servidores, en mi opinión. Estaría bueno que se forme una comisión de programación paralela a la de la versión actual, para tratar estos temas de cambios para el futuro. Igualmente calculo que no será prioridad hasta adentrada la versión.

Luke
07/05/2015, 11:52
A mi me parece que junto con un cambio de plataforma, al AO le hace falta una re-estructuración y ser ordenado de punta a punta, como dijo D'arta.

Obviamente esto no quiere decir que no se pueda empezar a usar el servidor en C++ mientras dicha estructuración se realiza. Pero la verdad hoy por hoy queremos dejar la versión funcionando de manera estable y una vez concluido eso tendremos toda una versión para ir pensando que hacer a futuro para el juego. Los encargados del proyecto tomarán la desición correspondiente llegado su momento.


--------------------
Tema aparte:
Y a modo de consejo personal, Parra, si lo que vos buscás es dar consejos, podrías considerar dejar de utulizar términos que imponen tu idea. Uno no da consejos utilizando términos como "deberían", "no creo que tenga sentido cuestionarlo", "están obligados a utilizarlo", "no veo ninguna razón para no hacerlo", "no utilizarlo sería retrógrado y absurdo", "espero que me escuchen".

La razón por la que muchas se te ha catalogado de infumable es justamente por eso. Para tener acceso al oido(o en este caso ojos) de los demas con nuestras opiniones muchas veces es importante no solo el QUE, sino también el COMO. Y tus COMO fueron, y siguen siendo, bastante pedantes.
Un simple consejo, tanto para este ámbito, como para cualquier otro en tu vida.

Parra
07/05/2015, 13:05
Y a modo de consejo personal, Parra, si lo que vos buscás es dar consejos, podrías considerar dejar de utulizar términos que imponen tu idea. Uno no da consejos utilizando términos como "deberían", "no creo que tenga sentido cuestionarlo", "están obligados a utilizarlo", "no veo ninguna razón para no hacerlo", "no utilizarlo sería retrógrado y absurdo", "espero que me escuchen".

La razón por la que muchas se te ha catalogado de infumable es justamente por eso. Para tener acceso al oido(o en este caso ojos) de los demas con nuestras opiniones muchas veces es importante no solo el QUE, sino también el COMO. Y tus COMO fueron, y siguen siendo, bastante pedantes.
Un simple consejo, tanto para este ámbito, como para cualquier otro en tu vida.

Lo anoto, gracias.

PD: Con lo de la colaboracion, si hubiese sido hace años quizá si, pero ahora tengo mis proyectos. Quizá cuando acabe con AOC les de una mano, siempre se me quedó la espina clavada.

Luke
07/05/2015, 13:27
Igual considerá que la gente que está en desarrollo cambia, también.

Los que más activos estamos hoy por hoy no estabamos en el Staff untiempo atrás. Mismo el caso de los directivos, que en los últimos meses han cambiado.

Catalogar a un grupo por una etiqueta y no por quienes lo conforman no tiene mucho sentido :p

dasi
07/05/2015, 21:40
Creo que acá, viendo todo desde afuera, falta un bajadón de egos y un cruce de manos, hasta Charly García desangró por su ego. La intención de Parra me parece concreta y más aun (desde el conocimiento básico que una persona con año de programación tiene) los beneficios que resalta, lo que no significa que apoye la manera de hablar o referirse al equipo de desarollo y su proyecto ya que al fin al cabo los que se pusieron todo al hombro fueron ellos.

Ya estamos grandes para discutir por un foro muchachos, si pretenden "revivir" un juego peleando va a ser peor, como el curioso caso de creo que Mariano se llama Amishar (podemos remontar tambien al 2012 inclusive no con este servidor sinó el 3dg http://foros.3dgames.com.ar/argentum-online.408/788133.oficial-servidor-abierto.2.html), donde si en vez de guerra, egos y egoismos habría paz (metaforicamente) y intercambio de conocimientos, o ayuda, no lo sé.

No busco ofender ni defender, es un simple comentario, no lo considero poco constructivo, de la situación.
La verdad como le expliqué alguna vez a Loopz, me hicieron volver a tener ganas de jugar al Argentum 6 años después de haber jugado la última vez, con 27 años de edad.

Saludos

Parra
07/05/2015, 23:17
Si, la verdad es que teneis razón. Anteriormente nunca me habían tratado así.

A partir de ahora mirare al staff de otra manera y olvidare las viejas redecillas que no llevan a ningun lado.

PD: Por favor no me comparen con marianoctes o amishar! XD
Son una verguenza esas personas.

Bewen
08/05/2015, 05:15
Hay que respetar los argumentos de todos. Pero para evitar estos tipos de problemas estaría bueno que lo hablaran por privado.
Argentum Oficial como todos sabemos tuvo muchos aciertos como muchos desaciertos.
Parra lo vengo leyendo desde hace varios años y creo que desde el lugar que puede llegar a tener dentro de la comunidad de Argentum Online oficial puede aportar su pequeño granito de arena. En este caso sugirió aunque haya caído mal o mal interpretado un cambio en la lenguaje de la plataforma de parte del servidor, cosa que no me parece poco. Aparte puso algunas de las INFINITAS razones por las que cual ah el le parece mejor (Cosa que con mi poco conocimiento, es mejor C++ que visual.)


Creo que acá, viendo todo desde afuera, falta un bajadón de egos y un cruce de manos, hasta Charly García desangró por su ego. La intención de Parra me parece concreta y más aun (desde el conocimiento básico que una persona con año de programación tiene) los beneficios que resalta, lo que no significa que apoye la manera de hablar o referirse al equipo de desarollo y su proyecto ya que al fin al cabo los que se pusieron todo al hombro fueron ellos.

Ya estamos grandes para discutir por un foro muchachos, si pretenden "revivir" un juego peleando va a ser peor, como el curioso caso de creo que Mariano se llama Amishar (podemos remontar tambien al 2012 inclusive no con este servidor sinó el 3dg http://foros.3dgames.com.ar/argentum-online.408/788133.oficial-servidor-abierto.2.html), donde si en vez de guerra, egos y egoismos habría paz (metaforicamente) y intercambio de conocimientos, o ayuda, no lo sé.

No busco ofender ni defender, es un simple comentario, no lo considero poco constructivo, de la situación.
La verdad como le expliqué alguna vez a Loopz, me hicieron volver a tener ganas de jugar al Argentum 6 años después de haber jugado la última vez, con 27 años de edad.

Saludos
+10 para este pibe/a. Esto es Argentum Online es algo que todos jugamos porque nos justa. Están los que juegan por jugar y los que tratamos de aportar nuestras ideas desde el lugar oi conocimientos que tenemos, ya sea de programación, graficacion o como simples usuarios de años.

HunT
08/05/2015, 08:42
Un poco a lo mismo que dijo Luke es lo que te decia Parra, que les des el beneficio de la duda y te dejes sorprender positivamente ;). Entiendo que puede cansar si los Staff's anteriores no empatizaban con vos pero, de ser posible, dales la chance a los de HOY!

Esta bueno, esta lindo, ya hasta la manera de comunicarnos esta evidentemente mejorada ;)

Saludos y gracias!