Pull to refresh

Comments 34

Выбирал движок для проекта и вот из коммерческих UE в плане скриптинга текстом на мой взгляд оказался самым худшим. Тут какое-то пародие на C++, скорее это голый C с классами, куча макросов, без которых никуда, но при этом на них документация устарела настолько, что бесполезна. stl нет, есть куча своих велосипедов куда худшего качества. Ну и самое вкусное на последок, код отрабатывает не в песочнице, а в пространстве редактора, любая ошибка доступа к памяти и редактор падает сразу и без вариантов.
Потому что это не скриптинг, это — программирование. Для «скриптов» есть прекрасные Blueprints, где в ногу себе выстрелить даже при желании сложновато ;)
Я не про это слегка говорил. Тут правильнее было бы писать, что используется C++ подобный язык, ибо от C++ только синтаксис остался, да и корявое его использование в из библиотеках. Многие вещи можно было сделать средствами шаблонов, но нет, понапихали кучу шаблонов их настолько много, что хоть стой, хоть падай. А уж как выматывает их прекомпайлер. Посмотреть на CryEngine к примеру, всё сделано заметно удобнее.
И вы знаете, это прекрасно работает. Быстро, понятно и удобно. При правильной архитектуре проекта ещё и собирается шустро. Не так там много правил, которым надо следовать. И никто не мешает вам использовать сипипи на полную :)

А CE хоть и более «путь сипипи самурая», но архитектурно печален. Это не двигло для игр, а скорее сипипи песочница :(
Блупринты сложно назвать простым скриптингом тоже, так как они представляют полноценное ООП со всеми вытекающими, их единственное ограничение — они работают внутри движка.
Но не после того, как один и тот же проект выдает на GTX580 и на GTX1080 Ti одинаковые 30 фпс. После лицезрения такого, желание использовать юнити пропадает напрочь.

А та же сцена на анреал, с более высоким уровнем детализации (с трехмерной травой и цветочками, ага) выдает 120 фпс на 580-й.

К тому же анреал — открытый код движка, а юнити извините — за бабки

Не все игры требуют топовой графики.
Открытость движка != Бесплатность для коммерческого использования. Но у Unreal чуть приятнее модель платы: только свыше какой-то суммы заработка начинают процент брать.

Не все игры требуют топовой графики.

не все, но те же сквады, купившись на «простоту» юнити завели свой проект KSP в тупик и в итоге продали игру

Открытость == понимание как оно работает, возможность вмешаться в процесс. Ничего, что крупные конторы лицензируют интересующие их движки с исходниками?

юнити, в его бесплатной инкарнации — хрень, не подходящая под крупные проекты. Те кто используют его для серьезных работ лицензируют его с исходниками ядра рендера, которое, кстати, написано на C++
Но у Unreal чуть приятнее модель платы

Да вы видно шутите?

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

Насколько я понимаю, каждый квартал заработок до 3000$ не облагается процентом. Чтобы не отвлекать людей по мелочам.

Ради интереса заглянул в эту статью — не увидел там ничего страшного. Но с юнити у меня работать не получилось, поэтому не могу оценить с этой точки зрения...

Страшного нет, особенно при должном терпении, а с какого-то момента может и стокгольмский синдром уже поможет, но… Почти все примеры кода раза в полтора-два длиннее в UE4, не говоря уже о волшебных макросах итд, которые нужно просто запомнить.
Почти все примеры кода раза в полтора-два длиннее

Так это не UE4 же, а разница между C# и C++. Насчёт макросов — согласен, приходится запоминать. Лично у меня не было опыта работы с C++ до UE4 и, судя по интернетам, эти макросы сильно облегчают жизнь...

Смущает третий пункт "Сборка движка: забег по граблям"

Да там странная статья про извращения в целом. На Ubuntu давно все работает из коробки :)
На Ubuntu давно все работает из коробки :)

никто не запрещает вам использовать убуту
Я ни в коем случае не хочу принизить вашу статью, и это здорово, что вы и на арч линуксе запустили движок и работаете с ним, но все-таки тех, кто спрашивает про «завести под вайном», я бы отправлял «на убунту», где весь этот шаманизм не нужен.

Сам я использую инструменты исходя из соображений их удобства для работы с конкретной технологией, оставляя личные предпочтения для «домашних нужд».
я использую инструменты исходя из соображений их удобства для работы с конкретной технологией

тут я с Вами целиком и полностью согласен
Эту ссылку бесполезно постить, для доступа к репозиторию нужен аккаунт EpicGames и аккаунт на GitHib. Тогда эпики дают доступ к просмотру кода движка.
Аккаунт создается за пару минут. EpicGames быстро дают доступ. Тут нет проблем.
Проблем то нет, но люди не в теме видно уже минусуют человека типа за «битую ссылку», хотя он в общем-то не причем
Оно конечно там всё есть но тот же HTML5 работает не везде не всегда…
У меня проблема. Не могу понять. На этапе «Создание реализации функции по умолчанию».

Если в BaseCoin я добавляю
UFUNCTION(BlueprintNativeEvent)
void OnOverlap_Implementation(AActor* OverlappedActor, AActor* OtherActor);

компиляция в qtcreator проходит, но компиляция в редакторе не проходит.

Я на арче сижу.

И вопрос в сторону. Насолько это удобней на винде? И у тех кто использует на линуксе, нет ли косяков с меняшками редактора? У меня awesome wm если что.
UFUNCTION(BlueprintNativeEvent)
void OnOverlap_Implementation(AActor* OverlappedActor, AActor* OtherActor);

Такого не должно быть.


Посмотрите в статье: там в хэдере (BaseCoin.h) объявляется метод OnOverlap, а в коде (BaseCoin.cpp) – прописывается имплементация метода OnOverlap_Implementation. В cpp файле не должно быть макроса, а в хэдере не должно быть _Implementation.

Да, спасибо. Я уже разобрался, просто мне показалось дикостью несоответсвие объявления и определения функции.
класс называется ABasePlayer, а не BasePlayer. При создании класса типа actor Unreal ставит перед названием класса префикс A (от слова actor)

Мы же вроде от Pawn наследовались…
Pawn на самом деле APawn, тк прямой потомок Actor’а
Примечание: Если монеты не исчезают, попробуйте перезапустить редактор, чтобы выполнить полную рекомпиляцию. Для работы некоторых изменений требуется перезапуск.

А вот здесь я как юнити программист немного расстроился.
Это косяк с++. На старой работе очень часто нужно было делать полную пересборку проекта. Минут 7 занимало.
Unreal Engine очень крутой движок, он но сильно захламляет оперативку, кто знает как с этим бороться. А то начинаеш с 1 gb заканчиваеш с 5-6.
Sign up to leave a comment.

Articles