Lenguaje programacion Wii

Alguien me puede decir cual es el lenguaje de programacon para wii; igual que las funciones de PAlib lo son para la programacion de Ds.

Saludos
P.D: ya se que palib no es un lenguaje, pero ahora mismo no me acuerdo de su nombre exacto. Si conoceis alguna pagina que enseñe un poco de programacion, tambien estaria bien.
C o C++ tanto para Wii como para DS.

Palib no es ni de lejos un "lenguaje de programacion", ni tampoco es "la" lib de DS. Es UNA lib de DS, que se monta sobre libnds si mal no recuerdo. De hecho palib es bastante asquerosita. En la Wii la lib base es libogc y luego hay varias libs graficas como libwiisprite y compañia.
Hola

como te ha dicho marcan, en Wii se programa en C o C++.

necesitas instalar DEVKITPRO y en el directorio examples, encontraras algunos ejemplos basicos para trabajar.

En mi minipagina directorio te puedes bajar:

[Wii]Graficos 3D para Wii (PDF + Ejemplos) : Documentacion en español y ejemplos para sacar partido a los graficos con las GX
[Wii] Snd Lib : Potente libreria de sonido donde podrás mezclar voces como efectos, componer musica, reproducir formato Ogg o Mod

Espero que te sea de utilidad.
A mi me gustaria iniciarme en la scene de wii,no se....para empear,empezaria con un jueguecillo simpre para ir aprendiendo¿sabeis de algun tutorial para hacer algun jueguecillo simple para wii?

Salu2 ;)
super_link escribió:A mi me gustaria iniciarme en la scene de wii,no se....para empear,empezaria con un jueguecillo simpre para ir aprendiendo¿sabeis de algun tutorial para hacer algun jueguecillo simple para wii?

No es por desilusionar, pero si nunca has programado algo medianamente serio en C te recomendaría que empieces con C en un PC y si tienes que hacer un jueguecito, que sea uno muy simple (uno de adivinar números o algo así). Lo de "aprender a programar en 24 horas" es un mito, y aunque sigas un tutorial no vas a aprender a programar realmente. Lleva su tiempo, sobre todo cuando se trabajar a nivel medio-bajo como en la Wii.

Si ya sabes programar en C entonces las cosas son bastante mas fáciles, aunque tendrás que acostumbrarte al entorno de la Wii. Entonces te servirán los links de Hermes ;)
Pues si: la creación de un videojuego, no solo requiere conocer como trabajar con el hardware, si no que requiere "dar vida" a los graficos, dotarles de pautas de comportamiento y una planificacion que se adquiere mas fruto de la experiencia que de otra cosa.

Hay cosas que puedes aprender buscando por la red. Por ejemplo, metodos de colisión sencillos y cosas así pero al final lo que marca un videojuego, es tu imaginación, la combinacion de todas las cosas que sabes y lo que quieres conseguir.

Por ejemplo, para un juego de plataformas, puedes dividir la pantalla en cuadrantes de 8x8 pixeles (como una hoja cuadriculada)
y crear un mapa donde situas los sprites y le asignas propiedades como "suelo", "suelo rompible", "pared", "puerta", "obstaculo", "punto inicial para el enemigo", etc

Una de las utilidades que podeis encontrar en mi pagina, Spritegen, os permite diseñar sprites y crear mapas de sprites con varios layers (capas) y exportar esos datos en código C, pero claro, para sacarle partido tienes que tener cierto nivel que te permita entender como trabajar con ello (Si ejecutas la aplicacion y en ejemplos cargas objetos.spf, veras una serie de sprites de elementos decorativos. Si pulsas en una opcion que hay abajo a la derecha que pone SPRITE MAPS y en Menu->Archivos cargas mapas.map, verás que te salen una serie de habitaciones de un castillo, organizando los sprites en 4 layers, donde layer 0 representa la pared del fondo, layer 1, el suelo y los muros, layer 2, los objetos con los que tropiezas, y layer 3, los objetos que se superponen al personaje, como por ejemplo, la escalera de la habitacion 3 (pulsa sobre el recuadro 3 para verla))

Luego la pauta de comportamiento de los enemigos, pues eso es algo que haces a tu gusto: puede ser un simple movimiento de vaiven con una pauta mas o menos definida, puede ser un enemigo que te persigue buscando la ruta mas corta hacia tu posición, variar las pautas de forma aleatoria, etc. Vamos, que eso lo fijas tu y solo tienes que pensar de que forma quieres que se comporten y como trasladar eso a código.

Pero darte una receta sobre como crear un videojuego, pues es como si me pides que te de la receta de como componer canciones o algo asi. Se pueden comentar trucos, pero ya está (y mi consejo sería que trates de encontrarlos tu, en vez de que te lo den todo hecho y que trabajes con cosas que entiendas como trabajan, siempre que puedas)
Esta bien, he leido vuestro post; pero no hay algo que sea como PAlib, pero para la Wii (es decir funciones bastante facilitas de utilizar). Yo ya suponia que se podria programar en C nada mas, pero preferiria algo mas sencillo (como ya he dicho, una libreria estilo PAlib, pero en la wii).

De todas formas gracias por responder e intentare informarme mas (pero no se, parece mas dificil que la programacion de Ds; en la que ya tengo algo de experiencia).

Por cierto Hermes, tu utilidad Spritegen, ¿¿sirve para hacer mapas de colisiones?? y, si es asi; ¿¿sirve para la Ds??

Saludos
Hombre, hay varias librerias que puedes usar, como libwiisprite o GRRLib. O mejor aun, puedes usar el Revolution engine, que sirve precisamente para eso, para hacer juegos en wii. De momento solo sirve para cositas sencillitas, pero es facil de usar y poco a poco le voy añadiendo funciones nuevas. Puedes echarle un vistazo al blog para ver un poco como va.
0-00 escribió:Esta bien, he leido vuestro post; pero no hay algo que sea como PAlib, pero para la Wii (es decir funciones bastante facilitas de utilizar). Yo ya suponia que se podria programar en C nada mas, pero preferiria algo mas sencillo (como ya he dicho, una libreria estilo PAlib, pero en la wii).

De todas formas gracias por responder e intentare informarme mas (pero no se, parece mas dificil que la programacion de Ds; en la que ya tengo algo de experiencia).

Por cierto Hermes, tu utilidad Spritegen, ¿¿sirve para hacer mapas de colisiones?? y, si es asi; ¿¿sirve para la Ds??

Saludos



Hombre, cada uno hace lo que le da la gana, pero yo no te aconsejaría tirar de librerias como PAlib para programar ¿Por que?
Pues porque utilizan funciones que encapsulan otras funciones que al fin y al cabo, son los pilares básicos y se parecen mucho en todas las maquinas (por ejemplo, GX tiene gran parecido con OpenGL y en DS tienes una librería que es una versión reducida de OpenGL)

Por ejemplo, si echas un vistazo al ejemplo de sprites de mi librería, veras que llama a una serie de funciones para inicializar el video (que tu mismo puedes encapsular en una funcion), luego carga como texturas los diferentes sprites desde el fichero sprite.c (exportado a C desde Spritegen) y puedes ver como se llama a una funcion para crear las tiles necesarias para poder cargar la textura y luego tienes una funcion que encapsula todo lo necesario para dibujar los sprites en pantalla.

Es decir: que lo tienes muy facil para poder usar sprites acelerados, sin tener que comerte el tarro.

Si lo que quieres es escribir "directamente" en pantalla, dibujando pixel a pixel en una "superficie", pues puedes asignar una zona de memoria como textura (alineada a 32 bytes, eso si), dibujar ahi, transformarlo a tiles (tiling4x4), lo subes como textura (GX_InitTexObj/GX_InitTexObjLOD) y dibujas un cuadrado que ocupe toda la pantalla (es todo el mismo sistema que empleo con los sprites y de hecho puedes dibujar un sprite que ocupe toda la pantalla para ello (DrawSprite))

Quizá te parezca dificil, pero es solo cuestión de acostumbrarse y tiene la ventaja de que el encapsulado lo haces tu y eso te puede facilitar portar tu juego a otra maquina diferente (mientras que si tiras de una librería particular, como esa librería no existe en otra maquina, pues te comes un colín).

Luego el tema de leer el PAD, pues no es nada dificil leer el PAD desde la libogc. Y el tema de sonido, mejor y mas facil que Sndlib, no hay XD

Sobre lo que comentas de Spritegen para detectar colisiones y tal, dentro de los sprites, el color 0 representa transparencia, luego si miras dentro de un sprite y el color es 0, es un "hueco".

Sobre los mapas, los sprites se pueden organizar en capas y además, se les puede asignar un atributo de grupo.

Por ejemplo, en el mapa del ejemplo, yo tomo el layer 0 como objetos que estan detras de los actores (por lo que no se colisiona) y el layer 3 como objetos que están delante de los actores (tampoco hay colision, pero estos objetos pueden ocultar parcialmente el personaje, como el caso de la barandilla de la escalera)

El Layer 1 lo utilizo para los muros, el suelo y el techo, mientras que Layer 2 serian objetos que nos obstaculizan (por ejemplo, un cofre, un mueble, etc)

¿como se detecta una colision?

Pues muy facil: Imagina que lo que quieres saber, es si hay suelo debajo de los pies del actor. Pues lo que tendrias que hacer, es que si el personaje está situado en un recuadro(el sprite, está en una posicion y tiene un ancho y un alto) pues tendrias que mirar si hay un sprite en layer 1 y en layer 2, que esté justo debajo de los pies del actor.

Obviamente el mapa de sprites señala al sprite en cuestion: te da su posicion en pantalla, su ancho, su alto, el indice de sprite y su atributo de grupo, por lo que a apartir de ahi es muy facil detectar si los recuadros se tocan y si quieres, afinar en la deteccion usando el mismo sprite (que ya sabes que el color 0 representa un hueco, asi que el mismo sprite te sirve como mascara)

El atributo de grupo, lo puedes usar para cosas especiales: por ejemplo, las antorchas tienen un atributo 128, que simplemente es un flag que uso para intercambiar ese sprite con el siguiente y asi animar la llama. Tambien lo uso para fijar la posicion donde salen los enemigos , donde puede haber una llave, etc.

Pero vamos, tienes que tener en cuenta que todo eso lo puedes asignar a tu libre eleccion: el mapeador, lo que hace es posicionar los objetos en un determinado layer y te da la posibilidad de fijarle un atributo. Como lo interpretes, es cosa tuya.
8 respuestas