Vistas a la página totales

viernes, 29 de noviembre de 2013

Experiencia en clase

Este semestre voló, pero muy rapido (disculpen la ortgrafia, estoy desde mi celular) a comparacion de  los semestres de la prepa que para mi eran eternos, este semestre fue muy rapido.
Respecto a la clase, fue algo muy extraño e insperado hacer blogs, pero realmente ayudo bastante. Al principio creia que era mas facil hacer una pagina en facebook y crear notas en ella, o un grupo algo por el estilo, pero pienso que blogger era mejor opcion.
Personalmente no me gusta blogger, no me gusta por su manera de personalizacion, su interfaz me desagrada y hubiera preferido algo mas como wordpress, pero aun si no es para quejarse demasiado.

Creo que en cuanto promedio no me fue bien pero tampoco mal, y realmente recibi mucha retroalimentacion porque siento que en el futuro usare la redaccion academica.
Editar entradas de wikipedia fue algo inesperado y muy bueno, senti que hacia algo de provecho, pero realmente editar articulos no es lo mio.
En resumen el curso lo considero excelente, sergio un maestro excelente y los compañeros y amigos que hice en clase, pero nada mas excelente que la lechuga de dennise, excelete dennise.

Espero que todos se encuentren bien y que salgan adelante y les deseo suerte y exito en sus retos y licenciatura.

Nos seguiremos viendo.

miércoles, 27 de noviembre de 2013

Editando un artículo en wikipedia.

username: jorgeferma95

Hola, espero que se encuentren bien todos ustedes.
En esta entrada vengo a justificar mi modificación constructiva a un artículo de wikipedia: "Motor de videojuego"


Originalmente yo iba agregar nuevas categorías como el arte, industria y desarrollo pero buscando profundamente este artículo me di cuenta que el artículo esta bastante completo y se me hizo difícil buscar "huecos" en el artículo y al final, iba a contribuir con una construcción pobre al artículo y de muy poca importancia, así que decidí buscar más y más y me encontré con un tema un poco vació y mal explicado, "Motor de videojuego" a lo que en mi vocabulario llamaría, mediocre.

Así que me puse en marcha.
Para los que no tengan una idea clara de lo que es un motor de videojuego les explicaré. Un motor no es una consola como un amigo pensaba, y un motor en este aspecto no se refiere a un aspecto físico como el motor de un coche, se refiere a un motor digital, un motor que funciona con código y realiza distintas funciones en un videojuego, me gustaría explicarles con detalle pero es algo que tomaría mucho texto por escribir y eso no es el propósito de esta entrada.

Es posible que Wikipedia eliminé mis modificaciones, al igual como lo hicieron con mi equipo en el iPhone 5S pero aquí justificaré con imagenes y texto mi desarrollo.
Las versiones en Inglés, siempre están más completas que las de español así que tomaré ciertas cosas del artículo en ingles y traducirlas al español más que introduciré mis conocimientos hacia este artículo.

En la categoría principal de "Motor de videojuego" dice:


"Un ejemplo de motor de juego seria el motor gráfico Doom engine, Euphoria o el Rockstar Advanced Game Engine."


A lo que yo agregué lo siguiente:



"Hoy en día existen una gran variedad de motores completos y motores gráficos como OGRE 3D que es un motor gráfico gratuito con "open-source" para que el usuario pueda crear aplicaciones desde el lenguaje C++.
Desarrolladoras grandes de videojuegos como Epic, Valve y Crytek han lanzado al público sus motores o SDKs para que los usuarios interesados en el desarrollo de videojuegos puedan descubrir como se elaboran y así tener una introducción amplia a la industria y el desarrollo.
Otros ejemplos de motor de juego seria el motor gráfico Doom engine, Quake Engine, GoldSrc desarrollado por Valve en el cual se desarrollo el exitoso juego de Half-Life 1 y BLAM! Engine desarrollado por Bungie lo cual crearon la famosa saga de Halo."

Después nos llega un glosario en el que contiene la palabra "Assets" y su definición se me hace muy mediocre y va así:


"Son los modelos, animaciones, sonidos, IA, físicas. Son los elementos que forman el juego en sí, el código hace funcionar los assets."

A lo que yo modifiqué:

"Los assets pueden ser traducidos como elementos que serán introducidos al videojuego. Estos elementos incluyen Modelos 3D, personajes, texturas, materiales, animaciones, scripts, sonidos, y algunos elementos específicos de cada motor. Cada motor trabaja de una manera distinta a otros lo cual puede aceptar "Assets" que otros motores no pueden manejar, sin embargo los ejemplos mencionados antes, son elementos que todos los motores de hoy en día usan." 

Después nos topamos con la sección APIs, que en mi opinión esta muy clara y no requiere modificación.

Luego tenemos la definición de "Render" que dice así:
"Es la parte del código que pone en pantalla los ambientes y objetos."
Otra definición muy mediocre.

A lo que yo agregué:
El render o renderización, es el proceso de la computadora en mostrar en pantalla el aspecto visual de nuestro juego. El render se encarga de mostrar al jugador todo el poder gráfico que el desarrollador haya configurado en el motor, el render muestra todo lo que es el Terreno o BSP, Modelos, animaciones, texturas y materiales. El render contribuye todo el aspecto visual del juego.

Después nos topamos con Objetos 3D que dice así: Los objetos se almacenan por puntos en un mundo 3D, llamados vértices. Los vértices van formando polígonos; cuanto más polígonos posea un objeto, más complicado se hace, lleva más tiempo de procesamiento pero es más detallado. El juego no necesita saber cuantos objetos hay en memoria o cómo el Render va a mostrarlos, sólo le interesa que el render los despliegue de la forma correcta, y que el modelo esté en el cuadro correcto de la animación.
Esto se nota que esta mal hecho y decidí corregirlo así:
Los objetos 3D son objetos "secundarios" podría decirse, que se agregan al escenario del videojuego (Ej: Baños, puertas, árboles, muebles, adornos, etc) Los objetos o modelos 3D son clasificados por polígonos al igual que todo elemento que tenga una composición tridimensional.
Low-Poly: Traducido como "Polígonos bajos" son modelos que su composición de polígonos es baja lo cual es probable que el modelo tenga un muy mal detalle y no se obtenga un resultado favorable. Estos modelos se usan para optimizar el rendimiento del videojuego y el "Low-Poly" es efectivo en modelos que no requieren mucho detalle (Ej, una caja o un jabón)
Mid-Poly: Traducido como "Polígonos medios" son modelos que su composición de polígonos es media y logran dar mejor detalle que los "Low-Poly" aun que su velocidad de procesamiento es más tardada. Estos modelos son más usados para modelos que requieren un poco más de detalle pero que en realidad no requieren tanto (Ej, Un arma, una casa)
High-Poly: Traducido como "Polígonos altos" son modelos que su composición de polígonos es alta y llegan a dar un detalle magnífico pero su velocidad de procesamiento llega a ser muy tardada, dependiendo de la potencia que el Hardware de la computadora o consola cuente. Estos modelos son usados especialmente para (Ej Un personaje, un vehículo)
Esto influye mucho y es en pocas palabras el LOD o Level of Detail (Nivel de Detalle).



Luego nos topamos con algo que a mí me dio mucha risa, es algo que... esta mal, es equivoco. Es la definición de High-Order Surfaces que dice así "Renderizado matemáticamente, usado en las tarjetas gráficas más recientes y potentes. También llamado: Patches (parches)."
Es absurdo por que la definición no es clara, además toda renderización es matemática así que la palabra "matemáticamente" no aplica. La parte en la que las tarjetas gráficas más recientes y potentes la utilizan es algo equivoco, puesto que en realidad cualquier tarjeta gráfica de hoy sea débil soporta superficies de alto orden (HOS) claro que quizás no renderizaría a un buen framerate pero aun así es invalido lo que dice Wikpedia. La palabra patches esta mal traducida, literalmente si es parches pero no esta bien traducirla como parche debido a que en videojuegos y software el término "parche" se refiere a una extensión  o una mejora al juego o software, es ponerle un parche al juego o software para mejorarlo o arreglarlo. Por lo tanto mi definición quedó así:
"Es una forma de  renderización especialmente para terreno en un videojuego. Videojuegos de nueva generación como Gears Of War, Halo 4, Battlefield 4, Crysis 3, utilizan esta técnica para crear terreno de manera suavizada y realista.. Esta técnica se puede utilizar para otros modelos pero es exclusivo para modelos High-Poly puesto que se especializa en deformar con curvas. "
Después tenemos la definición de Patches (Parches) 
"Son perfectos para describir geometrías, sobre todo cuando se trata de curvas, pues la expresan mediante fórmulas matemáticas logrando colocar puntos en el mundo del juego"

¿Esto qué? No tiene nada que ver y realmente esto va más para un artículo de Software 3D, Geometría, etc. Así que lo eliminé.

Luego nos viene esto:

 Three-point polygon (polígonos de 3 puntos-Triángulos)

El más usado por las tarjetas aceleradoras 3D.

Es algo sumamente mediocre, lo que tengo entendido es que el que escribió esto se refiere a la composición tridimensional al manejo de los 3 vectores en una computadora. Realmente me dio mucha risa esto porque si buscan en internet "Three-point polygon" no existe nada al respecto, ni siquiera en español además no tiene ninguna referencia de donde sacaron este menudo disparate. Por lo tanto lo eliminé.

Despues tenemos la definición de Culling:
Codificado que logra que los objetos que no se ven en determinado cuadro de la animación por causa de objetos que los obstaculizan (como una pared) no tomen tiempo de renderizado. Así se reduce la cantidad de trabajo del motor. El Culling es más fácil de implementar en juegos en donde la visión es controlada como los RTS en comparación con lo FPS. Un método de Culling puede ser por “Árboles BSP

Una definición clara y muy bien hecha que si específica bien que es el culling.

Después tenemos la definición de BSP que dice así:
"Es un método para determinar qué superficies de un mundo, y qué objetos, están realmente en la escena en momento dado, dada su localización en el mundo. Esto se utiliza a menudo para los objetos del desecho, y también para entresacarlos para reducir el proceso del AI (Inteligencia Artificial) y de la animación."
La definición es errónea, o quizás poco específica, así que contribuí con esta definición, eliminando por completo la otra:
El BSP (Binary Space Partioning) es el modelo o terreno base que nuestro videojuego siempre va a renderizar en todo momento, el BSP se diferencía por se la base de nuestro mundo o nivel, es lo que conforma el ecosistema y estructura de nuestro nivel (Ej. Un desierto, un mar, un castillo, un bosque etc)
Un BSP se puede crear de muchas maneras pero hoy en día las técnicas más utilizadas son mediante Brushes y Heightmaps.
  1. Brushes: Los Brushes es una herramienta codificada del software del motor, no todos los motores lo utilizan pero motores de nueva generación como Unreal y CryEngine lo utilizan y manejan High-Order surfaces para deformar la superficie mediante vértices. También, se pueden crear BSPs con Brushes que crean figuras geométricas simples como: Cuadrado, Esfera, Cilindro, Cono, etc.
  2. Heightmaps: Los Heightmaps son mapas que funcionan a escalas de grises al igual que sus "hermanos" displacement maps. Los heightmaps estan más codificados para deformar una superficie High-Poly o HOS mediante escala de grises y pixeles y solo modifican la altura. El color negro representa una altura nula osea que no es modíficada, y mientras más blanco sea el pixel representa más altura a la superficie. 

Despue venimos con la sección "Retesselation" y dice así:
"Técnica usada por la característica de TruForm de ATI que consiste en tomar un modelo basado en triángulos y transformarlo en uno de High-Order Surfaces para alisarlo y de nuevo pasarlo a un modelo de Triángulos." 

Esta mal pero bien, tiene la idea pero no la explica de la mejor manera y además me da risa porque la palabra retesselation no existe como una palabra, realmente ahí se refiere a volver a aplicar el proceso tessellate (Re) por lo cual cambie el título a Tesselation con lo siguiente. 

 "Técnica usada por la característica de TruForm de ATI que consiste en agregar más polígonos a un modelo o a una superficie convirtiéndolo en un objeto High-Poly para poder agregar más detalle visual."

Aquí viene algo que merece el premio de las definiciones más mediocres, y es la definición de la " Distintos APIs proveen diferentes tipos de iluminación"  ¿Es una broma esto? Eso no explica absolutamente nada ni siquiera explica los APIs que existen o como es la iluminación, a lo cual metí algo grande aquí:

"La iluminación es un proceso de renderización en la que el motor ilumina todo lo que sea 3D ya sea por pixel o por vértice. La iluminación varia dependiendo la configuración que haya establecido el usuario al motor. La iluminación puede ser de las cosas más complejas al desarrollar un videojuego puesto que una iluminación cercana a lo "perfecto" puede dar un aspecto visual al juego espectacular, pero claro que no es fácil de obtener.
Por lo general la iluminación es influenciada por APIs, como DirectX y OpenGL, por obvias razones, versiones más nuevas de esta API demuestran mejores resultados de iluminación.
El sombreado es otro factor sumamente importante y que reacciona mediante la luz, si el mundo obtiene buena iluminación también tendrá un buen sombreado." Y además de que agregué imagenes como ejemplo.

Ahora después me encontré con un cuchitril, definiciones que estaban donde no tienen que estar y realmente corregir esto incluía crear nuevas categorías y meter más elementos que más adelante hablaré porque no lo hice, pero mientras tanto las definiciones no estaban mal así que no modifiqué ninguna.

Después tenemos la sección de "Music Tracks in Games (Pistas de audio) que en mi opinión tiene un texto muy improvisado que dice: "Hay dos formas de manejar el sonido. Uno es por medio de archivos .wav (o similares), lo cual emite un muy buen sonido, pero se requiere de mucha memoria. Por otro lado se pude utilizar archivos midi, esto reduce la necesidad de memoria, pero los sonidos no son tan buenos."

A lo que yo modifiqué:
"El sonido de un videojuego se llega a manejar de muchas maneras y esto depende de las capacidades que tenga el motor. Hoy en día los motores de nueva generación soportan muchos formatos de sonido pero los más populares son el ".wav" y ".ogg" y en algunas casos, exigen configuraciones exactas dependiendo el motor.

La administración de pistas de audio larga son amplias puesto que motores de nueva generación permiten modificación para poder meter un "looping" a la pista, modificar el pitch, etc."

Después la definición de Inteligencia Artificial que en realidad esta bien pero hace falta un poco más, pero realmente se da a entender que es así que no la toqué y después tenemos Forma de Juego Emergente: "Consiste en programar al AI con un conjunto de reglas que le permitan al programa adherir situaciones que el programador no previera."

¿Esto que? Shu, estorbo. Además de que la parte de "programar al AI" es gramáticamente incorrecto.


Y al final creo que lo más importante, basándome en la página en ingles agregué una tabla de los motores de videojuego con vínculos a sus artículos en Wikipedia.

Muy bien, y aquí les presento la comparación:
1.- Aquí está el artículo "original" el que estaba antes de que yo lo editará



2.- Y aquí está el modificado. Mejor ¿No?




En cuanto mi experiencia en esta edición, fue algo muy divertido al principio porque creí que iba a editar poco, pero después de que vi la mala edición y publicación de este artículo comenzó a ser cansada la edición porque comenzó a ser demasiado, y para ser honesto yo en mi parte, borraría todo y escribiría el artículo desde 0, pero el problema es que no cuento con mucho tiempo ahorita, sería un trabajo de semanas, no tengo muchas referencias puesto que son conocimientos míos y pues para no mentir los he obtenido de expertos en este tema y no tendría referencias para justificar.

La experiencia fue cansada, pero aun así editar artículos en Wikipedia no es lo mío porque no tengo una buena redacción y además se me va la inspiración rápido y más con el editor de código de Wikipedia que tiene un aspecto que te transmite pereza en mi opinión.