Cryengine
Содержание:
3D Engine
- Refactored: Terrain layer painting is modified to work with new 3D Engine side texture atlas and without using of any Custom Editor side textures. During painting textures look very close to how they will look after generation.
- Optimized: Enabled bindless texturing for terrain base pass and for vegetation «use terrain color» feature,
- Fixed: (VR, Config) Re-enabled default stereo output.
- Fixed: Static instancing crash.
- Fixed: (VR) Re-enable Oculus support.
- Fixed: Sky-dome initialization on level-reload.
- Fixed: (VR, Sandbox) Culling when using Sandbox with attached and enabled HMD.
- Fixed: Missing brushes on Editor start.
- Fixed: Crash on materials editing.
- Fixed: Sandbox might crash on start.
- Fixed: Static Instancing crash.
Action
Action General
- Refactored: Remove direct #include reference to CryAction files from other modules and include CryAction for every module as include path instead.
- Fixed: Camera not resetting when exiting game mode after calling SetViewCamera scriptbind.
- Fixed: A memory management issue with a debug string instance being passed across a dll boundary. Removed the previous ad-hoc workaround for this issue to reduce complexity on the CryAction’s client side.
- Fixed: Client crash when connecting to servers that did not have sv_pacifist CVar available.
Flowgraph
- New: Adds blend feature to the Entity:EntityFaceAt flownode.
- Fixed: Changing the param of a material on an entity would prevent from changing the entity’s material.
◆ DynamicLightFlags
|
strong |
Flags that can be used to set the parameters of dynamic lights.
Enumerator | |
---|---|
AreaSpecTex |
Flag for AreaSpecTex. |
Directional |
Flag that indicates this is a directional light. |
BoxProjectedCm |
Flag for box projected cubemaps. |
Post3DRenderer |
Flag for post 3d renderer light. |
CastShadowMaps |
Flag that indicates if this light should cast shadows. |
Point |
Flag that indicates this light is a point light. |
Project |
Flag that indicates this light is a projector. |
IgnoresVisAreas |
Flag for ignoring Vis Areas. |
DeferredCubemaps |
Flag that indicates that the cubemaps are deferred. |
HasClipVolume |
Flag that indicates this light has a clip volume. |
Disabled |
Flag that indicate that this light is disabled. |
AreaLight |
Flag that indicates that this light is an area light. |
UseForSVOGI |
Flag that indicates that this light is used for SVOGI. |
Fake |
No lighting, used for Flares, beams and such. |
Sun |
Flag that indicates that this light is the sun. |
LM | |
ThisAreaOnly |
Affects only current area/sector. |
Ambient |
Ambient light (as name indicates, used for replacing ambient). |
IndoorOnly |
Does not affect height map. |
VolumetricFog |
Affects volumetric fog. |
AttachToSun |
Add only to Light Propagation Volume if it’s possible. |
TrackviewTimescrubbing |
Add only to Light Propagation Volume if it’s possible. |
VolumetricFogOnly |
Affects only volumetric fog. |
LightTypeMask |
Mask with the various types of light that are available. |
Editor General
- Fixed: Imported *.fbx file uses ReplaceMe-textures due to missing texture-files in blank-templates.
- Fixed: Issue where the user was unable to open a Material Editor through the Properties Panel edit button.
- Fixed: Issue in property rows where clicking the «edit» button wouldn’t actually open the corresponding Editor.
- Fixed: Fixed backing up a level problem.
- Fixed: Crash — when leaving the Database View (DB) open (with no separate windows on the taskbar) and then restarting the Sandbox Editor and attempting to close the DB crashed the Sandbox Editor.
- Fixed: Automatic cryasset generation is disabled for xml, Lua, wav, ogg files and for _autobackup folders.
- Fixed: Level not saving after a backup was successfully created. Also fixed auto-backup timer changes (in Preferences) not immediately taking effect.
- Fixed: Crash when dragging and dropping from Database View (DB) into Viewport.
- Fixed: Dragging *.abc file into Mesh Importer freezes the Sandbox Editor.
- Fixed: Restored CurveEditorContent deletion and signaling logic, after change to delayed initialization.
Additional Fixes
- Fixed: (Renderer, Xbox) Compilation error in RenderDisplayContext on Durango.
- Fixed: (Renderer) DrawToRenderTarget finding no depth-buffer.
- Fixed: (Renderer, win32) Wrong calling convention for function table.
- Fixed: (FBX UI) Properties of imported mesh are not displayed in the Properties-pane.
- Fixed: (FBX Animation) The root of an imported animation sticks to the origin.
Features[edit]
- Simultaneous WYSIWYG on all platforms in sandbox editor
- «Hot-update» for all platforms in sandbox editor
- Material editor
- Flow graph
- Track View Editor
- Procedural placement tools and cover generation
- Integrated vegetation and terrain cover generation system
- Real time soft particle system and integrated FX editor
- Road and river tools
- Vehicle creator
- Fully flexible time of day system
- Streaming
- Performance Analysis Tools
- Visual Budget System
- Multi-core support
- Sandbox development layers
- Resource compiler
- Natural lighting and dynamic soft shadows with penumbra
- Irradiance Volume
- Deferred lighting
- Real time dynamic global illumination
- Eye adaptation and high-dynamic-range (HDR) lighting
- Screen space ambient occlusion
- Color grading
- «Uber Shader» technology
- Blend Layer
- Normal maps and parallax occlusion maps
- Motion blur and depth of field with sprite-based bokeh
- High quality 3D water
- Dynamic volumetric light beams and light shaft effects
- Volumetric, layer and view distance fogging
- Screen Space Directional Occlusion (SSDO)
- Tessellation (computer graphics) and Displacement Mapping
- Screen-space reflections
- Particles motion blur and shadows
- Character animation system
- Character individualisation system
- Parametric skeletal animation
- Procedural motion warping and IK solutions
- Facial animation editor
- Subsurface scattering
- AI editing system
- Dynamic pathfinding
- Layer Navigation Mesh
- Automated navigation mesh generation
- Tactical Point System
- Integrated multi-threaded physics engine
- Deformables and soft body physics
- Interactive and destructible environment
- Rope physics
- In-game sound mixing and profiling
- Data-driven sound system
- Dynamic sounds and interactive music
- Environmental audio
- Key frame-accurate sounds in animations
- Sound moods
- Water volume caustics
- UV mapping editor
- PBR (Physically Based Rendering)
Мнимые плюсы при работе с CryEngine
Но почему тогда некоторые компании до сих пор его используют?
У него отличный realtime render — это раз.
В комплекте идет GameSDK — это два.
GameSDK — это полноценный шутер, который можно модифицировать под свои нужды. Аналог старого доброго Source Engine, на базе которого родилось множество отличных игр.
GameSDK
Но есть проблема. В прошлом году Crytek официально заявил об отказе от дальнейшего развития GameSDK. И сейчас движок находится в промежуточной стадии развития, которую не факт, что переживет. Многие старые инструменты удаляются, код тотально переписывается. Сейчас готов новый Shooter Game, но он пока на очень ранней стадии развития.
Третья причина, по которой до недавнего времени можно было ценить движок, заключалась в том, что он был бесплатным. Но с версии движка под номером 5.5 Crytek придется отдавать 5% с продаж.
На это все мы в свое время и купились. Когда стало ясно, что движок не отвечает нашим требованиям, разработка шла уже несколько месяцев — назад было поворачивать слишком поздно (хотя стоило бы).
Разработка
Комплект разработчика программного обеспечения (SDK) CryEngine , первоначально называвшийся Sandbox Editor, представляет собой текущую версию редактора уровней, используемого Crytek для создания уровней для CryEngine . В программном обеспечении также предусмотрены инструменты для облегчения написания сценариев , анимации и создания объектов. Он был включен в различные игры Crytek (включая, помимо прочего, Crysis и Far Cry ) и широко используется для моддинга . Стиль редактирования аналогичен концепции песочницы с упором на большие территории и свободный стиль программирования миссий. Редактор также может создавать внутренние настройки.
В отличие от таких редакторов, как UnrealEd , которые используют «субтрактивный» стиль редактирования, который удаляет области из заполненного мирового пространства, Sandbox имеет «аддитивный» стиль (например, Quake II ). Объекты добавляются к общему пустому пространству. Концентрация песочницы на потенциально огромной (теоретически, сотни квадратных километров) местности означает, что она использует алгоритмическую форму рисования текстур и объектов на ландшафте. При этом используются различные параметры для определения распределения текстур или типов растительности. Это предназначено для экономии времени и обеспечения возможности редактирования таких больших территорий при сохранении общего стиля свободного роуминга «песочницы» в «реальном мире». Это отличается от некоторых стилей редактирования, которые часто используют «поддельные фоны», чтобы создать иллюзию больших ландшафтов.
В моде, несколько сравнимой с 3D Renderer Blender , который можно использовать для игрового дизайна, редактор Sandbox имеет возможность одним нажатием клавиши перейти прямо к текущему дизайну (WYSIWYP, «What You See Is Во что вы играете »). Это упрощается без загрузки игры, поскольку игровой движок уже запущен в редакторе. Вид «игрока» отображается в трехмерной части редактора. Редактор также поддерживает все функции CryEngine, такие как автомобили и физика, сценарии, расширенное освещение (в том числе в реальном времени, движущиеся тени), технологию Polybump , шейдеры, 3D-звук, обратную кинематику персонажей и наложение анимации, динамическую музыку, систему мягких частиц в реальном времени. и интегрированный редактор эффектов, отложенное освещение, карты нормалей и параллакс-окклюзии, а также усовершенствованная модульная система искусственного интеллекта.
External links[edit]
Wikimedia Commons has media related to . |
vteCrytek | ||||||
---|---|---|---|---|---|---|
Games |
|
|||||
Subsidiaries |
|
|||||
People |
|
|||||
Related |
|
vteGame engines (list) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||
Proprietary |
|
||||||||||
Freeand/oropen-source |
|
◆ PhysicsEntityFlags
|
strong |
General flags for PhysicsEntity-parameters
Enumerator | |
---|---|
None |
No flags |
TraceableParts |
Each entity part will be registered separately in the entity grid |
Disabled |
Entity will not be simulated |
NeverBreak |
Entity will not break or deform other objects |
Deforming |
Entity undergoes dynamic breaking/deforming |
PushableByPlayers |
Entity can be pushed by players |
Traceable |
Entity is registered in the entity grid |
ParticleTraceable |
Entity is registered in the entity grid |
RopeTraceable |
Entity is registered in the entity grid |
Update |
Only entities with this flag are updated if ent_flagged_only is used in TimeStep() |
MonitorStateChanges |
Generate immediate events for simulation class changed (typically rigid bodies falling asleep) |
MonitorCollisions |
Generate immediate events for collisions |
MonitorEnvChanges |
Generate immediate events when something breaks nearby |
NeverAffectTriggers |
Don’t generate events when moving through triggers |
Invisible |
Will apply certain optimizations for invisible entities |
IgnoreOcean |
Entity will ignore global water area |
FixedDamping |
Entity will force its damping onto the entire group |
MonitorPoststep |
Entity will generate immediate post step events |
AlwaysNotifyOnDeletion |
When deleted, entity will awake objects around it even if it’s not referenced (has refcount = 0) |
OverrideImpulseScale |
Entity will ignore breakImpulseScale in PhysVars |
PlayersCanBreak |
Players can break the Entiy by bumping into it |
CannotSquashPlayers |
Entity will never trigger ‘squashed’ state when colliding with players |
IgnoreAreas |
Entity will ignore phys areas (gravity and water) |
LogStateChanges |
Entity will log simulation class change events |
LogCollisions |
Entity will log collision events |
LogEnvChanges |
Entity will log EventPhysEnvChange when something breaks nearby |
LogPoststep |
Entity will log EventPhysPostStep events |
Versions[]
This diagram illustrates the development history of CryEngine game engine versions.
CryEngine 1
CryEngine 1 is a game engine used for the first-person shooter video game Far Cry. It was originally developed by Crytek as a technology demo for Nvidia and, when the company saw its potential, it was turned into a game. When video cards with support for 3.0 pixel and vertex shaders were released, Crytek released version 1.2 of the engine which used some of the capabilities for better graphics. Later the company developed CryEngine version 1.3, which added support for HDR lighting. The engine has been licensed to NCsoft for their MMORPG, Aion: The Tower of Eternity. On March 30, 2006, Ubisoft acquired all intellectual property rights to the Far Cry franchise and a perpetual license to use the Far Cry ion of CryEngine, known as the Dunia Engine.
CryEngine 2
CryEngine 2 is used in Crytek’s game Crysis, and an updated version in Crysis Warhead, a side story of Crysis. It was first licensed out to French company IMAGTP who specializes in architectural and urban-planning communication. The purpose of licensing the engine was to create a program to allow clients to see exactly what a building or other structure would look like before any actual construction was started. As of March 7, 2011, Simpson Studios has licensed CryEngine 2 out to use on a Massively Multiplayer Virtual World (MMVW) that takes place on a terraformed Mars. On May 11, 2007, Crytek announced that they would be using the engine to create a game based on their new “intellectual property”. It is also confirmed that it would not be a part of Crysis and in fact may not even be a first-person shooter. On September 17, 2007, Ringling College of Art & Design became the first higher education institution in the world to license CryEngine 2 for educational purposes.
CryEngine 3
Crytek introduced CryEngine 3 at the 2009 Game Developers Conference, held from March 25 to March 27 and demonstrated it on the Xbox 360 and PlayStation 3 consoles. The new engine was being developed for use on Microsoft Windows, PlayStation 3, Xbox 360, and Wii U. As for the PC platform, the engine is said to support development in DirectX 9, 10, and 11. As of June 1, 2009, it was announced that Crysis 2 would be developed by Crytek on their brand-new engine. CryEngine 3 was released on October 14, 2009.
Family tree illustrates the history of CryEngine versions
On March 1, 2010, a new tech demo of the engine was released for the i3D 2010 symposium, which demonstrates ‘Cascaded Light Propagation Volumes for Real Time Indirect Illumination’. On June 11, 2011, the Australian Defence Force revealed that Navy personnel would train on a virtual landing helicopter dock ship made using the CryEngine 3 software. As of July 1, 2011, the Mod SDK version of CryEngine 3 specifically to create custom maps, mods and content for Crysis 2 is available on Crytek’s website. Crytek also released a free-to-use version of the CryEngine for non-commercial game development. It was released as of August 17, 2011 under the name CRYENGINE Free SDK.
Crytek announced on September 9, 2011 that they would be using CryEngine 3 to bring the original Crysis to consoles. It was released for Xbox Live and PlayStation Network on October 4, 2011.
CryEngine (3.6–4)
On August 21, 2013, Crytek rebranded CryEngine (starting from version 3.6.0) to simply «CryEngine», and announced that their next CryEngine would not be advertised with a version number. The reason for this decision was the claim that this new engine bears almost no similarity to previous CryEngine versions. However, the development kits available to licensees still use version numbers. The new CryEngine version adds support for Linux and consoles such as the PlayStation 4, Xbox One, and Wii U. Subsequent appearances at events have also featured the use of CryEngine on virtual reality systems, at GDC 2015 Crytek brought a demonstration ‘Back To Dinosaur Island’ to the event to showcase such.
CryEngine V
On March 22, 2016, Crytek announced a new version of CryEngine, called CryEngine V. Additionally, a new licensing model was introduced with a «pay what you want» model for usage and access to the source code.
On September 21, 2017, CryEngine 5.4 was released. adding the Vulkan API renderer as a beta, substance integration, and other features including new C# templates, asset system updates, and new anti-aliasing techniques.
On March 20, 2018, Crytek changed the licensing from «pay what you want» to a 5% revenue-sharing model.
Entity System & Schematyc
Schematyc
The new Entity Component system (that was introduced with CRYENGINE 5.3.0) has been adjusted in order to unify with the Schematyc setup. This means that any component exposed with the new 5.4.0 format (example below) will automatically become available in the Inspector and Schematyc so that Designers can build more complex logical entities.
The existing 5.3.0 method of creating components is still available, however we’ll be phasing it out over time as the new unified setup matures. Part of evolving the new setup will be to reduce the amount of code required to expose a component, so keep in mind that the example below will not be as rough in the future:
#include <CrySchematyc/CoreAPI.h> class CMyComponent final : public IEntityComponent { public: static CryGUID& IID() { static CryGUID id = "{AD383B41-C144-4F99-9A2B-0FA2D9D86245}"_cry_guid; return id; } void MyFunction() { // Print to the console CryLogAlways("Hello world!"); // Signals can only be sent when the component was attached through Schematyc if(Schematyc::IObject* pObject = m_pEntity->GetSchematycObject()) { // Send the signal back to Schematyc, along with our instance GUID pObject->ProcessSignal(SMySignal { m_bSignalResult }, GetGUID()); } } struct SMySignal { bool m_bReturnValue; }; bool m_bSignalResult = false; }; void ReflectType(Schematyc::CTypeDesc<CMyComponent>& desc) { desc.SetGUID(CMyComponent::IID()); desc.SetEditorCategory("MyCategory"); desc.SetLabel("MyComponent"); desc.SetDescription("Does awesome things!"); desc.SetComponentFlags({ IEntityComponent::EFlags::Socket, IEntityComponent::EFlags::Attach }); desc.AddMember(&CMyComponent::m_myMember, 'memb', "MyMember", "My Member", "A property that can be changed", 10); } static void ReflectType(Schematyc::CTypeDesc<CMyComponent::SMySignal>& desc) { desc.SetGUID("{DBBDB49C-6C48-446E-9451-DAA32E6FA240}"_cry_guid); desc.SetLabel("My Signal"); desc.AddMember(&CMyComponent::SMySignal::m_bReturnValue, 'ret', "ReturnVal", "Return Value", "Description", false); } static void RegisterMyComponent(Schematyc::IEnvRegistrar& registrar) { Schematyc::CEnvRegistrationScope scope = registrar.Scope(IEntity::GetEntityScopeGUID()); { Schematyc::CEnvRegistrationScope componentScope = scope.Register(SCHEMATYC_MAKE_ENV_COMPONENT(CMyComponent)); // Functions { auto pFunction = SCHEMATYC_MAKE_ENV_FUNCTION(&CMyComponent::MyFunction, "{FE5B34ED-A5DD-4C3B-A81C-38B5D980A770}"_cry_guid, "MyFunction"); pFunction->SetDescription("Triggers our test function"); componentScope.Register(pFunction); } // Signals componentScope.Register(SCHEMATYC_MAKE_ENV_SIGNAL(CMyComponent::SMySignal)); } } CRY_STATIC_AUTO_REGISTER_FUNCTION(&RegisterMyComponent);
Standard Components
The default entities introduced with CRYENGINE 5.3.0 are still part of the Engine, but are now considered deprecated and will be removed in a future Engine release. These entities are no longer available for creation in the Sandbox Editor, but existing instances will continue to work.
The new standard components can be used by Designers as well as Programmers using C++. For example, the updated 5.4 templates heavily utilize the new standard components in order to cut down on the amount of code required when getting started. The new components can be included with the path <DefaultComponents/…`>.
The components all reside in the Cry::DefaultComponents namespace.
Miscellaneous
- EntityGUID is now a proper 128-bit GUID. Parsing of legacy 64-bit GUIDs will still work, but convert on export.
- IEntity::Activate has been removed. Individual components can now return BIT64(ENTITY_EVENT_UPDATE) in GetEventMask and call UpdateComponentEventMask to trigger re-activation.
- IEntity::IsActive has been renamed to IsActivatedForUpdates.
- IEntityComponent functions PreInit, Initialize, OnShutDown, OnTransformChanged, ProcessEvent and Run are now protected and can thus not be called from outside the component itself.
Development[]
The CryEngine software development kit (SDK), originally called Sandbox Editor, is the current version of the level or used to create levels for CryEngine by Crytek. Tools are also provided within the software to facilitate scripting, animation, and object creation. It has been included with various Crytek games (including, but not limited to, Crysis and Far Cry), and is used extensively for modding purposes. The ing style is that of the sandbox concept, with the emphasis on large terrains and a free style of mission programming. The or can also construct indoor settings.
As opposed to ors like UnrealEd, which use a «subtractive» ing style that takes away areas from a filled world space, the Sandbox has an «additive» style (like Quake II). Objects are added to an overall empty space. The Sandbox’s concentration on potentially huge (in theory, hundreds of square kilometers) terrain, means that it uses an algorithmic form of painting textures and objects onto the landscape. This uses various parameters to define the distribution of textures or types of vegetation. This is intended to save time and make the ing of such large terrains feasible while maintaining the overall «real world» sandbox free roaming style. This is different from some ing styles that often use «fake backdrops» to give the illusion of large terrains.
In a fashion somewhat comparable to the 3D Renderer Blender, which can be used for game design, the Sandbox or has the ability, with a single key press, for the or to jump straight into the current design (WYSIWYP, «What You See Is What You Play» Feature). This is facilitated without loading the game as the game engine is already running within the or. The «player» view is shown within the 3D portion of the Editor. The Editor also supports all the CryEngine features such as vehicles and physics, scripting, advanced lighting (including real time, moving shadows), Polybump technology, shaders, 3D audio, character inverse kinematics and animation blending, dynamic music, Real Time Soft Particle System and Integrated FX Editor, Deferred Lighting, Normal Maps & Parallax Occlusion Maps, and Advanced Modular AI System.