Inicio Foros Clientes y programación Cliente multiplataforma

Mostrando 24 respuestas a los debates
  • Autor
    Respuestas
    • Golthiryus
      Participante
      Número de entradas: 835

      Aunque recientemente hemos lanzado la primera version del cliente oficial del mud, al estar implementado sobre una de las ultimas versiones de .net solo es compatible con windows.

      Tras mucho y mucho buscar, encontre este mud un mud ne java bastante completo (le falta mxp y mapa, pero tiene por ejemplo tiene triggers, algo bastante raro de encontrar). Al estar en java es multiplataforma y al tener licencia gnu se ofrece su codigo fuente, lo cual es util si alguien se atreve a tocarlo y mejorarlo.

      La url es la siguiente:
      http://blog.chivinou.net/soft-gallery/the-bean-mud-client/

      PD: recuerdo que zmud funciona en linux sobre wine, aunque si no usais mapa, no sois aficionados al mxp y no teneis muchas configuraciones propias (el bean mud no acepta zscript sino que tira de ruby), es una buena opcion gratuita… lastima que parece que no sacan nuevas versiones desde el 2004

    • Golthiryus
      Participante
      Número de entradas: 835

      Bueno, cosas de ser inmo y no usar una salida en la vida… me acabo de dar cuenta que theBean esta hecho para esos muds sin salidas diagonales, asi que si pones «se» manda al mud «s» y luego «e», lo cual no lo hace muy util.

    • Ilgrim
      Participante
      Número de entradas: 25

      Desde hace algun tiempo, estoy trabajando en un cliente Mud tirando de J2SE apoyandome en swing para el tema grafico.
      La verdad es que a dia de hoy no tengo mas que un par de pruebas de concepto, debido a que no he tenido tiempo para nada con el proyecto, las clases y el curro en Colonia.

      Pero vamos, como ya he vuelto de Alemania y he terminado ya con las clases,proyecto, etc… Quiero ponerme a saco para terminar algo interesante. En principio pareceria que es reinventar la rueda pero es que…… «algunos parias» usamos linux x-P. Y me imagino que la beta que habeis sacado del RLmud (me montare una maquina virtual porque me apetece mil probarla. La llevaba esperando desde hace mucho tiempo), tirara de .NET 3.x, y dudo que llegase a correr aceptablemente tirando de Mono.

      En un principio pense en aprovechar algo que ya hubiese por ahi con licencia libre, y adaptarlo, pero viendo que no me mola nada de lo que veo, lo estoy haciendo todo desde cero.

      Si quereis, podeis hacerme saber que caracteristicas os parecen interesantes que tuviese un cliente mud. Se aceptan sugerencias.

      Un saludo.

    • Satyr
      Superadministrador
      Número de entradas: 9026

      Buenas, gracias por tu interes.
      Considero todo lo siguiente si no el 100%, el 90% de lo que un cliente solido debe tener, ordenado de mayor a menor relevancia

      – Triggers, alias y macros
      – Mapa y opcion de importar mapa de zmud (esto hace que el cliente gane muchos puntos)
      – Mxp
      – Mcp
      – Perfiles
      – Bindings para hacer complementos con total acceso al sistema
      – Facil distribución en entornos windows (los que usamos linux estamos más acostumbrados a pelearnos con este tipo de cosas xD)
      – Actualizacion transparente al usuario
      – Dependencias livianas

      Creo que eso + el rendimiento para que se ejecute en maquinas sencillas es lo que queremos.

    • Ilgrim
      Participante
      Número de entradas: 25

      Tomo nota 😎
      En cuanto tenga algo utilizable lo subire a algun lado, aunque luego me tocara refactorizar un poco. De vez en cuando ire colgando alguna capturilla para que veais un poco el progreso. Por ahora estoy completando el interface, y probando cosillaz.

      Empezare implementando algunas cosillas basicas e ire añadiendo funcionalidades conforme vaya completando features. Ya os hare alguna preguntilla sobre el MCCP y tal. Cuando llegue a eso, claro. 😛

      Si se os ocurren mas cosillas, hacedmelo saber para tenerlas en cuenta luego.

      Saludos.

    • Ilgrim
      Participante
      Número de entradas: 25

      Bueno ahi pongo una capturilla de como está yendo el proyectillo….
      Avanza lentillo por ser pura artesanía….. pero poco a poco se van completando cosillas. Aun es inutilizable, pero tengo la esperanza de que dentro de poco haya algo relativamente usable.

      El panel de [ Macros ] de la derecha, permite configurar rápidamente las Macros, asignandolas a los botones [Fx] (Ideal para chope). incorpora además un boton para acceder al editor de Macros(pendiente). Permite macros globales y por perfil(Sí, soporta perfiles 😛 ), siendo las primeras comunes para todos los personajes, y las segundas, específicas de cada uno (característica que echaba de menos en clientes como Kildclient y similares).

      Se añade tambien un panel de navegación, controlable a su vez con el teclado numérico. Para los muy flojetes que no quieran escribir demasiado 😀

      Lo que se aprecia en el buffer princial, es una sesión real. Si os «pitan» los logs, ya sabeis que soy yo probando las conexiones. Ahora mismo, mis principales prioridades son: terminar las macros, acabar el tema de perfiles, depurar las configuraciones persistentes, y finalmente el terminal Ansi(además de filtrar cosas como ese «[1z» del Mxp 8) ).

      Me he mirado también el tema de acceso a los Mdb desde sistemas unix-like, y no resulta viable debido a que segun parece, hay que pillar un driver de pago para emplearlo via puente odbc, con el jdbc. Así que a ratos muertos(cuando me rallo) me estoy dedicando a destripar y reconstuir el modelo de datos del mapper del zMud. Mi idea es portar todo el modelo de datos a un «formato más amigable» que me permita trabajar con él desde cualquier sistema (quizas Derby, o Berkeley DB, o incluso Mysql/Postgresl,….). Asi que es posible….que publique un pequeño post en plan: «Comprendiendo el Mapa de zMud», por si a alguien le interesa o algo, además de servirme como pequeño apunte y/o guión para trabajar con él. Pero para todo esto aún queda mucho.

      ¿Qué os va pareciendo? :-

      Un saludo. 😛

    • Snaider
      Participante
      Número de entradas: 350

      Hola Ilgrim. Me alegra enormemente ver tu trabajo realizado, es un orgullo tener jugadores tan implicados con el desarrollo del juego.

      Me encataría comentarte muchas cosas, pero no tengo nada de tiempo. Lo más importante es que intentes traducir esos ANSI codes que envia el MUD (eso que decias de [1z por ejemplo) a texto coloreado; parece un paso más, pero seguramente será el principal problema que tengas, el grueso de tu estudio y su optimización lo que más tiempo requerirá pues es sin duda el pilar fundamental del cliente, eso no puede fallar lo más mínimo. Quizá ya lo tengas hecho y no lo muestras, en cualquier caso te animo a que te enfoques radicalmente en ese tema antes de comenzar con las configuraciones, macros, alias y sistema de mapeado.

      En cuanto tenga algo de tiempo te colgaré el esquema principal a seguir que utilice para cimentar la aplicación. Como podrás comprobar los perfiles de configuración no son más que la punta del iceberg.

      Espero ansioso una nueva mejoría. Un saludo.

    • Satyr
      Superadministrador
      Número de entradas: 9026

      Tema del mapa y los mdbs. No es factible usar algun sistema que no requiera un sgbd? rollo xml o algo asi?

    • Ilgrim
      Participante
      Número de entradas: 25

      @Snaider wrote:

      Hola Ilgrim. Me alegra enormemente ver tu trabajo realizado, es un orgullo tener jugadores tan implicados con el desarrollo del juego.

      Es todo un placer para mi, y si luego resulta de utilidad, pues mucho mejor.

      @Snaider wrote:

      Me encataría comentarte muchas cosas, pero no tengo nada de tiempo. Lo más importante es que intentes traducir esos ANSI codes que envia el MUD (eso que decias de [1z por ejemplo) a texto coloreado; parece un paso más, pero seguramente será el principal problema que tengas, el grueso de tu estudio y su optimización lo que más tiempo requerirá pues es sin duda el pilar fundamental del cliente, eso no puede fallar lo más mínimo. Quizá ya lo tengas hecho y no lo muestras, en cualquier caso te animo a que te enfoques radicalmente en ese tema antes de comenzar con las configuraciones, macros, alias y sistema de mapeado.

      Soy todo ojos, cualquier cosa que queráis comentarme o necesitéis, aquí me teneís. Tomo nota con respecto a los Ansi codes. Como bien intuyes, algo hay, pero como no esta muy fino, he preferido obviarlo hasta que esté «presentable».

      @Snaider wrote:

      En cuanto tenga algo de tiempo te colgaré el esquema principal a seguir que utilice para cimentar la aplicación. Como podrás comprobar los perfiles de configuración no son más que la punta del iceberg.

      Te lo agradecería enormemente. Me sería de gran ayuda para llevar un desarrollo lo mas aproximado posible al cliente en .NET(Salvando las diferencias claro. Por cierto, impresionante, me ha encantado lo que habeis hecho con el cliente, mereció la pena esperar).

      @Satyr wrote:

      Tema del mapa y los mdbs. No es factible usar algun sistema que no requiera un sgbd? rollo xml o algo asi?

      La solución más elegante que se me ocurrió, fué utilizar Sqlite, o alguna de las bases de datos embebidas que comenté en el otro post(Berkeley DB de oracle….), sospecho que me mola tan poco como a tí, la idea de tener un postgresql o un Mysql rascando de disco y ancho de banda 😉 , sin contar lo traumático(y la salvajada) que podría ser meter algo así como dependencia 😀 .

      Por la documentación y las pruebecillas que he hecho, el que se lleva la palma hasta el momento es Sqlite. Entre otros motivos, porque ofrece una buena respuesta (hablamos del orden de miles de elementos) y es relativamente sencillo trabajar con él (Aplicaciones como Amarok, lo utilizan para gestionar la biblioteca de medios). A horas malas, se podria tirar de xml, pero casi fijo que supondría una carga bastante grande para la máquina que haga correr el cliente….. Aunque vamos… todo es probar 😀

      La pega de todo esto… es que no se podría importar directamente, habría que exportar primero el mdb(a csv, por ejemplo) e importar luego los datos al sqlite (posiblemente, sea lo mas trivial de todo el proceso) :- . Pero vamos… «ya veremos que dragón nos encontramos cuando lleguemos» 😀

      Un Saludo!

    • Satyr
      Superadministrador
      Número de entradas: 9026

      También pensé en sqlite pero no sé como anda de rendimiento. También lo usa firefox o iceweasel. Imagino que el soporte de MySql estaría bien para un usuario que lo desee (amarok también te deja elegir), pero con el sqllite ganas terreno en el sentido de que ya habrá muchas cosas hechas.

      Respecto al tema del mapa… tampoco lo veo muy problematico. En el mejor de los casos, si la cosa sale adelante, se desarrolla un mapa en la herramienta de dicho ciente y luego se distribuye. Exportar -> importar es un añadido, pero si somos capaces de crear un mapa funcional fácilmente distribuible creo que tendríamos el mismo efecto.

      salu2

    • rezzah
      Participante
      Número de entradas: 1424

      Sobre gestionar el mapa mediante XML se podría plantear una forma eficaz de llevarlo a cabo marcando pautas de rendimiento;
      – ficheros <8K, los famosos 8k de tamaño de fichero se podría controlar que el XML no creciera por encima de ese tamaño creando un nuevo fichero si así sucediera
      Esto genera problemas ir (cargando ficheros de forma contínua) por lo que se podría mantener en las rooms «limítrofes» un valor que se asociara al XML nuevo que se tendría que cargar para evitar la espera y seguramente otros problemas que no haya tenido en cuenta, pero es factible y puede hacerse de forma eficiente. Para modular estas acciones se podría usar un mapa del mapa

      En cuanto a usar un sgbd para esta misma tarea le veo un inconveniente: no conozco sqlite (que parece el más factible por su ligereza) pero tendría que estar disponible «embebido» o como un agregado pero añadido al cliente y eso, a parte de posibles inconvenientes legales puede ser un pegote horrible, con toda seguridad sqlite tenga una funcionalidad muy superior a la requerida lo que implica tener código «inútil» engrosando el paquete

      Hablando por hablar.

    • Golthiryus
      Participante
      Número de entradas: 835

      @Snaider wrote:

      Lo más importante es que intentes traducir esos ANSI codes que envia el MUD (eso que decias de [1z por ejemplo) a texto coloreado; parece un paso más, pero seguramente será el principal problema que tengas, el grueso de tu estudio y su optimización lo que más tiempo requerirá pues es sin duda el pilar fundamental del cliente, eso no puede fallar lo más mínimo.

      Yo tengo hecho algo parecido a lo de Ilgrim, tb en java, y eso de parsear el ansi lo hago de manera sencilla y en una unica pasada con una maquina de estados. Hay una clase en java (creo que es StringBuffer o algo parecido) que te permite crear un string como si fuera una pila. A bajo nivel funciona como los arraylist, tienen una capacidad y al llenarse, se dobla, consiguiendo un coste amortizado lineal. Sea como sea, si reciclas ese stringBuffer, solo lo ampliaras tantas veces como la cadena mas larga que recibas, por lo que el coste real tendra mejor constante.

      La idea es recorrer el string entrante (acuerdate de leerlo en ISO y no en unicode) y con una maquina de estados (o un regex si quieres, pero lo otro sera mas optimo), buscar una cadena «numerico,numerico…]», analizas luego los numericos y segun sea uno u otro insertas ahi el codigo html o rtf, segun quieras y ya esta.

      Eso ya lo tengo hecho y funciona (transformando a html, que tb requiere cambiar los espacios pues de otra forma dos espacios consecutivos se ignoran), aunque no implemente los codigos html para los colores bold o blick (este ultimo porque lo no soporta la clase JEditorPane), pero solo es tocar un par de cosillas

    • Golthiryus
      Participante
      Número de entradas: 835

      Por cierto, ya que estamos poniendo cosas, estaria muy bien que el cliente que hagamos aproveche el codigo ANSI DIM. El mud lo soporta, pero no lo hace casi ningun cliente, asi que no se usa. En principio es un color mas oscuro.

    • Ilgrim
      Participante
      Número de entradas: 25

      Lo primero, un saludo a todos, y disculpad la ausencia. He estado un mesecillo desconectado por ahi de vacaciones.

      @Golthiryus wrote:

      La idea es recorrer el string entrante (acuerdate de leerlo en ISO y no en unicode) y con una maquina de estados (o un regex si quieres, pero lo otro sera mas optimo), buscar una cadena «numerico,numerico…]», analizas luego los numericos y segun sea uno u otro insertas ahi el codigo html o rtf, segun quieras y ya esta.

      Ahora mismo, realizo la lectura de datos tal como indicas, en ISO. El «parser», lo tengo planteado como una matriz constante de caracteres ANSI, que utilizo junto al metodo replaceall de la clase String para sustituir cada coincidencia en la linea, por el codigo correspondiente(En este caso, etiquetas rtf).

      @Golthiryus wrote:

      Yo tengo hecho algo parecido a lo de Ilgrim, tb en java, y eso de parsear el ansi lo hago de manera sencilla y en una unica pasada con una maquina de estados. Hay una clase en java (creo que es StringBuffer o algo parecido) que te permite crear un string como si fuera una pila. A bajo nivel funciona como los arraylist, tienen una capacidad y al llenarse, se dobla, consiguiendo un coste amortizado lineal. Sea como sea, si reciclas ese stringBuffer, solo lo ampliaras tantas veces como la cadena mas larga que recibas, por lo que el coste real tendra mejor constante.

      Si te parece bien y te apetece, me puedes hacer llegar lo que tienes de parsing, me lo estudio a fondo y si se porta tan bien como cuentas se le puede dar uso y aprovecharlo en el cliente. Total si ya esta hecho, funciona bien y es eficiente, es tonteria reinventar la rueda.

      @Golthiryus wrote:

      Eso ya lo tengo hecho y funciona (transformando a html, que tb requiere cambiar los espacios pues de otra forma dos espacios consecutivos se ignoran), aunque no implemente los codigos html para los colores bold o blick (este ultimo porque lo no soporta la clase JEditorPane), pero solo es tocar un par de cosillas

      Elegi en un principio el rtf para evitar las movidas con el tema de los espacios y la maquetacion del texto que envia el servidor. En principio, adaptar tu codigo a rtf, o el mio a html no deberia tener mayor complicacion. El tema del Blink… daria tareilla en caso del rtf, pero tampoco lo veo como un imposible.

      @rezzah wrote:

      Esto genera problemas ir (cargando ficheros de forma contínua) por lo que se podría mantener en las rooms «limítrofes» un valor que se asociara al XML nuevo que se tendría que cargar para evitar la espera y seguramente otros problemas que no haya tenido en cuenta, pero es factible y puede hacerse de forma eficiente. Para modular estas acciones se podría usar un mapa del mapa

      ¿Algo asi a las precargas de caches de un microprocesador verdad? Una especie de heuristica en plan: Estamos en X, pero preparamos los datos de W,Z e Y que estan proximos por si acaso. Una vez desplazados, realizar la «precarga» de las rooms circundantes a esa nueva posicion por lo que pudiese pasar.

      Me parece buena idea, es muy interesante y me gusta, pero hay un detalle que me chirria. ¿Que sucede cuando se utilizan monturas o habilidades que dopan la velocidad del personaje y este se desplaza a gran velocidad? A bote pronto se me ocurre que podria ocurrir que la carga de los archivos requiera mas tiempo(a fin de cuentas el acceso a disco es bastante lento), que el empleado por el personaje en desplazarse.

      A menos que se sincronice el movimiento o exista una especie de pool/buffer de desplazamientos no lo veo demasiado claro.

      Quizas cargando un numero determinado de niveles de rooms entorno a la posicion actual (precargar hasta una cierta profundidad de ellas para compensar el problema de la velocidad variable).

      @rezzah wrote:

      En cuanto a usar un sgbd para esta misma tarea le veo un inconveniente: no conozco sqlite (que parece el más factible por su ligereza) pero tendría que estar disponible «embebido» o como un agregado pero añadido al cliente y eso, a parte de posibles inconvenientes legales puede ser un pegote horrible, con toda seguridad sqlite tenga una funcionalidad muy superior a la requerida lo que implica tener código «inútil» engrosando el paquete

      Precisamente una de las ventajas de Sqlite, es que es especialmente adecuado para usarse embebido en aplicaciones. De todas formas tampoco es que me fascine la idea de depender de software ajeno, en el sentido de que: «si desaparece ese proyecto, igual nos toca jodernos como herodes por necesitarlo como el aire».

      En cuanto a la licencia, hasta hoy Sqlite esta publicado como codigo de dominio publico[1]. Lo gracioso es que ofrece caracteristicas muuuuuuuuuuuuuy jugosas[2], como por ejemplo, soporte de base de datos de hasta 2TB(una autentica sobrada). La ventaja de ir en plan Juan Palomo, es que te quitas de historias con licencias, y movidas extrañas, pero a cambio, te toca meter mas elementos a manopla. Asi que al final termina siendo cuestion de equilibrio entre artesania y dependencia.

      [1] http://www.sqlite.org/copyright.html
      [2] http://es.wikipedia.org/wiki/SQLite

      @Golthiryus wrote:

      Por cierto, ya que estamos poniendo cosas, estaria muy bien que el cliente que hagamos aproveche el codigo ANSI DIM. El mud lo soporta, pero no lo hace casi ningun cliente, asi que no se usa. En principio es un color mas oscuro.

      Me lo apunto, si me puedes facilitar algo de informacion al respecto, mejor que mejor.

      Agradezco vuestros consejos, sugerencias y comentarios. Los atesoro como si de joyas se tratasen. Si se os ocurren mas cosas, no dudeis en dejarmelo caer. Prometo que como poco, les echare un ojo.

      Un saludo peña, espero que esteis/hayais disfrutando/disfrutado de unas buenas vacaciones.

    • Golthiryus
      Participante
      Número de entradas: 835

      En ANSI, el bold, como su nombre indica, no es «mas brillante», sino negrita, aunque por lo que sea los clientes mud lo han interpretado como ellos quisieron. El unico modiicador de la tonalidad del color es el codigo DIM, que significa «mas oscuro». Lo del bold ya lo podriamos considerar un estandar, asi que tendriamos color normal, color brillante y color oscuro… Creo que es el codigo 2 o el 3, no lo recuerdo bien, buscalo en cualquier tabla ANSI y lo veras.

      Adjunto aqui la clase java que uso en el proyecto de terminal que tenial. Esta un poco a medias, pero podras ver como funciona. Ademas con cambiar solo las funciones de «traduccion» deberia funcionarte sin tener que tocar demasiado el algoritmo que va reconociendo cada parte

    • Golthiryus
      Participante
      Número de entradas: 835

      Viendo que Ilgrim no avanzaba mucho y que el thebeans da bastante asco en algunas cosas retome esfuerzos en con el cliente java que estaba haciendo. Lamentablemente habia perdido las fuentes, asi que he tenido que empezar casi de 0 (salvando el fichero que habia subido aqui xD).

      En referencia al mud y a ser multiplataforma le he llamado Anduar Mud (puesto que rlmud ya esta cogido por el cliente c# de snaider). Esta en fase muy alfa y en este momento me estoy pegando con la parte de interpretar los comandos ansii y mxp que no sean de colores.

      Tengo pensado ponerle licencia GNU, asi que esta noche o pasado lo subo a kenai o sourceforge y de esta manera no perdere las fuentes otra vez :P. Ademas asi si Ilgrim u otro quiere sumarse al trabajo, se puede colaborar mediante svn.

    • raiman
      Participante
      Número de entradas: 92

      Esta muy bien todo esto, pero os falla el enfoque. Parece que intentais hacer un Zmud casero. Yo os recomendaría que aparte de crear un cliente basico, pensarais en cosas que fueran innovadoras y faciliten la labor de los novatos. Como bien dice alguno, no se trata de reinventar la rueda, xq para eso hay 40000 clientes de mud circulando por ahi. Como ya he hecho en otros post, propondría que por parte de la administracion del mud se metieran a fondo con el tema del cliente y no solo esto, sino que debería ser un cliente ad-hoc, es decir, este cliente debería ofrecer funcionalidades para RLmud que ningun otro lo puede ofrecer, es la oportunidad de Reinos de Leyenda de evolucionar y desmarcarse de otros mud que funcionan con clientes standard.

      Pero claro eso requiere trabajo de los inmortales contra la mudlib, para que ofrezca nuevos servicios a los clientes, asique hasta que los inmortales de mas alto rango le den la prioridad que se merece el tema, solo se conseguirá hacer un clon malo del Zmud que se llame Reinos de Leyenda Mud.

      Un saludo.

    • Golthiryus
      Participante
      Número de entradas: 835

      No estoy de acuerdo en nada salvo en facilitar el acceso a los novatos, pero para eso no hace falta un cliente propio con funcionalidades propias. A todo caso ese no debe ser nuestro objetivo a corto plazo.

      @raiman wrote:

      Esta muy bien todo esto, pero os falla el enfoque. Parece que intentais hacer un Zmud casero.

      Zmud seria lo que queremos crear, pero obviamente esta muy lejos y hay que ir poco a poco.

      @raiman wrote:

      Yo os recomendaría que aparte de crear un cliente basico, pensarais en cosas que fueran innovadoras y faciliten la labor de los novatos. Como bien dice alguno, no se trata de reinventar la rueda, xq para eso hay 40000 clientes de mud circulando por ahi.

      Pues no se que 40000 clientes conoceras tu. Yo soy usuario de linux y ningun cliente mud me agrada. Lo que tiene uno no lo tiene el otro. Los que son multiplataforma son muy pobres, o no aceptan MXP o tienen otros mil problemas.

      @raiman wrote:

      Como ya he hecho en otros post, propondría que por parte de la administracion del mud se metieran a fondo con el tema del cliente y no solo esto, sino que debería ser un cliente ad-hoc, es decir, este cliente debería ofrecer funcionalidades para RLmud que ningun otro lo puede ofrecer, es la oportunidad de Reinos de Leyenda de evolucionar y desmarcarse de otros mud que funcionan con clientes standard.

      Esto me parece un absurdo. No por usar un cliente standard o no te vas a desmarcar de otros muds. Si por las funcionalidades que le des, pero para ello no hace falta crear un cliente propio y que esas funcionalidades solo las ofrezca el. Hay multitud de protocolos ya definidos que permiten hacer casi cualquier cosa y poderlas ejecutar en cualquier cliente que acepte esas funcionalidades. Puestos asi no entiendo para que hacer algo propio. Añadir cosas como que el mud sea el encargado de enviar el mapa (aunque sea un concepto de mapa distinto al de zmud) son funcionalidades muy atractivas que no tienes porque hacerlo en exclusiva.

      @raiman wrote:

      Pero claro eso requiere trabajo de los inmortales contra la mudlib, para que ofrezca nuevos servicios a los clientes, asique hasta que los inmortales de mas alto rango le den la prioridad que se merece el tema, solo se conseguirá hacer un clon malo del Zmud que se llame Reinos de Leyenda Mud.

      Un saludo.

      Cambiar la mudlib en ese aspecto no es algo que tenga prioridad (los clientes que hagamos tampoco, pero no hace falta que este ahi un señor+ invirtiendo su tiempo). Y te repito, no todos tenemos acceso a zmud o simplemente no queremos tener que pagarlo. Trabajando con java podemos alcanzar un nivel aceptable de calidad a la vez que podemos hacer otras cosas como, por ejemplo, asegurarnos de que los scripts usados no sean ilegales (impidiendo simplemente que un trigger envie codigo al mud) o incrustarlo en la web como un applet y jugar desde cualquier lado con las mismas configuraciones que en tu casa.

    • Golthiryus
      Participante
      Número de entradas: 835

      Bueno, se me habia olvidado colgar la url del proyecto :P. Actualmente lo tengo algo parado porque tengo otras tantas cosas con mayor prioridad, pero al menos conecta al mud y permite enviar cosas. Estaba trabajando en implementar MCCP (he visto una libreria en java que implementa la compresion zlib en un stream, asi que no deberia ser demasiado complicado de hacer).

      La url del proyectio es http://sourceforge.net/projects/amud/ y como podeis ver ahi, haciendo svn co https://amud.svn.sourceforge.net/svnroot/amud amud podeis bajaros las fuentes.

      Un saludo

    • Ilgrim
      Participante
      Número de entradas: 25

      Muy buenas a todos!!!

      @Golthiryus wrote:

      Viendo que Ilgrim no avanzaba mucho y que el thebeans da bastante asco en algunas cosas retome esfuerzos en con el cliente java que estaba haciendo. Lamentablemente habia perdido las fuentes, asi que he tenido que empezar casi de 0 (salvando el fichero que habia subido aqui xD).

      Ciertamente, desde que no tengo acceso a internet en casa, avanzar avanzo poco. Pero no esta abandonado.

      @Golthiryus wrote:

      Tengo pensado ponerle licencia GNU, asi que esta noche o pasado lo subo a kenai o sourceforge y de esta manera no perdere las fuentes otra vez :P. Ademas asi si Ilgrim u otro quiere sumarse al trabajo, se puede colaborar mediante svn.

      Me he bajado las fuentes disponibles en el subversion desde el curro para ir echandoles un ojo. Estare encantado de colaborar en cuanto este en mi mano.

      Un Saludo!!

    • Golthiryus
      Participante
      Número de entradas: 835

      Pensaba darle un buen lavado de cara a lo que esta en el repositorio, pero tengo tambien en proyecto una aplicacion para que los inmos creemos zonas mas rapido y, sobretodo, trabajo en la universidad, asi que lo que tengo de cara al mud esta bastante parado.

      Creo recordar que la version subida a los repositorios funciona con 4 o 5 hilos. Uno lee del socket y guarda «lineas» (a veces el mud no envia la linea acabada, en ese caso guarda lo recibido) y eso lo lee otro hilo que analiza el codigo telnet y parte del MXP, otro que luego lo parsea para el futuro uso de triggers y finalmente otro que lo imprime en pantalla. Esto que es limpio y funciona, tiene el inconveniente de ser muy lento por los bloqueos (para que funcionara bien habria que calibrar correctamente las prioridades, algo empirico y bastante feo), asi que estaba trabajando en otro mas depurado, pero como digo esta parado.

      Si quieres cuando tenga un rato te meto en el grupo de desarrolladores del repositorio.

    • Golthiryus
      Participante
      Número de entradas: 835

      Hay una nueva version mas o menos funcional (es lo que yo uso pa conectar almud, pero claro, yo soy inmoy no tengo que correr cuando alguien me intenta asesinar :P) en http://sourceforge.net/projects/amud/files/Stable

      No espereis demasiado, basicamente es un cliente java con colores, aunque estoy pegandome para ponerle autocompletado de una manera que deberia ser ultraoptima y en este momento es mucho mejor el cliente java que hay en la web (en algun momento posiblemente haga un japplet y se cambie en la web).
      Tenemos muchas espectativas tanto en este como en el cliente c#, solo que debido a la falta de tiempo, el progreso es notablemente lento asi que… paciencia!

      Como dije con anterioridad, cualquiera puede descargar el codigo y, aunque aun no cumpla las restricciones (la copia de la licencia por ahi, por ejemplo), tiene licencia GPL.

      ¿Por que GPL? Pues primero porque me gusta el sw libre y segundo porque he pensado implementar el mapa (se implementaria a largo plazo) con la libreria db4o (http://en.wikipedia.org/wiki/Db4o), que hace trivial manejar bases de datos desde java o c#, tiene una serie de plugins muy buenos y es muy eficiente. Problema: Tiene licencia dual GPL/comercial, lo cual quiere decir que o bien lo usas en un proyecto GPL (tienen una excepcion que permite usarlo en cualquier proyecto de sw libre, pero manteniendo la licencia de db4o, asi que, al final, para cerrarlo deberias dejar de usar db4o) o bien pagas.

      Sea como sea, el autor puede cambiarle la licencia cuando quiera (ara mismo soy yo, pero luego lo sera RL), asi que si en un futuro se quiere cerrar y no usar db4o, puede hacerse.

    • Satyr
      Superadministrador
      Número de entradas: 9026

      Tengo problemas para ejecutarlo, sera por el openjre?

      /opt/anduarMud$ dpkg -l | grep jre
      ii openjdk-6-jre 6b11-9.1+lenny2 OpenJDK Java runtime, using Hotspot JIT
      ii openjdk-6-jre-headless 6b11-9.1+lenny2 OpenJDK Java runtime, using Hotspot JIT (hea
      ii openjdk-6-jre-lib 6b11-9.1+lenny2 OpenJDK Java runtime (architecture independe
      /opt/anduarMud$ java amud.jar
      Exception in thread "main" java.lang.NoClassDefFoundError: amud/jar
      Caused by: java.lang.ClassNotFoundException: amud.jar
      at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
      Could not find the main class: amud.jar. Program will exit.
    • Golthiryus
      Participante
      Número de entradas: 835

      @Satyr wrote:

      Tengo problemas para ejecutarlo, sera por el openjre?

      Para no asustar a los profanos, funciona correctamente en windows y en linux, solo que satyr estaba ejecutandolo desde la consola sin el argumento jar.
      Traduciendo, haciendo dos clicks en amud.jar se te abre la ventana que conecta directamente

    • Golthiryus
      Participante
      Número de entradas: 835

      Nueva version
      He subido una nueva version del cliente a sourcefoge. Se trata de una version en desarrollo que basicamente añade el autocompletado en la barra de comandos.

      Podeis descargarlo aqui:
      https://sourceforge.net/projects/amud/files/Development/amud%200.2%20dev.zip/download

      Sobre el autocompletado:

      • Cada palabra recibida es guardada localmente.
      • Cada vez que enviamos algo al mud, lo enviado se guarda localmente.
      • Cada vez que se escribe:

        • Si no hay texto seleccionado en la barra de comandos se intenta autocompletar:

          • Primero con lo enviado con anterioridad
          • Segundo con palabras recibidas desde el mud

        • Si habia texto seleccionado:

          • Si lo escrito no coincide con lo seleccionado, se vuelve a hacer una busqueda
          • Si lo escrito coincide con lo seleccionado, no se hace una nueva busqueda.
      • En un completado:

        • Si hay coincidencia, se añaden las letras que completan lo escrito y se dejan seleccionadas.
        • Si no hay coincidencia, se escribe la letra tecleada como se haría sin autocompletado
      • Cuando se presiona enter se envia el texto de la barra de comandos (incluyendo el texto seleccionado)
      • Si se pulsa la tecla de borrado con el texto seleccionado, se borra el texto seleccionado
      • Si se pulsa tabulador con el texto seleccionado, se mueve el cursor al final de ese texto

      Escrito aqui puede parecer algo lioso, pero probandolo lo entendereis rapidamente.
      Supongo que a mas de uno no le gustara este sistema de autocompletado y la distribucion de las teclas. En versiones posteriores se permitira cambiarlo por otros, aunque para ello querria que me dijerais como lo configurariais vosotros para contemplar esos modelos (por ejemplo, solo pedir autocompletar una palabra cuando se pulsa una cierta combinacion de teclas, como hace zmud).

      Versionado:
      Por otro lado he hecho un planing que para indicar, de manera orientativa, las capacidades que se espera que el cliente tenga en las distintas versiones. En algun momento hare una web y lo subire, pero mientras tanto dudo que haya mas gente que lo use que la que lee esto 😛


      Planificación de versiones

      Amud 0.1 (Abril 2010):
      - colores ANSI
      - MCCP

      Amud 0.2 (En desarrollo):
      - Autocompletado de la barra de comandos (hecho)
      - Permitir conectar/desconectar (siguiente prioridad)
      - Historial en la barra de comandos

      Amud 0.3:
      - Permitir autocompletado con la iesima palabra
      - Applet para poder jugar via web
      - Configuracion de amud
      · Opciones del texto recibido
      + cambiar fuentes
      + cambiar colores
      + cambiar el número de lineas almacenadas
      · Opciones de la barra de comandos
      + Recordar último enviado (si/no)
      + Recordar palabras recibidas (si/no)
      + Recordar frases enviadas (si/no)
      + Permitir añadir diccionario de palabras
      + Modos de autocompletado
      + Prioridad de autocompletado

      Amud 0.4:
      - Compatibilidad con MXP
      - Mejorar el control del foco
      - Mejorar el comportamiento de la division
      - Exportar el texto en html y asci (compatible con dlogs)
      - Construir una ayuda/manual de usuario hasta esta version

      Amud 0.5:
      - Herramientas de juego
      · Aliases
      · Disparadores
      · Macros
      - Exportar/importar configuraciones
      - Ampliar el manual de usuario con informacion sobre las herramientas

      Amud 0.6:
      - Mapa local
      - Importar/exportar mapas a formato Zmud
      - Ampliar el manual de usuario con informacion sobre el mapa

      No quiero dar fechas, pero si al final del verano se llegase a la version 0.4 o 0.5 estaria estupendo.

      Se aceptan sugerencias y colaboraciones (como por ejemplo, iconos!)

Mostrando 24 respuestas a los debates
  • Debes estar registrado para responder a este debate.