Cryengine 3 sdk

Animation Compression Details

An animation source file is processed by the RC to output a compressed CAF file used by CRYENGINE. The compression involves the following steps:

Remove data in channels with no moves (same to the bind pose within the whole duration)

Remove some key-frames based on error thresholds

  • Key-frames which can be interpolated with the given error threshold are removed.
  • Each joint can have a custom error threshold.

Quantize quaternions

  • A quaternion consists of 4 floats (128bit) normally. But for the normalized one, we can keep just 3 floats (96bit).
  • There are three kinds of schemes for the quantization:
    • 128bit (no compression), 
    • 48bit (15bit+15bit+15bit, and rest bits for indexing the omitted element),
    • 64bit (20bit+21bit+21bit, and rest bits for indexing the omitted element).
  • In the default setting, the 48-bit scheme is used for most cases.
  • RC determines the most effective scheme under the given error threshold (the same one given in step 2).
  • You can find more details in the ‘QuatQuantization.h’.

Create animation databases (optional)

During this multiple CAF files are combined into a single DBA file, all duplicate controllers get eliminated.

Техническая демонстрация CryEngine 5.6 дразнит отсылками к Crysis

Прошло много времени с тех пор, как Crysis «плавил» компьютеры, впечатляя красотой и реалистичностью происходящего на экране. На подходе консоли следующего поколения, и не пришло ли время сделать это снова? Выпущенная Crytek техническая демонстрация новой версии CryEngine 5.6 не только вызывает интерес, но и делает очевидные отсылки к славным временам Crysis.

Видео начинается, как и следует ожидать, с графических достоинств недавно выпущенного сетевого боевика Hunt: Showdown от Crytek. Во всей красе демонстрируются объёмный туман в реальном времени, полностью динамическое и глобальное освещение в реальном времени, физика верёвок, цепей, тканей и изгибающейся от прикосновений растительности, региональное размытие в движении с учётом перемещения отдельных объектов, а не всего кадра, глубина резкости, аккуратное совмещение объектов и объёмные лучи.


The Land of Pain

Затем камера проходит через серию порталов, которые уже отдают дань прежним играм Crytek. Динамическое региональное освещение внутри помещений демонстрирует и объёмный свет, и его отражения от поверхностей, реалистичные мягкие тени — в общем, те аспекты, которые сегодня, как правило, улучшает трассировка лучей, хотя данная технология здесь не задействована. Впрочем, Crytek уже демонстрировала свои достижения в этой области, причём на видеокарте Radeon Vega 56.

Следующий портал ведёт в зону в духе античного мира Ryse: Son of Rome. Наконец, на отметке 2:15 зрителя отправляют в великолепные джунгли — и окружение, и музыкальное сопровождение очень напоминают Crysis и его саундтрек.

В видео есть и другие моменты, делающие отсылки к знаменитому шутеру: в начале, когда демонстрируется пользовательский интерфейс, путь файла включает пользователя prophet — это имя одного из центральных персонажей серии Crysis, Пророка. К тому же дважды звучащее в ролике название CryEngine тоже озвучено голосом, похожим на Пророка, а во втором случае сопровождается знакомым звуком трансформации защитных свойств костюма.

Конечно, всё это не могло остаться без внимания поклонников Crysis, которые пытаются найти ответы, что же эти довольно очевидные отсылки значат? Может быть, Crytek готовит обновлённое издание старых игр на новом движке или делает намёки на разработку новой игры в серии?


Aporia: Beyond the Valley

Но всё это кажется маловероятным сегодня, учитывая обстоятельства, в которые поставлена студия. Последняя игра в серии, Crysis 3, вышедшая в далёком 2013 году, не оправдала ожиданий издателя и владельца интеллектуальных прав Electronic Arts, да и у разработчика в лице Crytek последние годы были непростыми.


Prey

На уточняющий вопрос глава пресс-службы Crytek Йенс Шефер (Jens Schäfer) ответил сухо: «Это чистая технологическая демонстрация CryEngine». Что ж… когда-нибудь?


Everybody’s Gone to the Rapture

CryEngine 5.6 уже доступен разработчикам на официальном сайте и через панель управления движком. Поддерживаются платформы ПК, Xbox One, PlayStation 4 и Oculus Rift. Последняя версия вносит более тысячи улучшений и включает проверенные на практике функции, использованные в Hunt: Showdown.


Sniper Ghost Warrior 3

Лицензионная политика предусматривает 5 % отчисления от продаж продуктов, созданных на базе этого движка, и не требует никаких единоразовых платежей. При этом Crytek предоставляет полный исходный код своей мощной платформы для разработки игр.

Состав и лицензионная политика[править | править код]

Системные требования CryEngine 3 SDK
Минимальные Рекомендуемые
Wintel (IBM PC + Microsoft Windows)
Операционная система Windows XP SP2, Windows Vista SP1 или SP2, Windows 7 Windows 7
Центральный процессор 32-битный или 64-битный (желательна многоядерность) Intel Core 2 Duo 2 GHz, AMD Athlon 64 X2 2 GHz и выше
Объём RAM 1—2 GB 2—4 GB
Видеокарта Поддержка DirectX 9c nVidia 8800GT 512 MB, ATI 3850HD 512 MB и выше

CryEngine 3 SDK базируется на игровом движке CryEngine 3 и содержит все компоненты последнего наряду со средствами разработки, включая редактор уровней Sandbox третьей версии.

CryEngine 3 SDK содержит множество дополнительных инструментов, включая исходный код игровых ассетов на C++, экспортеры контента, примеры скриптов, механизм Flowgraph и проч. Вместе с тем, графическая компонента CryEngine 3, вошедшая в первую версию CryEngine 3 SDK, поддерживает лишь DirectX 9; добавление поддержки DirectX 11 заявлено разработчиками в последующих выпусках. В составе CryEngine 3 SDK присутствуют 32-битная и 64-битная версии инструментов.

В первом выпуске CryEngine 3 SDK доступ к редактированию уровней имеет лишь их создатель; он не может открыть доступ на редактирование другим пользователям. В последующих версиях заявлено внедрение новой системы управления доступом к уровням, которая позволит создавать коллективные проекты, регулировать уровень доступа участников этих проектов к уровням и т. д.

Лицензия CryEngine 3 SDK позволяет бесплатно использовать его для создания и распространения некоммерческих игр. В случае, если разработчик желает использовать CryEngine 3 SDK в коммерческих целях, он должен отчислять компании Crytek 20 % от продаж своих игр, разработанных с использованием данного SDK.

Learning CryEngine

When you are starting out new in CryEngine it can be hard to get your head around. When I started I knew nothing so I had to find all the resources for myself, but not any more. I have gathered the best tutorials from all over the web.

Eat 3D

If you have a little cash in your pocket that you’re willing to spend on tutorials, these are the best. Hélder Pinto, Industry Professional and Level Architect for Crysis 3, runs you through CryEngine, starting with the basics and going all the way up to advanced level creation.

Eat 3D’s CE3 tutorials are extremely in depth and cover everything you need to make a world within the engine. These tutorials do not cover coding or full game creation, but are some of the best in level design.

CyberGameArts

For those who can’t afford to (or simply don’t want to) pay for tutorials, CyberGameArts runs through all the basics to learn and create with CryEngine.

He covers many topics that aren’t widely known and answers questions on his YouTube page for any users who need help.

The Manual

Prefer reading? Or can’t find what you need? The amazing guys over at CryTek and the CryDev website have put together a CryEngine 3 «Manual» that covers absolutely everything. From basic tools, to fire propagation, to changing source code and editing preferences.

Along with the manual, lots of the articles in there will give you videos and assets pre-created as examples

Tip: In case you are running an older version of CryEngine, there is also a tab for old/obsolete tutorials.

Плюсы и минусы

CryENGINE 3 пользуется среди разработчиков игр огромной популярностью, что обусловлено рядом его преимуществ:

  • Для создания качественных игр не требуется никакого стороннего программного обеспечения. Все необходимые инструменты предусмотрены в CryENGINE 3.
  • Использование передовых графических технологий.
  • Движок поддерживает не только персональные компьютеры, но и платформы Playstation, Xbox.
  • В случае пропажи интернет-соединения, сохранить результат работы можно в редакторе.
  • Удобный интерфейс.
  • Функция сжатия анимации позволяет сократить использование оперативной памяти до 90 процентов.
  • Реалистичная физика.
  • Возможность зарабатывать на платном распространении своих проектов.
  • Нет необходимости в проведении инсталляции. Чтобы начать работу с платформой, достаточно распаковать архив и запустить редактор уровней.
  • Широкий функционал.
  • Наличие эффективного 3D стереоскопического решения.
  • Исключительное качество графики, приближенное к реальным съемкам.
  • Платформа идет в ногу со временем, пользователи могут оптимизировать свои проекты под GPU-рендеринг, а также внедрять поддержку DirectX
  • Приложение поддерживает инверсную кинематику.
  • Движок оснащен передовым искусственным интеллектом.
  • Совместимость с популярными графическими редакторами. Из них можно импортировать в приложение модели и текстуры.
  • Множество положительных отзывов со стороны профессиональных разработчиков.

Недостатки:

  • В программе предусмотрен лишь англоязычный интерфейс.
  • Отсутствие нормальной технической поддержки, из-за чего пользователям придется справляться со всеми трудностями самостоятельно.
  • Сложный процесс сборки билда и отсутствие кнопки “build”.
  • Множество багов как на сервере, так и в самом редакторе.

◆ PhysicsEntityFlags

enum CryEngine.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

◆ DynamicLightFlags

enum CryEngine.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.

My First Level

Chrysalis has some code features which are specific to a long-term goal I have, though most of these will not affect you. One that does affect everyone is the way you play test a level.

Most CRYENGINE games are designed with a player who is also the actor, and that player is spawned into the game as an actor when you connect to the game.

I have worked hard to refactor the code so that the concept of player and actor / character are now completely separate. Code relating to the player is kept to a minimum, in particular:

  • camera management
  • input management

All the other code is split off into an actor class. Actors can have lifespans totally indepedant of the player. A player is able to ‘attach’ themselves to an actor, the camera and input are then directed to that actor — who acts accordingly.

While I expect to add some code in the near future to handle spawning a new actor when the player enters game mode, for now, it does not.

When you first create a level, be sure to add a new ‘Character’ entity to that level. Name that entity ‘Hero’, and run a console command to attach the player camera and input to that character:

This will set up the player to attach to the ‘Hero’ character — something that is done automatically when the level is loaded.

You will not be able to enter game mode to test a level without at least one character in the level, and attaching the player to that character.

I will sort out something more convenient in time, as I get close to making a release of this code.

Known Issues

  • Loading the test_all map in game mode may not work until after you have loaded it in the Sandbox and exported the level.
  • Animations may not work correctly until after they have been loaded once in the Sandbox. They need to be compressed by the engine.
  • You may need to generate all the metadata again, particularly if you find that some assets are not loading, like the character definitions or the animations. If so, right click on Chrysalis.cryproject in the Windows Explorer and choose ‘Generate / Repair metadata’.
  • Some warnings / errors on loading a level — safe to ignore
  • Switching models between first and third person modes doesn’t presently work.
  • Interaction with entities is not working yet.
  • Keybinds are hard-coded and will remain so until a replacement for the keybind XML file is available.
  • Actor animations do not have any transitions as yet, and so rotations will look bad for a while.
  • Crouch animations are from the Motus Mobililty Basic / Pro pack, and as such I cannot distribute them. I have built a blendspace for movement while crouching, but it won’t be functional unless you buy the appropriate pack of animations and import them into the project. Place them in the assets/objects/characters/human/male/animations/crouch/ folder, making sure to follow the general naming conventions.
  • The CryCamera asserts the first time you switch from first person view to third person view. It can be safely ignored for now.
  • Motus character does not have a physics proxy body yet. That will need to be added at some time to allow detection of hits to body parts.

Key Binds

  • WASD
  • mouse wheel to zoom in and out on the ActionRPG camera
  • left click to interact — code is in flux so it may do weird random things — beware, it’s buggy so it can get locked up as well
  • F — interact — same as left mostly
  • C — crouch
  • H — crawl — no animations yet
  • V — kneel — no animations yet
  • B — sit — no animations yet
  • F M X — use, drop and toss items
  • 0 — 9 — action bar keys — these will activate actions for interactive items. There is no UI yet to show which things will happen if you press these keys…just try hitting 1-4 and see if anything happens.
  • J K L — inspection start, inspect, and inspection end. May not currently work.
  • PageUp, PageDn, Left, Right, Up, Down — to help debug the camera, these offset the camera by a small amount with each press.

Contact

If you want to contact me, you can often find me on the CRYENGINE community Slack channel under the name ‘Ivan Hawkes’.

If you have any questions about the code, please take the time to try and find the answer within the code before contacting me for help. General questions about C++ or CRYENGINE should be directed to Google, Slack, the CRYENGINE Forums or online discussions groups for that topic.

История разработки и поддержки[править | править код]

Первые сведения о бесплатной версии CryEngine 3 SDK появились в марте 2010 года, когда Карл Джонс (англ. Carl Jones), директор по бизнес-развитию в Crytek, выступая на India Game Developer Summit 2010, сообщил о версии CryEngine 3 для независимых разработчиков с пониженной ценой, а также о полностью бесплатной версии движка. Подробности не уточнялись.

15 марта 2011 года британский ресурс Develop опубликовал большое интервью с Авни Ерли (англ. Anvi Yerli), одним из сооснователей и руководителей Crytek. В этом интервью Ерли заявил, что CryEngine 3 SDK станет конкурентом Unreal Development Kit, который предлагает приблизительно аналогичную функциональность для движка Unreal Engine 3 и продвигается компанией Epic Games.

Во второй половине апреля 2011 года Джеват Ерли в письме сообществу сайта CryMod.com официально сообщил, что CryEngine 3 SDK будет выпущен в августе 2011 года.

17 августа 2011 года состоялся официальный выпуск CryEngine 3 SDK. Карл Джонс так прокомментировал выпуск SDK: «С выходом нашего SDK мы призываем создателей игр попробовать CryEngine 3, и я надеюсь, что это приведёт к созданию новых компаний, использующих наш движок

Что ещё более важно, мы рассчитываем увеличить количество талантливых разработчиков на CryEngine 3 и повысить уровень нашего интернет-сообщества пользователей. Этот SDK содержит больше инструментов, чем мы когда-либо выпускали ранее — он даёт людям возможность создавать совершенно новые игры с нуля, а не заниматься моддингом существующих игр от Crytek, и потому мы призываем всех заинтересованных и инди-разработчиков попробовать его»

Одновременно с выпуском данного продукта сайт CryMod.com, запущенный в 2003 году и предназначенный для развития и поддержки моддинга всех игр от Crytek, был переименован на CryDev.net, что отражает изменение его направленности: с выходом CryEngine 3 SDK он стал также главным интернет-порталом по поддержке пользователей данного SDK, а не только модостроителей к существующим играм. На следующий день, 18 августа, количество скачиваний данного средства разработки превысило 20 000 раз. Выпуск CryEngine 3 SDK был замечен и освещён IT- и игровой прессой, многие журналисты сравнивали SDK от Crytek со своим ближайшим и сильнейшим конкурентом — Unreal Development Kit.

22 августа, через 5 дней после выпуска CryEngine 3 SDK, Crytek сообщила, что его количество зарегистрированных загрузок превысило 100 000 раз. Таким образом, CryEngine 3 SDK стал лидером по скорости скачивания среди всех бесплатных редакций SDK игровых движков, обогнав Unreal Development Kit (50 000 загрузок в первую неделю) и Unity (20 000 загрузок в первые две недели).

2 сентября 2011 года количество скачиваний CryEngine 3 SDK превысило 300 000 раз. Авни Ерли сообщил сайту Develop, что источники загрузок SDK равномерно распределены по США, Европе и Азии.

28 сентября 2011 года количество скачиваний достигло отметки в 450 000 раз. Авни Йерли, комментируя эту новость, сообщил, что компания получила множество запросов на лицензирование CryEngine 3 SDK, причем не только от игровых разработчиков, но и от компаний, не связанных с игровой индустрией. Кроме этого, он также выразил надежду, что CryEngine 3 SDK поможет реализовать свои задумки независимым разработчикам.

17 октября 2011 года вышло первое обновление для CryEngine 3 SDK, которое содержало обновленный до версии 3.3.6 движок CryEngine 3 и билд самого SDK под номером 2572. Основным нововведением стало появление ранее обещанной поддержки коллективного создания модификаций — была создана онлайновая база данных модов, репозиторий, который позволяет разработчикам организовывать и координировать коллективные проекты. Также в новой версии SDK был улучшен процесс загрузки уровней, внесены изменения в систему частиц и игровой ИИ. Помимо этого, обновление исправляло множество ошибок, содержало подстройки многих параметров и незначительные улучшения функционала. Примерно в одно время с выходом данного обновления количество скачиваний CryEngine 3 SDK достигло пол-миллиона.

21 октября 2011 года вышла новая версия CryEngine 3 SDK, в которой движок CryEngine 3 был обновлен до версии 3.3.7.

13 апреля 2012 года вышла новая версия (3.4.0) CryEngine 3 SDK поддерживающая DirectX 11

Installing CRYENGINE

  1. Double click on the CRYENGINE Launcher icon, then enter your log in credentials. NOTE: If a new CRYENGINE Launcher version is available a pop-up will appear. We recommend that the most up to date version of the CRYENGINE Launcher is always used. Below is the main Launcher dashboard. There are different ways in which an Engine version can be downloaded via the Launcher dashboard, however the fastest way is to click on the  button.
  2. Doing so opens the dashboard shown below. All the Engine versions that are available for download, and the Engines that you have previously installed (if any have been installed) are displayed. In the example below we will install CRYENGINE version 5.6.1. Under CRYENGINE 5.6.1 click on the  button. The Engine will then start to download — this process may take some time to complete (depending on your network connection speed).
  3. Once the Engine has download, you will be presented with a pop-up like the one shown below. Depending on what you intend to do with the Engine now determines what you need to do next. For example, if you do not intend to work with Game Code, a third party Audio middleware product, develop C++ plugins, use plugins and tools for supporting the export and content creation processes used with various DCC packages then you will not need to install any additional components and can therefore just click on the Skip button. The Engine installation process is then complete and you can proceed to Managing CRYENGINE Projects — Creating, Importing & Upgrading Projects.
  4. However, for those CRYENGINE users that do intend to to work with any of the elements mentioned above, then some further installation steps are required.Click on the Go button (from the pop-up), the Launcher dashboard shown below will open. There are 3 main sections; 1: IDE and Compiler, 2: SDKs and Dependencies, 3: Tools and Plugins. Sections 1: and 2: relate to third party applications while section 3: relates to CRYENGINE itself. It is worth you exploring what additional components are available (there is a scrolling function in sections 1: and 2:.For more details about installing the components available in section 3:, then see CRYENGINE Plugins and Tools. Completing the installation of the various dependencies is then a case of working through sections 1:, 2: and 3: and installing the components that you need for your intended use of the Engine. Finally, once you have installed the additional components that you require, then you can proceed to Managing CRYENGINE Projects — Creating, Importing & Upgrading Projects.  

Указатели

Программисты очень любят проверять указатель на равенство нулю. Вот если бы они ещё знали, как часто они делают это неправильно. Проверяют, когда уже поздно.

Приведу один пример, остальное перечислю списком.

V595 The ‘p’ pointer was utilized before it was verified against nullptr. Check lines: 325, 326. scripthelpers.h 325

Обещанный список из 35 сообщений: CryEngineSDK-595.txt

Неопределённое поведение

V567 Undefined behavior. The ‘m_index’ variable is modified while being used twice between sequence points. inetwork.h 2303

Циклы «на один раз»

V612 An unconditional ‘break’ within a loop. weapon.cpp 2854

Тело цикла будет выполнять только один раз. Причина — безусловный оператор ‘break’. При этом, в цикле нет операторов ‘continue’.

Есть ещё несколько таких подозрительных циклов:

  • gunturret.cpp 1647
  • vehiclemovementbase.cpp 2362
  • vehiclemovementbase.cpp 2382

Странные присваивания

Фрагмент N1.

V570 The ‘modifiedSlopeNormal.z’ variable is assigned to itself. playerstateground.cpp 227

Фрагмент N2.

V519 The ‘objtypes’ variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 2807, 2808. physinterface.h 2808

Члену класса ‘objtypes’ два раза присваивается значение.

Фрагмент N3.

V519 The ‘maxChargedThrowSpeed’ variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1284, 1285. weaponsharedparams.cpp 1285

И ещё несколько таких аномальных присваиваний:

  • The ‘bExecuteCommandLine’ variable. Check lines: 628, 630. isystem.h 630
  • The ‘flags’ variable. Check lines: 2807, 2808. physinterface.h 2808
  • The ‘entTypes’ Variable. Check lines: 2854, 2856. physinterface.h 2856
  • The ‘geomFlagsAny’ variable. Check lines: 2854, 2857. physinterface.h 2857
  • The ‘m_pLayerEffectParams’ variable. Check lines: 762, 771. ishader.h 771

Нужно быть аккуратным с именами сущностей

V618 It’s dangerous to call the ‘sprintf_s’ function in such a manner, as the line being passed could contain format specification. The example of the safe code: printf(«%s», str); gamephysicssettings.cpp 174

Пожалуй, это не ошибка, но опасный код. Если вдруг в имени сущности встретится символ ‘%’, то результаты могут быть весьма неожиданными.

Одинокий странник

V607 Ownerless expression ‘insertResult.first->second.m_entityId’. persistantstats.cpp 4814

Одинокое выражение, которое ничего не делает. Ошибка? Недописанный код?

Ещё одно место в коде: recordingsystem.cpp 2671

Оператор new

V668 There is no sense in testing the ‘m_pWriteBuffer’ pointer against null, as the memory was allocated using the ‘new’ operator. The exception will be generated in the case of memory allocation error. crylobbypacket.h 88

Код устарел. Теперь при ошибки выделения памяти оператор ‘new’ генерирует исключение.

Другие места, ждущие рефакторинга:

  • cry_math.h 73
  • datapatchdownloader.cpp 106
  • datapatchdownloader.cpp 338
  • game.cpp 1671
  • game.cpp 4478
  • persistantstats.cpp 1235
  • sceneblurgameeffect.cpp 366
  • killcamgameeffect.cpp 369
  • downloadmgr.cpp 1090
  • downloadmgr.cpp 1467
  • matchmakingtelemetry.cpp 69
  • matchmakingtelemetry.cpp 132
  • matchmakingtelemetry.cpp 109
  • telemetrycollector.cpp 1407
  • telemetrycollector.cpp 1470
  • telemetrycollector.cpp 1467
  • telemetrycollector.cpp 1479
  • statsrecordingmgr.cpp 1134
  • statsrecordingmgr.cpp 1144
  • statsrecordingmgr.cpp 1267
  • statsrecordingmgr.cpp 1261
  • featuretester.cpp 876
  • menurender3dmodelmgr.cpp 1373

◆ EntitySlotFlags

enum CryEngine.EntitySlotFlags : uint
strong

Flags the can be set on each of the entity object slots.

Enumerator
Render 

Draw this slot.

RenderNearest 

Draw this slot as nearest. .

RenderWithCustomCamera 

Draw this slot using custom camera passed as a Public ShaderParameter to the entity.

IgnorePhysics 

This slot will ignore physics events sent to it.

BreakAsEntity 

Indicates this slot is part of an entity that has broken up.

RenderAfterPostProcessing 

Draw this slot after post processing.

BreakAsEntityMP 

In MP this is an entity that shouldn’t fade or participate in network breakage.

CastShadow 

Draw shadows for this slot.

IgnoreVisAreas 

This slot ignores vis areas.

GIModeBit0 

Bit one of the GI Mode.

GIModeBit1 

Bit two of the GI Mode.

GIModeBit2 

Bit three of the GI Mode.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector