Как стать автором
Обновить

Комментарии 29

Да, были времена...

UnrealScript — всё таки очень жаль что ничего подобного нету в текущем UnrealEngine
Что его жалеть то?
Потому что замены нет, либо пиши сразу на С++ либо рисуй блюпринты. А некоторые вещи было бы куда проще будь там ещё и встроенный скриптовый язык.
куда проще

1) Какие?
2) Есть куча плагинов для интеграции скриптовыз языков.
3) ИНтегрировать скриптовый язык — работа на неделю.
4) Не нужно.
1) Взять из базы данных 300-400 объектов и расставить их как надо по сцене.
2) Это всё пишется другими людьми и поддерживается далеко не все.
3) Ну по моему это оочень оптимистичный взгляд.
4) Вам не нужно согласен.
1) Работать с БД на уровне скриптов… Зачем?
2) Там Open Source решений полно. А те что не OpenSource — продаются с исходниками. Так что поддержку вполне возможно осуществлять самостоятельно.
3) Никаких особых трудностей не вижу. Можете конкретизировать проблемы?
4) Совершенно верно. И вам тоже. Примеры ААА проектов на UE без скриптов это прекрасно иллюстрируют.
1) Изначально планировался запрос JSON с сайта, но в целом я уже сказал чтобы расставлять 300-400 объектов на сцене.
2) Да и сам движок поставляется с исходниками…
3) Ну скажем UnrealScript позволял делать в движке всё то что позволяет сейчас блюпринт только описывался текстом. Я думаю что написать для всё это для того же Lua ну явно не неделя уйдёт.
4) Кто то сделал это без скриптов, значит и тебе не надо, это конечно аргумент. Однако полно игр которые написаны не на UE но это не говорит о том что UE не нужен. Но лично я считаю что скриптовый язык был бы очень полезен, хотя да без него можно обойтись.
но в целом я уже сказал чтобы расставлять 300-400 объектов на сцене.

Я по прежнему не понимаю в чем проблема расстановки объектов на уровне С++.

Скрипты в UE не нужны по очень простой причине — у них нет никаких преимуществ перед С++.
Раньше скрипты позволяли менять логику не перезапуская движок, сейчас и это ушло благодаря HotReload.
Скрипты в UE не нужны по очень простой причине — у них нет никаких преимуществ перед С++.

Как минимум скорость(простота) написания, и относительная безопасность при исполнении.
Ну вот не видел я чтобы тот же JSON парсился на с++ также просто как на каком нить Lua или JS, да и остальное зачастую делается куда проще. Да на С++ это тоже можно запросто реализовать, но времени зачастую уйдет больше.
Скрипты в UE не нужны по очень простой причине — у них нет никаких преимуществ перед С++.

У меня есть пару личных маленьких проектов, которые написаны на С но к ним подключена Lua. Сделано это потому что на Lua было в разы проще описывать логику работы чем на С. В итоге у меня ушло где то 2 дня на подключение и разбор того как работает cURL и Lua. И пол дня на написания основного функционала, по прикидкам если всё писал на C на основной функционал ушло бы 3-4 дня. И был проект когда оказалось проще написать модуль для NodeJS который дергал пару специфических виндовых функций, а остальное писать на JS. В итоге на модуль пол дня, на реализацию функционала 2 часа. ИМХО скриптовые языки могут очень сильно экономить время.
А можно пример простого кода на Lua, который требует на С++ в три-четыре раза больше времени на написание?
Нет не могу, всё что посмотрел я показывать прав не имею.
Но суть проста, есть бинарный файл, и есть его абстрактное описание на JSON.
{
    "start"     : "field_1",
    "field_1"  : {"type" : "udword", "next" : "field_2"},
    "field_2" : {"type" : "udword", "next" : "field_3"},
    "field_3"    : {"type" : "udword", "length" : 20, "next" : "field_4"},
    "field_4"    : {"type" : "struct", "name" : "stfield_4", "length": 3 }
}

Надо распарсить бинарый файл и сделать на его основе JSON файл по описанию.
PS. Я не очень хорош в С++ но на JS код занял около 70 строк.
Я бы понял, если бы в качестве примера привели парсинг JSON, который легко и просто превращается в готовые объекты на уровне скрипта за счет расширения метатаблиц. Тут действительно есть некоторое преимущество.
Тот же JSON создан, чтобы легко и просто ложиться на структуру JS.
Но парсинг бинаря с превращением его в JSON — это задача которая не имеет никаких преимущество на скриптах перед С++.

Я не очень хорош в С++

Тогда вопросов нет. С++ не родной, Blueprint по определению не заменяют текстовый код. В итоге хочется скрипты текстом. Ок.
Как вариант использовать Skookum. По синтаксису он проще, чем С++, компилируемый. В режиме игры можно проверять идеи сразу в редакторе, просто написав код.
И одна из самых главных фишек — конструкции для параллельного программирования, заметно облегчающие логику кода.
Получается, они перешли на wxWidgets во времена Unreal Editor 2 (примерно в те же годы, когда id передали свой Q3Radiant коммьюнити), но на то, чтобы (полу-)открыть исходники и сделать linux-версию редактора, у них ушло еще без малого 15 лет.

В результате мы имеем несколько стендалон-редакторов для кваки (один из опенсорсных, TrenchBroom, как раз на wxWidgets, кстати) и ни одного для Unreal. До сих пор приходится запускать UnrealEd 3.0 в вайне. :-(
Я годах в бытность школотой старших классов (как раз, когда была популярна третьеквака и ут) активно осваилвал эти редакторы по десяткам статей из интернета. Видеоуроков, само собой, не было — диалап же.

В общем, UED не смог осилить, а вот gtkradiant очень даже осилил — потом еще через пару лет карты для четвертой кваки и третьедума делал на новом радианте.
Великолепная статья, спасибо!
Мне из редактора больше всего запомнились «яблоки», которыми подсказываешь пути для AI. А вот о голове динозаврика никогда не задумывался.)
Удивительно, насколько хорошо выглядит даже первая версия Unreal Ed. Не думал, что в то время были подобные инструменты для разработки игр.
В то время это называлось «редакторы карт», и они в принципе все так выглядели, и для квейка 2, и для первой халфы. А то что получалось в результате было или карты или моды, к движку особого доступа не было, а о лицензировании и издании как отдельную игру никто не заморачивался.
Помню как мечтал создать собственную карту для UT99 (а он или одна из его следующих версий поставлялись с игрой). Даже отредактировать ничего так и не сумел. Эту штуку методом тыка, без всякого опыта моделирования — не освоить :).
Как раз методом тыка эти редакторы обычно и осваивались, хотя в сети туториалов достаточно (но это сейчас, в конце девяностых, когда создавались многие классические карты, было заметно хуже). Пожалуй, что действительно сложно и требует знаний матчасти и опыта — это оптимизация карт (think r_speeds, в этой коротенькой ветке на ESR я немного про это рассказываю). Сравнивая свои поделки с той же q2dm1 Виллитса или картами Стена (ztn) сразу понимаешь, кто здесь спец, а кто так, любитель.
Unreal Tornament c High-Res Textures выглядит очень достойно.
В 2010 году познакомился с серверами MonsterHunt (конкретно поднастроение иногда играю на www.destinationunreal.com, пример игры www.youtube.com/watch?v=s5M6LvZq2v4 www.youtube.com/watch?v=5Aaf-wOYpl0 ) и был впечатлён мастерством картоделов, многие карты сделаны недавно. Огромные карты, отличные текстуры, интересные квесты и детали карт, отличная командная игра.
А можно увидеть такую же обширную и интересную статью о создании легендарного Unreal? C историей сотворением того же HL и HL2 ознакамливался и не раз и было всегда жутко интересно как творятся легенды, переворачивающие восприятие жанра. Unreal для меня был такой игрой, которая поразила меня во всем. Я уверен что за такой игрой определенно стоит своя история.
К сожалению с редакторами карт Quake и UT не сложилось. А вот за Blizzard'овскими провели много времени. Помню когда нашел программу запуска редактора уровней, вместо запуска игры был очень удивлен. А потом так затянуло, что даже не знаю на что больше времени потратил на игры или создание уровней.
О! Никогда не забыть тех впечатлений! Когда подрубил Voodoo к этой игрухе! Моск был разорван!
Глаза просто вываливались от невероятности увиденного! Какое оружение, какие текстуры! А музыка!
Лукьяненко вдохновился и приплел мотивы из игрухи в свои лабиринты отражений.
Тоже в то время наивный, тёплый ламповый, фидошный такой рассказец.
Все это потому что в то время, а чего греха таить, и поныне не сделали ничего более подобного зрелищного и атмосферного. Я ни в коем случае не умаляю халфлайф и первый фаркрай, но там совсем другая песня, тоже несравнимая ни с чем.
Отличное интервью! Прочел с большим удовольствием.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации