Sie sind auf Seite 1von 7

Desarrollo de Videojuegos a travs de la plataforma de programacin visual Unity

Nombre: Andrs Guerra Medina


Curso: 2B Investigacin Bsica
Fecha: 02/05/2016

Objetivo
Emplear el lenguaje de programacin aprendido durante el semestre para la creacin de
software o programas encaminados al desarrollo visual o de entretenimiento como lo son
los videojuegos.

Marco Terico
Unity es un motor de videojuego multiplataforma creado por Unity Technologies. Unity
est disponible como plataforma de desarrollo para Microsoft Windows, OS X y Linux, y
permite crear juegos para Windows, OS X, Linux, Xbox 360, PlayStation 3,Playstation
Vita, Wii, Wii U, iPad, iPhone, Android y Windows Phone. Gracias al plugin web de Unity,
tambin se pueden desarrollar videojuegos de navegador para Windows y Mac. Unity tiene
dos versiones: Unity Professional y Unity Personal.
Unity puede usarse junto con 3ds Max, Maya, Softimage, Blender, Modo, ZBrush, Cinema
4D, Cheetah3D, Adobe Photoshop, Adobe Fireworks y Allegorithmic Substance. Los
cambios realizados a los objetos creados con estos productos se actualizan automticamente
en todas las instancias de ese objeto durante todo el proyecto sin necesidad de volver a
importar manualmente.
El motor grfico utiliza Direct3D (en Windows), OpenGL (en Mac y Linux), OpenGL
ES (en Android y iOS), e interfaces propietarias (Wii). Tiene soporte para mapeado de
relieve, reflexin de mapeado, mapeado por paralaje, pantalla de espacio oclusin

ambiental (SSAO), sombras dinmicas utilizando mapas de sombras, render a textura y


efectos de post-procesamiento de pantalla completa.
Se usa ShaderLab language para el uso de shaders, soporta tanto programacin declarativa
de los programas de funcin fija de tuberas y shader GLSL o escritas en Cg. Un shader
puede incluir mltiples variantes y una especificacin declarativa de reserva, lo que permite
a Unity detectar la mejor variante para la tarjeta de vdeo actual y si no son compatibles,
recurrir a un shader alternativo que puede sacrificar caractersticas para una mayor
compatibilidad.
El soporte integrado para Nvidia (antes Ageia), el motor de fsica PhysX, (a partir de Unity
3.0) con soporte en tiempo real para mallas arbitrarias y sin piel, ray casts gruesos, y las
capas de colisin.
El scripting viene a travs de Mono. El script se basa en Mono, la implementacin de
cdigo abierto de .NET Framework. Los programadores pueden utilizar UnityScript (un
lenguaje personalizado inspirado en la sintaxis ECMAScript), C# o Boo (que tiene una
sintaxis inspirada en Python). A partir de la versin 3.0 aade una versin personalizada
de Mono Develop para la depuracin de scripts.
Unity tambin incluye Unity Asset Server - una solucin de control de versiones para todos
los assets de juego y scripts, utilizando PostgreSQL como backend, un sistema de audio
construido con la biblioteca FMOD, con capacidad para reproducir audio comprimido Ogg
Vorbis, reproduccin de vdeo con cdec Theora, un motor de terreno y vegetacin , con
rboles con soporte de billboarding, determinacin de cara oculta con Umbra, una funcin
de iluminacin lightmapping y global con Beast, redes multijugador RakNet y una funcin
de bsqueda de caminos en mallas de navegacin.

Mecanim
Mecanim es la tecnologa de animacin de Unity, que ha estado en desarrollo durante aos,
primero por la empresa del mismo nombre, a continuacin, por las oficinas de Unity en
Canad, despus de su adquisicin. La tecnologa est diseada para llevar el movimiento
fluido y natural de los personajes con una interfaz eficiente. Mecanim incluye herramientas

para la creacin de mquinas de estados, rboles de mezcla, manipulacin de los


conocimientos nativos y retargeting automtico de animaciones, desde el editor de Unity.
Adems, una serie de animaciones redestinables estarn disponible en el Unity Asset Store
de Unity tras el lanzamiento de la herramienta. Muchos de estos archivos de animacin de
captura de movimiento son proporcionados sin costo por Unity Technologies. Otros
proveedores del Asset Store tambin ofrecern animaciones para su uso con Mecanim, ya
sea de forma gratuita o de pago.

Lenguaje de Programacin C++


C es

un lenguaje

de

programacin originalmente

Ritchie entre 1969 y 1972 en

los Laboratorios

desarrollado

Bell,2como

por Dennis

evolucin

del

M.

anterior

lenguaje B, a su vez basado en BCPL.


Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el
lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se
utiliza para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio
nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de
los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que
permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al
lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder
directamente a memoria o dispositivos perifricos.
La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El
lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente,
en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este
estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es portable
entre plataformas y/o arquitecturas.

Propiedades
Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como funciones
matemticas y de manejo de archivos, proporcionadas por bibliotecas.
Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de los ms
empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de
ruptura).
Un sistema de tipos que impide operaciones sin sentido.
Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e
incluir mltiples archivos de cdigo fuente.
Acceso a memoria de bajo nivel mediante el uso de punteros.
Interrupciones al procesador con uniones.
Un conjunto reducido de palabras clave.
Por defecto, el paso de parmetros a una funcin se realiza por valor. El paso por referencia
se consigue pasando explcitamente a las funciones las direcciones de memoria de dichos
parmetros.
Punteros a funciones y variables estticas, que permiten una forma rudimentaria
de encapsulado y polimorfismo.
Tipos de datos agregados ( struct ) que permiten que datos relacionados (como un
empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un
todo (en una nica variable "empleado").

Carencias del Lenguaje C++


Recoleccin de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la
"libgc" desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.
Soporte para programacin orientada a objetos, aunque la implementacin original de C++
fue un preprocesador que traduca cdigo fuente de C++ a C.

Funciones anidadas, aunque GCC tiene esta caracterstica como extensin.


Soporte nativo para programacin multihilo.
Aunque la lista de las caractersticas tiles de las que carece C es larga, este factor ha sido
importante para su aceptacin, porque escribir rpidamente nuevos compiladores para
nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del
programador, y permite implementar la solucin ms natural para cada plataforma. sta es
la causa de que a menudo C sea ms eficiente que otros lenguajes. Tpicamente, slo la
programacin cuidadosa en lenguaje ensamblador produce un cdigo ms rpido, pues da
control total sobre la mquina, aunque los avances en los compiladores de C y la
complejidad creciente de los microprocesadores modernos han reducido gradualmente esta
diferencia.
En algunos casos, una caracterstica inexistente puede aproximarse. Por ejemplo, la
implementacin original de C++ consista en un preprocesador que traduca cdigo fuente
C++ a C. La mayora de las funciones orientadas a objetos incluyen un puntero especial,
que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la
funcin. Mediante el paso de este puntero como un argumento de funcin, esta
funcionalidad puede desempearse en C. Por ejemplo, en C++ se puede escribir:
stack.push(val);
Mientras que en C se podra escribir:
push(stack, val);
Donde el argumento stack es un puntero a una struct equivalente al puntero this de C++,
que es un puntero a un objeto.
Limitaciones del desarrollo de juegos con Unity3D
Como toda herramienta, su fuerza su potencia en muchos aspectos tiene una contrapartida.
Unity tambin tiene limitaciones con respecto a otras herramientas del sector. El experto
Ivn Garca nos ayuda a concretar algunas.

La ms evidente es que no nos permite empezar desde unas bases, o de unas plantillas, por
decirlo de alguna manera, e ir luego implementando detalles. Si no que debes empezar de
cero con cada juego. Al ser un motor de propsito general no te da nada hecho. Hay gente
que espera que desarrollar juegos sea todo arrastrar y soltar, y no es para nada as. De
hecho siempre he pensado que sera mal motor cualquiera que permita trabajar as, nos
explica Ivn Garca.
Desde el punto de vista grfico, sigue yendo a la cola en comparacin con otros motores
como UDK. Aunque como contrapartida, Unity 3D permite programar shaders, eso s, de
nuevo desde cero. No obstante, Ivn Garca admite que a la hora de la verdad, en el mundo
de los pequeos desarrolladores y de proyectos para smartphones en el que el diseo
grfico no es tan complejo no llega a convertirse en un inconveniente.
A nivel de motor fsico, a pesar de utilizar NVidia PhysX, no ofrece tantas funcionalidades
como otras herramientas como pueden ser UDK o CryEngine. En Unity 5 se espera que
actualicen a PhysX 3.3 sobre todo por temas de rendimiento y se espera que aadan otras
funcionalidades.
La existencia de licencias ms caras puede suponer una limitacin para desarrolladores
freelance o grupos de desarrollo pequeos. Las licencias ms caras aportan principalmente
mejoras grficas y de rendimiento, pero solo vale la pena hacerte con ellas si tienes un
equipo mediano o grande, y un proyecto ambicioso. Tambin depender del desarrollador
en s, de si el desarrollador va a explotar estos recursos, aade el dsarrollador Aitor
Romn.
En cuanto a desarrollar juegos con Unity especficamente para smartphones, no
encontramos trabas. Ni si quiera tenemos que pagar licencias extraordinarias. Por ejemplo,
Unity Free permite publicar en Android, iPhone y Windows Phone, las plataformas ms
demandadas desde hace un par de aos.
En conclusin, podemos decir que Unity 3D es una herramienta muy vlida tambin para
principiantes y para usuarios que no disponen de muchos recursos para contratar a otras
personas para el desarrollo de juegos. Adems es este grupo de desarrolladores freelances y
grupos pequeos los ms beneficiados al utilizar Unity.

Recomiendo tener conocimientos previos de programacin en distintos lenguajes o en C++


que es el que vamos a usar y conocimientos en reas bsicas de fsica para videojuegos.

Bibliografa
Deitel, H. and Deitel, P. (1994). C. Englewood Cliffs, N.J.: Prentice Hall.
Deitel, H. and Deitel, P. (1998). C++. Upper Saddle River, NJ: Prentice Hall.
Hawley, R. (2013). Grome terrain modeling with Ogre3D, UDK, and Unity3D.
Birmingham: Packt Pub.
Rani, K. (2014). Learning unity physics. Birmingham, U.K.: Packt Publishing.

Netgrafa
Blog de Desarrollo de Apps, Webs y Juegos mviles. (2014). Ventajas e
inconvenientes de desarrollo de juegos con Unity 3D. [online] Available at:
https://www.yeeply.com/blog/ventajas-e-inconvenientes-de-desarrollar-juegoscon-unity-3d/ [Accessed 11 Apr. 2016].
Es.wikipedia.org.

(2016).

Unity

(software).

[online]

Available

at:

https://es.wikipedia.org/wiki/Unity_(software) [Accessed 11 Apr. 2016].


Unity3d.com. (2016). Unity - Download. [online] Available at:
https://unity3d.com/es/get-unity/download [Accessed 11 Apr. 2016].
Es.wikipedia.org. (2016). C (lenguaje de programacin). [online] Available at:
https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n) [Accessed
11 Apr. 2016].
Tutellus. (2015). Aprende a crear Videojuegos con Unity 3D. [online] Available
at: https://www.tutellus.com/tecnologia/videojuegos/creacion-de-videojuegoscon-unity-3d-3291 [Accessed 11 Apr. 2016].

Das könnte Ihnen auch gefallen