jueves, 20 de septiembre de 2012

Interacción en juego de pelotas


La idea principal del juego de las pelotas es que puedas mover las pelotas arrastrándolas con el puntero haciendo que choque con las de más pelotas en la ventana rebotando en las paredes de la ventana.

El juego se desarrollo con el Motor Gráfico Pilas Engine, el cual hace uso de diferentes librerías básicamente junta todas estas y facilita su uso ya que pilas se encarga de la administración y todo lo necesario, las librerias usadas mas importantes son:

  • Pygame: para la manipulación de los personajes, imágenes, etc
  • Pyqt: para el manejo de las interfaces gráficas 
  • PyBox2d: para el manejo de la física de los juegos

Código:

Vídeo:





Interacción con voz


La intencion es cambiar la gravedad de la ventana por medio de comando de voz con la libreria PYSpeech que hace uso del motor de reconocimiento de voz incluido en Windows.

Al parecer la mezcla de esta librería y l motor de voz de Windows realizan un buen trabajo tomando en cuenta que la mayoría de de los programas usan apartados para el reconocimiento de voz están entrenados.

Las opciones para mover la gravedad son:
  • La gravedad sea en la parte superior dela ventana
  • La gravedad sea en la parte inferior de la ventana
  • La gravedad sea en la parte izq.
  • la gravedad sea en la parte der.
  • O que la gravedad sea nula o 0

Código:


Interacción por texto


Otra opción que fue mas que nada como algo extra fue que la gravedad se moviera por medio de comandos escritos en el cual indicaras hacia donde dirigir la gravedad con las mismas opciones que en el ejemplo anterior con el cual se movía por medio de comandos de voz.

Código:


Vídeo:





jueves, 6 de septiembre de 2012

Planificación y programación automática

La planificación y la programación automática es una rama de la inteligencia artificial que se refiere a la realización de las estrategias o las secuencias de acción, por lo general para su ejecución por los agentes inteligentes , robots autónomos y vehículos no tripulados . A diferencia clásica de control y clasificación de los problemas, las soluciones son complejas y deben ser descubiertos y optimizado en el espacio multidimensional. La planificación se relaciona también con la teoría de decisión .
En los entornos conocidos con los modelos disponibles, la planificación se puede hacer fuera de línea. Se pueden encontrar soluciones y evaluados antes de la ejecución. En ambientes dinámicamente desconocidas, el estrategia a menudo necesita ser revisado en línea. Soluciones suelen recurrir a iterativo de prueba y error, comúnmente se observan en los procesos de inteligencia artificial. Estos incluyen la programación dinámica , el aprendizaje por refuerzo y optimización combinatoria . Idiomas utilizados para describir la planificación y la programación son a menudo llamados lenguajes de acción .

Ejemplo de la vida real:

En una tienda de autoservicio es importante la planificación del acomodo de los productos de venta, para que el consumidor los pueda localizar fácilmente.
La planificación para dicho procedimiento requiere de un acomodo especifico como son algunos ejemplos:




  • Frutas y verduras
  • Lácteos
  • Carnes frías
  • Enlatados
  • Limpieza
  • Panaderías
  • Farmacia
  • Ropa
Las frutas y verduras, se acomodan por categorias especificas separando principalmente por frutas y verduras las cuales se acomodan dejando juntos los diferentes tipos del mismo producto, dejando separadas las verduras que necesitan de agua y refrigeración para mantener el buen estado.

Lácteos, debemos acomodarlos en un área especifica de la tienda donde se cuente con refrigeración, los productos son acomodados por categorías poniendo juntos todos los productos del mismo tipo pero de diferente maraca.

Carnes frías, estos productos se deben acomodar también en refrigeradores separando los direfentes tipos de carnes de res con sus diferentes tipos de cortes,  pollo, también con sus diferentes tipos de piezas, puerco y sus diferentes tipos de cortes , mariscos y sus derivados , entre otros.

Enlatados, se deberán acomodar por verduras y los distintas marcas del producto, legumbres también con sus distintas marcas disponibles, chiles en conserva y los distintas presentaciones y atunes dejando junto con las demás marcas disponibles en la tienda.

Limpieza, se deberán separar por jabones en polvo, jabón líquido, detergentes, desodorantes, aerosoles, escobas, trapeadores, desengrasantes entre otros, estos a su vez deberán acomodarse por marcas diferentes del mismo producto.

Panadería, deben acomodarse en una área exclusiva de la tienda, acomodando primero el pan en barra con sus diferentes tipos y marcas disponibles, acomodando después el pan dulce en los diferentes estantes,los pasteles juntos en un área exclusiva con refrigeración.

Farmacia, los acomodaremos por orden alfabético y las diferentes marcas de los productos en los estantes de la tienda.

Ropa,  se acomodaran por categorías que son niños, damas, caballeros y ropa interior, a su vez se clasificaran por marcas, tallas, colores y ropa de temporada.


jueves, 30 de agosto de 2012

Semana 3


Blattle ship



Como se juega?

Consiste en dos tableros que forman una maris bidimencional de 10x10 con ancho de la letra A hasta la J y de alto del 1 al 10, en el cual colacas 5 barcos en cualquier parte de dicho tablero ya sea en posicion horizontal o vertical mas no en diagonal.

Lo barcos son de diferentes tamaños los cuales abarcan diferentes casillas en el tablero teniendo:

2 barcos de 3 espacios
1 barco de 4 espacios
1 barco de 5 espacios
1 barco de 2 espacios

Una vez todas las naves han sido posicionadas, se inicia una serie de rondas. En cada ronda, cada jugador en su turno indica una posición del tablero de su oponente. Si esa posición es ocupada por una parte de un barco, el oponente indica averiado (toque o tocado) y el atacante marca con rojo esa posición, con un pin. Cuando todas las posiciones de un mismo barco han sido dañadas debe indicarse hundido dando a conocer tal circunstancia que indicará al atacante la importancia de la nave destruida. Ahora bien, si la posición indicada, efectivamente, no posee un barco alojado, se indica con agua, y será marcada con un pin blanco.
Quien descubra primero todas las naves será el vencedor, pero en caso de que el participante que comenzo la partida hunda el barco en su ultima jugada, el otro participante tiene una ultima posibilidad para alcanzar el empate.





jueves, 23 de agosto de 2012


Física del juego  en 2D


En el diagrama se explica la física del juego con la cual el personaje interactúa:

Espacio:
Todos los fenómenos ocurren dentro de un espacio, que no es más que un sistema de coordenadas. Es tarea del desarrollador que el sistema de coordenadas del espacio corresponda al de la pantalla.



Cuerpo:
Todos los cuerpos dentro de un espacio tienen propiedades físicas. En el caso de 2 dimensiones, tenemos la masa y tenemos la inercia. La masa es la cantidad de materia en el cuerpo, por otro lado, la inercia representa la cantidad de fuerza que hay que aplicar en el cuerpo para que éste rote sobre su centro de gravedad.

Forma:
La forma es la figura que adopta el cuerpo. Esta figura puede ser un círculo, un rectángulo o un polígono convexo. En todos los casos la forma tiene un “offset” que es el centro de gravedad del cuerpo.


Física rogdoll:
El significado de Ragdoll proviene de las palabras inglesas rag doll (muñeco de trapo). Como su nombre lo indica, éste es un procedimiento de animación y técnica de simulación para mostrar el movimiento de una persona como si estuviera muerto.
El sistema interpreta las características del cuerpo como una serie de huesos rígidos conectados entre sí, poniéndole bisagras para simular las articulaciones. La simulación modela lo que ocurre con el cuerpo cuando se cae al suelo, como si fuese un muñeco de trapo.


Junta:
Las juntas proveen restricciones al movimiento de los cuerpos. Un caso que ya mencionamos es el de la barra fija a la pared mediante un clavo. Otro caso puede ser limitar el ángulo de movimiento de esa barra. Otro caso puede ser conectar dos engranajes. Existe una diversidad de juntas para múltiples necesidades.

Motor físico:                                                                                                                                                     

Es un código de programa usado para simular la Mecánica newtoniana en el ambiente.

Detector de colisiones:                                                                                                                                    

Se utiliza para resolver el problema de determinar cuándo es que dos o más objetos físicos en el ambiente se cruzan entre sí.




Bibliografías:

jueves, 16 de agosto de 2012

Herramientas para desarrollo de Video-juegos 2D


Como desarrollar un videojuego?

Lenguajes de programación hay muchos y de muchos tipos, secuenciales “C,BASIC”, orientados a objetos “C++, Java, C#”, basados en objetos, para bases de datos, lógicos, funcionales, etc; cada lenguaje se usa para algo pero es a través de ellos que nos comunicamos con la computadora.

Algunos ejemplos de lenguajes usados en las consolas de videos juegos y pc son:

Para el Ps3 se programa en Cg, una versión de C que le permite a los desarrolladores enfocarse en el área de 3D, junto con una versión modificada de Open Gl llamada Open Gl ES. Sony le provee a los desarrolladores que lo soliciten su kit de desarrollo para Ps3, el cual cuesta alrededor de $10,000 dolares-

En 360 se programa con C# y el XNA (el cual tu puedes descargar gratuitamente desde la página de microsoft y hacer tus propios juegos, claro que es una versión recortada aunque se pueds pagar por la versión completa) y también permite C++. Como IDE se utiliza el visual studio, el cual es una verdadera maravilla y utiliza Directx que es la librería gráfica propietaria de microsoft.

Para portatiles como el DS y el PSP se usa principalmente C y C++ junto con un poco de ensamblador.

Para celulares se utiliza Java el cual es muy popular debido a su alto nivel de portabilidad.

En la computadora se utiliza principalmente C++ o en su defecto C# si son juegos de windows actuales.

Muchos engines estan programados con C++, como el Unreal. 
Así que como ves lo importante para aprender a desarrollar juegos es conocer C, C++ y C# (si son para 360 o para compu), conocer bien las librerías gráficas (ya sea Directx u Open Gl).

Pygame es un conjunto de módulos del lenguaje de programación Python que permiten la creación de videojuegos en dos dimensiones de una manera sencilla. Funciona como interfaz de las bibliotecas SDL, y está orientado al manejo de sprites.
Dada la simplicidad de Python, se pueden crear prototipos y desarrollar rápidamente. Esto se puede comprobar en las competiciones que se disputan en línea, donde es cada vez más usado. Los resultados pueden llegar a ser profesionales.
Pygame también puede utilizarse para crear otros programas multimedia o interfaces gráficas de usuario.



Algunos motores graficos:

Ox Game Engine para XNA

Este motor gráfico para XNA, está alojado en codeplex, así que además del instalador podrás obtener incluso el código fuente por si tenéis que adaptarlo.

La lista de características que incluye es enorme, como muestra os dejo alguna de ellas:
  • Editor visual de interfaces gráficas de usuario
  • Editor visual de escenarios 
  • Sistema de scrpiting en C#
  • Físicas de la librería JigLibX integradas
  • Sistema de animación de personajes XNAnimation integrado

Motor grafico Sun Burn

Se puede desarrollar aplicaciones con algo más de ayuda, la lista de funcionalidades que se incluye:
  • Iluminación dinámica y sombras
  • Texturas con mapas difuso, de relieve y especular
  • Soporte sólo para windows 

Cry Engine 3

Motor grafico con una licencia especial para estudiantes, y ahora, lo ofrecen totalmente libre, para poder aprender a usar y dar rienda suelta a nuestra imaginación


Referencias: