Hace dos semanas acabé el juego de cubilete 3D en Blender 2.5, logic bricks + Python, debo decir que soy un principiante en python, y aun que llevo más de 4 años usando blender, nunca había utilizado el GameEngine, hasta ahora, el juego realmente quedó pesado, se necesita una computadora decente para poder correrlo aunque en sí el juego ni tiene buenas gráficas, ni muchos detalles… pero si tiene como 30 scripts ejecutándose 1000 veces por segundo, o algo asi jejeje, no agregué detalles al juego por el tiempo, ya que este era un programa que debía entregar en una fecha dada, y no alcancé a texturizar el cubilete, ni el enviroment ni nada realmente, solo una textura de “Scratched Wood”, les cuento que el problema principal al hacer este juego fue el tener que preocuparme que ocurría en cada milésima de segundo en cada uno de los scripts, y que debía hacer el script cada vez que se ejecutara (ya dije que corrían como 100 veces por segundo?), además al final de 3 semanas aproximadamente de no decidirme como hacer el juego, entendí vagamente cómo funcionaban las bounding boxes de los objetos, muchas veces no servían y los dados se salían del cubilete, habiendo comentado esto, comento que el juego tiene ese “bug” que aun no sé cómo solucionar: si se ejecuta en una computadora que corre el juego a una velocidad de < de 45 fps hay muchiiiisimas probabilidades que los dados se salgan, que no detecte las jugadas correctas, en fin, que haga un desm@dre, supongo que tiene que ver algo con la sincronización entre los scripts y el delay que se genera desde el CPU al tratar de renderizar en tiempo real el juego… bueno, sin más preámbulos, les dejo el juego, y el archivo blend empacado, además unas cuantas screenshots:



DESCARGAR ARCHIVO FUENTE .BLEND
Le hace falta muuuuuucha optimización al GameEngine de blender, por cierto, no lo exporté en Fullscreen por un bug de blender que desalinea la pantalla estando en pantalla completa, y tiene otro bug, de blender también, al cerrar el juego SIEMPRE genera un error… not my fault

nov 09, 2010 @ 00:58:23
Entiendo tu problematica, yo tambien he intentado utilizar la game engine de blender
No comprendo del todo el funcionamiento de los scripts, pero algo me defiendo, quisiera que fuera mas intuitivo
Por otro lado he intentado utilizar la UDK de unreal en lugar del gameengine de blender, pero se requiere demasiada maquina cada vez que se compila
La otra es utilizar UNITY pero me pasa que el editor no me convence del todo y no estoy tan seguro si es conveniente utilizar una gameengine tan desconocida para muchos
Ademas con blender avanze en poco tiempo, moviendo objetos, moviendo la camara, etc , quisiera que blender fuera mas robusto para la forma de hacer los menus de juegos, aunque la UDK no le veo por donde siquiera empezar
Aunque por lo que leo tal vez podria optimizarse el juego, no se que tanto responde blender a los eventos del juego pero seria bueno que no tuvieras que ejecutar el mismo script 100 veces , parece insensato, es como cuando usas SQL sin triggers, para detectar una actualizacion tienes que ejecutar una consulta continuamente, pero con triggers el evento de actualizacion es simplemente atrapado
nov 09, 2010 @ 01:39:26
claro… le hace falta robustez a blender, todavia está agarrando vuelo y el game engine NO es una prioridad… lo del script que ejecuto varias veces por segundo realmente no se puede hacer de otra manera (que yo sepa) por ejemplo.. el cubilete tiene un sensor de mouse, pero me “molesta” (por no decir de otra forma) que no halla un sensor que detecte que el mouse está sobre el objeto y se dio click sobre el… existe el sensor que detecta que se dio click y el que detecta cuando esta el mouse sobre el objeto, pero por separado, entonces tendria que haber hecho un AND de cuando ambos sensores se activaran. entonces, cuando el resultado de ese AND sea TRUE debo de ejecutar un script… lo cual no se puede, por que, la ejecucion de scripts solo es en los Controladores y no en los actuadores, tampoco se puede linkear un controlador a otro… podría haber hecho que cambiara una propiedad de un objeto, y poner otro sensor que detectara cuando cambiara esa propiedad, y estaría solucionado (aparentemente) pero si hubiera implementado sensores para todo lo que ocupaba el juego hubiera quedado con literalmente cientos de propiedades… lo cual me hubiese dificultado mas aun, el terminar el juego…. gracias por tu interés por cierto en mi blog!