› Foros › Multiplataforma › Desarrollo
riky2 escribió:Un trabajo estupendo
una ayuda totalmente desinteresada
un juego genial
que mas se puede pedir.
Saludos
Hermes escribió:El unico papel que puedo tener, es que si alguien aporta graficos nuevos, los puedo añadir, asi como resolucion de bugs u orientar a otras personas que tengan dudas a la hora de mejorar este proyecto (e incluso estoy aportando detalles para que otros podais hacer vuestros propios programa de este palo)
Hermes escribió:Quitando esos detalles, no tiene sentido que yo deba avanzar en otras direcciones, pero cualquiera puede disponer del codigo fuente de Guitarfun para usarlo en su proyecto, siempre que se respete su licencia (GPL v3) y se haga constar su autor original (o sea, yo) .
Hermes escribió:Sobre los requisitos de memoria, este programa está pensado para funcionar en una maquina de solo 32 MB de memoria... y con solo 4MB de VRAM: otra cosa, es que Windows sea un devora recursos y la gente tenga otras aplicaciones funcionando a la vez, junto con el juego.
Hermes escribió:Lo que si es verdad, es que se necesita una potencia de proceso mayor, debido a que los calculos vectoriales se hacer con la CPU, asi como todo el mezclado de audio, pero eso es mas un consecuencia de hacer un codigo portable que un defecto del programa en si (si no se aprovechan caracteristicas del hardware, se tendra que emular por software, como es logico)
El Piraña escribió:No he mirado el codigo como esta, pero si es minimamente portable si que se puede aprovechar un poco el tema, y mas si usas OpenGL y DirectX que son librerias estandar. Mismamente con OpenGL te puedes definir tus propias matrices de funciones, con lo que ya el calculo lo estaria haciendo la GPU... Mirare el codigo, a lo mejor se puede desarrollar una interfaz 3D comun para aumentar la portabilidad...
Hermes escribió:Pero ahora, no era el momento: de hecho, si busco optimizacion, deberia prescindir de SDL y usar DirectSound y DirectInput, como dios manda (aparte de Direct3D), pero eso rompería el tema de la portabilidad y cerraría el codigo hacia una plataforma, con unos requisitos bien definidos (DirectX 9.0)
El Piraña escribió:
No si lo hubieras hecho con algun tipo indirecto, como librerias independientes o como hice yo con la clase abstracta Tengo mañana examen y no he estudiado, y estare con examenes hasta el dia 12, pero te pasare el codigo para que veas como cambiando solo el codigo presente en las funciones de un unico archivo y linkando desde otro a la nueva libreria tienes portabilidad y optimizacion. Es cierto que es bastante complejo el como lo has hecho para la PS2, pero nadie ha dicho que haya que tirarlo todo, simplemente encapsularlo y usarlo solamente cuando se decida compilar para la PS2, nada mas... ¿Quieres Linux? Usar OpenGL. ¿Quieres Windows? Usas DirectX. ¿Quieres PS2? Usas SDL, asi de claro. Asi es como lo tengo pensado hacer yo y excepto la indireccion que provoca el usar clases abstractas te aseguro que el rendimiento es muy bueno...
¿Ves como si puede haber colaboracion?
Hermes escribió:
¿Librerias independientes?¿Estas de coña?
Permiteme que te diga un par de cosas:
1) En PS2, las librerias son un tanto particulares: yo hice la mejor libreria de sonido para juegos de PS2, y no se parecen en nada a librerias que puedas tener en cualquier otra maquina, porque de hecho, usan un mecanismo que no se parece en nada a cualquier cosa que hayas visto en maquina alguna. Ademas, en PS2 hay problemas de estabilidad de codigo, por lo que renunciar a algo que funciona de puta madre, para ir a la 'moda' no es tan sencillo
Hermes escribió:2) utilizar SDL , OpenGL o cualquier otro tipo de libreria de ese estilo, en una consola, es un GRAVE error, sobre todo cuando no se soporta de forma nativa algo equivalente y la potencia, memoria, etc, es bastante limitada. En ese caso, son un lastre del copón.
Hermes escribió:En cambio en PC, se necesita mucha mas maquina y cuesta un cojon sincronizar sin tirones y hay problemas de todo tipo y esas librerias independientes, lo unico que hacen, es joder: ni siquiera puedes estar seguro de que funcionaran correctamente, como por ejemplo, le pasa a Dimitri que le desaparecen las texturas de 128x64 pixeles y le aparece el Guitarrista en su lugar (es el unico que me ha comentado ese problema y desde luego, no es cosa del programa, si no de drivers , con seguridad ¿como arreglo yo dicho problema?)
Hermes escribió:(usa IOP, un subprocesador que se encarga de todos los perifericos y que trabaja a 37 Mhz)
Hermes escribió:En PC uso PCM de 8 bits y la CPU tiene que convertir el sample en frecuencia y ajustar el volumen, para luego cachear en RAM esos samples y emular el funcionamiento, que se acaba traduciendo en un mezclado de tan solo 8 voces por software (que le tocará los eggs al procesador, a dos manos)
No, encapsular los procedimientos con funciones genericas, no es una buena idea desde el punto de vista del rendimiento: por razones de portabilidad, si, pero por esas mismas razones, usas SDL con solo un canal PCM stereo, pese a que podrias usar 32 o mas voces por hardware desde Windows, con relativa facilidad e indudable eficacia en el rendimiento.
Hermes escribió:En fin, que no son horas para soltar estos tochos, pero yo te recomendaría que ajustases tu programa para Xbox y no para PC, pues obviamente, si el PC va sobrado y lo portas a una maquina equivalente (un mac o bajo un SO como Linux) lo logico es que no tengas muchos problemas, pero en una maquina inferior, las SDL, OpenGL, etc, podrian ser mas un lastre que otra cosa, al igual que tu encapsulamiento de compatibilidad.
Eso si: Xbox tiene el doble de RAM, una GPU del carajo y un procesador mas potente que PS2 y lo mismo no es tan grave la cosa, pero yo te aseguro que el Guitafun de PS2, te mueve una partida a dobles con una fluided tremenda, pero que le metes dos gilipolleces mas y el programa va a pedos, porque la PS2 va al limite de proceso.
Hermes escribió:PD: Que mas quisiera yo poder usar el driver de teclado que tengo en PS2, que me permite utilizar dos teclados por separado y que para leer las teclas de los trastes, solo tengo que refrescar la cache de una porcion de memoria, pues el IOP refresca ese area via DMA de forma automatica
El Piraña escribió:
Acabo de echar un vistazo a tu codigo y ya puedo criticarlo un poquito mas Impresionante todo lo que tienes ahi metido, aunque lo tienes un poco mazacote y cuesta encontrar las cosas...
Hermes escribió:
Tenias que haberlo visto cuando estaba todo junto
Hermes escribió:Los programas crecen de forma exponencial y luego cuesta modularizar las cosas, pues hay muchos variables que se cruzan y muchas dependencias por todas partes.
Hermes escribió:Verás, tu estas estudiando la carrera de informatica... yo soy un yesero que programa y soy mucho mas salvaje y desordenado .
Eso si, llevo 23 años programando como aficionado y lo que a ti te parece un codigo desordenado y denso, yo lo entiendo perfectamente y estoy acostumbrado a ver codigos tan o mas enmarañados que este y en poco rato, dominarlos.
Hermes escribió:Como es evidente, yo no programo indicando todas las calles en el mapa... entre otras cosas, porque uno parte de cero y tiene que averiguar cual es el camino que conduce al exito y a veces, cosas que funcionan, no sirven y en mi caso, cuando mi mente está creando codigo no puede perderse en "tonterias" pues cualquier distraccion te lleva a cometer un error que luego puede costar mucho encontrar de donde viene el problema.
Hermes escribió:Lo de programar usando C++, yo soy muy contrario de la utilizacion de dicho lenguaje en consola (y mas cuando en PS2, un simple malloc, no funciona como debiera y con un free te puedes cargar todo el monticulo de memoria, porque las librerias son una mierda, como para tener que ir creando objetos ). Y ya no digamos la que se puede liar en multihilo con estas librerias de juguete
Hermes escribió:(pues TODOS tenemos fallos programando)
Ah! Y conseguir tu objetivo, antes que el desanimo, factor tiempo, o lo que sea, de al traste con ello (y encontrar los problemas/bugs "a pelo", sin ayuda de alguna herramienta, no es algo que todo el mundo domine).
Hermes escribió:Si no lo hiciera así, no podría hacer programas porque es una barbaridad de trabajo para una persona sola y si no subes el potencial de la ' chispa' creadora, se apaga brutalmente
Hermes escribió:Otra cosa, si siempre te limitas a escurrir el bulto, usando librerias que hacen otros pero sin entender el codigo que hay por debajo, si las cosas funcionan, bien, pero como haya un problema, la has cagado porque no sabes como solucionarlo (eso le pasa a cantidad de gente con la SDL, cuando se hacen adaptaciones y algo no va bien)
Hermes escribió:PD: Me preguntó jiXo si liberaría el codigo particular de PS2: le dije que no, porque aparte de que yo tengo cuentas pendientes con dicha 'scene' ¿de que sirve un codigo que utiliza unas librerias antiquisimas (aunque retocadas) y unos compiladores antiquisimos que nadie tiene y que nadie va a poder compilar?
Ahora pensareis "joder Hermes, podias haber actualizado un poco y blah, blah", pero es que mis programas funcionan, mis librerias estan arregladas para que funcionen y las otras, te puedes volver loco para averiguar un fallo que no es tuyo y que si no es nuevo, se arrastra desde la version tan antigua que uso yo o mas lejos
Hermes escribió:PD2: Espero que este tochaco sea de utilidad : Solo pretendo que veais mi enfoque de situacion desarrollando homebrew de forma individual.
El Piraña escribió: Completamente de acuerdo. Precisamente por eso me gusta python, porque es el unico lenguaje que me ha permitido hacer todo tipo de locuras y barrabasadas sin ponerme impedimentos de ningun tipo... ¿Ejemplos? Unir varias cadenas de texto para crear el nombre de una funcion y despues ejecutarla directamente a pelo
El Piraña escribió:¿Abro un nuevo hilo o seria intentar hacerle sombra a Hermes?
Hermes escribió:
Abre nuevo hilo, a mi la sombra no me molesta, me molesta mas la ausencia de sombra.
Si te fijas, en el tiempo de vida de este foro, mi trabajo ha tenido bastante peso, incluso siendo portada en ocasiones.
El problema es que yo soy un programador aficionado: hago lo que quiero por que me gusta, pero tambien pienso que si la vida no fuera tan burlona, quiza ahora podria estar trabajando profesionalmente en ello (o quiza no y estaria diseñando circuitos electronicos)
Muchos de vosotros, estais en plena formacion y estos tema de scene, son como hacer un master, que os prepara mentalmente para la resolucion de problemas de programacion (sobre todo cuando te metes a programar para consolas, con librerias homebrew y compiladores experimentales)
En PS2, las librerias no las proporciona SONY: son reversadas.
Yo por ejemplo, he reversado bastante codigo en PS2 y he trabajado bastante duro en ella (por que lo que aparte de reversar he inventado lo que hubiera que inventar), lo que me permitió por ejemplo, desarrollar el nucleo del PS2Reality Mediaplayer en PS2 y otro buen puñado de cosas
Por cierto, que el sistema de temporizacion mediante los samples.... ya lo utilizaba en el Mediaplayer , pues es la forma logica de hacerlo: los temporizadores, no son precisos: siempre tienen una desviacion que no se va a corresponder con los samples.
Es mas: no puedes garantizar nunca que tu hilo grafico no supere el tiempo limite o que no vayas a sufrir un atasco a la hora de leer o descodificar el audio: cualquier minimo desfase del audio con respecto a un timer absoluto, provocara que todo vaya mal.
En fin, en vuestra mano está animaros a hacer cosas locas de estas: yo ya hace tiempo que estoy de vuelta y un dia cualquiera, colgaré el compilador definitivamente
Saludos y al tajo.
Antikton escribió:Enhorabuena por el programa. Siento no tener conocimientos en programación pero si alguien se anima a portarlo a XBOX (la antigua) estaría de PM!!
Hay adaptadores de PS2 a XBOX para enchufarle la guitarra
Hermes escribió:El Piraña está haciendo un juego propio para esa plataforma, asi que supongo que si no se desanima o se cansa del tema, lo acabará por sacar.