Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - kanc

#1
Buenas,

Estoy empezando mis pinitos con los shaders y ando enfrascado con la iluminacion. Ahora mismo todo parece que se corrrectamente excepto por el brillo especular, no se me ve nada de nada.

Os pongo el codigo del shader para ver si entre mas ojos vemos el problema porque ya no se tocar y con esto de que los shaders no se pueden debugear...

tanto las luces como la camara tienen la posicion en espacio de escena.


#version 330 core

#define MAX_LIGHTS 8

uniform mat4 MVP;
uniform mat4 M;
uniform vec3 eyePos;
uniform bool lightingEnabled;
uniform bool lightEnabled[MAX_LIGHTS];
uniform bool perPixelLighting;
uniform vec4 lightVec[MAX_LIGHTS];
uniform vec3 lightColor[MAX_LIGHTS];
uniform float lightAtt[MAX_LIGHTS];
uniform vec3 diffuse;
uniform vec3 ambient;
uniform int shininess;

in vec3 vpos;
in vec3 vnormal;
in vec2 vuv;
out vec2 fuv;
out vec4 fcolor;

void main()
{
//definimos el color por defecto (difuso de la malla y ambiente)
fcolor = vec4( vec3(diffuse * ambient),1);

if (lightingEnabled == true)
{
vec3 combinedSpecular = vec3(0,0,0);
vec3 combinedLights = ambient;

for (int i = 0; i < MAX_LIGHTS; i++)
{
if (lightEnabled[i] == true)
{
//obtenemos la normal del vertice en espacio de la escena
vec3 N = normalize(M * vec4(vnormal,1)).xyz;
vec3 L = lightVec[i].xyz;
float attenuation = 1;

//obtenemos el vector desde la fuente de luz al vertice
L = (vec4(L,1) - (M * vec4(vpos,1))).xyz;

//si es luz puntual calculamos la atenuacion
if (lightVec[i].w == 1)
{
float distance = length(L);
attenuation = 1.0 / (1.0 + lightAtt[i] * distance + 0.01 * distance * distance);
}

//calculamos el coseno del angulo que forman la luz sobre el vertice y la normal
float NDotL = max (0.0, dot (N, normalize(L)));

//acumulamos el valor de iluminacion
combinedLights+= NDotL * lightColor[i] * attenuation;

//si hay brillo y nos afecta la incidencia de la luz en ese vertice (angulo < 90)
if (shininess > 0 &&  NDotL > 0)
{
//calculamos el vector desde la posicion de la camara hasta el vertice
vec3 SceneEyePos = ( (M * vec4(vpos,1)) - vec4(eyePos,1)).xyz;

//hayamos el vector intermedio entre la luz y la camara
vec3 H = normalize(SceneEyePos - L);
float NDotH = dot(N, H);

combinedSpecular+= max (0.0, pow(NDotH, shininess) * attenuation);
combinedSpecular+= max (0.0, pow(NDotH, shininess) * attenuation);

}
}
}

fcolor = vec4( vec3(diffuse * combinedLights + combinedSpecular),1);

}
gl_Position = MVP * vec4(vpos, 1);
fuv = vuv;
}


¿en que he podido metido la pata?

saludos y gracias
#2
Cobalt... tus pruebas tienen muy buena pinta, no se porque no te han salido ya dos o tres grafistas.... ¿que tal se hace trabajar con UDK?? es tan coñazo como dice todo el mundo o te aclimatas rapido?? ¿has probado el UE4?? que te parece comparado con este?

un saludo
#3
General / Re:Duda sobre plataformidad de Cocos2dx
05 de Febrero de 2014, 03:18:55 PM
Hola chavales,

Muchas gracias por vuestras ideas y comentarios!! La verdad es que aunque el elemento didactico siempre interesa, mi objetivo principal es otro. Para aprender ya estoy estudiando en la u-tad ;)

Al final, como dice Darago me he decidido por Unity. No me habia enterado que han cambiado los acuerdos de licencia y ahora es gratuito publicar en la AppStore y Google Play si no facturas mas de 100k dolares/año como es mi caso jejejeje.

El coste de la licencia de desarrollador pues es algo util y que intentare demorar hasta justo cuando tenga la app para publicar y asi tengo un año para publicar mas cosas. Con lo dell master de la u-tad no descarto que haga uso de ello ;)

De nuevo, muchas gracias fjnavarro y Darango!!

#4
General / Duda sobre plataformidad de Cocos2dx
04 de Febrero de 2014, 03:26:04 PM
Hola,

Me gustaria hacer un pequeño juego para moviles, multiplataforma, al menos para iOs y Android. Me caso en Octubre y me haria ilusion que la invitacion fuera un pequeño jueguecito 2d. Como hoy en dia el que mas y el que menos tiene un smartphone seguro que podria sustituir esto por la clasica invitacion para la mayoria de mis invitados.

Por problemas logisticos ahora mismo no puedo montarme un entorno para programar en Cocos2dx para Android y mi pregunta es... si hago el juego para PC luego va a necesitar muchos cambios para correrlo en Android e iOS??

Tenia pensado desarrollarlo en Visual Studio, no se si eso ayuda a vuestra respuesta.

Por otro lado, como todavia no he empezado y seguramente no voy a necesitar profundizar demasiado en las entrañas del motor, me da igual el que sea. Por precio (gratis), comunidad (mucha) y caracteristicas (multiplataforma) habia elegido Cocos2dx pero estoy abierto a otro engine si pensais que puede ser mas util en mi caso.

Gracias!! ;)
#5
Hola,

yo estoy cursando el master de la U-tad y la verdad es que por ahora estoy contento. Estoy aprendiendo muchas cosas, refrescando cosas de la carrera (aunque no la tengo terminada, una de las razones de porque me decidi por el de la u-tad) y solo llevo 3 meses de master. El profesorado por ahora me parece bastante competente, casi todos ex-pyro Tomas Fernandez (un autentico maquina de c++), Javier Arevalo, Javier Sanjuan (otro crack), Jon Beltran, Ismael Raya, Carlos Pegar (ex Next Limit) etc...

El temario me parece coherente, empiezan dando caña con C++, despues un poco de convencion y organizacion de codigo, control de versiones, etc... una vez tienes una base, matematicas y despues programacion 2d, en el que desarrollamos un pequeño motor pero suficiente para hacerte un videojuego modesto (gestion de sprites, sistemas de particulas, carga de mapas, animacion por huesos, etc...), intercalamos clases de fisica mas o menos teorica, pero viendo cosas en codigo para que no sea todo "abstracto", etc... y todavia me queda mucho por ver y aprender.

Ademas como tambien hay master de arte y de diseño de videojuegos, se forman grupos entre gente de los tres masters y hay un proyecto final de master que obviamente es un juego, simulando lo mas parecido a la realidad, con lo que tenemos la figura del publisher al que hay que ir enseñando cosas y vendiendole el juego, etc...

El tema economico es lo peor... es bastante caro, pero hay becas. El año pasado dieron muchas del 50%, este año no ha habido tanta suerte, pero yo he pillado una del 30% con lo cual reduces bastante. Y a mi que trabajo, el horario me viene  bien, de 6 a 9 (aunque llego valdao a casa porque salgo justo de la oficina a la universidad)...

Tambien hay otras cosas malas, como por ejemplo la forma en la que se estan gestionando los grupos para los proyectos (muy descompensados) y que algunos profesores de asignaturas "menores" estan un poco para llevarse la pasta. Por suerte como digo no son gente de asignturas fuertes.

Ademas hay master classes mas o menos interesantes de vez en cuando (a las cuales no puedo asistir porque son de 4 a 6),  hace poco vinieron gente de Infinity Ward, ayer mismo Javier Arevalo dio otra sobre juegos HTML5, etc...

Esta claro que todavia me queda mucho y no puedo darte una vision global del master, pero como digo por ahora estoy contento ;)

Un saludo

PD. Por lo visto casi todos los alumnos del año pasado estan ya colocados currando.
#6
Hola!

Perdonad el retraso en contestar!! estaba un poco liado y casi se me habia olvidado mi post... :-[

Vaya par de respuestas!! muchisimas gracias! la verdad es que van a ser muy muy utiles! me parece una buena idea capturar todos los eventos via callback en un buffer cada refresco de pantalla y luego actuar en consecuencia. Estuve leyendo un articulo en el que decian que para juegos funciona mejor el polling, no en rendimiento, pero si en respuesta. Segun crei entender el polling tiene su propio "hilo" activo en la CPU y por lo tanto al hacer la peticion tiene respuesta automatica. Por el contrario el callback va un poco su bola sin ocupar tiempo de CPU pero claro, eso tambien tiene el punto negativo de que cuando el procesador te hace saltar el callback igual ha pasado un poco de tiempo.

Como me recomiendas Gallo, estoy empezando por el 2d aunque use OpenGL, asi que supongo que tanto el rendimiento como el tiempo de respuesta me van a dar un poco igual con los procesadores de hoy en dia.

Muchas gracias tambien por los libros que me recomendais, voy a ver si en pack publising los encuentro!

Por cierto Trontxu, pedazo de input manager que tienes montado jejeje! una pregunta... dxinput vale para cualquier pad en windows? o solo para el pad de la 360??

Un saludo y de nuevo mil gracias!
#7
Hola,

Estoy iniciandome en esto de la programacion de videojuegos y me gustaria que me dierais un par de consejos o algun libro, articulo, etc... donde poder consultar

Seria acerca de programar una clase input manager que se encargue de gestionar la entrada de datos, teclado, raton, pad para modificar la logica del juego.

Mi "gestor de ventana" va a ser GLFW ya que lo estoy haciendo con OpenGL y C++

¿que os parece mas adecuado polling o callbacks?? hay mucha diferencia de rendimiento?

gracias!
#8
General Programadores / Re:Pregunta tonta sobre C y la funcion sin
18 de Noviembre de 2013, 01:04:40 PM
Muchas gracias! teniais razon, efectivamente al final de la ristra de numeros estaba el exp008  :grrr:

como ya dije soy un poco "nub"  :-\

Saludos!
#9
Yo creo que siempre es bueno conocer las entrañas de como funciona el asunto, aunque no tengas que usarlo. Aunque el Unity te lo den todo mascado, el internamente utirilizara las tecnicas y paradigmas que te enseñen a bajo nivel con C++

De hecho, no lo se con certeza pero casi seguro que Unity esta programado en C++... Digamos que si lo que te enseñan de programacion de videojuegos en una escala de 1 a 10 es 9 (por ejemplo) y requiriendo Unity unos conocimientos de 6, andaras sobrado, sin embargo al reves estaras "cojo".

Me refiero a que si te enseñan lo basico siempre puedes usar Unity o CryEngine o Proyect Anarchy con minimo esfuerzo, pero si solo sabes Unity cuando tengas que enfrentarte con otro motor te costara mucho mas.

Y luego estan las inquietudes de cada uno claro, a mi personalmente me gusta saber como funcionan las cosas.

saludos
#10
General Programadores / Pregunta tonta sobre C y la funcion sin
15 de Noviembre de 2013, 04:51:51 PM
Buenas,

Soy un novatillo con el C/C++ y programandome una clase matriz me encuentro lo siguente:

float test = sinf(M_PI);

y test vale -8.74...... lo cual no tiene ningun sentido. Si no he entendido mal, la funcion devuelve un float con el valor del seno del angulo pasado en radianes... ¿os ha pasado?¿tipo error de noob?

Gracias!
#11
Formación / Re:Master Programación de Videojuegos U-TAD
10 de Abril de 2013, 01:17:52 PM
La informacion que te dan sobre el master de la u-tad no es muy especifica, pero supongo que os podeis hacer una idea.

Master U-TAD

El Máster en Programación de Videojuegos consta de los siguientes módulos:

1. Módulo de Fundamentos de Programación de Videojuegos: Los objetivos de este
módulo están en adquirir soltura con el lenguaje de programación C++ y las
herramientas de desarrollo habituales (IDE, Control de código fuente, depuración,
etc.); aprender la estructura típica del código de un videojuego y aplicar conceptos
generales de la arquitectura e ingeniería del software al desarrollo de videojuegos. A
su vez, incluye una introducción a los fundamentos del desarrollo de videojuegos,
que permita ponerse en marcha desde el primer momento.

2. Módulo de Programación Gráfica: El objetivo de este módulo es proporcionar al
alumno los conocimientos y herramientas necesarias para trabajar en entornos 2D y
3D; aprendiendo a transformar y renderizar, desde sencillos sprites hasta modelos 3D
animados. Introduce al alumno en los conceptos fundamentales de la programación
gráfica, trabajando con los conceptos más avanzados a través de un motor gráfico
como el Ogre3D.

3. Módulo de Programación de interactividad: El alumno aprenderá a gestionar la
comunicación juego-jugador en ambos sentidos: por parte del jugador hacia el juego,
gestionando los distintos tipos de input que se pueden recibir y, por parte del juego,
proporcionando al jugador una experiencia positiva de control como respuesta a ese
input.

4. Módulo de Inteligencia Emocional: El alumno aprenderá a crear comportamientos
para las entidades "vivas" de un videojuego y a que estas entidades sean capaces de
desplazarse por el universo del videojuego y responder al entorno.

5. Módulo de Inicio de Areas de Especialización: El objetivo es introducir al alumno en
áreas especializadas dentro de la programación de videojuegos. En el postgrado se
comienza el estudio de los mismos, alcanzando un conocimiento práctico inicial. A lo
largo de la carrera profesional del alumno, es muy posible que el alumno acabe
especializándose en una de ellas, por tanto, estas asignaturas son una especie de
"iniciación para el alumno en su área de especialización futura".

6. Proyecto Final de Máster: En el último trimestre se trabajará en el desarrollo y
presentación del Proyecto Final, consistente en la realización de un proyecto por
grupos (de 4-6 alumnos, cada uno) para crear un videojuego que comprenda, de la
manera más amplia posible, los conocimientos adquiridos a lo largo del curso.
#12
Formación / Re:Master Programación de Videojuegos U-TAD
10 de Abril de 2013, 01:11:01 PM
Master de la UCM

Diseño de videojuegos (4 créditos)

Esta asignatura, además de una introducción histórica al mundo de los videojuegos, presenta la teoría fundamental del diseño de videojuegos y cómo aplicarla al desarrollo de niveles con herramientas profesionales.

Introducción histórica al diseño de videojuegos
Mecanismos
Documento de Concepto
Mecánicas
Interfaces
Herramientas profesionales: Unreal Ed

Arquitectura software (5 créditos)

En esta asignatura se estudia el esqueleto de un videojuego profesional programado en C++, explorando las soluciones arquitectónicas más usadas en la industria junto con las técnicas de C++ necesarias para su implementación. Se desarrolla un primer juego completo sobre el que otras asignaturas irán incorporando funcionalidad adicional.

Repaso de C++
C++ a gran escala y técnicas avanzadas
Arquitectura de videojuegos dirigida por datos
Bucle principal
Gestión de entidades
La arquitectura de un juego completo

Pipeline de contenidos (3 créditos)

En esta asignatura se pretende que el alumno tome contacto con los distintos tipos de contenido audiovisual que se integran en un videojuego, y así mismo con las herramientas más utilizadas en su creación. Por su aplicación práctica en el pipeline de contenidos, se presta especial atención a la programación de extensiones para 3ds Max.

El pipeline de contenido gráfico: texturas, modelos y animaciones
Programación en MAXScript para 3ds Max
Edición y manipulación de audio digital

Programación gráfica (5 créditos)

Tras un repaso a los conceptos fundamentales de la informática gráfica, esta asignatura se concentra en describir cómo se aplican estos conceptos en motores gráficos concretos desarrollados específicamente para la implementación de videojuegos. Se estudian así mismo técnicas de optimización específicas y se analiza en profundidad el motor gráfico Ogre que es el middleware seleccionado para los proyectos del máster.

Fundamentos y APIs Gráficas
Framebuffer, transformaciones y proyecciones
Iluminación, texturas y modelado
Organización y ordenación espacial
El motor gráfico Ogre
El mundo de las consolas. Pipeline de contenidos
Efectos especiales: niebla de guerra, glows, ...
Hardware gráfico
Programación de shaders: Cg, HLSL

Física (4 créditos)

Esta asignatura se dedica a la programación de comportamientos físicos en los juegos. Se estudian tanto los principios en los que se basan los motores de física como el uso concreto de los motores profesionales, con especial atención a PhysX que es el middleware propuesto para los proyectos del máster.

Uso y desarrollo de motores físicos
PhysX
Simulador de vuelo y simulador de coches
Ragdolls, telas y fluidos

Inteligencia artificial (5 créditos)

En esta asignatura se cubren las técnicas que en el desarrollo profesional de videojuegos se consideran como inteligencia artificial, y que en general están bastante alejadas de lo que en Informática se suele estudiar bajo el mismo nombre. Se estudian las técnicas específicas de cada tipo de juego y se cubren también contenidos avanzados de aprendizaje automático.

Introducción, tipos de juegos y arquitectura
Representación del entorno y A*
Programación del comportamiento: FSM, BTs, Reglas
Percepción
Sistemas basados en localización
Aprendizaje automático, algoritmos genéticos, redes neuronales y bayesianas, lógica difusa, CBR.

Técnicas de programación específicas (4 créditos)

En esta asignatura se cubren técnicas de programación específicas del desarrollo de videojuegos que no se suelen incluir en el curriculum de los estudios de Informática.

Dispositivos de entrada/salida: teclado y ratón, pad, WiiMote, PS Move y Kinect
Ejecución de juegos bajo Windows: carga de recursos, autorun, distintas instancias, rendimiento, new y delete, depuración
Justificación, tipos y características de los lenguajes de script. LUA
Inteligencia artificial en LUA
Audio orientado a videojuegos 3D
Librerías de renderizado de audio: OpenAL y FMOD

Redes (4 créditos)

Tras un repaso a los conceptos básicos de redes modernas, esta asignatura se ocupa de las técnicas específicas que se emplean en los juegos en red, introduciendo primero los conceptos en juegos multijugador sobre redes locales para tratar luego los problemas específicos de los juegos masivos a través de Internet

TCP/IP e introducción a juegos en red
Programación con sockets
Resolución de problemas de conectividad: Firewalls, NAT
Desarrollo de juegos en red multijugador: diseño de la capa de lobby, optimización de rendimiento
Tolerancia a problemas de red en Internet: pérdida de paquetes, retardos, jitter

Ingeniería del software (4 créditos)

El desarrollo industrial de videojuegos conlleva, desde el punto de vista de la Ingeniería del software, una serie de problemas específicos propios de la coordinación de un equipo interdisciplinar. En esta asignatura se presentan los problemas específicos y las soluciones empleadas, con especial atención a las metodologías ágiles que se recomiendan para el desarrollo del proyecto del máster.

Proceso de desarrollo y deliverables
Organización del equipo
Planificación y metodologías ágiles
Scrum
Localización + QA
Diseño software
Desarrollo de MMOG
Gestión de servidores en juegos online
Proceso de cierre / mastering
Postmortem de juegos populares

Videojuegos para dispositivos móviles (6 créditos)

En esta asignatura se analizan las plataformas móviles más populares para el desarrollo de juegos, las propietarias de Apple y las basadas en Android, presentando los lenguajes y APIs más utilizados profesionalmente, y presentando técnicas de programación que promueven el desarrollo multi-plataforma para estos dispositivos. Se incluyen así mismo técnicas de reconocimiento de marcadores y realidad aumentada.

Desarrollo multi-plataforma para dispositivos móviles
Juegos para iPhone, iPod, iPad
Juegos para Android
Realidad aumentada

Prototipado rápido de juegos (3 créditos)

Esta asignatura presenta tecnologías concretas, Flash y Unity, que permiten el desarrollo rápido de videojuegos en 2D y 3D. El objetivo es aumentar el espectro de plataformas para las que el estudiante es capaz de desarrollar juegos, así como familiarizarlo con tecnologías que se están utilizando profesionalmente en modelos de negocio alternativos al desarrollo AAA.

Juegos 2D en Flash
Juegos 3D en Unity
Emprendimiento (1 crédito)

En esta asignatura se presentan las conocimientos y habilidades esenciales para emprender un proyecto independiente de desarrollo de videojuegos.

Fundar una empresa de videojuegos
Modelos de negocio en la industria del videojuego

Tesis de máster (12 créditos)

La tesis de máster consiste en el desarrollo de un videojuego que alcance una fase beta (feature-complete), e incluya al menos un nivel completo. El juego se desarrollará en equipos de 3 o 4 programadores con la colaboración de diseñadores, en la elaboración del concepto, y artistas de las otras especialidades del máster.
#13
Formación / Re:Master Programación de Videojuegos U-TAD
10 de Abril de 2013, 12:59:48 PM
Hola, me gustaria preguntaros que os parecen los tres masters relativos al tema que hay ahora mismo en Madrid. Vuestra opinion en lo relativo al temario, claro, supongo que luego habra otros aspectos a valorar.

Master de la UPM
1. Introducción (1 ECTS)
Profesor: Javier Alcalá
Esta primera asignatura servirá como presentación y toma de contacto con el máster. Se verá un repaso de la historia del videojuego desde sus orígenes, destacando las aportaciones y novedades de los juegos más relevantes, así como conceptos generales del diseño y la programación de videojuegos.
   
2. La industria del videojuego (1 ECTS)
Profesor: Rafael San Miguel
El objetivo de esta asignatura es proporcionar al alumno una visión completa del estado del arte en la industria del videojuego, indicando cuáles son los major players del sector, la cadena de valor asociada al producto, los principales canales de distribución, las cifras de negocio y la evolución del consumo en los últimos años.

Asimismo, se abordará la problemática tecnológica, indicando cuáles son los motores de desarrollo y entornos de diseño más utilizados, la composición de los equipos y los principales parámetros de planificación de proyectos, que serán posteriormente desarrollados en la asignatura correspondiente.
   
3. El guión (4 ECTS)
Profesores: Daniel González, Javier Alcalá
A través de la asignatura de Guión de Videojuegos, se podrá trabajar en la parte más creativa del videojuego. Desde el diseño inicial de personajes, escenarios, armas, diálogos y secuencias cinematográficas. Se estudiará cómo trabajar con múltiples Story lines y cómo crear subtramas que pueden servir como misiones secundarias.
   
4. Diseño de videojuegos (6 ECTS)
Profesores: Daniel González, Eduardo de la Iglesia
Una vez creada la idea básica del videojuego, hay que desarrollar el documento más importante, el Documento de Diseño, donde se da forma a todas las mecánicas de juego, niveles, sistema de puntuaciones, evolución y todo aquello que ofrezca jugabilidad.

Además, se mostrará cómo empezar a trabajar en el diseño del sonido, tanto para el sonido FX como para la futura Banda Sonora.
   
5. Arte (6 ECTS)
Profesores: Jaime Munárriz, Eduardo Martínez, Antonio Gómez
En esta asignatura se introducirán los conceptos de estética y estilo, color, iluminación, ambientación y grafismo, en definitiva todo lo que supone el Concept Art. También se presentarán los componentes de un videojuego: interfaz, personajes, objetos, arquitectura, escenarios y niveles.

Usando como herramienta de desarrollo el software 3D Studio Max de Autodesk para modelado y Photoshop para el texturizado, se verá cómo construir escenarios tridimensionales y personajes en alta y baja poligonización. Al finalizar el modulo, el alumno podrá contar con todas las herramientas necesarias que le proporciona 3D Studio Max para construir cualquier mundo que pueda imaginar.
   
6. Diseño de niveles (2 ECTS)
Profesor: Daniel González
Durante la asignatura se estudiará todo el proceso de creación de un nivel de videojuego, tanto si es 2D como 3D, mostraremos desde la colocación de enemigos e ítems hasta los puntos de guardados. La creación de un nivel no solo es un proceso técnico, si no que interviene un elemento vital, el ritmo.

Durante las clases se abordará la mejor manera de dotar a un nivel del ritmo adecuado en función del tipo de juego que se esté desarrollando
   
7. Planificación de proyectos (3 ECTS)
Profesores: Pedro Alarcón, Rafael San Miguel
La asignatura se centrará en la presentación de las metodologías ágiles de desarrollo, de aplicación tanto durante el desarrollo de un producto software como durante la posterior evolución del mismo. Se dará una visión general de las metodologías ágiles de desarrollo software profundizando en algunas metodologías concretas como Scrum. Se abordarán aspectos relativos a la especificación de funcionalidad, la planificación y seguimiento de un proyecto en iteraciones, los roles de un equipo ágil, técnicas y prácticas específicas de las metodologías ágiles de desarrollo y el desarrollo dirigido por pruebas.

También se estudiarán los procesos de validación establecidos por las empresas que actúan como publishers. Asimismo, se proporcionan directrices para la organización de equipos de trabajo, incluyendo los perfiles profesionales, la distribución de tareas, el seguimiento de los progresos realizados y el esquema de entregas semanales.

Por último, se indican cuáles son las técnicas más precisas para la organización y planificación de tareas dentro del proyecto de desarrollo, el seguimiento de los plazos y la redistribución de carga entre los componentes del equipo.

Al final de la asignatura, el alumno está capacitado para estructurar, diseñar y gestionar una planificación de un proyecto de videojuegos.
   
8. Metaversos y SeriousGames (2 ECTS)
Profesor: Ángel Arroyo
El Metaverso es el resultado de la interconexión total entre todos los espacios virtuales en 3D, una especie de nueva Web en la que los hiperenlaces nos permitan teletransportarnos de un espacio a otro llevando con nosotros el avatar que nos representa y todos los elementos que necesitemos de nuestro inventario. En este sentido, el Metaverso todavía no existe; necesita algunos años más para que la comunidad tecnológica involucrada en su desarrollo pueda contar con los estándares y las herramientas necesarias.

En esta asignatura aprenderemos a utilizar OpenSim (opensimulator.org) para la construcción de espacios virtuales persistentes en 3D y para la programación de los comportamientos complejos necesarios para dotar de autonomía a objetos y avatares. También se estudiarán las múltiples posibilidades con las que contamos en estos entornos para definir y construir experiencias de todo tipo con otros objetivos que los puramente lúdicos y comerciales.

       
Bloque 2: Programación (segundo cuatrimestre)   

En este segundo bloque, también de 25 ECTS, los alumnos aprenderán a programar videojuegos desarrollando el motor gráfico a bajo nivel utilizando librerías estándares, como OpenGL, y otras para sonido y físicas.

También aprenderán el desarrollo a alto nivel utilizando el motor de desarrollo más utilizado actualmente en la industria: Unity3D. Sin olvidarnos de la programación para dispositivos móviles, el testeo o la inteligencia artificial. Finalmente aprenderán a dar salida comercial a sus propios videojuegos.

La estructura de este bloque es la siguiente:

1. Fundamentos de la computación gráfica (2 ECTS)
Profesor: Javier Alcalá
En esta asignatura veremos los fundamentos matemáticos en los que se basa la computación gráfica. Entender las bases matemáticas ayuda a comprender la forma en que se programan las librerías gráficas. Veremos los pasos que se siguen para obtener en una pantalla 2D los datos que corresponden a una escena 3D.
   
2. Librerías gráficas, de sonido y de físicas (5 ECTS)
Profesor: Javier Alcalá
En la asignatura estudiaremos la librería más extendida y, por tanto, más utilizada actualmente en la programación a bajo nivel: OpenGL. Al ser OpenGL una librería abierta nos va a permitir programar, reutilizando el mismo código, en múltiples plataformas (Windows, Linux, Mac OS, iOS...). Con esta librería podremos construir un motor gráfico a medida que funcione en tiempo real.

Para completar el motor gráfico, veremos también cómo integrar sonido y físicas.
   
3. Motores de desarrollo: Unity 3D (5 ECTS)
Profesor: Miguel Ángel Taramón
El objetivo de esta asignatura es proporcionar un primer acercamiento al desarrollo profesional de videojuegos con Unity. Una vez comprendidos los fundamentos del diseño de videojuegos, se aplicarán éstos sobre el desarrollo de juegos sencillos tanto en 2D como en 3D. El alumno aprenderá a identificar las mecánicas básicas de juego y plantear el enfoque adecuado para implementar los diferentes comportamientos o rutinas que controlen la dinámica del videojuego.

Al finalizar la asignatura el alumno será capaz de aplicar las técnicas de diseño y planificación aprendidas en otras asignaturas sobre el desarrollo e implementación de un videojuego.
   
4. Videojuegos para dispositivos móviles (5 ECTS)
Profesores: Javier San Juan, Abraham Gutiérrez
El objetivo de la asignatura es presentar al programador de videojuegos una aproximación preliminar de la arquitectura propuesta por iOS y Android. Para ello se verá en qué consisten estas plataformas y cuáles son los elementos que la integran; las bases para el diseño y programación de aplicaciones y las herramientas y entornos necesarios para su desarrollo; el ciclo de vida de una aplicación y sus distintos componentes y la implementación de funcionalidades avanzadas.

Además como solución al alto nivel de fragmentación en el desarrollo de aplicaciones móviles, especialmente importante en el caso de Android, se presentará el uso combinado de dos tecnologías JQuery Mobile y PhoneGap que nos permiten definir sistemas de interfaz de usuario unificadas para todas las plataformas de dispositivos móviles más populares.
   
5. Música y sonido FX (1 ECTS)
Profesor: Eduardo de la Iglesia
En esta asignatura tomaremos conocimiento de la importancia del sonido y la música en los videojuegos, así como técnicas, consejos y trucos para una mejor sonorización del videojuego. Abordará la parte creativa y conceptual del sonido abarcando los tres grandes pilares del sonido en videojuegos: música, sonido y locución. Impartido por Eduardo de la Iglesia, un profesional con más de 12 años de experiencia en el sector audiovisual y creador del sonido y música para más de una docena de títulos para todas las plataformas (PC, Xbox, Playstation, Iphone, etc....)
   
6. Inteligencia artificial (5 ECTS)
Profesor: Javier Alcalá
La Inteligencia Artificial es el campo menos desarrollado en el área de los videojuegos. Si bien hay algoritmos que sirven para encontrar un camino óptimo desde una posición hasta otra de una forma muy eficiente, hay otros relacionados con el comportamiento de NPCs y enemigos que deja mucho que desear. En los mejores casos pueden comportarse de manera razonable, pero siempre es mejorable.

El objetivo de esta asignatura consiste en estudiar la manera en la que funcionan los algoritmos actuales y buscar una forma de mejorarlos para que la respuesta del personaje que no manipula el jugador sea más imprevisible. También se verá cómo enfocar un sistema inteligente adaptativo al jugador para que no genere ni ansiedad ni aburrimiento en él y pueda mejorar notablemente su experiencia de juego.
   
7. Testeo de videojuegos (1 ECTS)
Profesor: Daniel González
La diferencia entre testear de forma profesional y jugar es cómo escribimos los informes de errores. Un tester tiene que ser una persona analítica, con facilidad para escribir y muy minuciosa. Durante la asignatura enseñaremos los principales elementos que hay que testear, los errores comunes y cómo crear un buen informe de errores. En las clases se testearan diversos juegos en fase beta y escenarios 3D.
   
8. Producción (1 ECTS)
Profesor: Rafael San Miguel
En esta asignatura se abordan todos los aspectos que comprende la comercialización de un videojuego. Se describen los modelos de negocio más populares, así como la forma de implementarlos dentro de una empresa , en función del tipo de producto desarrollado y de las necesidades de financiación de la misma.

Se proporcionan también indicaciones sobre la elaboración de campañas de marketing, relación con los medios, clientes y el resto de agentes del sector, presencia y posicionamiento en canales de distribución, venta de producto físico y distribución online, y por último, criterios de rentabilidad, tanto a nivel de producto como en términos globales del proyecto empresarial.

El objetivo de esta asignatura es que el alumno esté preparado para transformar sus videojuegos en productos de consumo que respondan a las cada vez más exigentes expectativas de los clientes, tanto en el caso de empresas como en el de consumidores finales.
       
Trabajo Fin de Máster (10 ECTS)   
Se realizará durante los meses de mayo y junio para defenderlo a comienzos de julio. El TFM se desarrollará en grupos de 3 ó 4 alumnos para fomentar el trabajo en equipo y tendrán que definirlo en enero.

Consistirá en el desarrollo de un videojuego completo o de alguna técnica innovadora relativa a alguna de las materias impartidas.   
#14
Pues joder Manu, no habia considerado esa opcion  8o ...

Me parece que es mejor solucion que la que estaba yo planteando. Voy a darle un par de vueltas pero creo que al final seguire tu consejo. Ademas como dices, no tendre que comerme el coco para adaptar el minmax  y elimino el problema de los dos tableros.

A veces las cosas mas simples las pasamos por alto jejeje.

Muchas a todos y un saludo!
#15
Hola blau,

No descarto nada, por eso os pido consejo :D. La cosa es que mi conocimiento (que solo es teorico) del minmax es que tu construyes un arbol de posibles movimientos, teniendo en cuenta los que pudiera efectuar el contrario y eliges la mejor opcion. No termino de ver como aplicarlo... se me ocurre plantear un arbol con las posibles combinaciones y elegir la que mas daño haga al rival, pero eso es independiente de los movimientos que él pueda hacer no? total los tableros son independientes uno del otro.

Asi a bote pronto lo que se me ocurre es considerar todos los posibles movimientos de daño que tenga el jugador y plantear un arbol por cada uno de ellos viendo cual de las combinaciones de la CPU haria mas daño dependiendo de la combinacionq ue efectue el jugador. Ni siquiera se si me he explicado bien, pero suena enrevesado y me plantea el dilema de controlar el nivel de dificultad.

Como lo plantearias tu?? Esto no lo digo como reto, ante todo quiero aprender, que es mi primer juego.

Un saludo!





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.