jueves, 15 de noviembre de 2012

Texturas

Texturas



Para esta semana se intento simular una textura de "hielo" con código simulando los colores de los pixeles usando varios colores como azules, grises y blancos.

Imágenes:





Cambiando un poco los colores:







Código:



jueves, 8 de noviembre de 2012


Respuestas auditivas y visuales

Las respuestas visuales y auditivas siempre están en un juego ya que representan gran parte del juego ese tipo de estímulos para el usuario.


Código:


Código del juego: 



Código del arduino:




Imágenes: 

La interfaz donde se pueden observar todos los componentes arrastrables con los cuales se realizan diferentes acciones, los cuales pueden ser bombas, cajas, pelotas y bananas. Dependiendo que se seleccione y lo dirijamos al mono este realizara una acción diferente y mandara un mensaje  distinto para cada actor, también se prenderá un led de color rojo o verde dependido el actor que usemos.


la interfaz con todos sus objetos disponibles que podemos usar o arrastrar hacia el mono  



Cuando usamos el actor de la banana el mono emite un sonido de risa y sonríe y manda un mensaje de "rico!" y prende un led de color amarillo ya que es algo bueno y no lastima al mono





Al arrastrar una bomba hacia el mono y golpearlo el mono emite un sonido de un grito, la bomba explota y esta emite el sonido de una explosión también el mono manda un mensaje de "muero" y por lo tanto prende un led de color rojo ya que se le hace daño al mono. 





Cuando se arrastra una caja de madera en el juego igual que en la bomba el mono emite el sonido de un 
grito y manda un mensaje de "oouuuch!" y prende también un led de color rojo 





Y por ultimo al golpearlo con una pelota se emite un sonido de risa y también manda un mensaje diferente que dice "jajaja no me hace nada!" y se prende un led de color amarillo ya que la acción que se realiza no le causa daño al mono.





La conexión del arduino  




Led rojo encendido cuando se le hace daño al mono




Led amarillo encendido cuando interactuamos con el mono de manera amistosa





Vídeo:

En el vídeo se muestran los mensajes lanzados por el mono y se escuchan los diferentes sonidos  que se emiten en el juego dependiendo la acción que se realice



jueves, 1 de noviembre de 2012


Métodos de evaluación de Desempeño Humano-Sistema de Sistemas Inteligentes

Abstracto

Los sistemas de inteligencia están en aumento  la meta para las actividades humanas es un bucle o debe ser por la eliminación, sino más bien crear una asociación humano-sistema con mayores capacidades que los componentes individuales. Nosotros actualmente podemos ver los sistemas  inteligentes, los operadores o supervisores de estos sistemas como componentes separados y la realización de evaluaciones en el mismo sentido. Para que los sistemas inteligentes sean más útiles y aceptables debemos tener en cuenta el  "Sistema" como una composición de los comportamientos del software, posiblemente incrustada en un componente físico como un robot y la interacción humana con este componente ya sea virtual o física.

Enfoque


La IHC tradicional tiene un enfoque centrado en el usuario mientras que otros en el campo de la automatización se han centrado en un solo sistema de enfoque. Estamos adoptando una visión de   entrada en la información. Es necesario determinar la información del usuario tiene que entender lo que el sistema inteligente está haciendo y cuando sea necesaria su intervención y qué  información se necesita para hacer cualquier intervención tan eficaz como posible. La parte final del el problema es en realidad llevar a cabo la intervención evaluar correctamente la situación y dar consejos a una acción necesaria para el sistema inteligente. Proponemos  seis emisiones diferentes en la evaluación que debe considerarse para evaluar los sistemas inteligentes de interacción:
  1. La información necesaria para el ser humano capaz de determinar que una intervención es necesaria?
  2. La información que se presenta es de forma adecuada?
  3. Es el lenguaje de interacción es eficiente tanto para el humano y el sistema inteligente?
  4. Son interacciones manejadas de manera eficiente y efectiva,  tanto desde el usuario y el sistema?
  5. La arquitectura de interacción escala a múltiples plataformas y contraindicaciones?
  6. Apoya la arquitectura de la interacción en evolución desde las plataformas?
Evaluaciones de la usabilidad de los productos de software de escritorio utilizan tres indicadores: eficacia, eficiencia y usuarios satisfechos. Debido a la naturaleza dinámica del sistema inteligente se separa en dos piezas de evaluación, obteniendo la información adecuada para el usuario y el rendimiento real del usuario en el  sistema de interacción.


Metodologías de evaluación


Información de presencia y presentación


Para determinar si la información necesaria se presenta en la forma correcta que se está personalizando en una metodología de evaluación de conciencia situacional. La conciencia es el conocimiento de lo que está pasando a su alrededor. La consecuencia de esta definición es que se puede entender qué la información es importante, a fin de adquirir conocimiento de la situación. A nivel del conocimiento de la situación se tiene la base de percepción de la información en su entorno. Dos niveles de conocimiento de la situación es la capacidad de comprender múltiples piezas de información y determinar los objetivos que el usuario desea alcanzar. Una persona alcanza el tercer nivel de conocimiento de la situación si esta es capaz de predecir futuros acontecimientos y las dinámicas de la situación sobre su comprensión de la situación actual.

Rendimiento de la interacción


La evaluación técnica global de conciencia situacional, es una herramienta que fue desarrollada como un instrumento de medición para esta metodología. Esta herramienta utiliza un análisis de tareas dirigidas a construir una lista de requisitos de conciencia situacional para un dominio o para los objetivos particulares. Estas consultas se construyen a medidas de los tres niveles de situación de conciencia. Búsquedas similares a la colocación de vehículos en un dominio de conducción mediría el nivel de conciencia.
La presencia de evaluaciones de información y la presentación son centradas en el usuario. Las evaluaciones de desempeño de interacción que deben tener en cuenta el rendimiento tanto entre la humana y del sistema inteligente. Este tipo de evaluación puede llevarse a cabo como una típica evaluación de IHC. Elaborar un conjunto de tareas construidas y explicadas al usuario. El usuario es dirigido a utilizar la interfaz para realizar cada tarea la experiencia del usuario puede confundir esta  evaluación. En general  los usuarios deben ser elegidos de una población representativa de usuarios y dando la misma cantidad de entrenamiento como a todos los usuarios se le daría. La medida de efectividad tiene dos componentes el usuario que da la ejecución de la interacción correctamente y el sistema respondiendo correctamente a esta interacción. Asimismo la eficiencia métrica sería la suma del tiempo del usuario para la interacción y el tiempo del sistema para que se lleve a cabo.

Apoyo a la escalabilidad y evolución


Las interacciones deben ser evaluadas utilizando la información de presencia y presentación, y métodos de rendimiento. La información que se muestra en cada caso y la presentación de dicha información necesita una conciencia de evaluación. Las medidas de desempeño que sirven para garantizar que el usuario puede identificar la interacción dentro del tiempo apropiado. Esto será crucial si un número de plataformas heterogéneas se están utilizando. En el caso de varias personas que interactúan con el sistema simultáneamente, será interesante determinar cómo mostrar esa información y qué efecto tendrá esto en la interacción.
La evaluación de la interacción de apoyo para la evolución es más difícil, los sistemas inteligentes  evolucionan y son capases de llevar a cabo más tareas con éxito y la comunicación con usuarios en otros niveles. Esto sin duda hará necesario volver a examinar el lenguaje de interacción, pero la información que se necesita tiene que ser examinada también. En un nivel más sólido de autonomía podría apoyarse como la utilización eficaz de más abstracciones en el primer nivel de la información presentada.

Metodologías de evaluación de los diferentes roles


Las cinco funciones definidas aquí, supervisor, operador, mecánico, compañero de equipo, y las visitantes, tienen diferentes requisitos de información e interacciones diferentes. ¿Es factible utilizar el mismo tipo de evaluación para medir el desempeño de todos los roles? Esperamos que el supervisor, operador y mecánico tengan acceso a una pantalla de información especializada del sistema inteligente. Esta pantalla puede ser una estación de trabajo un ordenador portátil o un dispositivo de mano pequeño. Sin embargo  esta pantalla dará adecuada situaciones de conciencia a los usuarios.


Referencia

jueves, 25 de octubre de 2012

Animación en blender

En esta semana intentare mover el objeto modelado en blender de la semana pasada que fue una pistola la cual modifique y agregue mas detalles para que se viera mejor con la misma técnica que utilice la para modelar la anterior.




Lo que realice para poder mover esta ves la pistola y simular el movimiento de esta cuando se dispara 
fue que al momento de volverla a modelar la separe por partes y así poder seleccionar la parte que deseo mover.

lo que fue necesario mover para la simulación fue la parte superior de color plateado y el gatillo de la pistola haciendo un movimiento hacia atrás y que regresara.



Para lograr esto agregue un "path" el cual es un camino que recorre la imagen  o la parte que deseas mover
diseñando el recorrido dándole forma al "path" seccionando las aristas del mimo poniéndolas en las prisiones mas convenientes para el movimiento que se desea hacer  



El inconveniente que tuve fue que mi computadora se traba al rende rizar y ver el movimiento de la pistola en una imagen mas clara y solo pude ver la animación en la visión 3d 




jueves, 18 de octubre de 2012


Modelando pistola con Blender


Para modelar la pistola use la técnica de modelación sobre la imagen que consiste  en poner de fondo la imagen que se quiere modelar y empezamos a agregar un cubo el cual le vamos dando forma arrastrando las aristas del cubo seleccionando y dando la forma de los bordes del objeto, al realizar esto copiamos una parte del cubo anterior y lo extendemos hasta donde sea necesario y realizamos la misma acción modelando las esquinas del cubo en la forma del objeto.

Al acabar una sección del objeto agregamos otro cubo en cual empezaremos a  realizar la misma acción, cuando agregamos un nuevo objeto en la modelación es necesario pasar a la vita 3d para modelar el ancho y que quede del mismo tamaño que los cubos anteriores.






Al terminar de modelar todo el objeto seleccionamos áreas para poder pintarlas de diferentes colores o poniendo las texturas en el objeto ya modelado.






Como avance del proyecto modele una moneda la cual nos serviría para comprar cosas o que sean items recolectables en el trayecto del juego, así como la pistola también se puede usar en las armas del personaje.




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 multimediainterfaces 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: