Está en la página 1de 6

Motor de videojuego

1.2 Application Programming Interface


(Interfaz de Programacin de Aplicaciones)

Un motor de videojuego es un trmino que hace referencia a una serie de rutinas de programacin que permiten el diseo, la creacin y la representacin de un
videojuego. Del mismo modo existen motores de juegos
que operan tanto en consolas de videojuegos como en
sistemas operativos. La funcionalidad bsica de un motor es proveer al videojuego de un motor de renderizado
para los grcos 2D y 3D, motor fsico o detector de colisiones, sonidos, scripting, animacin, inteligencia articial, redes, streaming, administracin de memoria y un
escenario grco. El proceso de desarrollo de un videojuego puede variar notablemente por reutilizar o adaptar un mismo motor de videojuego para crear diferentes
juegos.[1]

Es un sistema de rutinas, de protocolos y de herramientas para desarrollar programas de aplicacin. Un buen


API hace ms fcil desarrollar un programa proporcionando todos los bloques del desarrollo del programa. El
programador pone los bloques juntos.
Entre estos los ms importantes son el DirectX (de
Microsoft) y el OpenGL (que trabaja con la mayora de
los sistemas operativos).

Hoy en da existen una gran variedad de motores completos y motores grcos como OGRE 3D que es un motor grco 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 pblico sus motores o SDKs para que
los usuarios interesados en el desarrollo de videojuegos
puedan descubrir como se elaboran y as tener una introduccin amplia a la industria y el desarrollo. Otros ejemplos de motor de juego son el motor grco Doom Engine, Quake Engine, y GoldSrc, desarrollado por Valve y
el cual fue utilizado para crear el exitoso juego Half-Life
1; otros motores famosos son Source, tambin creado por
VALVe, y BLAM! Engine, desarrollado por Bungie, y en
el cual se cre la famosa saga de Halo.

1.1

1.3 Render (Renderizacin)


El render o renderizacin, 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 grco que el desarrollador haya congurado 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.

1.4

Objetos 3D

son objetos secundarios podra decirse, que se agregan


al escenario del videojuego (Ej: Baos, puertas, rboles,
muebles, adornos, etc) Los objetos o modelos 3D son clasicados por polgonos al igual que todo elemento que
tenga una composicin tridimensional.
Low-Poly: Traducido como Polgonos bajos son
modelos que su composicin de polgonos 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
jabn)

Glosario de aspectos relacionados


Assets

Los assets pueden ser traducidos como elementos que sern introducidos al videojuego. Estos elementos incluyen
Modelos 3D, personajes, texturas, materiales, animaciones, scripts, sonidos, y algunos elementos especcos 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 da
usan.

Mid-Poly: Traducido como Polgonos medios


son modelos que su composicin de polgonos es
media y logran dar mejor detalle que los Low-Poly
aunque su velocidad de procesamiento es ms tardada. Estos modelos son ms usados para modelos que
requieren un poco ms de detalle (Ej, Un arma, una
casa)
1

1 GLOSARIO DE ASPECTOS RELACIONADOS


High-Poly: Traducido como Polgonos altos son
modelos que su composicin de polgonos es alta y
llegan a dar un detalle magnco pero su procesamiento es ms complejo y tiende a ralentizar el ordenador, dependiendo de la potencia que el Hardware
de la computadora o consola cuente. Estos modelos
son usados para modelos que precisan de un buen
grado de detalle (Ej Un personaje, un vehculo).

Esto es en pocas palabras el LOD o Level of Detail (Nivel


de detalle).

1.5

Higher-order surfaces (supercies de


alto orden)

Es una forma de renderizacin especialmente para terreno en un videojuego. Videojuegos de nueva generacin como Gears Of War, Halo 4, Battleeld 4, Crysis 3, Un heightmap creado con Terragen
utilizan esta tcnica para crear terreno de manera suavizada y realista.. Esta tcnica se puede utilizar para otros
modelos pero es exclusivo para modelos High-Poly puesto que se especializa en deformar con curvas.

1.6

Culling

Codicado que logra que los objetos que no se ven en determinado cuadro de la animacin 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 ms fcil de implementar en juegos
en donde la visin es controlada, como los RTS, en com- El resultado del Heightmap utilizado en Terragen en una superparacin con los FPS. Un mtodo de Culling puede ser cie 3D
utilizando rboles BSP.

1.7

BSP Tree Hierarchy (BSP rbol de Jerarqua)

El BSP (Binary Space Partioning) es el modelo o terreno


base que nuestro videojuego siempre va a renderizar en
todo momento, el BSP se diferenca por ser 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 da las tcnicas ms utilizadas son
mediante Brushes y Heightmaps.
Brushes: Los Brushes es una herramienta codicada del software del motor, no todos los motores
lo utilizan pero motores de nueva generacin como Unreal y CryEngine lo utilizan y manejan HighOrder surfaces para deformar la supercie mediante
vrtices. Tambin, se pueden crear BSPs con Brushes que crean guras geomtricas simples como:
Cuadrado, Esfera, Cilindro, Cono, etc.

Un terreno creado mediante Brushes en Schorched3D

Heightmaps: Los Heightmaps son mapas que funcionan a escalas de grises al igual que sus hermanos displacement maps. Los heightmaps estn ms
codicados para deformar una supercie High-Poly
o HOS mediante escala de grises y pixeles y solo
modican la altura. El color negro representa una

1.11

Flat Shading Lighting (Iluminacin de Sombreado Plano)

altura nula o sea que no es modicada, y mientras El Phong Shading toma ms tiempo de procesamiento
ms blanco sea el pixel representa ms altura a la que el Vertex Shading pero su resultados son mucho mesupercie.
jores en cuestin de suavizado de texturas.

1.8

Tesselation

Tcnica usada por la caracterstica de TruForm de ATI


que consiste en agregar ms polgonos a un modelo o a
una supercie convirtindolo en un objeto High-Poly para
poder agregar ms detalle visual.

1.9

Iluminacin (lighting)

La iluminacin es un proceso de renderizacin en la que


el motor ilumina todo lo que sea 3D ya sea por pixel o por
vrtice. La iluminacin varia dependiendo la conguracin que haya establecido el usuario al motor. La iluminacin puede ser de las cosas ms complejas al desarrollar
un videojuego puesto que una iluminacin cercana a lo
perfecto puede dar un aspecto visual al juego espectacular, pero claro que no es fcil de obtener. Por lo general
la iluminacin es inuenciada por APIs, como DirectX y
OpenGL, por obvias razones, versiones ms nuevas de
esta API demuestran mejores resultados de iluminacin.
El sombreado es otro factor sumamente importante y que
reacciona mediante la luz, si el mundo obtiene buena iluminacin tambin tendr un buen sombreado.

1.10 Vertex Lighting


Se determinan cuantos polgonos cruzan el vrtice, se toma el total de todas las orientaciones de los polgonos
(Normal) y se asigna la normal al vrtice. Para cada vrtice, un polgono dado reejar la iluminacin en una forma levemente distinta. La ventaja es que al hardware le
toma menos tiempo el procesarlo, pero este tipo de iluminacin no produce sombras.

1.11 Flat Shading Lighting (Iluminacin


de Sombreado Plano)
Consiste en que cada polgono represente un valor leve
que se pase al polgono completo que genere una imagen
plana del mismo, a esta imagen tambin se le asigna un
color determinado.

Light Map Generation (Generacin del mapa de


luz): se usa una segunda capa de textura (mapa de
luz) que dar el efecto de iluminacin a los modelos, es un efecto excelente pero debe tomarse antes
del renderizado pero si se tienen Luces Dinmicas
(o sea luces que se mueven, encienden o apagan sin
intervencin de programa) se debe estar regenerando los mapas en cada Frame de animacin lo que
toma mucha cantidad de memoria (pero son de render rpido).
Textura: es esencial para que las escenas 3D se vean
reales, en si las texturas son imgenes que se rompen
en los distintos polgonos del modelo, muchas imgenes tomarn mucho espacio en la memoria por eso
se debe usar tcnicas de compresin:
Mapeo MIP: consiste en preprocesar las texturas
creando mltiples copias del mismo cada una la mitad del anterior, esto porque si la textura solo es pegada al polgono cada textura es a cada pxel y tomara ms tiempo de render; as cada Texel (elemento
de Textura) toma menos espacio.
Texturas Mltiples: requiere mltiples renderizados por lo que para obtener buen resultado se necesita una tarjeta con Acelerador de Grcos, provee
mejor calidad que el simple mapeo. Se puede colocar una imagen sobre otra (ms transparente) para
dar el sentido de movimiento pulso o hasta sombra.
Bump Mapping: tcnica vieja de texturas que tratan de mostrar como la luz se reeja en el objeto.
Solo hasta hace poco se vuelto a retomar.
Antialiasing: El anti-aliasing revisa los polgonos y
difuminar las bordes y vrtices, para que los bordes
no se vean como dentados. Esta tcnica se puede hacer de dos maneras. La primera se realiza de modo
individual, entremezclando polgonos para sobreponerlos unos delante de otros.

Vertex Shading (Sombreado de Vrtice, Gouraud La segunda manera se hace por medio de tomar todo el
shading): solicita al motor de renderizado un color marco y quitarle los bordes dentados, pero esto requiere
para cada vrtice, luego por medio de interpolacin de mucha memoria.
se renderiza cada pxel por la distancia en relacin
con su respectivo vrtice.
Vertex and Pixel Shaders (Vrtices y Sombreo de
Pixeles): Con este mtodo se pueden extraer y utili Phong Shading: es similar al Gouraud Shading, trazar directamente las caractersticas y facilidades de
bajan con la textura, solo que el Phong Shading usa
la tarjeta de video, sin tener que utilizar mucho la
a los pxeles en lugar de lo vrtices.
API. Pero no es utilizable en todas las tarjetas.

1 GLOSARIO DE ASPECTOS RELACIONADOS


Stencil Shadowing (Plantilla de Sombreado): la el jugador no controla. En muy complicado, se necesita
idea es renderizar una vista de un modelo desde la de una mente muy metdica y lgica, la mayora de estos
perspectiva de la fuente de luz y despus utilizar esto scripts se basan en lenguaje C.
para crear o para generar un polgono con la forma
de esta textura sobre las supercies afectadas por el
Visual Scripting Systems: como lo dice su nombre,
modelo. As se obtiene una iluminacin que parece
permite manejar el script en un ambiente grco en
real. Pero es costosa, porque usted est creando texlugar de un cdigo escrito, se maneja un carcter real
turas en vuelo, y hace mltiple render de la misma
en un ambiente del juego real.
escena.

El manejo del cache de textura es imprescindible para


que el juego se desarrolle rpido (y para cualquier motor),
ya que si se presenta un constante swapping de las texturas en la tarjeta el juego se vera lento y tedioso, algunos
APIs descargan cada textura cuando esto pasa, pero eso
hara que en cada cuadro se refresquen las texturas dando
ms lentitud. Todo se trata de cargar la menor cantidad
de veces una misma textura, pero eso tambin depende
del API que se utilice. Otra tcnica es la compresin de
texturas, comprimir texturas es como comprimir MP3,
los algoritmos de compresin logran una relacin 4:1 que
no es mucho pero ayuda.
LOD (level of detail, nivel de detalle): el sistema
de nivel de detalle est relacionada con la complejidad geomtrica de los modelos. Algunos sistemas
necesitan que se hagan mltiples versiones del modelo, para que dependiendo de cuan cerca de este
del modelo as ser su cantidad de polgonos. Otros
sistemas ajustan dinmicamente esta caracterstica
pero en este caso da ms carga al CPU

1.13 Sonido
Creative Labs ahora ha proporcionado sus extensiones
manejadores de sonido EAX para DirectX, y la nueva iniciativa de OpenAL (biblioteca audio abierta). OpenAL,
como suena, es un API para los sistemas de los sonidos
de la misma manera que OpenGL es un API.
Para el procesado de sonido es muy similar al procesado de los modelos, muchas veces un software los procesa
antes de pasar al hardware respectivo, por ejemplo DirectSound hace al sonido para la Tarjeta de sonido lo que
Direct3D hace al modelado antes de llegar al la Tarjeta
3D. Esto es llamado premezcla en el software.

1.14 Msica/Pistas de Audio

El sonido de un videojuego se llega a manejar de muchas


maneras y esto depende de las capacidades que tenga el
motor. Hoy en da los motores de nueva generacin soportan muchos formatos de sonido pero los ms populares son el ".wav y ".ogg y en algunas casos, exigen
Depth Testing (prueba de profundidad): Con es- conguraciones exactas dependiendo el motor. La admito se empieza a eliminar los pxeles ocluidos y se nistracin de pistas de audio larga son amplias puesto que
pone en prctica el concepto de sobre dibujado. La motores de nueva generacin permiten modicacin paprueba de profundidad es una tcnica utilizada para ra poder meter un looping a la pista, modicar el tono,
determinar que objetos estn delante de otros en la etc.
misma localizacin del pxel.
Sobre Dibujado: es la cantidad de veces que se ha 1.15 Inteligencia Articial (IA o AI)
dibujado un pxel en un frame. Se basa en la cantidad de elementos existentes en la tercera dimensin Es la caracterstica ms importante que se le atribuye a un
motor al lado de la representacin de modelos o Render.
(profundidad).
La IA provee de estmulo al juego. Es crtico en la parte
de la forma de juego (game play).

1.12 Scripting Systems (Sistemas de scrip- La inteligencia articial de determinado juego puede torting)
narse muy compleja, primero se debe denir la lnea base
del comportamiento de los NPC (Non Player Characters Personajes no Jugables), primero debe denirse qu hace el NPC (patrulla, guarda, etc.), luego se delimita su
visin del mundo, que es lo es el NPC puede ver del
mundo del juego; se debe tomar en cuenta que el personaje no slo estar en medio del mundo del juego sino
que tambin interactuar con l, despus vienen las rutinas de Toma de Decisin: si el NPC est patrullando, y
El scripting le permite al diseador tomar mando de la hay un sonido, debe darle importancia o no?, investiga
escena y manipularla, como colocar objetos o eventos que su origen o no?, etc.
Pre-scripted Cinematics: usada normalmente en
una situacin que necesita la explicacin en una manera controlada. Para presentar las escenas de la historia, ahora se utilizada el cortar-escenas que presenta la historia en vdeo digital y luego por medio
de transiciones se pasa a las grcas reales del juego.

5
Es un sistema de reglas para las acciones que responden
(o inician) y que el jugador debe responder, esto es un
concepto ms general de IA.

Motores de videojuego

Vase tambin
Anexo:Motores de juego
DirectX
OpenAL
OpenGL

Referencias

[1] What is a Game Engine? from GameCareerGuide.com

5 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

Origen del texto y las imgenes, colaboradores y licencias

5.1

Texto

Motor de videojuego Fuente: https://es.wikipedia.org/wiki/Motor_de_videojuego?oldid=91681411 Colaboradores: Vanbasten 23, Dodo,


Flextron, Dajoropo, Lmsilva, Boticario, RobotQuistnix, Chobot, Yrbot, Gaijin, Tomatejc, Folkvanger, CEM-bot, Satanclos, Khaine, Sebi
kul, Thijs!bot, Locovich, JAnDbot, GeorgeArthur, TXiKiBoT, Rei-bot, Plux, Biasoli, AlnoktaBOT, Cinevoro, VolkovBot, MILEPRI,
House, AlleborgoBot, Muro Bot, SieBot, Loveless, Osielsur, STBot~eswiki, Rowley, DragonBot, LordT, Kintaro, UA31, MARC912374,
AVBOT, J.delanoy, Geronime, SubSevenMoRpHeEuS, InaBOT, Luckas-bot, Amirobot, Ptbotgourou, Alelapenya, Xqbot, FrescoBot,
Enrique Cordero, Oxilium, KamikazeBot, Jorge c2010, EmausBot, Savh, ShadowW64, ZroBot, Maddox, Grillitus, WikitanvirBot, Luigi003, Kasirbot, MetroBot, 3droberto, Elvisor, Bestgustavo30, Addbot, Solder3000, Jorgeferma95, Jarould, Hakken, Hafohafo, RPP2015,
Juandiochoa111, Alexmaticlara UV, Joe Abbie y Annimos: 46

5.2

Imgenes

Archivo:Commons-emblem-question_book_orange.svg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/1/1f/
Commons-emblem-question_book_orange.svg Licencia: CC BY-SA 3.0 Colaboradores: <a href='//commons.wikimedia.org/wiki/File:
Commons-emblem-issue.svg' class='image'><img alt='Commons-emblem-issue.svg' src='https://upload.wikimedia.org/wikipedia/
commons/thumb/b/bc/Commons-emblem-issue.svg/25px-Commons-emblem-issue.svg.png' width='25' height='25' srcset='https:
//upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/38px-Commons-emblem-issue.svg.png
1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Commons-emblem-issue.svg/50px-Commons-emblem-issue.svg.png 2x'
data-le-width='48' data-le-height='48' /></a> + <a href='//commons.wikimedia.org/wiki/File:Question_book.svg' class='image'><img
alt='Question
book.svg'
src='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/25px-Question_
book.svg.png' width='25' height='20' srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/
38px-Question_book.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/Question_book.svg/50px-Question_
book.svg.png 2x' data-le-width='252' data-le-height='199' /></a> Artista original: GNOME icon artists, Jorge 2701
Archivo:Heightmap.png Fuente: https://upload.wikimedia.org/wikipedia/commons/5/57/Heightmap.png Licencia: Public domain Colaboradores: No machine-readable source provided. Own work assumed (based on copyright claims). Artista original: No machine-readable
author provided. A3r0 assumed (based on copyright claims).
Archivo:Heightmap_rendered.png Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2f/Heightmap_rendered.png Licencia:
Public domain Colaboradores: Image:Heightmap.png Artista original: ?
Archivo:Scorched_3D_1_screenshot_roam1.JPG Fuente: https://upload.wikimedia.org/wikipedia/commons/d/db/Scorched_3D_1_
screenshot_roam1.JPG Licencia: GPL Colaboradores: http://www.scorched3d.co.uk/screenshots/39/screenshot-39.1-3-large.jpg Artista
original: Gavin Camp [1]
Archivo:WireSphereHiTass.MaxDZ8.jpg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/f/fc/WireSphereHiTass.
MaxDZ8.jpg Licencia: Public domain Colaboradores: Snapshot from a program I've written. Artista original: MaxDZ8
Archivo:WireSphereLowTass.MaxDZ8.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/cd/WireSphereLowTass.
MaxDZ8.jpg Licencia: Public domain Colaboradores: Snapshot from a program I've written. Artista original: MaxDZ8
Archivo:WireSphereMaxTass.MaxDZ8.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/3/31/WireSphereMaxTass.
MaxDZ8.jpg Licencia: Public domain Colaboradores: Snapshot from a program I've written. Artista original: MaxDZ8
Archivo:WireSphereMinTass.MaxDZ8.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/9/92/WireSphereMinTass.
MaxDZ8.jpg Licencia: Public domain Colaboradores: Snapshot from a program I've written. Artista original: MaxDZ8
Archivo:WireSphereStdTass.MaxDZ8.jpg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/f/f2/WireSphereStdTass.
MaxDZ8.jpg Licencia: Public domain Colaboradores: Snapshot from a program I've written. Artista original: MaxDZ8
Archivo:X_mark.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/a/a2/X_mark.svg Licencia: Public domain Colaboradores: Trabajo propio Artista original: User:Gmaxwell

5.3

Licencia del contenido

Creative Commons Attribution-Share Alike 3.0

También podría gustarte