Unidad (motor de juego)

Unidad
Tipo de motor de juego , entorno de desarrollo integrado , constructor , framework
Desarrollador Tecnologías de la unidad
Escrito en C++ (tiempo de ejecución), C#
Sistema operativo Microsoft Windows , macOS , Linux , Android e iOS
Idiomas de la interfaz inglés
Primera edición 8 de junio de 2005
plataforma de hardware PC
PlayStation 4
PlayStation 5
Xbox One
Xbox Series X
Apple TV
ultima versión
versión beta
Estado activo
Licencia propiedad
Sitio web unidad.com
 Archivos multimedia en Wikimedia Commons

Unity ( unidad en traducción del  inglés  -  "unidad", pronunciado como "unidad") es un entorno de desarrollo multiplataforma para juegos de computadora [3] , desarrollado por la compañía estadounidense Unity Technologies . Unity le permite crear aplicaciones que se ejecutan en más de 25 plataformas diferentes, incluidas computadoras personales , consolas de juegos , dispositivos móviles , aplicaciones de Internet y otros [4] . El lanzamiento de Unity tuvo lugar en 2005 y desde entonces ha habido un desarrollo constante.

Las principales ventajas de Unity son la presencia de un entorno de desarrollo visual , soporte multiplataforma y un sistema modular de componentes. Las desventajas incluyen la aparición de dificultades al trabajar con circuitos multicomponente y dificultades al conectar bibliotecas externas .

Miles de juegos, aplicaciones, visualizaciones de modelos matemáticos están escritos en Unity, que cubren muchas plataformas y géneros. Al mismo tiempo, Unity es utilizado tanto por grandes desarrolladores como por estudios independientes .

Características

El editor de Unity tiene una interfaz simple de arrastrar y soltar , así como la instalación de complementos de KALI, que es fácil de configurar, consta de varias ventanas, para que pueda depurar el juego directamente en el editor . El motor usa C# [5] para escribir scripts . Boo ( dialecto de Python , eliminado en la versión 5) y una modificación de JavaScript conocida como UnityScript (en desuso en la versión 2017.1) también eran compatibles anteriormente . Los cálculos de física los realiza el motor de física PhysX de NVIDIA para física 3D y Box2D para física 2D [6] . API de gráficos: DirectX (actualmente compatible con DX 11 , DX 12 )

El proyecto en Unity se divide en escenas ( niveles ), archivos separados que contienen sus mundos de juego con su propio conjunto de objetos, escenarios y configuraciones. Las escenas pueden contener, de hecho, objetos (modelos) y objetos de juego vacíos, objetos que no tienen un modelo ("dummy") [7] . Los objetos, a su vez, contienen conjuntos de componentes con los que interactúan los scripts. Los objetos también tienen un nombre (en Unity, se permiten dos o más objetos con los mismos nombres en una escena), puede haber una etiqueta (etiqueta) y una capa en la que debe mostrarse. Por lo tanto, cualquier objeto en el escenario debe tener un componente Transformar: almacena las coordenadas de ubicación, rotación y tamaño del objeto a lo largo de los tres ejes.

Unity también es compatible con la física de cuerpo rígido y de tela, así como con la física de tipo Ragdoll (muñeca de trapo).

El editor tiene un sistema de herencia de objetos; los objetos secundarios repetirán todos los cambios en la posición, rotación y escala del objeto principal.

Los scripts en el editor se adjuntan a los objetos como componentes separados.

Al importar una textura a Unity, puede generar alpha-channel , mip-levels , normal-map , light-map , reflection map, pero no puede adjuntar una textura directamente al modelo: se creará un material al que se le agregará un shader . se asignará y, a continuación, el material se adjuntará al modelo. El editor de Unity admite la escritura y edición de sombreadores. El editor de Unity tiene un componente para crear animaciones, pero la animación también puede crearse previamente en un editor 3D e importarse junto con el modelo y luego dividirse en archivos.

Unity 3D es compatible con el sistema Level Of Detail (abreviatura LOD), cuya esencia es que, a una gran distancia del jugador, los modelos muy detallados se reemplazan por otros menos detallados, y viceversa, así como el sistema Occlusion culling, cuya esencia es que los objetos, la geometría y las colisiones que no están en el campo de visión de la cámara no se renderizan, lo que reduce la carga en el procesador central y le permite optimizar el proyecto. Al compilar un proyecto, se crea un archivo de juego ejecutable (.exe) (para Windows ) y en una carpeta separada: datos del juego (incluidos todos los niveles del juego y bibliotecas vinculadas dinámicamente).

El motor admite muchos formatos populares. Los modelos, sonidos, texturas, materiales y guiones pueden empaquetarse en formato .unitypackage y transferirse a otros desarrolladores o cargarse para obtener acceso gratuito. El mismo formato se usa en la tienda interna de activos de Unity, donde los desarrolladores pueden compartir varios elementos necesarios para crear juegos gratis y por dinero. Para usar la tienda de activos de Unity, debe tener una cuenta de desarrollador de Unity.

UNet (una biblioteca para implementar multijugador en juegos de Unity) se eliminó desde la versión 2018.4; no existe una solución lista para usar para multijugador. También puede utilizar el método fácil de usar de control de versiones. Por ejemplo, Tortoise SVN, Git o Source Gear .

Unity incluye Unity Asset Server, una herramienta de desarrollo colaborativo basada en Unity que es un complemento que agrega control de versiones y una serie de otras soluciones del lado del servidor.

Ventajas y desventajas

Por lo general, un motor de juego proporciona una gran cantidad de funciones que les permite usarse en varios juegos, que incluyen simulación física, mapas normales, sombras dinámicas y más. A diferencia de muchos motores de juegos, Unity tiene dos ventajas principales: la presencia de un entorno de desarrollo visual y soporte multiplataforma [8] . El primer factor incluye no solo herramientas de modelado visual, sino también un entorno integrado , la cadena de ensamblaje , que tiene como objetivo mejorar la productividad de los desarrolladores, en particular, las etapas de creación de prototipos y pruebas. Bajo el soporte multiplataforma, no solo se proporcionan sitios de implementación (instalación en una computadora personal, en un dispositivo móvil, consola, etc.), sino también la disponibilidad de herramientas de desarrollo (el entorno integrado se puede usar bajo Windows y Mac OS) [4] .

La tercera ventaja es el sistema de componentes modulares de Unity, que se utiliza para construir objetos de juego cuando estos últimos son paquetes combinables de elementos funcionales. A diferencia de los mecanismos de herencia , los objetos en Unity se crean combinando bloques de funciones , en lugar de colocarlos en nodos de un árbol de herencia. Este enfoque facilita la creación de prototipos, lo cual es importante en el desarrollo de juegos [9] .

Como desventajas, la limitación del editor visual se da cuando se trabaja con diagramas multicomponentes, cuando el trabajo visual se dificulta en escenarios complejos. El segundo inconveniente es la falta de soporte de Unity para enlaces a bibliotecas externas , que los programadores tienen que configurar para trabajar, y esto también dificulta el trabajo en equipo. Otra desventaja está asociada con el uso de plantillas de instancia ( prefabs en inglés  ). Por un lado, este concepto de Unity ofrece un enfoque flexible para la edición visual de objetos, pero por otro lado, editar dichas plantillas es difícil [9] . Además, la versión WebGL del motor, debido a las características específicas de su arquitectura (traducción de código de C# a C++ y luego a JavaScript), tiene una serie de problemas no resueltos con el rendimiento, el consumo de memoria y el rendimiento en dispositivos móviles [10] [11 ] .

Juegos en Unity

Cientos de juegos, aplicaciones y simulaciones están escritos en Unity [12] , Unity es utilizado tanto por grandes desarrolladores (por ejemplo, Blizzard [13] ) como en la creación de juegos independientes . Los juegos de computadora en Unity cubren muchas plataformas y géneros, ejemplos típicos de los cuales son [14] :

Historia

La primera versión de Unity apareció en 2005 cuando se anunció el motor del juego en la Conferencia Mundial de Desarrolladores . Inicialmente, Unity estaba destinado exclusivamente a computadoras Mac, y en agosto se lanzó una actualización para permitir que funcione en Windows. Las siguientes versiones agregaron gradualmente nuevas plataformas e implementaciones: reproductor web multiplataforma en 2006, iPhone en 2008, Android en 2010 y más en las consolas de juegos Xbox y Playstation [4] .

Es posible crear aplicaciones para ejecutar en navegadores utilizando un complemento especial de Unity (Unity Web Player) , así como utilizando la implementación de la tecnología WebGL. Anteriormente, había soporte experimental para la implementación de proyectos dentro del módulo Adobe Flash Player [15] , pero luego el equipo de desarrollo de Unity tomó la difícil decisión de abandonarlo [16] .

En diciembre de 2009, Gamasutra nombró a Unity como uno de los jugadores más importantes en el mercado de las empresas de juegos [17] .

Licencias

La versión gratuita de Unity tiene algunas limitaciones, pero es posible que distribuya juegos, siempre que los ingresos anuales del juego no superen los 100.000 dólares [18] .

Tipo de licencia Ingresos de la empresa por año Pantalla de bienvenida Características multijugador Construir en almacenamiento en la nube tema oscuro Informes de rendimiento Soporte prémium Acceso al código fuente Precio (en dólares )
Personal Hasta $ 100,000 "Hecho con Unity" y animación personalizada opcional 20 CCU Estándar No No No Está libre
Más Hasta $ 200.000 Animación personalizada y/o "Hecho con Unity" 50 CCU Prioridad No No 399 por año o 40 mensuales
Pro No limitado Animación personalizada y/o "Hecho con Unity" 200 CCU Simultáneo No 1800 por año o 150 mensuales
Empresa No limitado Animación personalizada y/o "Hecho con Unity" multijugador personalizado Recursos dedicados 200$ por mes

Notas

  1. https://unity3d.com/get-unity/download/archive
  2. Unity 2022.1 beta ya está disponible  (inglés) - 2021.
  3. Hawking, 2016 , pág. dieciséis.
  4. 1 2 3 Hawking, 2016 , pág. 22
  5. Tecnologías de unidad. Unity-Manual : Arquitectura Unity  . docs.unity3d.com . Consultado el 13 de mayo de 2022. Archivado desde el original el 13 de mayo de 2022.
  6. Tecnologías de unidad. Unity - Manual: Física  (Inglés) . docs.unity3d.com . Consultado el 13 de mayo de 2022. Archivado desde el original el 13 de mayo de 2022.
  7. Tecnologías de unidad. Unity-Manual : Escenas  . docs.unity3d.com . Consultado el 13 de mayo de 2022. Archivado desde el original el 18 de abril de 2022.
  8. Hawking, 2016 , pág. 21
  9. 1 2 Hawking, 2016 , pág. 23
  10. Consideraciones de memoria al apuntar a WebGL . Consultado el 24 de agosto de 2018. Archivado desde el original el 24 de agosto de 2018.
  11. Verge3D frente a Unity WebGL: canalización y rendimiento . Consultado el 24 de agosto de 2018. Archivado desde el original el 24 de agosto de 2018.
  12. Hawking, 2016 , pág. 24-26.
  13. Incluso Hearthstone se ejecuta en Unity, y es por eso que ya está en iPad . Consultado el 29 de septiembre de 2017. Archivado desde el original el 5 de noviembre de 2017.
  14. Hawking, 2016 , pág. 25-.
  15. Decano Takahashi. Los desarrolladores de Unity Technologies podrán publicar juegos en 3D a través de Adobe Flash  . VentureBeat (21 de diciembre de 2011). Consultado el 11 de marzo de 2012. Archivado desde el original el 9 de junio de 2012.
  16. David Helgason. Flash puesta de sol  . El blog de Unity (23 de abril de 2013). Fecha de acceso: 9 de diciembre de 2014. Archivado desde el original el 29 de noviembre de 2014.
  17. Christian Nut. Lo mejor de 2009 de Gamasutra: las 5 mejores  empresas de juegos . Gamasutra. - "Unity se ha convertido en un jugador importante en el mercado a partir de 2009 y hay más por venir". Consultado el 11 de marzo de 2012. Archivado desde el original el 9 de junio de 2012.
  18. Acuerdo de licencia de software de Unity 4.x. Fecha de acceso: 6 de marzo de 2014. Archivado desde el original el 7 de marzo de 2014.

Literatura

Enlaces