Войти
CryengineФорум

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

Страницы: 1 2 314 15 Следующая »
#0
(Правка: 14:16) 12:50, 14 авг. 2016
+ Показать

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


#1
(Правка: 16 авг. 2016, 19:07) 23:52, 14 авг. 2016

Пока разбираюсь, решил еще записывать некоторые пройденные моменты...

Установка CryBlend

+ Показать

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


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

+ Показать


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

+ Показать

#2
11:22, 15 авг. 2016

>я правильно понял, ты начал разбирать с нуля сабж?

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

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

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

+ Показать

class Observer

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

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

#3
(Правка: 12:26) 12:24, 15 авг. 2016

>погоди, погоди...
нее, нее... кони уже убежали чего годить то?)

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

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

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

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

#4
12:30, 15 авг. 2016

> цель моего "повествования" это мой путь освоения движка т.е. совсем о другом.

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

#5
12:39, 15 авг. 2016

Меня так-то другие движки инетресуют только с точки зрения "чего можно утянуть в урхо". В частности я все обдумываю (долго время) как лучше всего UI организовать, потому что у меня на него 50% времени уходит в моих прогах) Мб в крайэнжине в плане интерфейса что-то придумали интересное

#6
(Правка: 13:29) 13:01, 15 авг. 2016

>подписался на твой блог, всмысле вступил в группу)
Круто ) еще пришлось канал запилить другой чтобы с Урхо 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 дергать, так например я кастомный вид создавал 

#7
14:07, 15 авг. 2016

Запуск игры с редактором(Sandbox) или с GameSDK (пример переключения между ними).

+ Показать

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

 

#8
15:28, 15 авг. 2016

StepEver
>Какие проблемы?

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

#9
(Правка: 19:44) 19:37, 15 авг. 2016

Как интересно 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 материалом который рисует плоскость с анимированной текстурой в пространстве камеры. естественно отдельный пасс запилить для всего этого дела не помешало бы   

#10
(Правка: 9:17) 9:16, 17 авг. 2016

Целая хреномантия чтобы получить релизный билд игры, нету кнопочки как в юнити(

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

#11
14:30, 17 авг. 2016

А что-нибудь хорошее ты там обнаружил уже? xD

#12
(Правка: 18:23) 15:25, 17 авг. 2016

Нет xD
А что можно считать за хорошее?

+ Показать

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

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

+ Показать


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

+ Показать

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

#13
18:13, 17 авг. 2016

А я думал крайэнжит тормозит потому что там графика крутая xD

#14
(Правка: 19:50) 18:38, 17 авг. 2016

переключиться можно на графу для ведроида же, - в редакторе или в конфигах спеки задать ) и будет тормозить чуть побыстрее xD

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

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

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

Player

+ Показать

Movement ext

+ Показать
Страницы: 1 2 314 15 Следующая »
CryengineФорум