Войти
Unreal EngineФорумПрограммирование

Объясните пожалуйста для чего нужно знать с++ для UE4, планирую изучить?

#0
14:05, 15 фев. 2020

Напишите в каких случаях без программирования не обойтись в создании игр, примеры пожалуйста.
Из-за малого багажа знаний мне кажется, что с++ требуется для режима мультиплеер а одиночной хватит и blueprinт, возможно я ошибаюсь.


#1
14:58, 15 фев. 2020

И мультиплеер пекрасно делается на блюпринтах.
Сам вопрос ошибочный. Блюпринты - это не альтернатива плюсам.
Блюпринты - это отдельный инструмент, который дополняет плюсы.
Традиционный подход, который лично я считаю самым правильным - core-логика на плюсах, всё что требует тюнинга и является надстройкой над core-логикой - блюпринты.

#2
16:46, 15 фев. 2020

Ivan5D
с++ это текст, а блюпринты это бинарные файлы со всеми вытекающими проблемами для больших проектов. Нельзя работать вдвоём с одним блюпринтом, нету истории изменений и т.п.

#3
17:47, 15 фев. 2020

@!!ex
> Сам вопрос ошибочный. Блюпринты - это не альтернатива плюсам.

как раз альтернатива если не нужна скорость или спец фичи

#4
19:54, 15 фев. 2020

Если тебе нужно работать на уровне геимплейных абсракций, то блюпринта хватит. Если системных, то С++. Только как ты допрешь, что одних абстракций тебе не хватает, и что нужны другие - вопрос опыта работы над реальными проектами. Кароче, любой проект можно сделать только на блупринтах. Закончить и выпустить на всех платформах в 4к и 60 фпс - не любой.

#5
(Правка: 10:35) 10:30, 16 фев. 2020

Вкратце - плюсы для "узких" мест. И это работает не только для Unreal engeine.
Самый очевидный пример - Python, куча всевозможного сложного кода пишется именно на C++  (обработка больших массивов данных и т.п.).
Python в свою очередь просто дергает C++ Dll.

#6
12:30, 16 фев. 2020

lookid
> Кароче, любой проект можно сделать только на блупринтах.
Спорно,очень спорно. В любом случае тут основной вопрос далеко не в том,на чём лучше делать,а что в итоге даст нормальный результат в данном конкретном примере. Куча костылей на блупринтах далеко не всегда лучше,даже при сильно косолапом коде на плюсах. Это факт. К тому же,надо понимать,что при увеличении размера проекта блупринты начинают превращаться в кашу,в которой даже разработчики перестают разбираться,при это начинают тащить вагоны костылей и зависимостей,которые уже нафиг не нужны. И это,по сути,одна из причин,что нормально оптимизированных проектов на УЕ не от Эпиков практически нет.
П.С.Инструмент инструменту рознь,но тут нужно выбирать не по удобству,а по необходимому результату,который в итоге надо получить.

#7
12:34, 16 фев. 2020

innuendo
> как раз альтернатива если не нужна скорость или спец фичи
или нормальная читабельность, или доступ к низкоуровневым вещам, или совместное редактирование, или нормальный diff, или...

#8
13:53, 16 фев. 2020

А как в UE c++ код работает на разных версиях? Как распростряняются плагины на нем, в виде исходников или dll?

#9
(Правка: 15:34) 15:29, 16 фев. 2020

Кто знает игры (созданные на блюпринтах и без), чтобы сравнить между ними так, что было ясно, что нельзя "вот такое" создать на блюпринтах?

Bioman
> lookid
> > Кароче, любой проект можно сделать только на блупринтах.
> Спорно,очень спорно.
А если речь про небольшие проекты, типа казуальные (или не совсем казуальные)?

==
В чем разительная разница, какие самые важные вещи невозможны с блюпринтами?

#10
16:36, 16 фев. 2020

Polyflow3d
> А как в UE c++ код работает на разных версиях?

плохо - часто меняют - те же постпроцессы с 4.23 на 4.24 сильно переделали

#11
20:53, 16 фев. 2020

Fantarg
> А если речь про небольшие проекты, типа казуальные (или не совсем казуальные)?
>
> ==
> В чем разительная разница, какие самые важные вещи невозможны с блюпринтами?
В небольших и казуальных проектах без разницы на чем делать. В больших в зависимости от результата - то,что можно сделать на блупринтах(из достаточно простых систем) при приемлемом уровне производительности делать на блупринтах,в остальных случаях использовать плюсы. Сложные и комплексные системы лучше сразу делать на плюсах и не пытаться искать проблемы на пятую точку. С ростом числа зависимостей работать с блупринтами становится проблемой,что-то менять и переделывать по ним - настоящей задницей. Зачастую приводящей к тому,что вынуждены просто переписывать все с нуля на плюсах. Если нет четкого плана и гарантий в том,что архитектурно ничего меняться не будет,сложные системы на блупринтах лучше даже не начинать. Если учесть,что крайне редко бывают случаи,когда тех задание на протяжении всего времени разработки не меняется,переделывать в коде значительно проще. А уж сколько костылей при этом делают,когда на блупринтах такое пишут - это вообще отдельная история.

#12
12:35, 17 фев. 2020

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

Но блупринты очень удобны для UI и для быстрого прототипирования (потом можно переписать код на плюсы, если получилось сложно/медленно, или оставить как есть, если и так все устраивает). Ну и для быстрой и легкой кастомизации свойств классов в редакторе.

#13
0:38, 18 фев. 2020

Из проектов которые, наверное, максимально сделаны на BP: The Solus Project
На ютубе можно найти канал создателя проекта (или одного из создателей) где он показывает много всего что было сделано на БП. Но, емнип, что-то они на С++ дописывали.


Из чего-то что нельзя без С++, но иногда нужно/хотелось бы:
БП не позволяют получить из результата трассировки луча цвет пикселя.
В БП нет кватернионов, если они вдруг нужны.

#14
1:45, 18 фев. 2020

Без плюсов нельзя как минимум:
- Делать асинхронные райкасты. Очень важно если их много и хочется производительности.
- Использовать Gameplay Ability System.
- Перегружать разные полезные функции типа CalcCamera.
- Делать что либо с substepping, важно для физики.

Unreal EngineФорумПрограммирование