Motor Unigine: nuevo y exclusivo

Prólogo


No hace mucho tiempo vi un motor showreel que se ve más que competitivo

showreel


En este artículo, hablaré brevemente sobre este motor y lo compararé indirectamente con competidores directos.

regístrese y descargue aquí

Un poco sobre la historia.


Todo comenzó en 2004 (!) Con Alexander Zapryagaev y su proyecto de código abierto.

En 2010, se lanzó Heaven Benchmark basado en Unigine.

En 2012 salió controvertido en términos de jugabilidad, pero bastante OilRush.

Oilush

Pavo gracioso salió en 2017

Sumoan

Estado actual


El 10 de abril de 2020, se lanzó la versión comunitaria, que se puede usar si su empresa tiene ingresos de menos de $ 100k o para un proyecto sin fines de lucro.

Interfaz


Debajo del spoiler de un vistazo
, Unity, :

image

Unreal engine: LOD ,Render ,Collision etc.

image

:

image

, , :

image alt

image alt

, , Unreal engine .

asset browser , :

image
,

Scripting y api


Descripción
: ++ #
#

using Unigine;

namespace UnigineApp
{
	class AppWorldLogic : WorldLogic
	{
/* .. */
		public override bool Update()
		{
	// getting current controls
	Controls controls = Game.Player.Controls;

	// checking controls states and reporting which buttons were pressed
	if (controls.ClearState(Controls.STATE_FORWARD) != 0 || controls.ClearState(Controls.STATE_TURN_UP) != 0)
	{
		Log.Message("FORWARD or UP key pressed\n");
	}
	else if (controls.ClearState(Controls.STATE_BACKWARD) != 0  || controls.ClearState(Controls.STATE_TURN_DOWN) != 0 )
	{
		Log.Message("BACKWARD or DOWN key pressed\n");
	}
	else if (controls.ClearState(Controls.STATE_MOVE_LEFT) != 0  || controls.ClearState(Controls.STATE_TURN_LEFT) != 0 )
	{
		Log.Message("MOVE_LEFT or TURN_LEFT key pressed\n");
	}
	else if (controls.ClearState(Controls.STATE_MOVE_RIGHT) != 0  || controls.ClearState(Controls.STATE_TURN_RIGHT) != 0 )
	{
		Log.Message("MOVE_RIGHT or TURN_RIGHT key pressed\n");
	}

			return true;
		}
	}
}

++

#include <UnigineGame.h>

/* .. */

int AppWorldLogic::update() 
{

	// getting current controls
	ControlsPtr controls = Game::getPlayer()->getControls();

	// checking controls states and reporting which buttons were pressed
	if (controls->clearState(Controls::STATE_FORWARD) || controls->clearState(Controls::STATE_TURN_UP))
	{
		Log::message("FORWARD or UP key pressed\n");
	}
	else if (controls->clearState(Controls::STATE_BACKWARD) || controls->clearState(Controls::STATE_TURN_DOWN))
	{
		Log::message("BACKWARD or DOWN key pressed\n");
	}
	else if (controls->clearState(Controls::STATE_MOVE_LEFT) || controls->clearState(Controls::STATE_TURN_LEFT))
	{
		Log::message("MOVE_LEFT or TURN_LEFT key pressed\n");
	}
	else if (controls->clearState(Controls::STATE_MOVE_RIGHT) || controls->clearState(Controls::STATE_TURN_RIGHT))
	{
		Log::message("MOVE_RIGHT or TURN_RIGHT key pressed\n");
	}

	return 1;
}

T , :

image

, 100 10 , . ,
vr


Plataformas


Brevemente sobre las plataformas compatibles
:

  • Windows
  • linux OSX
  • VR: steamvr
  • android, ios, playstation, etc…


Renderizado - sombreado - vfx


En detalle
: AAx4
500 vfx 300+fps
Particicle editor

image

pbr, UE4.

:

image

:

image

:
[Practical Cascaded Shadow Maps](https://developer.download.nvidia.com/SDK/10.5/opengl/src/cascaded_shadow_maps/doc/cascaded_shadow_maps.pdf)

De que sirve


  • muchos ejemplos, guías y códigos de referencia
  • soporte adecuado para todas las funciones modernas de nvidia sobre las cuales necesita escribir un artículo separado
  • umbral de entrada relativamente bajo a pesar de que la interfaz de usuario todavía está sin procesar

Epílogo


Ahora Unigine, aunque en bruto, no es compatible con las plataformas principales, pero ya parece prometedor, y quizás en unos años, Unigine se unirá a las filas de Unreal Engine y Unity.
[Canal de telegramas del autor] ( tglink.ru/response1000000 )

mis juegos



Enlaces de sitio


[gran entrevista] (https://secretmag.ru/trends/players/unigine.htm)
[para migrantes con motor irreal] (https://developer.unigine.com/ru/docs/2.11/migration/from_ue/?rlang = cpp)
[para migrantes con motor de unidad] (https://developer.unigine.com/en/docs/2.11/migration/from_unity/?rlang=cpp)
Hace siete años [salió el juego] (http: // flying-cafe .com / ru.shtml)

All Articles