UE5: Как я смирился и полюбил блюпринты
Давно писал пост про попытку попробовать ангелскрипт плагин в UE5, по итогу когда после долгого перерыва вернулся к разработке понял что нахрен не нужно оно. Блюпринты никого не убивали на самом деле, а зато дают плавный опыт работы с двиглом. И понятно как оно работает.
Я, как раньше разрабивший на блице и немного на юнити, охреневаю от сложности UE5, но со временем привыкаешь, начинаешь даже клепать что-то по вайбу, не думая о перфе или чем-то таком, фокусируясь на игровых возможностях.
Так а про что игра-то? а то я не рассказывал. Мы с приятелем (он UE5-разраб, в основном UIщик) как-то переписывались и поняли, что хватит это терпеть, надо свою игру делать. Идея, в трёх словах, кооперативный головоломка-детектив-шутер в sci-fi, с космосом и полуоткрытым миром. Чтобы не велосипедировать и в целом поучиться лучшим практикам двигла, взяли Lyra за основу. Lyra это, типа, недотурнамент, с целиком работающей сетевой игрой и ботами.
Ох, как же это было сложно. Там собрались «самые лучшие и правильные» архитектурные идеи, и я, как привыкший к логике «чтобы поставить куб нужно просто поставить куб», по-русски говоря, охуел. Поначалу количество абстракций убивало: вытащено в Data Driven абсолютно всё, раздекаплено так что стрельба раскидана по 10 классам, часть из которых в C++, часть в блюпринтах, завязано это всё на систему инвентаря, в котором дефинишены эквипа, вещей раскиданы в датаассеты, а сама логика работы с ними и связанной с этим графики… Кароче, для меня не знавшего это было очень сложно. Кстати, не только для меня. Чел целый сайт про разбор этой Лиры сделал, вот он. Эпики уже сдались и сами ссылаются туда на конфах, так как от них доки по Лире особо не завезли. А, кстати, UE5 с болью запускался на моём ноуте, несмотря на нехилые такие спеки (32 гига озу, встройка 680M). Ну, я лукавлю, запускался, в целом, окей. Разрабить можно было, но это, наверное, самое тяжелое что я на этом ноуте когда-либо запускал. Говорят, плохому футболисту мяч мешает…
В общем, это были мои первые ощущения, это и было причиной почему я охладел к этому всему и отложил в сторону на несколько месяцев. Дальше, я пробовал начать прямо с самого нуля в рейлибе (попутно с осваиванием нового языка Zig), но тоже долго это не продлилось: осознание количества необходимой работы дизморалило даже начинать. Потом я попытался в годоте что-то сделать, накидал там перса, движение, и тоже понял: ох как же дохрена делать.
Шло время, а воз был и ныне там. Я купил себе новую-кленовую пеку, специально подогнав спеки под потенциальный запуск UE5. И вот как-то раз, меня осенило — ну я и дебил. У меня было всё: сеть, инвентарь, стрельба, перс, вполне себе нормальная графика, фреймворк. А я всё это хотел променять на что? на геморрой? как всегда, сесть писать движки вместо игр? С этой мыслью, пройдя такой бесславный путь, я снова открыл UE5. И знаете, на этот раз мне всё было понятно. Я просто поборол своё нежелание читать чужой код, разбираться в чужой архитектуре. Просто сел и читал. Читал. Если что-то не понимал, ходил в чатгопоте, гуглил, разбирался, понимал почему сделано так а не иначе. И вот что я скажу: хуйня эта ваша Лира. Нету там чего-то неимоверно сложного. Да, местами перемудрили, но при желании, даже если заранее не знаешь, можно понять как правильно инпуты прикрутить, как закастомить камеру так чтобы был вид сверху а не третье лицо. Как встроить квестовую и диалоговую систему. И при этом оно всё, почти без усилий, отлично работает по сети. Это ли не сказка? Это ли не то, о чём мечтает разработчик игр?
Так вот, возвращаясь к основной теме: блюпринты. Ну классная же штука! и, если ты не работал с анрылом, тебе может показаться что это только про блоксхемки и логику. На самом деле нет: через них ты можешь собирать игровые объекты из других блюпринтов/крестовых классов. Можешь даже не хранить в них логику, а только данные: например сделал класс/блюпринт оружия, а дальше добавил туда поля какие геймплейные абилки оно даёт, какая моделька, какие эффекты, какой дамаг и так далее через формочки в самом редакторе движка. А потом бац, винтовка! или пистолет. Наверное, такая штука это какой-то общеизвестный паттерн, но я об этом не знаю, я просто мимо проходил во всей этой разработке на UE5. А, ну ещё через эти блоксхекмы прикольно в моменте что-то спрототипировать, а дальше на чистую можно и на крестах написать. Один минус: код-агентов сейчас под них особо не завезли, ну и да ладно. Там несложно. Да и всё сложное никто не запретит описать на плюсах, собсно это так и предполагается. Глупенькие геймдизайнеры клепают блюпринты, продвинутые разрабы сурово пишут кресты.
Не знаю, какая мораль. И до куда мы дойдем с этим проектом. Но одно могу сказать точно: дорогие булчане, пишите игры! хватит писать движки! лучше получить 1 какую-то игрушку, а не 10 недописанных и недобитых велосипедов. Осваивайте мощные инструменты, а не проделывайте путь от камня до кремниевого кристалла самостоятельно.
Короче, ничего нового. До встречи! пусть у всех получится допилить свою игрульку!
Я, как раньше разрабивший на блице и немного на юнити, охреневаю от сложности UE5, но со временем привыкаешь, начинаешь даже клепать что-то по вайбу, не думая о перфе или чем-то таком, фокусируясь на игровых возможностях.
Так а про что игра-то? а то я не рассказывал. Мы с приятелем (он UE5-разраб, в основном UIщик) как-то переписывались и поняли, что хватит это терпеть, надо свою игру делать. Идея, в трёх словах, кооперативный головоломка-детектив-шутер в sci-fi, с космосом и полуоткрытым миром. Чтобы не велосипедировать и в целом поучиться лучшим практикам двигла, взяли Lyra за основу. Lyra это, типа, недотурнамент, с целиком работающей сетевой игрой и ботами.
Ох, как же это было сложно. Там собрались «самые лучшие и правильные» архитектурные идеи, и я, как привыкший к логике «чтобы поставить куб нужно просто поставить куб», по-русски говоря, охуел. Поначалу количество абстракций убивало: вытащено в Data Driven абсолютно всё, раздекаплено так что стрельба раскидана по 10 классам, часть из которых в C++, часть в блюпринтах, завязано это всё на систему инвентаря, в котором дефинишены эквипа, вещей раскиданы в датаассеты, а сама логика работы с ними и связанной с этим графики… Кароче, для меня не знавшего это было очень сложно. Кстати, не только для меня. Чел целый сайт про разбор этой Лиры сделал, вот он. Эпики уже сдались и сами ссылаются туда на конфах, так как от них доки по Лире особо не завезли. А, кстати, UE5 с болью запускался на моём ноуте, несмотря на нехилые такие спеки (32 гига озу, встройка 680M). Ну, я лукавлю, запускался, в целом, окей. Разрабить можно было, но это, наверное, самое тяжелое что я на этом ноуте когда-либо запускал. Говорят, плохому футболисту мяч мешает…
В общем, это были мои первые ощущения, это и было причиной почему я охладел к этому всему и отложил в сторону на несколько месяцев. Дальше, я пробовал начать прямо с самого нуля в рейлибе (попутно с осваиванием нового языка Zig), но тоже долго это не продлилось: осознание количества необходимой работы дизморалило даже начинать. Потом я попытался в годоте что-то сделать, накидал там перса, движение, и тоже понял: ох как же дохрена делать.
Шло время, а воз был и ныне там. Я купил себе новую-кленовую пеку, специально подогнав спеки под потенциальный запуск UE5. И вот как-то раз, меня осенило — ну я и дебил. У меня было всё: сеть, инвентарь, стрельба, перс, вполне себе нормальная графика, фреймворк. А я всё это хотел променять на что? на геморрой? как всегда, сесть писать движки вместо игр? С этой мыслью, пройдя такой бесславный путь, я снова открыл UE5. И знаете, на этот раз мне всё было понятно. Я просто поборол своё нежелание читать чужой код, разбираться в чужой архитектуре. Просто сел и читал. Читал. Если что-то не понимал, ходил в чатгопоте, гуглил, разбирался, понимал почему сделано так а не иначе. И вот что я скажу: хуйня эта ваша Лира. Нету там чего-то неимоверно сложного. Да, местами перемудрили, но при желании, даже если заранее не знаешь, можно понять как правильно инпуты прикрутить, как закастомить камеру так чтобы был вид сверху а не третье лицо. Как встроить квестовую и диалоговую систему. И при этом оно всё, почти без усилий, отлично работает по сети. Это ли не сказка? Это ли не то, о чём мечтает разработчик игр?
Так вот, возвращаясь к основной теме: блюпринты. Ну классная же штука! и, если ты не работал с анрылом, тебе может показаться что это только про блоксхемки и логику. На самом деле нет: через них ты можешь собирать игровые объекты из других блюпринтов/крестовых классов. Можешь даже не хранить в них логику, а только данные: например сделал класс/блюпринт оружия, а дальше добавил туда поля какие геймплейные абилки оно даёт, какая моделька, какие эффекты, какой дамаг и так далее через формочки в самом редакторе движка. А потом бац, винтовка! или пистолет. Наверное, такая штука это какой-то общеизвестный паттерн, но я об этом не знаю, я просто мимо проходил во всей этой разработке на UE5. А, ну ещё через эти блоксхекмы прикольно в моменте что-то спрототипировать, а дальше на чистую можно и на крестах написать. Один минус: код-агентов сейчас под них особо не завезли, ну и да ладно. Там несложно. Да и всё сложное никто не запретит описать на плюсах, собсно это так и предполагается. Глупенькие геймдизайнеры клепают блюпринты, продвинутые разрабы сурово пишут кресты.
Не знаю, какая мораль. И до куда мы дойдем с этим проектом. Но одно могу сказать точно: дорогие булчане, пишите игры! хватит писать движки! лучше получить 1 какую-то игрушку, а не 10 недописанных и недобитых велосипедов. Осваивайте мощные инструменты, а не проделывайте путь от камня до кремниевого кристалла самостоятельно.
Короче, ничего нового. До встречи! пусть у всех получится допилить свою игрульку!
