Comments 34
Выбирал движок для проекта и вот из коммерческих UE в плане скриптинга текстом на мой взгляд оказался самым худшим. Тут какое-то пародие на C++, скорее это голый C с классами, куча макросов, без которых никуда, но при этом на них документация устарела настолько, что бесполезна. stl нет, есть куча своих велосипедов куда худшего качества. Ну и самое вкусное на последок, код отрабатывает не в песочнице, а в пространстве редактора, любая ошибка доступа к памяти и редактор падает сразу и без вариантов.
Потому что это не скриптинг, это — программирование. Для «скриптов» есть прекрасные Blueprints, где в ногу себе выстрелить даже при желании сложновато ;)
Я не про это слегка говорил. Тут правильнее было бы писать, что используется C++ подобный язык, ибо от C++ только синтаксис остался, да и корявое его использование в из библиотеках. Многие вещи можно было сделать средствами шаблонов, но нет, понапихали кучу шаблонов их настолько много, что хоть стой, хоть падай. А уж как выматывает их прекомпайлер. Посмотреть на CryEngine к примеру, всё сделано заметно удобнее.
И вы знаете, это прекрасно работает. Быстро, понятно и удобно. При правильной архитектуре проекта ещё и собирается шустро. Не так там много правил, которым надо следовать. И никто не мешает вам использовать сипипи на полную :)
А CE хоть и более «путь сипипи самурая», но архитектурно печален. Это не двигло для игр, а скорее сипипи песочница :(
А CE хоть и более «путь сипипи самурая», но архитектурно печален. Это не двигло для игр, а скорее сипипи песочница :(
Блупринты сложно назвать простым скриптингом тоже, так как они представляют полноценное ООП со всеми вытекающими, их единственное ограничение — они работают внутри движка.
А главное у них есть специальная глава для тех, кто пришел из Unity, показывающая как код на Unity транслируется в UE4. И она просто уничтожает желание выбирать Unreal.
Но не после того, как один и тот же проект выдает на GTX580 и на GTX1080 Ti одинаковые 30 фпс. После лицезрения такого, желание использовать юнити пропадает напрочь.
А та же сцена на анреал, с более высоким уровнем детализации (с трехмерной травой и цветочками, ага) выдает 120 фпс на 580-й.
К тому же анреал — открытый код движка, а юнити извините — за бабки
А та же сцена на анреал, с более высоким уровнем детализации (с трехмерной травой и цветочками, ага) выдает 120 фпс на 580-й.
К тому же анреал — открытый код движка, а юнити извините — за бабки
Не все игры требуют топовой графики.
Открытость движка != Бесплатность для коммерческого использования. Но у Unreal чуть приятнее модель платы: только свыше какой-то суммы заработка начинают процент брать.
Не все игры требуют топовой графики.
не все, но те же сквады, купившись на «простоту» юнити завели свой проект KSP в тупик и в итоге продали игру
Открытость == понимание как оно работает, возможность вмешаться в процесс. Ничего, что крупные конторы лицензируют интересующие их движки с исходниками?
юнити, в его бесплатной инкарнации — хрень, не подходящая под крупные проекты. Те кто используют его для серьезных работ лицензируют его с исходниками ядра рендера, которое, кстати, написано на C++
Но у Unreal чуть приятнее модель платы
Да вы видно шутите?
После того, как вы заработали $3000, каждый квартал вы обязаны отправлять информацию о доходах с игры и собственно саму денежку и это до тех пор, пока вы не снимите игру с продажи, даже если вы заработаете $1 за это время, вы обязаны будете это делать. Почему-то я не считаю это удобной моделью оплаты.
Ради интереса заглянул в эту статью — не увидел там ничего страшного. Но с юнити у меня работать не получилось, поэтому не могу оценить с этой точки зрения...
Страшного нет, особенно при должном терпении, а с какого-то момента может и стокгольмский синдром уже поможет, но… Почти все примеры кода раза в полтора-два длиннее в UE4, не говоря уже о волшебных макросах итд, которые нужно просто запомнить.
Как его под вайном завести?
Смущает третий пункт "Сборка движка: забег по граблям"
Да там странная статья про извращения в целом. На Ubuntu давно все работает из коробки :)
На Ubuntu давно все работает из коробки :)
никто не запрещает вам использовать убуту
Я ни в коем случае не хочу принизить вашу статью, и это здорово, что вы и на арч линуксе запустили движок и работаете с ним, но все-таки тех, кто спрашивает про «завести под вайном», я бы отправлял «на убунту», где весь этот шаманизм не нужен.
Сам я использую инструменты исходя из соображений их удобства для работы с конкретной технологией, оставляя личные предпочтения для «домашних нужд».
Сам я использую инструменты исходя из соображений их удобства для работы с конкретной технологией, оставляя личные предпочтения для «домашних нужд».
Эту ссылку бесполезно постить, для доступа к репозиторию нужен аккаунт EpicGames и аккаунт на GitHib. Тогда эпики дают доступ к просмотру кода движка.
Оно конечно там всё есть но тот же HTML5 работает не везде не всегда…
У меня проблема. Не могу понять. На этапе «Создание реализации функции по умолчанию».
Если в BaseCoin я добавляю
UFUNCTION(BlueprintNativeEvent)
void OnOverlap_Implementation(AActor* OverlappedActor, AActor* OtherActor);
компиляция в qtcreator проходит, но компиляция в редакторе не проходит.
Я на арче сижу.
И вопрос в сторону. Насолько это удобней на винде? И у тех кто использует на линуксе, нет ли косяков с меняшками редактора? У меня awesome wm если что.
Если в 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 наследовались…
Примечание: Если монеты не исчезают, попробуйте перезапустить редактор, чтобы выполнить полную рекомпиляцию. Для работы некоторых изменений требуется перезапуск.
А вот здесь я как юнити программист немного расстроился.
Unreal Engine очень крутой движок, он но сильно захламляет оперативку, кто знает как с этим бороться. А то начинаеш с 1 gb заканчиваеш с 5-6.
Sign up to leave a comment.
Туториал по Unreal Engine: C++