PDA

Ver la versión completa : No se por donde empezar... ¬¬



KoHD
12/06/2006, 01:54
Hola buenas, esto que os voy a contar os resultara un poco imbecil, pero cojo aire, meto tripa, saco pecho y empiezo...

Resulta que quiero saber programar, compilar, y probar juegos para la GP2X pero la verdad es que no se que necesito, ni que compiladores, ni que librerias ni como se hacen las cosas...

Me gustaria saber si hay un manual o algo q mas o menos me lo explique un poco pq entre el kdeveloper, las SDK, lo que se de Linux y lo que se d C no me entero de nada... soy tan triste que solo se programar con las API de Linux normal, con esto no se hacer nada... Alguien me puede ayudar y decir algo de como empezar?

Me gustaria muxo ayudar.Muchisimas gracias.

K-teto
12/06/2006, 02:05
Si tienes experiencia programando para linux, te recomiendo que uses la minilib antes que SDL.
No tendras practicamente nada, pero bueno, siempre se pueden hacer las cosas no?
Tambien hay allegro para gp2x, y para compilar te vale con bajarte el sdk oficial que hay.

pakoloko
12/06/2006, 03:08
Creo que también está portado pygame, para programar juegos con Python.

Uncanny
12/06/2006, 04:16
Si usas Linux (aunque con Windows la cosa va casi igual) te diré lo que necesitas si quieres programar en el lenguaje C o C++ y al menos con las funciones propias de sus librerías estandar:

1) Un toolchain, esto es un conjunto de herramientas (compilador, preprocesador, ensamblador, enlazador, etc) y librerías, practicamente todas del proyecto GNU (GCC, Binutils y GNU Library C), en conjunto lo puedes ver como un SDK (Software Development Kit, o Kit de Desarrollo de Software) sobre todo cuando le añades otras librerías a parte de las de C/C++ como puede ser las Minilib o las SDL. La toolchain que te puedes construir (facilmente gracias a scripts, como el del GPH) o bien usar alguna toolchain precompilada por otra persona.

Nota: En el caso de Linux, D_Skywalk se ha encargado de proporcionar una así como librerías extras precompiladas).

- Toolchain/SDK (oficial de GPH) precompilado de D_Skywalk para Linux: http://david.dantoine.org/contenido/10/

2) Un IDE (KDevelop, Anjuta, Eclipse/CDT, Motor, Xwedit, etc) o al menos un editor de textos, preferiblemente ideado para programación en C/C++ (Vim, Emacs, QEmacs, JED, Gedit, Kate, etc.), con al menos opciones de resaltado de sintaxis e identación, para "picar código". Si usas un IDE (dependiendo de cual uses) tendrás, además de lo que te ofrece la mayoría de editores, otras facilidades como la de integrar las herramientas de tu toolchain, pudiendo compilar/depurar tus programas desde el mismo sin necesidad de salir de él o usar una consola/terminal abierta para compilar tus fuentes o depurar tus programas compilados (cosa que sería lo normal si solo usas un editor).

Si usas un editor u otro IDE tendrás que encargarte de crearte tus propias plantillas de proyecto o tus archivos de fuentes base para usarlo, así como configurar las rutas a las herramientas de tu toolchain/SDK correctamente, y si el editor/IDE no lo hace, crearte tus propios Makefile en el caso de proyectos de muchos archivos (IDEs como KDevelop o Motor trabajan con herramientas como autoconf y automake para generar Makefiles automáticamente).

Nota: Una vez más D_Skywalk se ha currado una plantilla para KDevelop con la que, una vez instalada, podremos crear un proyecto para GP2X en el IDE KDevelop con un código previo en C de ejemplo y con las opciones a las herramientas del toolchain ya predefinidas (pero modificables si se desea) para hacer todo el desarrollo de un proyecto (aplicación/juego) sin necesidad de salir de KDevelop.

- Plantilla para desarrollo de GP2X usando SDL con KDevelop: http://david.dantoine.org/contenido/9/

3) Una idea de lo que quieres hacer, ya sea crear algo nuevo o portar algo existente y que aun no se haya portado, o al menos, si se ha portado pero no de forma eficiente, intentar hacer un port mejor. Sin esto todo lo anterior no tiene más utilidad que la de ocupar espacio en disco :p

4) Documentación, si lo necesitas, tanto del lenguaje de programación, que en este caso sería C o C++ como de las librerías de desarrollo que vayas a usar para programar tus aplicaciones/juegos. Si sabes programar con sultura en C/C++ ya tienes mucho del camino recorrido, si has programado especificamente alguna vez para Linux (como parece ser según dices), mejor, porque la GP2X usa un sistema basado en kernel Linux como ya debes saber así que los conceptos a aplicar son los mismos.

Si has usado la librería SDL pues ya tienes lo necesario (si el requisito [3] lo tienes) para empezar a hacer algo tangible y ejecutable en la GP2X, especialmente aplicaciones/juegos y se pueden hacer prácticamente de todo y con buenos resultados (mirad el port de Heroes y luego me contais). Si quieres dedicarte a hacer un emulador lo mejor posiblemente es la Minilib de rlyeh (salvo que sepas Assembly (ASM) de ARM, en ese caso ya estás a otro nivel), así que tendrás que leerte la documentación de sus funciones para usarla.

- SDL: http://www.libsdl.org/
- Minilib: http://www.retrodev.info/

Nota: Dices que sabes programar con la API de Linux, así que deberías llevarte bien con las funciones de la Minilib aunque en comparación con SDL puede que eches cosas en falta, pero hay un grupo de gente que está trabajando en extender las funcionalidades de la Minilib.

5) Una GP2X donde probarlo todo :D

Nota: Gracias a las funciones USB-Network del firmware 2.0 y al servidor Telnet que integra la GP2X, mediante GNU GDB o bien GDB Server compilado, enlazado y ejecutable para ARM Linux puedes depurar tus programas más comodamente ejecutandolos en tu GP2X y depurandolos remotamente desde tu ordenador.

Si usas Windows entonces puedes usar el SDK oficial de GPH con un IDE incluido, Dev-C++, con plantillas creadas especificamente para desarrollar para GP2X y que te puedes descargar desde esta misma web o desde dev.gp2x.com directamente.

A parte de lo anterior, hay otras formas de programar para GP2X, por ejemplo en el lenguaje Fenix (aquí que hablen los expertos en este lenguaje) o como te ha comentado pakoloko, con el lenguaje Python y la librería Pygame (un wrapper de SDL para Python), así como la librería Allegro, también portada a la GP2X y como SDL, ideada para crear juegos.

BuD
12/06/2006, 04:20
Esos tochos de explicaciones son marca de la casa, xD. Como siempre te lo curras mucho Uncanny. ;)

Uncanny
12/06/2006, 04:22
Esos tochos de explicaciones son marca de la casa, xD. Como siempre te lo curras mucho Uncanny. ;)Es una habilidad innata, enrrollarme más que una persiana y crear tochos infumables de leer xDDD

64BeeT
12/06/2006, 04:34
Ole, Uncanny, muy currado la explicacion, me has aclarado un par de cositas ^^

gracias tio:brindis:

Wild[Kyo]
12/06/2006, 09:05
Uncanny... chapo! Vaya pedazo de explicación camarada.

La tendrias que poner en el wiki porque es MUY completa.

pakoito
12/06/2006, 09:15
Acabo de comprender qué es un toolchain, y porq cojones los coders lo mentaban cada dos por tres. Tambien me he enterado de que la gente dice ASM en vez de ensamblador para que quede mas cool xDDD

Macho, metete a la enseñanza porq es lo tuyo. Si te lo montas bien podrias desbancar al mitico Ceballos y todo!!

Uncanny
12/06/2006, 09:16
']Uncanny... chapo! Vaya pedazo de explicación camarada.

La tendrias que poner en el wiki porque es MUY completa.Gracias Wild[Kyo] :D

Creo que tienes razón, gracias de nuevo por la idea, lo añadiré al Wiki con un "copy & paste" y algunos cambios :)
Acabo de comprender qué es un toolchain, y porq cojones los coders lo mentaban cada dos por tres. Tambien me he enterado de que la gente dice ASM en vez de ensamblador para que quede mas cool xDDD

Macho, metete a la enseñanza porq es lo tuyo. Si te lo montas bien podrias desbancar al mitico Ceballos y todo!!Es que a mi no me va ser cool, sino decir las cosas claras (razonamiento: que yo sepa lo que significa algo no implica que otro lo sepa), salvo cuando estoy vago o hablo con gente que se que entiende del tema xD

Y lo de la enseñanza... quita, quita, a mi me gusta, pero solo enseñaría a gente que quiera aprender, y de esos pocos hay :p

KoHD
12/06/2006, 13:14
Jue muxisimas gracias a ver si con eso me opngo un poco mas en honda... es que era muy triste decir... bien pa que me vale C?Para que me vale saber crear procesos, conexiones a internet, mensajeria etc si luego no se hacer un **** programilla coherente que me sirva verdaderamente pa algo :=( Y luego estar leyendo por ahi que si SDK SDL, luego ver como **** se compila, yo no encontrar nada q compile y pruebe las cosas pa GP2x... En fin todo un movidon... Asi que muchas gracias...

Por cierto no es un tocho infumable que no hay quien se lo lea, si te interesa, seguro q lo lees... ;)

Ahhh y seguro que hay mas gente como yo asi que si estas cosas las meteis en un tutorial, de como empezar que hacer etc, pues seguro que hay mas d uno q os pondria en un altar xD

Muchas gracias de nuevo :D

< - >
Por cierto a lo mjor os sirve d ayuda lo que mas o mnos se:

ADA,C de lenguajes, luego a parte en programacion funcional HASKELL

ensamblador tengo bst idea(es lo que hacen los ratos muertos)

Del resto, como lo de IDE,SDL etc... me habeis dejado un poco en el sitio,pq yo no se relacionar unas cosas con otras... a mi me dicen q haga una cosa en tal y la hago... aun estoy muy verde... :(

< - >
Ahhhh y una cosa mas.... y ya os dejo tranquilo... que se hace para hacer temas de escritorio y conjuntos de fondos, sonidos,etc... es que siempre me lo he preguntado xD

Gracias y DeW

Theck
12/06/2006, 22:05
Un IDE es simplemente una manera de llamar a un editor de código pensado para desarrollar. Técnicamente hablando un Bloc de Notas que te ponga en negrita las funciones tipo IF ya sería un IDE ;)

Eso si, los IDE guapos, como el de GPH, Visual C++ y todos estos están muy currados para que los inutiles como yo puedan programar rápido sin saber como se compila un programa realmente xD (F9 powa!)

SDL son unas librerias que están pensadas para juegos, te dan funciones para tratar imagenes, sonidos, musica y todo lo que suele tener un juego con una sencillez increible. Por ejemplo:
sonido = loadWav("sonido.wav); <-- esto carga un sonido para usarlo (si, está mal pero lo toy escribiendo de memoria xD)


Uncanny, luego te preguntas porque sales en las listas de la scene, no solo de programar directamente se beneficia la gente, de ayudar a los que luego aportaremos (espero) también ganamos.