Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
> Crytek открыла исходный код CryEngine
autistic
сообщение 26.07.2016, 22:03
Сообщение #1


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Движок, на котором сделаны такие игры как: Crysis, Ryse: Son of Rome, Star Citizen и многие другие, выложен в виде исходных кодов на github.com и доступен теперь бесплатно для разработчиков игр.
Разработчики могут использовать CryEngine 5.1 для создания коммерческих игр, и при этом не обязаны платить создателям движка за его использование, так как он теперь распространяется по схеме pay what you want (плати сколько хочешь).
В случае, если игра на CryEngine будет финансово успешной и разработчик захочет заплатить за использование движка, он сможет не только выбрать произвольную сумму, но и указать, какой процент из этих денег пойдет CryEngine, а какой на поддержку инди-проектов, также использующих движок CryEngine.

Ссылка на репозиторий: https://github.com/CRYTEK-CRYENGINE/CRYENGINE

Интересный факт:
из авторитетных источников стало известно, что основной костяк программистов в разное время составляли выходцы из постсоветских стран. В комментариях к исходному коду также можно встретить их фамилии:
Хонич - автор рендерера
Давиденко - автор редактора
Князев - физики
Шайкин (основатель gamedev.ru, к слову) - то там то сям приложил руки
Мигдальский - автор анимационной системы


--------------------
nop
Перейти в начало страницы
 
 
Начать новую тему
Ответов
pentax
сообщение 26.07.2016, 22:07
Сообщение #2


Кандидат Игровых Наук
******************

Репутация:   367  
Группа: Участник
Сообщений: 3201
Награды: 10
Регистрация: 16.07.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


топикбан за нарушение правил

Сообщение отредактировал refuse - 26.07.2016, 22:08
Перейти в начало страницы
 
skina12
сообщение 26.07.2016, 22:16
Сообщение #3


Опытный Геймер
*******

Репутация:   18  
Группа: Участник
Сообщений: 178
Награды: 3
Регистрация: 01.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


с подключением


--------------------
An error... error... fails to understand... creation...
Перейти в начало страницы
 
LexxoR
сообщение 26.07.2016, 22:53
Сообщение #4


Заслуженный Мастер Игры
*************

Репутация:   759  
Группа: Участник
Сообщений: 1711
Награды: 2
Регистрация: 21.07.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(refuse @ 27.07.2016, 02:01) *
Интересный факт:
из авторитетных источников стало известно, что основной костяк программистов в разное время составляли выходцы из постсоветских стран. В комментариях к исходному коду также можно встретить их фамилии:
Хонич - автор рендерера
Давиденко - автор редактора
Князев - физики
Шайкин (основатель gamedev.ru, к слову) - то там то сям приложил руки
Мигдальский - автор анимационной системы


Ещё во времена создания первого Crysis к ним ездили из Игромании, и показывали что двигло делают практически одни русскоязычные спецы.

Нашел видос - https://youtu.be/Cjfk3U18rFw?t=6m50s


--------------------
PC1 - Core i7 5820k * 64Gb RAM * GeForce GTX 770 * 240Gb SSD * 4+3+1,5 Tb HDD
Node1 - Core i7 4770 * 16Gb RAM
Node2 - Core i7 3770 * 16Gb RAM
Node3 - Core i7 4790K * 16Gb RAM
PC2 - Core i5 2400 * 4Gb RAM * ATI FirePro V5800 * 60 Gb SSD

Хе-хе
Перейти в начало страницы
 
OlegatoR
сообщение 26.07.2016, 22:59
Сообщение #5


Gameru DA
************************

Репутация:   3704  
Группа: Администратор
Сообщений: 10206
Награды: 4
Регистрация: 03.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(LexxoR @ 26.07.2016, 22:51) *
Нашел видос - https://youtu.be/Cjfk3U18rFw?t=6m50s

О, знакомый чувак smile.gif Видели его в Киеве на выставке в 2007-м:




--------------------
Перейти в начало страницы
 
Bidjo
сообщение 26.07.2016, 23:11
Сообщение #6


Ветеран
*****

Репутация:   4  
Группа: Участник
Сообщений: 85
Награды: 1
Регистрация: 27.09.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Теперь можно сделать totstalkir.gif ?
Перейти в начало страницы
 
autistic
сообщение 28.07.2016, 01:23
Сообщение #7


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Итак, собрал CryEngine из исходных кодов, а вместе с ним небольшое демонстрационное приложение (запустить правда не удалось, думаю по причине отсутствия ресурсов). Процесс этот занял у меня всего несколько часов, да и то только потому, что не учел некоторые нюансы, зная о которых время сборки можно сократить где-то до получаса. Но обо всем по порядку:

Первым делом нам надо получить исходники, это можно сделать двумя способами
- скачать архив с исходниками с хостинга проекта https://github.com/CRYTEK-CRYENGINE/CRYENGINE
- клонировать репозиторий с исходным кодом на жесткий диск при помощи git-клиента

Я предпочитаю второй способ, также я предпочитаю использовать консольную версию гита, и вам советую, скачать гит-клиент можно здесь: https://git-scm.com/downloads
Для клонирования репозитория открываем терминал Git Bash и выбираем целевую директорию куда мы хотим клонировать папку с исходным кодом, делается это при помощи консольной команды:
Код
$ cd /диск/путь


Далее, клонируем репозиторий, введя в терминал команду git clone
Код
git clone https://github.com/CRYTEK-CRYENGINE/CRYENGINE.git


после окончания клонирования переместимся в папку с исходным кодом
Код
cd CRYENGINE


и убедимся, что мы находимся в релизной ветке проекта, в которую попадают только стабильные версии
Код
git branch

результат операции "release" - ок, мы попали в нужную ветку, если же нет, говорим следующее:
Код
git checkout release


После того как мы получили исходный код нам нужно подсосать с серверов CryTek необходимые для сборки зависимости, для этого запускаем программу download_sdks.exe которая находится в корне проекта.

Ок, переходим ко второй части - сборке проекта.
При просмотре папки с исходным кодом можно заметить файл со скриптом кроссплатформенной системы сборки проектов CMake и как вы уже догадались нам понадобится установить ее - но нет, на самом деле проект собирается другой системой сборки, называется она waf
Перед тем как ей воспользоваться, должен предупредить любителей ставить на комп все самое модное и современное - если вы уже успели поставить себе Visual Studio 2015 то знайте, она вам не пригодится (ну или придется углубляться в тонкости настройки waf, чтобы собрать проект в ней) придется воспользоваться более ранними версиями. В качестве минимальной указана версия 11.0 т.е. VisualStudio 2012, но я собирал VS 2013.
Запускаем программу cry_waf.exe и отмечаем проекты, для которых мы хотим сгенерировать сборочные конфигурации. Далее, если у вас в системе уже установлена VS 2015 необходимо в options -> Compiler detection установить в поле force_msvc другую версию компилятора (11 или 12). И наконец жмем последовательно на кнопочки Generate / Visual studio solutions и Tools / Configure, переходим в папку Solutions, запускаем солюшн CRYENGINE.sln и компилируем код.

Сообщение отредактировал refuse - 28.07.2016, 01:26


--------------------
nop
Перейти в начало страницы
 
MegaNub
сообщение 28.07.2016, 08:36
Сообщение #8


Продвинутый геймер
********

Репутация:   15  
Группа: Участник
Сообщений: 322
Награды: 3
Регистрация: 01.05.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


А SandBox в исходниках имеется? Чего-то не обнаружил иль пропустил. Если нет, выходит далеко не полные.

Сообщение отредактировал MegaNub - 28.07.2016, 08:36
Перейти в начало страницы
 
RedMagic
сообщение 28.07.2016, 08:44
Сообщение #9


Высший Игровой Бог
************************

Репутация:   1747  
Группа: Супермодератор
Сообщений: 12594
Награды: 15
Регистрация: 05.11.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(refuse @ 28.07.2016, 01:21) *
также я предпочитаю использовать консольную версию гита, и вам советую, скачать гит-клиент можно здесь: https://git-scm.com/downloads

Для новичков (и не только), удобнее будет использовать официальный клиент гитхаба.


--------------------
Перейти в начало страницы
 
autistic
сообщение 28.07.2016, 10:50
Сообщение #10


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(MegaNub @ 28.07.2016, 10:34) *
А SandBox в исходниках имеется?

Нет, насколько я понимаю исходники редактора в открытый доступ не попали, также как не попали туда исходные коды игр от Crytek.
Полагаю, разработчики предоставили нам исходные коды ядра, вокруг которого выстраивается игра со своими редакторами, утилитами, игровой логикой и прочими специфическими фишками. Но вполне возможно, что предусмотрены некоторые лазейки для использования Sandbox в качестве внешнего инструмента, не могу пока ничего определенного сказать на этот счет т.к. только начал исследование.


Цитата(STALKER2011x @ 28.07.2016, 10:42) *
Для новичков (и не только), удобнее будет использовать официальный клиент гитхаба.

Это дело привычки, на мой вкус привыкать надо сразу к хорошему, а консольная утилита хороша тем, что позволяет общаться с гитом напрямую, избегая оболочек которые навязывают гит таким, каким его себе представляет ее разработчик smile.gif


--------------------
nop
Перейти в начало страницы
 
abramcumner
сообщение 28.07.2016, 10:58
Сообщение #11


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(refuse @ 28.07.2016, 01:21) *
собрал CryEngine из исходных кодов

Цитата
запустить правда не удалось

Сборка не засчитана biggrin.gif
Перейти в начало страницы
 
autistic
сообщение 28.07.2016, 11:03
Сообщение #12


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 28.07.2016, 12:56) *
Сборка не засчитана biggrin.gif

билд лог утверждает обратное smile.gif


--------------------
nop
Перейти в начало страницы
 
autistic
сообщение 29.07.2016, 00:11
Сообщение #13


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Нашел ошибку в physicalentity.cpp(24), очевидно объявленный в этой строке массив объектов RigidBody используется при конструировании другого объекта.
После того как исправил запустилось демонстрационное приложение и я увидел пустую консоль, очевидно необходимо подсунуть ресурсы.

Проблемная строчка помечена комментарием:


Приделал костыль на скорую руку:
git diff
diff --git a/Code/CryEngine/CryPhysics/physicalentity.cpp b/Code/CryEngine/CryPhysics/physicalentity.cpp
index 4f54d21..d0c591a 100644
--- a/Code/CryEngine/CryPhysics/physicalentity.cpp
+++ b/Code/CryEngine/CryPhysics/physicalentity.cpp
@@ -21,7 +21,12 @@
#include "rigidentity.h"
#include "softentity.h"

-RigidBody g_StaticRigidBodies[MAX_PHYS_THREADS];
+RigidBody *GetStaticRigidBodies()
+{
+ static RigidBody g_StaticRigidBodies[MAX_PHYS_THREADS];
+ return g_StaticRigidBodies;
+}
+
CPhysicalEntity g_StaticPhysicalEntity(0);
geom CPhysicalEntity::m_defpart;

diff --git a/Code/CryEngine/CryPhysics/physicalentity.h b/Code/CryEngine/CryPhysics/physicalentity.h
index 084bb6d..77617df 100644
--- a/Code/CryEngine/CryPhysics/physicalentity.h
+++ b/Code/CryEngine/CryPhysics/physicalentity.h
@@ -393,8 +393,8 @@ public:
static int g_nPartsAlloc,g_nJointsAlloc;
};

-extern RigidBody g_StaticRigidBodies[];
-#define g_StaticRigidBody (g_StaticRigidBodies[0])
+extern RigidBody *GetStaticRigidBodies();
+#define g_StaticRigidBody (GetStaticRigidBodies()[0])
extern CPhysicalEntity g_StaticPhysicalEntity;

template<class T> int GetStructSize(T *pstruct);
diff --git a/Code/CryEngine/CryPhysics/rigidbody.cpp b/Code/CryEngine/CryPhysics/rigidbody.cpp
index 49f6460..ab671ab 100644
--- a/Code/CryEngine/CryPhysics/rigidbody.cpp
+++ b/Code/CryEngine/CryPhysics/rigidbody.cpp
@@ -447,14 +447,14 @@ char *AllocSolverTmpBuf(int size)
return 0;
}

-extern RigidBody g_StaticRigidBodies[];
+extern RigidBody *GetStaticRigidBodies();
void RegisterContact(entity_contact *pcontact)
{
int iCaller = get_iCaller_int();
if (!(pcontact->flags & (contact_maintain_count|contact_rope)))
pcontact->pBounceCount = &pcontact->iCount;
- if ((UINT_PTR)pcontact->pbody[1]-(UINT_PTR)g_StaticRigidBodies<(UINT_PTR)(sizeof(RigidBody)*MAX_PHYS_THREADS))
- pcontact->pbody[1] = &g_StaticRigidBodies[iCaller];
+ if ((UINT_PTR)pcontact->pbody[1]-(UINT_PTR)GetStaticRigidBodies()<(UINT_PTR)(sizeof(RigidBody)*MAX_PHYS_THREADS))
+ pcontact->pbody[1] = &GetStaticRigidBodies()[iCaller];
g_pContacts[g_nContacts++] = pcontact;
g_nContacts = min(g_nContacts,(int)(CRY_ARRAY_COUNT(g_pContacts))-1);
}


--------------------
nop
Перейти в начало страницы
 
autistic
сообщение 31.07.2016, 20:57
Сообщение #14


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


С ресурсами действительно проблема, пытался подсунуть ресурсы из CryEngine SDK собранному из исходников демо - не жрет sad.gif Разбираюсь.


--------------------
nop
Перейти в начало страницы
 
autistic
сообщение 01.08.2016, 00:05
Сообщение #15


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Всё, я его победил biggrin.gif



В следующий раз попытаюсь поинтереснее сцену запустить wink_old.gif

Сообщение отредактировал refuse - 01.08.2016, 00:27


--------------------
nop
Перейти в начало страницы
 
abramcumner
сообщение 01.08.2016, 14:50
Сообщение #16


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(refuse @ 01.08.2016, 00:03) *
Всё, я его победил biggrin.gif

Вооо, другое дело.

Можно движок статически слинковать? Какой размер экзешника получается?
Перейти в начало страницы
 
Asterix
сообщение 01.08.2016, 15:42
Сообщение #17


Продвинутый геймер
********

Репутация:   90  
Группа: Участник
Сообщений: 395
Награды: 3
Регистрация: 07.04.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


эх исходники бы Sandbox 2 sad.gif


--------------------
no more running
Перейти в начало страницы
 
autistic
сообщение 01.08.2016, 16:03
Сообщение #18


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(abramcumner @ 01.08.2016, 16:48) *
Можно движок статически слинковать?

В солюшне такая конфигурация отсутствует + CryEngine использует модульную архитектуру, т.е. каждый компонент вынесен в отдельную динамическую библиотеку - рендерер в свою, физика в свою, игровая логика в свою и т.д. Загружаются модули в рантайме ф-ией LoadLibrary, которая имеет вид:
Код
#ifdef _WIN32
#define LoadLibrary LoadLibraryA
#else
...
#endif

Так что без усилий в статическую библиотеку скомпилировать не получится.

Цитата(abramcumner @ 01.08.2016, 16:48) *
Какой размер экзешника получается?

всего размер exe + dll в выходном каталоге примерно 122 МБ в отладочной конфигурации, в релизной еще не собирал, вечером посмотрю.

Цитата(Ray @ 01.08.2016, 17:40) *
эх исходники бы Sandbox 2

Думается мне они не нужны. Во всяком случае можно вполне обойтись сборкой редактора из комплекта CryEngine SDK.


--------------------
nop
Перейти в начало страницы
 
Tron
сообщение 14.08.2016, 03:09
Сообщение #19


Игровой Эксперт
***************

Репутация:   407  
Группа: Участник
Сообщений: 2394
Награды: 5
Регистрация: 19.01.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Ray @ 01.08.2016, 15:40) *
эх исходники бы Sandbox 2 sad.gif

Возьми ламберярд первых версий, отличий 0

Цитата
Так что без усилий в статическую библиотеку скомпилировать не получится.

Получится, там был раньше(в CE3) отдельный флаг smile.gif
Перейти в начало страницы
 
Neo][
сообщение 14.08.2016, 16:00
Сообщение #20


The One
****************

Репутация:   744  
Группа: Участник
Сообщений: 2715
Награды: 5
Регистрация: 05.12.2005




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Ray @ 01.08.2016, 17:40) *
эх исходники бы Sandbox 2

Ray, на офф. форуме недовольствоели по поводу отсутствия исходников sandbox-a, сначала cry team написали, что в планах нет из-за компонентов 3-х сторон. На что им показали в сторону амазона с их lumberyard.
По итогу, на сколько я помню, закончилось всё тем, что как только выделят инженера для адаптации к open source, так и появятся исходники.


--------------------
Перейти в начало страницы
 

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.04.2024, 15:28