Cryengine V
GameDev.ru / Сообщества / Cryengine / Форум / Cryengine V : Разбор основ

Cryengine V : Разбор основ

Поделиться

Страницы: 1 2 3 4 ... 13 14 15 Следующая

codingmonkeyПостоялецwww14 авг. 201612:50#0
+ Показать

...то чувство когда разбираешься с движком
Изображение

Правка: 14 авг. 2016 14:16

codingmonkeyПостоялецwww14 авг. 201623:52#1
Пока разбираюсь, решил еще записывать некоторые пройденные моменты...

Установка CryBlend

+ Показать

Wiki CryBlend
https://github.com/travnick/CryBlend/wiki/CryBlend


Запуск игры с вашим уровнем (через autexec.cfg)

+ Показать


Запуск игры с вашим уровнем (используя С#)

+ Показать

Правка: 16 авг. 2016 19:07

codingmonkeyПостоялецwww15 авг. 201611:22#2
>я правильно понял, ты начал разбирать с нуля сабж?

Я бы даже сказал с -1 :)
т.к. шарпом я особо не увлекался да и двиг незнакомый

Меня дико бесит этот 2д пример со "звездолетом" т.к. там нет примера камеры, простой обзорной камеры, Карл!
Поэтому первым делом я решил запилить свою )

Свободная(летающая) камера на С#

+ Показать

class Observer

- написана она на базе Entity, но вероятно её так же можно попытаться написать на базе SceneObject у которого есть для всех привычные OnUpdate...

- так же я дописывал Input который идет в составе фейворка, но в тоже время есть Mouse со всеми мышиными событиями, правда я не проверял будет ли он слать сообщения если мышка вышла за пределы окна. С моей доработкой Input'a это пофиг.

codingmonkeyПостоялецwww15 авг. 201612:24#3
>погоди, погоди...
нее, нее... кони уже убежали чего годить то?)

>ты можешь в двух словах сначала описать двиг, сборку, общие принципы построения приложений на нём, инструменты, преимущества/недостатки?
этого навалом в интернете, цель моего "повествования" это мой путь освоения движка т.е. совсем о другом.

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

>Ты предварительно что-то узнал о нём же?
Я в свое время узнал что он стал бесплатным.
И вопреки общему мнению, то что он заточен на шутеры, нет на нём можно делать хоть черта рогатого, кто-то даже RTS делал.

>ты же не просто взял скачал двиг и начал тыкаться?
ну и начал тыкаться да, "халява" же :))

Правка: 15 авг. 2016 12:26

1vanKУдалёнwww15 авг. 201612:30#4
> цель моего "повествования" это мой путь освоения движка т.е. совсем о другом.

подписался на твой блог, всмысле вступил в группу)

1vanKУдалёнwww15 авг. 201612:39#5
Меня так-то другие движки инетресуют только с точки зрения "чего можно утянуть в урхо". В частности я все обдумываю (долго время) как лучше всего UI организовать, потому что у меня на него 50% времени уходит в моих прогах) Мб в крайэнжине в плане интерфейса что-то придумали интересное
codingmonkeyПостоялецwww15 авг. 201613:01#6
>подписался на твой блог, всмысле вступил в группу)
Круто ) еще пришлось канал запилить другой чтобы с Урхо stuff'ом не мешалось.

>как лучше всего UI организовать,
даже не интересовался пока
но, вот к примеру таким образом создается и обновляется текстовый вывод для счетчика фпс

      var canvas = SceneObject.Instantiate<Canvas>(Root);

      // Create FPS Label.
      _fpsText = canvas.AddComponent<Text>();
      _fpsText.Alignment = Alignment.TopLeft;
      _fpsText.Height = 28;
      _fpsText.Offset = new Point (10, 10);
      _fpsText.Color = Color.Yellow.WithAlpha(0.5f);


      // Update FPS Label.
      if (DateTime.Now > _updateFPSTime)
      {        
        _fpsText.Content = _frameCount + " fps";
        _frameCount = 0;
        _updateFPSTime = DateTime.Now.AddSeconds(1);
      }
      _frameCount++;

Вообще их фреймворк на С# это какая-та хрень не дописанная имхо.
есть SWIG костыли(байндинги) а сверху лежит этот фреймворк, который предлагается юзать юзверю, хотя можно и SWIG дергать, так например я кастомный вид создавал 

Правка: 15 авг. 2016 13:29

codingmonkeyПостоялецwww15 авг. 201614:07#7
Запуск игры с редактором(Sandbox) или с GameSDK (пример переключения между ними).
+ Показать

Вообще по дефолту собранный проект - dll'ка выполняется GameSDK.exe из состава движка.
Но, есть возможность запускать игру и с редактором сцены (Sandbox), выбираете уровень ваш уровень и нажимаете "play" - прямо как в юнити.
До конца не разобрался какие это таит в себе преимущества: но навскидку наверное стиль разработки больше походить на юнити, можно видеть все ваши С# сущности и FlowGraph'ы. т.е. использовать все то что вы наделали в С# а затем в редакторе это все дело настроить и связать в некую логику.

 

1vanKУдалёнwww15 авг. 201615:28#8
StepEver
>Какие проблемы?

Проблем много, приходится костыли вешать. Допустим ты хочешь, чтобы кнопка плавно выплывала или пухла, когда мышка над ней.. А координаты UI-элементов в целых числах. То есть ты не можешь их модифицировать в апдейте. Я для этого в UIElemente создаю переменную типа Vector2. Или то что нельзя компоненты к элементам прикреплять, приходится всю UI логику в один класс пихать и он получается просто огромным полотном текста. Я посылал cadaverу пуллреквест с компонентами для UI-элементов, но он отклонил его, типа много повторяюещегося кода (с компонентами для нод имеется в виду), типа есть планы перевести UI на нодовый граф. Но когда это будет неизвестно. Также описание UI в xml файлах очень нелогичное. В файле стилей и в файлах layout одни и теже названия для разных понятий и все дико запутано между собой. Нельзя наследовать теги и переменные в xml файлах, то есть приходится одно и тоже писать в разных местах. Это так на вскидку.

codingmonkeyПостоялецwww15 авг. 201619:37#9
Как интересно Entity не завезли еще в редактор из С#
https://answers.cryengine.com/questions/896/c-entities-and-workflows.html

А та что сейчас в С# это жалкое подобие и просто врапер над IEntity без всей иерархии наследования как в СPP
Я попытался что-то сделать, но застрял на 
cpp: static CObjectCreator<T> _creator; там создается инстанс нужного класса и храниться в умном указателе пока не затребуют удаление объекта

+ Показать

В общем в С#
- ентитя не настоящая  (нету у нее всего того зоопарка с наследованием)

В Cpp таких проблем нет, я сам уже делал кастомную ентитю и они была видна в редакторе(Sandbox) и её можно было расставлять по уровню как и любою другую Entity

Огромный такой облом для ценителей удобств и перетягиваний в сценку из панельки сбоку

пока люди извращаются поиском по имени некоторой GeomEntity в сцене
Entity ent = Entity.ByName("ent");

а вообще конечно можно еще в Lua скриптах описать эти Entity( с моделью и значком) - они то уж точно будут видны в редакторе, а потом их подхватывать по имени в C#, но это костыльно смотрится имхо. 

> Допустим ты хочешь, чтобы кнопка плавно выплывала или пухла, когда мышка над ней.. А координаты UI-элементов в целых числах.
мне кажется тебе нужно использовать от реального UIElement'a только его сообщения о нажатиях и о попаданиях о его состоянии, а рисовать кнопку как StaticModel/CustomModel по тем же координатам c материалом который рисует плоскость с анимированной текстурой в пространстве камеры. естественно отдельный пасс запилить для всего этого дела не помешало бы   

Правка: 15 авг. 2016 19:44

codingmonkeyПостоялецwww17 авг. 20169:16#10
Целая хреномантия чтобы получить релизный билд игры, нету кнопочки как в юнити(

Guide to releasing EaaS-based projects (3.8.6 and newer)
http://docs.cryengine.com/pages/viewpage.action?pageId=23306380

Правка: 17 авг. 2016 9:17

1vanKУдалёнwww17 авг. 201614:30#11
А что-нибудь хорошее ты там обнаружил уже? xD
codingmonkeyПостоялецwww17 авг. 201615:25#12
Нет xD
А что можно считать за хорошее?
+ Показать

Представь ситуацию - в Ухе два LogicComponent'a ноды обменивались бы данными через сериализацию, тут это рельность xD

сериализация в инпуте

+ Показать


чтение в компоненте "перемещалке"

+ Показать

Притом что у самого примитивного Player'a который просто летающая точка с камерой (в gameZero) три таких кастомных компонента InputExtension, MovementExtension, ViewExtension.
Хз зачем они сделали через заднее место общение между компонентами одной и тойже Entity

Правка: 17 авг. 2016 18:23

1vanKУдалёнwww17 авг. 201618:13#13
А я думал крайэнжит тормозит потому что там графика крутая xD
codingmonkeyПостоялецwww17 авг. 201618:38#14
переключиться можно на графу для ведроида же, - в редакторе или в конфигах спеки задать ) и будет тормозить чуть побыстрее xD

хз как графика, но физика крутая )
взрыв к примеру:

pe_explosion explosion;
explosion.rmax = 100; // радиус взрыва
gEnv->pPhysicalWorld->SimulateExplosion(&explosion)

но, у меня "офизичивание" не получается прикрутить к камере, висит на месте спавна крутится туда-сюда и всё на этом... (

Player

+ Показать

Movement ext

+ Показать

Правка: 17 авг. 2016 19:50

Страницы: 1 2 3 4 ... 13 14 15 Следующая

/ Форум / Cryengine V

2001—2017 © GameDev.ru — Разработка игр