[PSP] AYUDA creando juego en LUA. ¿poco potente en comparación a C?

Más de 1000 ofertas en los PcDays de PcComponentes
EDITO a las 23:00

Ya se me ha instalado el SDK y al hacer esta comprobación:
"Ejecuta este comando desde el shell:

$ psp-gcc -v

La salida debería de ser parecida a esto:

Using built-in specs.
Target: psp
Configured with: ../configure --prefix=/usr/local/pspdev --target=psp --enable-languages=c,c++ --with-newlib --enable-cxx-flags=-G0
Thread model: single
gcc version 4.0.0

"

Me sale, así que ya lo tengo instalado... o eso creo xq no veo ningún entorno visual de trabajo, supongo que el SDK será solo para crear los EBOOTS...


EDITO a las 16 horas del mismo dia para unas preguntas sobre C:

¿Creeis que me será muy costoso el salto a C sin ninguna experiencia salvo LUA?(ver más abajo y respuesta a Zor)

¿A cuantos megas de RAM tiene acceso el SDK?

¿Acepta sonidos en mp3?






Y este es el post preguntando sobre LUA:
Hola buenas, primero de todo muchas gracias por leer mi post, esta es mi situación:
Estoy programando en LUA un videojuego para jugar en la PSP con una mecánica similar al metal slug, es decir con scroll horizontal y vertical, poder disparar, usar arma blanca, agacharte, mirar arriba, apuntar arriba, lanzar granadas... etc y por supuesto con colisiones para hacer plataformas.

Hoy al añadir unos pocos más movimientos y por lo tanto sprites el LUA player 0.20 me da este error ERROR: NOT ENOUGH MEMORY y supongo que se refiere a la RAM de la PSP. He probado mi juego en la versión 0.16 y no da ningún problema, va totalmente fluido.

EDITO 10 minutos después:en la version 0.20 hay 9megas de RAM y en la 0.16 hay 20. No obstante mi juego ocupa 600 kb por ahora, así que yo no veo donde van los 8 megas que faltan, supongo que se los comerá el Lowser


---PREGUNTAS---
1.¿LA version 0.20 tiene alguna limitación en la cantidad de imagenes en memoria que no tenga la 0.16?

2.¿¿Hay alguna forma de solucionar el problema para la 0.20?? es decir si se solucionaria dividiendo el codigo en varios scripts y que cada uno se ocupara de una animación o de un grupo de ellas o si hay otra forma de hacerlo


3.¿Hay alguna función para quitar una imagen/sonido de la memoria RAM cuando ya no se necesite?

4.¿Sabeis de algún otro juego escrito en LUA con gran cantidad de sprites que pueda estudiar su código para encontrar una solución aplicable a mi problema?
Y si puede ser uno con scroll vertical y horizontal juntos, ya que por ahora solo consigo el horizontal y si implemento el vertical se crashea .

5.¿Como puedo pasar mi juego a EBOOT para que no necesite el LUA player para ejecutarse? Y en ese caso ¿tendría el problema de memoria insuficiente?
Y otra cosa: se empaquetarían los scripts dentro y serían inmodificables o quedarían al aire??

Muchas gracias por vuestro tiempo y me podeis contestar a mis preguntas por favor aunque sea contestadme a una que no me gustaría tener que abandonar el proyecto por una estupidez de falta de memoria ram (que solo le cargo 1 mega y los juegos de PSP cargan muchísimo más).


Quizá el problema es que llevo el LUA a su máxima potencia y necesito migrar a C, bueno lo que me recomendéis lo tendré en cuenta. Ante todo ¿Es mucho más dificil programar lo que yo quiero en C o qué, porque mis conocimientos de programación se reducen a LUA (y ya casi lo domino por completo en 3 dias)?


PD:Cuando consiga solucionar estas dudas y ya consiga añadir el scroll vertical y el primer enemigo publicaré aquí la primera beta
hola.
yo no estoy muy ducho en esto pero ahi van algunas sugerencias.

3 para cargar una imagen la cargas en una variable, para descargarla prueba a asignar la misma variable en blanco

5 no puedes pasar el juego a Eboot, pero lo que si puedes hacer es que lo autoarranque directamente sin pasar por el menu del LUA
llamandolo script.lua y poniendolo en el mismo directorio del eboot del lua.
los scripts quedan al aire, no se empaquetan.

las demas no las se, y de C no tengo ni idea.

animo con usa beta
Un saludo
Spirax
¿lo dominas por completo en 3 días? ¿tienes 16 años? [flipa] [flipa]

Supongo que al menos tendrías conocimientos previos de programación, porque sino...en 3 días sin saber nada de algoritmia no te pones a hacer un plataformas...de hecho yo no tengo NPI de cómo hacer algo con colisiones, y eso que llevo 1 año dando c++...:P


Por otro lado, si eres tan genio en la programación, no te costará pasarte al c++. Básicamente es lo mismo (con algunos conceptos nuevos como los punteros, que no sé si están en LUA también...), pero sin funciones por defecto ya hechas, como cargar imágenes, sonidos, etc... pero que son cosas que las puedes conseguir (creo) con el SDK de la PSP o con librerias de funciones gratuítas que corren por ahí... o programártelas tú a pelo, pero eso me parece que es bastante más complejo, sobretodo si quieres crear sprites, rotaciones, zoom... :Ð
[tomaaa] muchas gracias Zor, pues no sabía nada de programación aunque hace unos años intenté aprender Div2... sin resultados xq con 8-10 años como q no, aunq eso si, me lei el pedazo manual más de 3 veces XD
Lo que he hecho ha sido estudiar todos los tutoriales en español que encontré, unos cuantos en inglés y después me bajé todos los juegos en LUA que parecían interesantes, estudié su código durante un par de días y acabé por comprender cómo se programa en LUA, su estructura, las definiciones de variables, el uso de frames, el cortar imagenes y todo eso. Luego ya me puse con mi juego y dibujé a mano todos los sprites del protagonista (que son un puñado), los edité con el paint y luego los retoqué con fotoshop para hacer transparencias y reducirlos. Entonces ya lo fui montando junto al código y fui obteniendo resultados hasta que me encontré con que el LUA tenía limitaciones de memoria y deja el código al aire sin demostrar profesionalidad. Entonces ya he empezado a bajarme todos los tutoriales del SDK y ahora mismo se está instalando [oki]

Espero que tengas razón con las variables del SDK xq si no lo tengo claro, ya que pretendo algo similar al Metal SLug y necesito muchos sprites y si me tengo que sacar esa función de la manga perderé mucho tiempo.

Si sabeis de algún tutorial de C++ para PSP q no sea el d betapsp os lo agradecería muchisimo.

Y por cierto Zor lo de las colisiones lo podrías conseguir creando un rectángulo con un color que luego defines transparente para que no moleste y en las coordenadas de las imágenes de los personajes (eso para los ataques) y podrías hacer lo mismo en la base del personaje o asignar un punto de colisión con las coordenadas de donde quedarían los pies y luego con dos fondos de pantalla, uno con las colisiones que quedaría detrás y otro con lo "bonito" cargarlo despues para que quede delante. ASí consigues lo de las colisiones... uf creo q acabo d soltarte el rollo lo siento


Contestadme a estas preguntas sobre C y C++ para PSP

¿Creeis que me será muy costoso el salto a C sin ninguna experiencia salvo LUA?

¿A cuantos megas de RAM tiene acceso el SDK?

¿Acepta sonidos en mp3?
Buenas zestt, pues yo creo q no te será nada dificil, yo sin saber nada mas q vb ya se programar en C (aunque no como quisiera xD), lo unico que me faltan son punteros y el uso de objetos :S.

Sobre los Mb de Ram, ni idea xD, y sobre la reproduccion de MP3, te diré que hay una libreria muy facil de usar en psp-programming, la pena es que solo te reproduce 1 sonido a la vez (lo uso para musiquita de background, y lo demás sonidos wav, la verdad que me sorprendió gratamente el PSPSDK y los ports de algunas librerias que hicieron...

Un saludo
Sinceramente, t recomiendo q t pases a C. En principio puede parecer mass comlejo, pero no es asi. L dedicas una semanilla y t digo yo q en ese tiempo ya has aprendido lo basico y q has pasado el codigo dl juego q estas haciendo a C

[offtopic]
Zor escribió:¿lo dominas por completo en 3 días? ¿tienes 16 años? [flipa] [flipa]

Aki uno con 15, q a los 2 dias ya habia hexo un juego completo en LUA xDDD. La verdad es q el LUA s puede aprender muy rapido sin conocimientos a penas d progamacion
[/offtopic]
Salu2
Edito: es posible meter el codigo d un juego lua en un eboot. Tienes q compilar el Lua player junto al codigo y yasta. Hay tutos en los foros d ps2dev, creo recordar
zestt escribió:¿A cuantos megas de RAM tiene acceso el SDK?

No soy precisamente un gran entendido de programación para psp pero te puedo contestar más o menos a esa pregunta.

Basicamente, a todos XD , es decir, la psp tiene 32 megas de RAM que está dividida en particiones de diferente tamaño, que son accesibles sin restricciones, pero que están dirigidas a un uso concreto. Las particiones importantes y que usas en caso de programar algo, son por un lado la memoria de usuario, que son 24 megas (asi que si tienes problemas de espacio, con 24 megas no debería haber problema para que guardes todo tipo de variables :) ) y otros 2 megas que se correspenden con la VRAM (la memoria de video) a la que se accede para pintar en pantalla, aunque esto solo se hace a bajo nivel. Así, si por ejemplo utilizas la libreria GU (incluída como parte del SDK) para programar 2D o 3D no necesitas acceder a la VRAM explicitamente, GU se encarga de eso.

Otra librería útil y fácil para empezar y si solo necesitas 2D, es SDL, librería en C del SDK, aunque esta no viene incluida de por sí, hay que compilarla a parte.

zestt escribió: Si sabeis de algún tutorial de C++ para PSP q no sea el d betapsp os lo agradecería muchisimo.

Un buen tutorial de C/C++ es este, aunque puede que ya lo conozcas:
http://www.psp-programming.com/tutorials/

Hay muchos por ahí de C en general, y para psp también hay unos cuantos, si "googleas" un poco ;). Pero lo mejor, sin duda es, una vez instalado, curiosear por el código del propio SDK, asi como de los muchos ejemplos que trae, el mejor tuto de C para PSP que puedas encontrar es el propio SDK. Y desde luego no vendría mal que consiguieras algún libro sobre C, pues no creo que sólo con tutoriales puedas ver los secretillos y trucos de este lenguaje, los cuales a la hora de programar algo importante ayudan mucho.

Por otro lado te recomendaría que si quieres empezar, aprendieras antes C, que es amplísimo y te puedo asegurar que no se domina en 3 dias y, cuando te sientas seguro con C, te metas con C++.

A ver si te sirve de ayuda y suerte con tus proyectos :)
BlackSith gracias por tus respuestas, pero mi intencion es compilar el juego de manera que el source code no quede al aire y he estado investigando y el método que dices es el único... y deja los códigos fuente y los sprites al aire. Así que me paso definitivamente a C. No obstante usaré el LUA player de windows con el motor que tengo ya creado para ver como quedan los nuevos sprites que vaya creando XD


Gusvo muchas gracias a ti también que te has currado un pedazo post... q no me lo merezco.
Si, esos tutoriales ya los tengo y también otro en español que cuenta un poco los fundamentos d un plataformas en c (lo mas básico y que me viene al pelo).
Me he estado mirando código en C y me parece bastante claro y sencillo, supongo que matándome a estudiarlo una semana como dice BlackSith quizá tenga portado mi motor de LUA.
Te voy a hacer caso y me compraré un libro de C:
-¿me recomiendas alguno en especial?


Y por cierto el SDK no se me ha instalado bien con el Cygwin y me ha dado un error que tenía que ver con las GCC y en el foro de ps2dev.org (que está caido lo he visto en caché de google) a uno con un problema similar le dice que se baje la version antigua del GCC pero yo lo único que tenia que instalar era el Cygwin y el toolchain y lo he hecho al pie de la letra del tuto de betapesepe.
Bueno voy a volver a inentarlo.
¿Sabes de donde bajar el pack del SDK en eclipse q todos los links están caidos?
Yo te puedo ayudar en lo que quieras en c++...aunque viendo lo visto, me parece que tú tienes mucha más idea que yo xd


Pero bueno, si quieres: zorry.mon@gmail.com, y así de paso me enseñas tú xddd
De nada zestt, estamos para ayudar ;-)

Con respecto a lo del libro, yo tengo dos, "C. Guia de autoenseñanza" y el mismo para c++ "C++. Guia de autoenseñanza", ambos de un tal Herbert Schild (mi particular dios de C XD) y de la editorial McGrawHill. Son simples pero enseñan muchos secretillos de C y C++. Pero tampoco tienes que ir a por estes, en mi facultad he visto cantidad de libros de C distintos, y todos parecen buenos.

Sobre el error que te da el SDK, a mi nunca me dio errores de ese estilo, y ya instalé dos veces el SDK en cygwin, y otras tantas en linux (en mi caso SuSE 9 y 10). En el cygwin que tengo ahora instalado, mi version de gcc es 3.4.4, por si te sirve de ayuda. Lo único que se me ocurre es que esteas intentado instalar el SDK con una versión beta del toolchain, pues desde la página del toolchain hay siempre varias versiones, y la última suele ser beta y no es recomendable usarla, mira eso.

Yo, en Windows, como entorno de desarrollo , tengo configurado el Microsoft Visual C++ 2005 Express Edition (es gratuíto) en el que me manejo bastante bien. Tenía también intención de probar Eclipse para esto, así que si me entero de donde sacarlo lo comentaré.

Saludos.
zestt escribió:Y por cierto el SDK no se me ha instalado bien con el Cygwin y me ha dado un error que tenía que ver con las GCC y en el foro de ps2dev.org (que está caido lo he visto en caché de google) a uno con un problema similar le dice que se baje la version antigua del GCC pero yo lo único que tenia que instalar era el Cygwin y el toolchain y lo he hecho al pie de la letra del tuto de betapesepe.
Bueno voy a volver a inentarlo.
¿Sabes de donde bajar el pack del SDK en eclipse q todos los links están caidos?

Este es el mejor tuto con diferencia q encontre en su momento para instalar el cygwin y la PSPSDK: http://www.psp-programming.com/dev-forum/viewtopic.php?t=62&highlight=setting+cygwin
Esta explicado en muy pocos pasos
Salu2
Blacksith el tutorial es casi igual que el que yo he usado, solo q descarga automáticamente el toolchain, yo ya lo tengo bajado y además, la web a la que llama ps2dev.org x algun motivo está caida y no se cuando volverá a estar online. Estoy volviendo a repetirlo siguiendo los tutos y todo al pie de la letra, si vuelve a dar ese error lo posteo aquí o si no seguiré el tuto que me has puesto cuando vuelva a estar online la web de ps2dev...


Ya mañana iré a comprar un libro para aprender C y lo iré estudiando con los tutoriales, a ver si esta semana apricandome a saco consigo la base que tenía del juego xq empezará el curso y tendré menos tiempo...

Gracias a todos, y a ver si alguien tiene los links para el eclipse por si ahora vuelve a fallar..





EDITO a las 22:56

Ya me funciona el SDK!! ahora es cuestion de ponerse XD gracias a todos
12 respuestas