Instalador multiplataforma [Comenzando el diseño y planteamiento del proyecto]

Started by Yawin, January 13, 2013, 05:12:38 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

¡Hola a todos!
El proyecto del que vengo a hablaros es algo que se me ha ocurrido hoy mientras dormía. Espero que no acabe en Vaporware, como casi todos los proyectos que he empezado.

La idea es hacer un instalador genérico multiplataforma. Algo así como un ejecutable que descomprima de otro archivo las fuentes del juego lo compile en esa plataforma y lo introduzca en la carpeta adecuada, ponga los accesos directos/lanzadores en donde tienen que estar etc...

Además, había pensado que podría hacerse de forma que depende de qué extensión tenga el archivo comprimido sepa si dentro hay fuentes o juego compilado (para aquellos que no quieran distribuir su código).

He pensado en emplear Mono, porque si se emplea el Standard es compatible con Windows y Linux. Pero he leído por ahí que dentro del mundo Linux no está muy bien visto mono. Java lo quiero evitar porque lo odio, así que he pensado que podría hacerse un pequeño javascript o así que lance un ejecutable distinto según el OS en el que esté (.exe en Windows, y archivo ejecutable en Linux), pero tengo otro problema, en Linux sólo se programar en C. A secas, en consola. Y poco.

¿Alguien se apunta a echarme un cable o a pasarme documentación de cómo programar para Linux?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

alex

Te paso unos tutoriales sobre linux que tengo, pero no me los he llegado a leer.

Yo me ofrezco para echarte una mano siempre que me venga bien, ando algo atareado. Tampoco se mucho de linux ni windows, y menos mono...  :-\

SplinterGU

ya tienes varios de esos productos... no hace falta reinventar la rueda...

chequea:

innosetup
nixstaller

hay otros tambien, pero no creo valga la pena hacer un instalador, o quizas puedas hacer alguna especie de UI para estos que acabo de poner arriba, seria genial.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

Gracias Alex, les echaré un vistazo.

La cosa, Splinter es que busco algo simple. Que le puedas marcar una url donde buscar actualizaciones, por ejemplo, y pocas cosas más.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

url de actualizacion? eso ya no es un instalador... eso ya es otra cosa... o una tarea en background o un api o app anterior a ejecutar el juego, y ademas, no solo eso, sino que requiere de un servidor donde alojar los juegos... no todos los programadores indie pueden darse ese lujo.

demas esta decir que estos instaladores son muy simples...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

A ver, con url de actualización me refiero a que a la hora de instalar mire a ver si hay alguna actualización. Imagina que distribuyes el juego y te das cuenta de que hay unos bugs. Pues lo arreglas y lo subes a tu servidor. Todo el mundo se descargará esa versión, pero los que tengan la vieja al ir a instalarlo, el instalador se bajaría la nueva versión y la instalaría.

Sería una opción disponible. La cosa es que  podría decirse que tengo una obsesión con que los usuarios de mi software tengan la última versión sí o sí.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

alex

Eso ya existe o al  menos en ubuntu, synaptic y centro de software de ubuntu...

SplinterGU

Quote from: Yawin on January 13, 2013, 06:00:26 PM
A ver, con url de actualización me refiero a que a la hora de instalar mire a ver si hay alguna actualización. Imagina que distribuyes el juego y te das cuenta de que hay unos bugs. Pues lo arreglas y lo subes a tu servidor. Todo el mundo se descargará esa versión, pero los que tengan la vieja al ir a instalarlo, el instalador se bajaría la nueva versión y la instalaría.

Sería una opción disponible. La cosa es que  podría decirse que tengo una obsesión con que los usuarios de mi software tengan la última versión sí o sí.


oh, no, eso es un error... si yo voy a instalar la primera vez, y me bajo una version X es porque esa version X quiero instalar... si quisiera la nueva bajaria la nueva... en todo caso, el programa (juego o applicacion) me deberia informar que hay una nueva instalacion disponible... pero no el instalador... cuantas veces instalamos una version vieja porque con la nueva tenemos problemas o queremos hacer algo que la vieja si permite y la nueva no... o por X motivos...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

A ver, preguntaría al usuario qué versión quiere instalar. Pero, el caso es hacer un instalador optimizado para Bennu, que tenga toda una serie de opciones.

A ver, la cosa es que a mi me gusta hacer todo de mi software, desde el programa en sí hasta el instalador. En mi empresa hacía así el software y los clientes estaban contentos. Sobre todo, porque mis actualizadores estaban diseñados exclusivamente para un estilo determinado de distribuir el software. No se si me exlplico.

Además, así ahorraría muchos quebraderos de cabeza a los que empiezan y no saben cual es la mejor forma de distribuir el juego que acabn de hacer. No sería la mejor forma, pero sí una válida.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

si pregunta esta bien... igual me parece interesante un sistema de instalacion y un sistema de notificacion de updates, porque el que ya lo tiene instalado, sino no se entera.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

Lo que tenía pensado, una vez terminado el instalador este sería hacer un launcher generico que pueda llamar a un script de actualización antes de llamar al juego. De forma que si has preparado un sistema de actualizaciones o repositorio puedas hacer tu propio script, y si no sabes puedas usar uno por defecto, o algo así. No se, poco a poco.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

bien... igual todo eso puedes hacerlo con los instaladores que te mencione... de hecho nosotros usamos uno de esos y tenemos el sistema de consulta al servidor y demas para validar licencias, pero lo mismo puede ser para actualizar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Yawin

Como ya he dicho, yo soy seguidor de la filosofía DIY (Do It Youself), así que intentaré hacermelo yo. Pero, prometo echarle un vistazo a lo que me has dicho si veo que me atasco mucho.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

SplinterGU

simplemente lo digo para hacerlo mas profesional... el innosetup crea instaladores del aspecto windows y el otro crea con aspecto linux... y se ven profesionales y estandars.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

KeoH

El programa q quiere hacer Yawin intenté hacerlo .. y me encontré que tenia un error raro del rato en linux .. utilizaba la mod_curl y la tinyxml ... lo tenia bastante bien montao .. Pero para evitar el error del raton .. instale la version de bennu oficial .. y ya no podia usar mod_curl ni tinyxml .. asi q lo deje asi .. despues en windows no me funcionaba la mod_curl .. y asi se quedo ...


pero era operativa .. chequeaba cual version del juego tenia, cual habia en el server y se bajaba los archivos necesarios.