Herramientas utiles para que desarrolles videojuegos

free-handy-tools-for-game-developers-640x340

Gestión de proyectos y colaboración:home-hero_es
– Trello: Gestión de equipos y planificación de proyectos
– JIRA Agile: Gestión de proyectos
– Pivotal Tracker: Por gestión de proyecto, tiene un sistema de punto de tarea y seguimiento de velocidad de finalización. Gratis para un usuario
– Wigio: Un programa gratuito de colaboración grupal en línea
– Base Camp: Herramienta de gestión de proyectos y uso compartido de archivos
– Google Hangout: Para discutir diseños con un equipo distribuido
– IceScrum: Herramienta de desarrollo ágil de código abierto y gratuito para equipos
– Target Process: Herramienta Scrum / Kanban basada en web, libre hasta 5 usuarios
– Evernote: es genial para escribir fácilmente tu idea de juego, idea de código … ¡todo!
– Pointing Poker: Herramienta gratuita para el desarrollo de equipos ágiles

Dibujo de Diagramas / Gráficos:

yworks
– Lucidchart: Programa en línea para dibujar gráficos (árboles de tecnología o diálogos)
– yEd Graph Editor: Editor de gráficos multiplataforma gratuito
– Dia: Un programa gratuito para dibujar gráficos fácilmente (árboles tecnológicos o diálogos)
– FreeMind: Software gratuito de mapas mentales. Si no sabes qué es el mapeo mental, ¡te recomiendo que aprendas!

Escritura:

5-compile
– CelTX: Herramienta gratuita de escritura de guiones basada en web
– Scrivener: Herramienta de escritura

Edición de imagen:

psd-layout
– Photoshop: Probablemente la opción más extendida en la industria de los videojuegos
– GIMP: ¡Alternativa libre al photoshop, con muchas funciones!
– Inkscape:Para dibujar maquetas de UI en tiempo real usando Google Hangout
– Paint.Net: Diseñado como un reemplazo gratuito para el programa básico de Paint en Windows
– XnView: Imágenes de proceso por lotes, programa gratuito para la conversión de archivos
– Krita Programa para pintar gratuito
– Paint tool saï  Programa para pintar (Solo para Windows)

Texturizado :

substance
– Substance designer/painter Procedimientos / partículas / texturas de pintura-
– Quixel suite (ndo/ddo) Pluglin para Photoshop
– NormalMap Online: Herramienta gratuita de mapeo de normal en línea
– xnormal  Gratuita: bakes normals maps/AO/curvatures/ etc … para modelacion de altos poligonos

Modelado y animación en 3D:

3ds max
– Anim8or: Gratis Programa de modelado 3D muy fácil de usar.
– Blender: Modelado 3D gratuito con muchas funciones geniales
Rocket 3F: Modelador 3d Gratuito.
– 3ds Max: Software 3D para modelar, Rigging, animar y renderizar
– Maya: Software 3D para modelar, Rigging, animar y renderizar
– Akeytsu: Animación de personajes y software Rigging
– Adobe Fuse: Software de creación y animación de personajes fácil, parte de la suite de nube creativa
– Mixamo: Gran tienda de animación con miles de animaciones humanoides para ser usadas en Unity

Esculpido 3D:

testing_custom_macros_in_custom_ZBrush_UI
–  Zbrush   Probablemente el programa de esculpido más usado.
– Mudbox Esculpido y Pintado 3D.
 3D coat Esculpido y Pintado 3D.

Audio:

audacity
– Audacity: Editor y grabador de audio.
– MixCraft: Para la creacion de musica.

Captura de Pantalla:

screenpeso
– ScreenPresso: Para guardar capturas, diseñar ideas y gameplays.
– Puush: Captura el area de la pantalla y te deja compartirla via enlace.
– CloudShot: Agregado para Dropbox que permite capturar pantalla.

Intercambio de Archivos:

dropbox
– Dropbox: Te permite mantener una carpeta en la nube sincronizada con una carpeta local que puede estar presente en uno o varios equipos, tienes hasta 50 gb.
– OneDrive: 15 gb de almacenamiento para subir y compartir archivos.
– Google Drive: Similar a OneDrive pero los archivos creados en Google Docs no ocupan espacio.

Varios:

1-continuous-integration
– TeamCity: solución de integración continua
– Articy: Draft: Herramienta de diseño de juegos All-in-One
– TortoiseSVN: Control de recursos para Windows
 lazynezumi  Complemento para muchas aplicaciones, líneas suaves, herramienta de dibujo en perspectiva.

Guia para el Desarollador: La emocion en los juegos

Guia para el Desarollador: La emocion en los juegos

gamer-emociones

Autores y cineastas que desean evocar emociones en su audiencia se confían en la habilidad de la audiencia para empatizar con los personajes de la narrativa y especialmente con el protagonista. Los autores crean situaciones en los que los personajes experimentan un emoción particular con el objetivo que la audiencia se identifique o que por lo menos entiendan por que los personajes hacen lo que hacen. El autor controla las emociones de los personajes, mientras que las emociones del público se derivan de compartir los sentimientos y experiencias de esos personajes.

Los diseñadores de juegos que desean evocar emociones particulares lo tienen de forma mas difícil. A diferencia de los libros y las películas, donde el autor tiene un total control del protagonista, el jugador es el que tiene el total control del personaje o los personajes principales. Muchas veces los diseñadores insertan emociones en el protagonista quitando el control del jugador o reduciendo la cantidad de opciones disponibles, esto se puede sentir como engañar al jugador el cual siente que su personaje se debería sentir de otra forma; Un autor como Shakespeare puede crear y un Romeo que sienta un deseo de morir al ver a su Julieta aparentemente muerta recostada en frente de el, pero un diseñador de videojuegos no puede forzar al jugador a sentir lo mismo que su personaje.

¿Entonces como puede un diseñador de videojuegos crear emociones? Las siguientes son algunas opciones:

  • Atmósfera: Los diseñadores pueden fomentar sentimientos particulares en los jugadores al presentarles imágenes, sonidos y música emocionalmente sugerentes. Se trata de transportar al jugador a un entorno imaginario emocionalmente sugerente.
  • Temática: Las audiencias pueden responder emocionalmente a temas particulares. Los juegos pueden tocar la condición humana o tratar temas controvertidos para evocar emociones fuertes. Si se hace de manera incorrecta, puede ganar un juego más crítico que el de los fanáticos, pero si se hace correctamente, tal vez sea el elemento más importante para crear experiencias de juego maduras y dramáticas.
  • Desafíos en la jugabilidad: La mecánica de los juegos y la competencia fomentan ciertas emociones en los jugadores. En el nivel más simple, estas emociones conciernen al jugador directamente en lugar del personaje del jugador. En los juegos que contienen una narración, estas emociones básicas se pueden modular a través de la significación narrativa, en el sentido de que la superación o el fracaso en desafíos particulares tiene consecuencias narrativas específicas diseñadas para promover sentimientos particulares tanto en los personajes como en el jugador.
  • Emociones de otros personajes: Al igual que los autores pueden evocar emociones particulares haciendo que la audiencia se identifique con los personajes que crea, los diseñadores de juegos también pueden evocar sentimientos particulares logrando que el jugador se involucre emocionalmente con los personajes del juego. Sin embargo, a diferencia de los libros y películas, es un error para los diseñadores confiar en las emociones de los protagonistas, el efecto es mejor cuando estas ni se enuncian.

Ejemplos de juegos que cumplen los aspectos mencionados:

HL2

Todos los juegos de Valve son un grandioso ejemplo de estos aspectos tomando en cuenta Half-Life 2 y Portal 2 los dos presentan una atmósfera donde el jugador investiga y va descubriendo como es el mundo en el cual esta situación, el primer paso para poder generar emociones es que lo que esta sucediendo en ese mundo ficticio se sienta como real; Los dos nos colocan como una especie humana que se ve controlada por otro ser un ejemplo muy simple de como enfatizar desde un primer lugar con el jugador. Durante la jugabilidad vamos utilizando elementos que fueron de utilidad o representaron algo anteriormente ubicándonos otra vez en la atmósfera pero usando la jugabilidad para hacernos entra en ella. Los personajes se van presentando de a poco y en esa misma medida vamos creando un vinculo con ellos como jugador.

Juegos como Bishock Infinite repiten las mismas mecánicas nos presenta el mundo, nos presentan a los personajes haciendo que durante el transcurso de la historia formemos un vinculo con ellos, convirtiéndonos en una unidad nos hace pensar que todo lo que sucede en el mundo nos afecta y nos crea un verdadero propósito para llegar a la resolución, no crean la sensación de terminar el juego para llegar la final crean la sensación de jugar para solucionar el conflicto.

¿Por que a veces no se logra empatizar con el jugador?

Muchos juegos caen en el pensamiento de que si se crea la emoción el jugador la recibirán, cuando realmente lo que sucede es un estorbo para la jugabilidad.

  • Se olvidan que el protagonista y el jugador son la misma persona: El jugador a la hora de jugar se quiere sentir inmerso en el mundo, muchos juegos crean una división, muestran exactamente lo que el jugador debe sentir, como debe reaccionar, generalmente con una cinemática muy bien armada, pero después la cinemática desaparece y la emoción se pierde.
  • Intenta crear emociones sin preparar el terreno: Para que el jugador pueda sentir emociones por situaciones que suceden en el entorno que pueden afectar al protagonista o a otros personajes se debe preparar el terreno y comenzar a formar un vinculo, hay muchos juegos donde la acción ocurre demasiado rápido, no sabemos nada del hermano que muere pero sin embargo ya se vuelve el objetivo del juego vengar su muerte, esto crea un desequilibrio y afecta totalmente la historial del juego, al igual que la dificultad tiene que ser progresiva los eventos tienen que funcionar de la misma forma.
  • Sobrecarga de eventos: A veces con el objetivo de crear mas emociones o situaciones mas fuertes se crea un evento tras otro, a veces se sobre explota tanto esto que cada uno pierde peso y ninguno toma el valor que debería tener.

 

Esta es una traducción de la siguiente guía, que contiene una ampliación de mi parte.

Introduccion al mundo 3D – conceptos básicos

Es muy importante saber ciertos conceptos básicos sobre la tercera dimensión, si tienes la intención de sumergirte en lo que es el diseño de videojuegos, Por eso en este articulo aclararemos ciertas cosas que debes saber antes de ponerte a trabajar con algún motor gráfico o herramienta de esculpido o modelación en 3D.

Cordenadas

xyz3Si has trabajado anteriormente con una aplicación para hacer trabajos en 3D, veras que los conceptos de los ejes : X-Y-Z, resultan bastantes familiares. Es que las aplicaciones 3D utilizan el sistema de Cordenadas Cartesiano, donde son descriptas las posiciones, dimensiones y rotaciones de nuestros objetos-elementos 3D por lo que es muy común que veas información escrita entre paréntesis (10, 15, 1o) especialmente a la hora de programar ya que se escribe de ese modo por eso es importante que recuerdes que el orden es X, Y , Z.

En otras palabras es el sistema diseñado para saber cual es la ubicación, el tamaño y rotación del elemento.

 

Espacio local versus Espacio del mundo

Un concepto crucial que hay que tener claro es la diferencia entre el espacio local y el espacio del mundo. En todo mundo 3D, hay un punto de origen, que generalmente es referido como cero, y esta representado por la posición (0,0,0). Todos los objetos 3D también estan posicionadas en cero, por lo que para hacer esto mas simple, se utiliza una posición local que tambien podríamos llamar: “el espacio del objeto”. El espacio local asume que cada objeto tiene su propio punto cero.

localspacevsworldspacePara hacer mas simple entender este concepto, hay que pensar que como cada objeto tiene su propio punto cero, al ser movido este cambiara sus propias cordenadas originarias, lo mismo pasara si agrandamos o rotamos el objeto, Al hacer estos cambios estamos alterando al objeto, no al mundo.

Camaras

Unity-CameraLa cámara es el punto sumamente esencial de las aplicaciones 3D ya que principalmente nos esta permitiendo navegar por nuestro mundo libremente, para la posición de objetos, hacer modificaciones, etc.

Pero tal como la aplicación en la que trabajamos, Nuestro juego debe tener una cámara principal que puede ser la simulación de la visión de nuestro personaje tal como sucede en los FPS, o una cámara anidada a nuestro personaje como sucede en un juego donde vemos a nuestros personajes, aunque también podemos utilizar mas camaras como por ejemplo para mostrar una sección de nuestro nivel en algún monitor, para mostrarle al jugador cual debe ser el camino, para alertar al jugador que esta ocurriendo algo en cierta sección del mapa.

En las cámaras podemos colocar una gran variedad de efectos tales como el blur, bloom, motion blur, destellos de lente, corrección de color, etc para mejorar la experiencia visual del juego, como también colocar que elemento no serán renderizados para ahorrar rendimiento por ejemplo si en algún momento el jugador usa una cámara nocturna, podemos seleccionar muchos objetos que no serán renderizados ya que realmente no serán notados y por lo tanto ahorrar rendimiento.

Poligonostrianguilin

En la construcción de formas tridimensionales, todo los objetos estan formados por figuras bidimensionales interconectadas, a estas figuras se les llaman polígonos. Algunos motores gráficos tal como unity suelen conectar 3 bordes convirtiéndolos en triángulos de polígonos.

Es importante que mientras mas números de polígonos tengas en tu nivel mayor sera el trabajo que tenga que hacer tu computadora para poder renderizar estos objetos, por lo que como diseñador tienes que tener en mente a que objetos les daras mas detalles, que detalles puedes remplazar por normal maps. etc, para utilizar una menor cantidad de polígonos y así ganar mas rendimiento.

Texturas y Materiales

shoe_3_modelsEs una imagen que sera utilizada para darle “color” o “pintar” el objeto 3D, así también poder darle mas detalle. Estas definen el tipo de material que esta hecho nuestro objeto también, por lo menos en la parte visual. El materia es la textura convertida en otro formato sea para poder ser utilizada en el modelo 3d y ofrecer utilizar otras características como normal map, diffuse map, etc.

También es muy común en los videojuegos utilizar texturas UV, lo que es un mapa donde se selecciona cada cara del objeto para que a la hora de texturizarlo tengas que utilizar una sola textura y para tener mas detalles a la hora de texturizarla.

Colisiones

Para que los objetos tengan respuestas físicas en nuestro mundo, es necesario indicarlo como cuerpo rígido (Rigid body) para darle a entender que nuestro objeto no sera estático, si no que sufrirá modificaciones debido al impacto de otros objetos, así también poder asignarle la masa, la gravedad y otros aspectos.

colission

Por otro lado también es importante añadir una colisión a nuestro objeto para establecer cuales son los limites del objeto y a partir de cual contacto el objeto sufrirá consecuencias por la física, por ejemplo si queremos crear una pared ya que esta no sufrira cambio físico, sencillamente le ponemos una colisión y adaptamos los bordes al tamaño de la pared, pero si por otro lado tenemos una caja que puede ser tranquilamente arrastrada por un jugador necesitaremos el rigid body y la colisión.

Es importante que optimizes a la hora de seleccionar las colisiones, ya que para que estas funcionen la computadora tiene que trabajar para hacer cálculos y mientras mas objetos colisionen a la vez mas trabajo tendrá por hacer, por lo que si puedes utilizar colisiones con menos polígonos o box colliders sera muy eficaz para el rendimiento.