posibilidad de crear un juego de tablero 3d con bennugd

Started by DCelso, May 05, 2009, 05:27:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

Hola a todos, en especial a prg, que lo veo docto con el 3d,
estaba barajando la posibilidad de hacer un programa tipo zuntzu, que interprete sus "gamebox" pero en 3d. Y direis que es esto.
Zuntzu es un programa para jugar a juegos de tablero  en formato digital pero compiando las técnicas del juego real, no es una adaptación a pc del juego sino simular la realidad.
Un gamebox es el conjunto de recursos necesarios para simular un juego de tablero, imágenes de cartas, fichas, tableros, etc.
He visto un proyecto muy pretencioso, pero como todos, parado por ahora, que podría servir de ejemplo de lo que intentaría realizar.
http://www.labsk.net/index.php?topic=18671.msg215163#msg215163

Bueno pues eso, ¿que posibilidades podeis ver de realizar este proyecto? Básicamente sería realizar un juego 3d que
Lea los gameboxs zuntzu (para que cargase los dados, cartas, fichas, tableros y vistas), estos son zips normales que dentro tienen un xml (con la definición de los objetos mencionados antes) y las imágenes necesarias.
Pueda actuar como cliente-servidor para varios jugadores.
Pueda tener una zona llamada "mano" visible solo por el jugador y otra/as zonas llamadas tableros visibles para todos los jugadores.
Todos puedan dar la vuelta a las cartas y fichas visibles en los tableros
Y todos puedan tirar los dados.
Yo es que ni papa de 3D, pero veo que todo se reduce a hacer ortoedros en que:
una cara tenga una textura con la imagen de la parte superior de la carta/ficha/tablero
la cara opuesta tenga una textura con la imagen de la parte inferior de la carta/ficha/tablero
y las 4 caras restantes tengan una anchura pequeñisima y de color gris o blanco opaco.
tenga un evento que al hacer doble click se invierta
tenga un evento que al hacer click se quede pillada para moverse y soltarse.
Y poco más, quizas para las fichas puede incluso leerse modelos 3d.
Fácil diría yo sin tener ni papa :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

hola dcelso.

Quote¿que posibilidades podeis ver de realizar este proyecto?
muchas, siempre y cuando puesas hacer esto:

Lea los gameboxs zuntzu (para que cargase los dados, cartas, fichas, tableros y vistas), estos son zips normales que dentro tienen un xml (con la definición de los objetos mencionados antes) y las imágenes necesarias... je je je, las librerias 3d leen los zip (m8e_add_zip(string)), el problema es el xml, si lo puedes  leer, ya está

una vez que leas los datos, nada más sería cuestion de tener los modelos y montar la escena...

en mi opinión creo que sí se podría, aunque linkernel es el que mejor nos puede decir.

Quoteuna cara tenga una textura con la imagen de la parte superior de la carta/ficha/tablero
la cara opuesta tenga una textura con la imagen de la parte inferior de la carta/ficha/tablero
y las 4 caras restantes tengan una anchura pequeñisima y de color gris o blanco opaco.
tenga un evento que al hacer doble click se invierta
je je, las cartas se pueden hacer con un prisma rectangular o con una cara y nada más le ponemos la textura. sería muuy sencillo. el manejo de eventos como el click derecho se hace con bennu, y sólo modificamos los models con las funciones de las librerías 3d, muy parecido a programar en 2d de Bennu  ;)

siempre y cuando puedas generar la inteligencia artificial del juego, y las reglas, el juego está hecho. pues el 3d de las librerías de linkernel funcionaría muy bien... (para las cartas incluso se pueden generar primitivas 3d, acomodar el size y colocar texturas...)  amigo, manos a la obra, que si se puede
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

Mmmmhhh, suena un proyecto interesante, todo es posible si le dedicamos el tiempo necesario.

Uno de los mayores problemas lo veo en la interpretación de los ficheros .xml, si no hay nada hecho ya al respecto podrías plantearte crear las funciones de lectura de .xml en un .prg a parte, para poder reutilizarlas en próximos proyectos. Quizá en un futuro puedan incluso formar parte de una nueva DLL, a saber...

Últimamente todo lo nuevo que hago en Bennu lo llevo por ese camino, código reutilizable, es un consejo/sugerencia.

En cualquier caso ánimo con el proyecto, seguiré el hilo de las novedades y si puedo ayudar en algo lo haré.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

A ver, yo es que estoy pez en el 3d.
¿Por donde empiezo a estudiar?
¿uso ogre3d bennu u otra?
¿hay ejemplos sencillos para cargar un cuadrado, ponerle seis texturas distintas en cada cara, girar la cámara, hacer zoom, etc?
Yo tengo todo lo que voy viendo descargado, pero claro el problema es empezar con buen pie en esto. lo máximo que he probado en bennu en 3d ha sido compilar el .prg del juego de magia y verlo rulando, bueno también al modelo de bennu por el laberinto.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

  :) no te  preocupes... primero verifica que tienes los ejemplos:  creo que es este enlace http://3dm8ee.blogspot.com/
ahí debes poder descargar una carpeta que dice prg, la cual contiene más de 30 ejemplos para aprender a usar el bennu3d todos son programados en bennu y funcionan.

yo tengo esta versión:

http://www.filefactory.com/file/da7812/n/bennu05102008_rar

aunque la más nueva es esta:

http://www.megaupload.com/?d=0CJM24PA

la que tengo me gusta mucho, sin embargo he comenzado a ver las nuevas funciones de la última (te recomiendo la de filefactory, al menos hasta tener un poco más de información sobre las nuevas funciones, ya que estas son sólo un preview).

ya que te descargues los ejemplos, revísalos, está buenísimos, al menos córrelos, si te interesa  lo que ves los lees, y cualquier duda puedes revisar la ayuda que hice en aquél post, o puedes preguntar por aquí, así entre todos podemos investigar cómo usarla... o preguntarle a link, ja ja ja.

Quote¿uso ogre3d bennu u otra?

usa bennud3d, ogre todavía está iniciando, es un preview :)

Quote¿hay ejemplos sencillos para cargar un cuadrado, ponerle seis texturas distintas en cada cara, girar la cámara, hacer
zoom, etc?
esos + de 30 ejemplos es todo lo que hay, tienes todo excepto el zoom, ese no existe, por el momento... existe modificación de enfoque de cámara, pero un zoom como en halo, que la mira tiene el zoom pero al rededor se ve sin zoom no existe.

eso de hacer un cuadrado y ponerle texturas no te lo recomiendo, mejor hazte los models en un editor como milkshape o alguno más fácil o si prefieres blender (para lo que vas a hacer, no creo que necesites tanto a blender, al menos cartas y eso no se necesita tanto poder  ;) ) si necesitas ayuda, puedo ayudarte con cosas sencillas, pero las dificiles no he podido (quice hacer una carita y fue un fracaso con el suavizado... necesito practicar más en blender...).

... creo que revisa los ejemplos y luego nos dices qué opinas, están geniales...
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

Gracias PRG, me pondré manos a la obra a ver que tal,
De todas formas necesito hacer lo del cuadrado con texturas, date cuenta que la opción de hacer las cartas directamente en 3d es menos viable, hay juegos con más de 300 cartas con imágenes distintas,20 fichas disintas y varios tableros, por ejemplo Agrícola

Además lo que intento hacer es reutilizar los "gamebox" de zuntzu, por eso de no reinventar la rueda. Podría crearme mi propio formato gamebox, pero más adelante , cuando ya esté definido el programa y vea qué es necesario guardar de qué forma es más cómoda y cómo aprovechar las herramientas disponibles.

Un ejemplo sencillísimo, es el chinesenspiel, una versión superreducida del parchis( ludo o Parqués)  en el que solo hay 4 fichas, 1 dado de seis caras y un tablero.

Yo por ahora lo que veo a priori como primera tarea es
leer el tablero del xml , crear el ortoedro que representará al tablero con un color blanco opaco y pegarle la textura extraída de una imagen en una cara. A ver si lo consigo, parece facil.
La línea es esta
<map name="Tablero" image-file="tablero.png" />
Adjunto el gamebox que hize para zuntzu en el que se pueden ver los recursos disponibles.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Windgate

Confirmo todo lo que dice Prg, cuando me puse con el 3D (Volveré...) lo que hice fue descargar los 30+ ejemplos y tests y modificar uno de ellos, en particular el que resuelve colisiones con el mapa. Mirando el resto de ejemplos aprendes a incluir otras cositas como luces, partículas, elementos de interfaz...

Los modelos de carta y dado son tan tan simples que podrías hacerlos tú mismo a partir de cualquier modelo de box en MD2, que sin duda hay en la carpeta media de los ejemplos 3D. Por ejemplo el MDL Viewer permite modificar punto a punto, y siendo una geometría tan sencilla en 5 minutos lo deberías tener listo.

En cuanto a las texturas, si usas LOAD_ANIMODEL y LOAD_TEXTURE por separado, puedes aplicar la textura que quieras (Admite casi todos los formatos de imagen) en tus dados y cartas, con lo que esa parte está resuelta.

Con la resolución de colisiones del escenario y aplicando gravedad al dado, éste giraría por si sólo, y obteniendo su rotación cuando se detiene sería relativamente sencillo determinar la puntuación...

Te lo estoy diciendo todo en plan teórico, luego en la práctica siempre tendrás algún imprevisto, pero espero que mis ideas te puedan servir de algo. Los juegos de puzzle/cartas no me motivan, estoy por empezar con uno de fútbol/acción en breves, pero sigo este hilo hasta el final.

Ánimo y escucha los consejos de Prg, que es un moztruo!!!
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Prg

Tu puedes Dcelso!!  ;)


Quoteestoy por empezar con uno de fútbol/acción en breves

:) ... ¡¡¡futbol con pataditas!!!  :D me gustan mucho los juegos de deportes con violencia, ya quiero ver tus ideas amigo :)

QuoteCon la resolución de colisiones del escenario y aplicando gravedad al dado, éste giraría por si sólo
amigo Dcelso, windgate es el que más sabe de física en el bennu 3d,   :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

DCelso

vaya, no consigo compilar el test01.
Me he descargado: benn05102008.rar, bgd-r40-win32.zip, dlls-externals-mandatory-pack.rar
He descomprimido todos en un directorio
He creado un archivo bgdc.import con todos los mod de bennu mas el bennu3d
He ido a la consola de windows
He ido a la carpeta donde descomprimí todo.
He ejecucado bgdc test01.prg y me suelta:

Copyright ® 2006-2009 SplinterGU (Fenix/BennuGD)
Copyright ® 2002-2006 Fenix Team (Fenix)
Copyright ® 1999-2002 JosÚ Luis Cebrißn Pag³e (Fenix)
Bennu Game Development comes with ABSOLUTELY NO WARRANTY;
see COPYING for details

c:\DevBennu\workspace\3bboardgames\prg\librender:1: warning: Variable redeclared ("ALPHA_STEPS")
c:\DevBennu\workspace\3bboardgames\prg\libscroll:5: warning: Variable redeclared ("CTYPE")
c:\DevBennu\workspace\3bboardgames\prg\libscroll:5: warning: Variable redeclared ("CNUMBER")
c:\DevBennu\workspace\3bboardgames\prg\test01.prg:63: error: Undefined procedure ("M8E_INIT")


He probado a meter el directorio en el patch y nada, esto sigue igual.
Juro que conseguí compilar el pájaro bennu y moverlo por el laberinto, ahora, ya no se ni cómo.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Windgate

Arg, en su día tuve ese mismo error de compilación. Creo recordar que NO es necesario importar el Bennu3D, y de hecho estoy probando y no he importado nada, esas pruebas se basan en la M8EE que ya viene importada en todos los tests. No hacen uso de ninguna otra DLL. Bastaría con abrir con Crimson Editor y pulsar F6 para correr cada uno de los tests.

Y por cierto, esa duda me corroe... Siempre he programado 3D con la M8EE y nunca he importado Bennu3D.DLL, por tanto no he llegado a usar la librería Bennu3D... ¿Alguien puede aclararme esta singularidad tan peculiar?

Quoteamigo Dcelso, windgate es el que más sabe de física en el bennu 3d,   

lol, gran halago Prg, ojalá supiese hacer algo más que aplicar física de colisiones, partículas e iluminación... Todavía no me he puesto a fondo con el 3D ni mucho menos, ya ves que ni tan siquiera soy capaz de determinar con exactitud qué librería estoy usando. Maldita falta de documentación :(
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

:(, nada lo he quitado y esto sigue igual.
Si no recuerdo mal la última vez fue por problema de versiones entre bennu3d y bennugd.
Quizas no vaya con los últimos binarios esta libreria que me comentas PRG, ¿puedes confirmármelo?

En cuanto a tu duda windgate, si editas el .h verás que hace el import del bennu3d, por eso no hace falta ponerlo en el archivo .imp o bgdc.import. Así que sí que la estabas usando.

Gracias a sendos, cuento con vosotros para este proyecto que quizás vaya demasiado lento porque tengo demasiadas cosas a la vez y tengo que intentar repartirme el tiempo libre de la mejor manera posible para mí :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Prg

je je, me equivoqué, las correctas son estas:

http://rapidshare.com/files/204483410/prg.rar.html

ya las revisé.

te mando el tablero en 3d (del zip que me pasaste), je je :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

splinter_work

Cuando el compilador te dice que una funcion no se encuentra, probablemente se deba a que no se ha podido cargar una dependencia (otras dlls necesarias) de la dll o modulo que intentamos cargar.

No se si este sera el caso, pero es siempre conveniente verificar eso.

Windgate

#13
DCelso, prueba a actualizar todas las DLL, yo suelo hacerlo de vez en cuando, salen a un ritmo frenético xD

Gracias por la aclaración con M8EE y Bennu3D, ahora mismo estaba trabajando en mi nuevo juego 3D, llamado Sport Wars, y ya tenía el import "Bennu3D", lo cambio por la M8EE ahora mismo.

Estoy llevando la modularidad al límite, todavía no tengo nada en pantalla y ya tengo 5 ficheros .prg distintos, uno para el vídeo, otro para controlar la salida del juego, otro para constantes, etc. Es la primera vez que aplico esta metodología en 3D.

Adjunto en primicia mi pantalla de presentación, aunque aún tengo que lidiar con eso de alternar entre 2D y 3D o bien empezar a usar las funciones de interfaz (Que desconozco al 99%), en breve pondré un hilo al respecto.



Creo que vamos a empezar a la vez con 2 proyectos 3D distintos, además con Prg a nuestro lado y l1nk3rn3l por ahí dando guerra seguro que llegamos a buen puerto :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

DCelso

PRG, perdona mi ignorancia, esto que me has pasado que es, como se usa y como lo puedo ver :(.
¿Seria posible que me explicaras como hacer un cubo blanco entero y ponerle una imagen eun una sola de sus caras usando la libreria sola?
o es obligatorio disponer de un modelo3d para cargar, es que en este caso, tendría que crear modelos para todos los tableros de todos los gamebox que quiera migrar a este nuevo programa, no se si me explico.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/