Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Drumpi

Páginas: [1] 2 3 ... 396
1
Offtopic / Re:¡¡Ya soy oficialmente desarrollador en iOS!!
« en: Octubre 02, 2017, 02:54:49 pm »
Gracias (creo).
Bueno, el tema de la portabilidad ya lo tengo más que superado (GP2X, Wiz, Wii, BeagleBoard, X68000...). Lo que me tiene loco son las exigencias tipo "el icono no es del tamaño adecuado" -¡¡gilipichi, mira en resources que lo tienes en ese tamaño y en 12 más!!- Y ahora resulta que puedo subir el binario a mi web api e instalarlo directamente en el iPad con el navegador, sin iTunes, sin conexión directa, sin giowi o como se llame la web es ni pepinillos en vinagre.

Ahora el problema es otro, y me ha hecho perder el día entero en algo que, en teoría, se hace en un par de horas como mucho.

2
Mesa de Ayuda / Re:manejar el tiempo de la salida de naves enemigas
« en: Octubre 02, 2017, 02:49:28 pm »
Por mi parte, lo de los tutoriales ni están ni se les espera a corto plazo.
Para que te hagas una idea, hoy no he ido a la Escuela de Idiomas porque tenía que acabar algo en el trabajo, y así estamos cada dos semanas. Apenas saco dos horas al día para lo que sea, y acabo reventado de tanto código, así que sí, la cosa va para largo.

De hecho, el tercer video de mi canal de youtube grabé casi todo el material que necesitaba en agosto ¡del año pasado! De hecho, el guión es la mitad de largo que los anteriores y apenas llevo la mitad montado (aunque también es cierto que llevo casi un año sin tocar el KDenlive) ^^U
Y el caso es que desde entonces he desarrollado en mi cabeza el guión de tres o cuatro tutoriales de creación de videojuegos.

3
¡¡Se complique el código que se complique, ponte after-BIT-e!!

Lo siento, he dormido 4 horas y ya es muy tarde ^^U

4
Proyectos / Re:Echo v1.4: road to season two
« en: Octubre 02, 2017, 02:38:52 pm »
Amigo Gecko, esa es la pregunta del millón.
Teóricamente, Box_collision es mucho más eficiente que el cálculo de distancias en código Bennu, por aquello de que está una capa por debajo, tiene acceso a más hardware, y que si uso get_id para obtener una lista de procesos con un enemigo, cuando el segundo haga lo mismo no va a poder porque get_id no se reinicia hasta el siguiente frame (creo). En ese caso tendría que crear una función que obtuviera todas las IDs de enemigos, disparos, prota, etc, e hiciera las mediciones de distancia, marcase los procesos con posibilidad de colisión, y que luego estos hicieran la llamada a collision... un lío, vamos.

Hay que tener en cuenta que para hayar la distancia entre dos procesos hay que hacer la resta de sus componentes, sacar el valor absoluto y compararlo con un valor. Vamos algo como:
Código: [Seleccionar]
if ((abs(x - info_prota.id_prota.x) < 350) && (abs(y - info_prota.id_prota.y) < 350))
A lo que hay que sumar el AND y el if. Ocho operaciones que calculo que contarán como dieciseis en código C.
Si tan complicado es hacerlo así, normal que collision gaste tantísimos recursos en cuanto hay una cantidad interesante de enemigos y balas en pantalla. Y necesito ese rendimiento, ya no sólo para que vaya fluido en Wiz, es que quiero pasar el nivel 2 al 4, y convertir el 2 en un run'n'gun estilo "Gunstar Heroes" o algo así... aunque ya estuve barajando lo de eliminar las zonas infestadas de enemigos a cambio de enemigos más gordos y convertir a Doggy en estaciones de recarga.

En fin, eso, que estoy abierto a sugerencias para mejorar la eficiencia de las colisiones, que quiero meter mapas de dos capas de tiles.

5
Pero el enlace no funciona, por lo que tendrás que coger un programa de SVN y...

6
Se supone que tienes que ir a la página:
http://www.bennugd.org/node/2

Y descargarte la versión "source tarball", que es el código ya recogido en un zip.
Pero el enlace no funciona, por lo que tendrás que coger un programa de SVN y, como dice en la misma página, descargar los fuentes de https://bennugd.svn.sourceforge.net/svnroot/bennugd a una carpeta total. ¿Te acuerdas cuando Fede te dijo lo de instalarte BitBucket para el Gobaug? Pues eso :D

Una vez que tienes el repositorio en una carpeta, te tienes que coger la ventana de comandos, usar CD hasta entrar en esa carpeta, y llamar a los comandos "configure" y "make". No recuerdo si tenías que repetir el proceso por cada librería. Si todo ha ido bien (que lo dudo) invoca a "make install" y él solo te copiará los binarios en el sistema.

7
Proyectos / Re:Echo v1.4: road to season two
« en: Octubre 01, 2017, 11:08:12 am »
Bueno, se que ha pasado tiempo, y que llevo sin escribir en el foro... buf, pero hoy me ha dado por escribir código, y he decidido simplificar la detección de durezas de los enemigos a su mínima expresión. Así, las 1000 lineas las he reducido a:

Código: [Seleccionar]
         switch (enem_p_dir)
            case 1: p_libre = enem_dur[0][2]; end
            case 2: p_libre = enem_dur[1][2]; end
            case 3: p_libre = enem_dur[2][2]; end
            case 4: p_libre = enem_dur[0][1]; end
            case 5: p_libre = 0; end
            case 6: p_libre = enem_dur[2][1]; end
            case 7: p_libre = enem_dur[0][0]; end
            case 8: p_libre = enem_dur[1][0]; end
            case 9: p_libre = enem_dur[2][0]; end
         end //Switch
         
         if (p_libre > 0 && p_libre < 150)
            enem_mover_h = 0;
            vel_horiz = 0;
            vel_vert = 0;
         end
         
         x3 += vel_horiz;   //actualizamos posición
         y3 += vel_vert;
         
         enem_offsx = (x3 / resolution3) % id_tscroll.tmapa[0].ancho_tile;
         enem_offsy = (y3 / resolution3) % id_tscroll.tmapa[0].alto_tile;

LOL. Bueno, pues suponía que la detección de durezas se llevaba gran parte del rendimiento de Wiz y... ¡no!. Con este código, la zona con más enemigos del juego iba arrastrándose. WTF?
Luego me di una vuelta por versiones de prueba que, por suerte, tenía guardadas. No me acuerdo de qué hacían, pero tras un par de pruebas he supuesto qué era. Había una que iba casi a la velocidad adecuada, y he notado dos diferencias respecto a lo normal: usaba el motor de scroll tileado por gráfico (que ya dije que no mejoraba el rendimiento gran cosa) y los enemigos no colisionaban con nada. Bueno, la detección de durezas sí que funcionaba perfectamente, me refiero a la parte que usa "collision".

Código: [Seleccionar]
        //*************************
        //  ZONA DE IMPACTOS
        //*************************
        if (exists(info_prota.id_prota))
            //impacto con las balas
            if ((abs(x - info_prota.id_prota.x) < 350) && (abs(y - info_prota.id_prota.y) < 350))
                temp = collision(type normal_shot);
                while (temp != 0)
                    energia -= temp.energia;
                    //say("enemigo (" + itoa(enem_tx) + "," + itoa(enem_ty) + "): energía: " + itoa(energia));
                    //say("el disparo tenía energia: " + itoa(temp.energia));
                    temp.energia = 0;
                    if ((mi_temblor != 0) && exists(mi_temblor))
                        mi_temblor.energia = 3;
                    else
                        mi_temblor = enem_temblor(id, 3);
                    end
                    temp = collision(type normal_shot);
                end
            end
           
            if ((abs(x - info_prota.id_prota.x) < 50) && (abs(y - info_prota.id_prota.y) < 50))
                temp = collision(type espadazo);
                if ((temp != 0) && (temp != temp_espada))
                    energia -= temp.energia;
                    if ((mi_temblor != 0) && exists(mi_temblor))
                        mi_temblor.energia = 3;
                    else
                        mi_temblor = enem_temblor(id, 3);
                    end
                    temp_espada = temp;
                end
            end
               
            if (energia <= 0) break; end
       
            //impacto con el prota
            if ((abs(x - info_prota.id_prota.x) < 50) && (abs(y - info_prota.id_prota.y) < 50))
                if (collision(info_prota.id_prota))
                    info_prota.dano_id = id;
                    info_prota.dano_energia = 3;
                    info_prota.dano_exp = 3;
                    if (info_prota.id_prota.x2 > x2)
                  info_prota.dano_vel_horiz = 20;
                    else
                  info_prota.dano_vel_horiz = -20;
                    end
                end
            end
        end

Este parece ser el código problemático. Intenté reducir el impacto de collision limitando sus comprobaciones a la zona en la que Echo pudiera afectarles. La zona más grande es la de los disparos, porque su radio de acción es enorme, pero la espaza y el prota se limitan a unos pocos pixels. Aun así, parece ser que con 15 enemigos en pantalla, el uso de collision es demasiado.
Había pensado cambiar la comprobación de distancia por collision_box, y en caso de que la hubiera, entonces aplicar collision, pero no sé hasta qué punto mejoraría eso el rendimiento, ya que box collision tiene en cuenta size, angle y los bordes transparentes del gráfico.

Si alguien tiene experiencia con el asunto, le ruego que me cuente qué es lo que puedo hacer.

Hoy me quería haber puesto a añadir una segunda capa a los mapas existentes, o a modificar por completo el mapa del nivel 4-2, pero se me ha venido este código de las durezas, así que la segunda temporada de Echo tendrá que esperar un poco :D

8
Offtopic / ¡¡Ya soy oficialmente desarrollador en iOS!!
« en: Octubre 01, 2017, 09:20:51 am »
No, no tengo cuenta (propia) de desarrollador de iOS. Pagar 99$ por desarrollar en dispositivos que ni uso ni tengo no me parece adecuado ni sensato :D

No, en el trabajo llevo varios meses adaptando un programa de ejemplo de Xamarin bastante completo a lo que hacemos en la empresa. Es decir, que le he estado cambiando los colores, actualizando librerías, adaptando parte del interfaz para hacerlo más amigable, y sustituir todos los servicios de Microsoft por otros: más concretamente, la base de datos Azure por peticiones a nuestra webapi (que he programado yo) conectada a una base de datos SAP Business One.
Ahora que ya más o menos funcionaba, un cliente nos ha pedido que lo pasásemos a un iPad, y es lo que he conseguido el viernes pasado... más o menos.

La experiencia ha sido, cuanto menos, un tormento ^^U Si teneis pensado hacer algo parecido, id ahorrando al menos 600€ porque vais a necesitar sí o sí comprar un Mac, y 100€ más si planeais usarlo en otros aparatos que no sean el vuestro.
La alternativa, que es lo que he hecho esta semana, es "alquilar" un mac en red, pero ha dado problemas hasta en el "hola mundo". No voy a dar detalles porque es cosa del trabajo, pero sólo voy a decir que menos mal que todo funciona (o casi) porque de otra forma los arreglos podrían haberme llevado semanas ¿Habeis desarrollado en Wiz usando la SD para las pruebas? pues eso.

Lo importante es que tengo mi primer programa funcionando en iOS. Aun hay que arreglar un par de problemas estéticos y conectarlo a la base de datos del cliente, pero ahí está, haciendo algo de "trampas" pero está :D

9
Offtopic / Re:Felicitaciones 2016!!!
« en: Octubre 01, 2017, 09:06:12 am »
Quiero felicitar, aunque con retraso, a simulatorone, alicesimu y drai_kin por su cumpleaños, aunque no se pasen por aquí tanto como antaño.
También a Hokutoy, que si se pasa a veces y hasta saluda :D

Que la paseis genial, y perdón por el retraso ^^U

10
El script lo tienes en versiones anteriores a la r336 o así. La cosa es que se suprimió por mi culpa (creo), que no me gustan los instaladores, y se nos olvidó añadir un tutorial de instalación manual ^^U
Pero haz lo que dice L1nk, en lugar de coger el binario, coge LOS FUENTES (el archivo src), y haz configure, make y make-install. Seguramente falle por alguna dependencia, porque no encuentre la libdes o alguna incompatibilidad con la librería de encryptado, pero ve con los problemas uno a uno.

11
¡Qué forma de complicarse con la respuesta! :D

Las variables de la declaración del proceso pueden ser locales o privadas (y públicas, si no recuerdo mal). Si la variable existe (es decir, se usa una local como X o ALPHA) se asigna a ella, de lo contrario se genera una variable privada con dicho nombre y dicho valor.
Como siempre, las privadas no se tienen acceso desde fuera.
Las locales se declaran una vez y cada proceso tiene la suya y se puede acceder mediante el id del proceso (idproceso.variablelocal = loquesea, ejemplo, la X e Y de cada proceso).
Las globales se declaran una vez, son únicas y se accede desde cualquier parte.
Y la Públicas son variables privadas que se pueden acceder desde otros procesos como si fueran locales.

12
Proyectos / Re:Dreamcastnoid de Dreamcast para la DCJAM 2016
« en: Octubre 01, 2017, 08:43:19 am »
Panreyes te puede contar algo de eso, creo que es el único que se ha animado a grabar CDs e imprimir portadas de sus juegos y luego venderlos en exposiciones de videojuegos.
Más de uno ha tenido planes de ello, pero como nunca terminamos ningún proyecto, pues...

13
General / Re:Algún concurso de remakes a la vista?
« en: Octubre 01, 2017, 08:38:59 am »
Supongo que si es de temática abierta seguramente menos gente intente participar.
Siendo un tema concreto a lo mejor hay mas participación.


Haber si la gente siguiere tematicas y sale algo que sea de gusto de todos  :)


Yo por mi parte sugiero el tipo de juego plataformas o el tipo aventura grafica.

¡Que va! Precisamente, cuanta más restricciones pongas, menos gente participa, precisamente por eso, porque no pueden hacer el juego que les apetece o que ya tienen medio hecho.
Lo que sí puede hacer que haya más participación es poner un tope. Los concursos en los que más gente se ha animado a participar, que yo recuerde, han sido el concurso de minijuegos de Donan (en el que se imponía un máximo de espacio en disco duro y de resolución) y las crap-compos de Panreyes (en el que no ganaba el mejor programador), básicamente por eso, porque sabían que tenían alguna posibilidad al atarle una mano a la espalda a los más experimentados.

Tampoco se le puede dar mucho tiempo a la gente, porque cuanto más se le de más tardan en empezar, y encima, con el tiempo, pierden interés y lo dejan pasar.

Así que esas son mis recomendaciones. Respecto a tipos de juego para el concurso, llevo tiempo queriendo hacer algún brawler tipo Streets of Rage o TMNT4 (y lo que me salió fue un plataformas de matar insectos a puñetazos), o un plataformas o algo de exploración en vista aerea, tipo Zelda, para darle uso a mi motor de tiles y crear mapas pseudo3D con las distintas capas.
Lo malo es el tiempo, que me lo han reducido drásticamente: antes me podía poner casi todas las tardes un ratillo, ahora eso sólo lo puedo hacer los fines de semana, siempre que no haya pendiente algo por hacer (que sucede tres de cada 4 días).

14
Offtopic / Re:FELIZ CUMPLEAÑOS JOSEBITA
« en: Septiembre 23, 2017, 04:20:46 am »
ja ja, se te han adelantao, Drumpi

PD: Sí, se me han adelantado esta vez, pero no es el único cumpleaños que no he felicitado a alguien en estos días. Más que nada, porque no puedo.

15
Offtopic / Re:FELIZ CUMPLEAÑOS JOSEBITA
« en: Septiembre 23, 2017, 04:16:50 am »
Ups, cierto, llego muy tarde ^^U

¡¡Feliz cumpleaños, Maestro!! espero que te lo hayas pasado muy bien, y si no... ¡A REPETIR! :D
Lo siento, pero no he tenido tiempo para hacerte un regalo como a los demás, pero si tienes alguna sugerencia para un render, pide por esa boquita y, en cuando me quiten las cadenas los de la oficina, te lo hago :D

Páginas: [1] 2 3 ... 396