Онлайн шутер на Unreal Engine 4 за 90 часов (видео создания + исходники)
Привет, харб! Примерно год назад я выкладывал статью о том, как я в прямом эфире создал выживалку за 150 часов. На этот раз хочу представить вам сетевой шутер, который я создал за 25 заходов по 3 — 4 часа. Всего вышло около 90 часов и в итоге мы создали онлайн шутер, в который сыграли вместе со зрителями.
Как и в прошлой серии, цель проекта — показать новичкам, как работать с сетью в UE4 на примере шутера. В стримах мы рассмотрели как организовывать связь между сервером и клиентами, где какая логика должна быть и выполняться, а так же рассмотрели разные побочные аспекты разработки, вроде создания карт, настройки анимаций и прочее.
Несмотря на чистое время, данный проект занял примерно 10 месяцев. Я делал большие перерывы в стримах, но тем не менее, закончил разработку и теперь он доступен всем бесплатно и без смс. Если вас интересуют подробности, записи стримов, исходники или билд игры с сервером в комплекте, предлагаю прочитать дальше под катом!
В стримах мы рассмотрели почти весь процесс создания игры (за исключением её релиза). От планирования, до импорта и настройки графики и тестирования с реальными игроками. Тем не менее, из-за сжатых сроков, мы пропустили несколько важных моментов, например балансировку, прототипирования и ещё пару моментов.
Большая часть, конечно, ушла на логику игры. Изначально мы реализовали поведение персонажа, сделали менеджер и классы оружия, затем уже делали игровые режимы и раунды.
Почти весь проект написан на Блупринтах. Причины достаточно просты: Курс нацелен на новичков. В С++ им ориентироваться сложно, а так все более понятно. Нет смысла использовать С++, когда от него нет никаких преимуществ по производительности. Клиент работал стабильно и быстро. А сервер при 16-ти игроков занимал всего 1-2% от процессора ( домашний i7 4770). Да и вся логика событийно-ориентированная. При желании, можно включить нативизацию Блупринтов, что бы они конвертировались в C++. Благодаря этому разница между Блупринтами и С++ остается лишь в удобстве и возможностях, но не в производительности. Все, что нам нужно было, умеют Блупринты. Единственный раз, когда нужно было залезть в С++, это написать создание сессии. Конечно, это и Блупринты умеют, однако это нужно было из-за того, что бы работала Онлайн сабсистема и её мастер сервер, которую разработчик может присоединить (Например Steam)
Так же мы поработали над графикой. На реалистичную или какую-то особую графику времени не было, поэтому мы сделали простую, мультяшную графику с обводкой. Оружие и персонажей оставили стандартные. Сделали даже две карты, что бы после завершения раунда у нас было голосование за следующую карту и, соответственно, сам переход.
Конечно, на готовый продукт это не похоже, но я надеюсь, что свою работу проект выполнил. Мы рассмотрели очень много полезных вещей, использовали все основные возможности блупринтов по общению клиентов с сервером. В итоге мы собрали выделенный сервер и поиграли все вместе в командном режиме 8 на 8 игроков.
В дополнение хочу сказать, что вне стрима я собрал билд на андроид. Игра работала и подключалась к серверу нормально. Мы с другом смогли побегать вместе (он на телефоне, я на компе). Конечно управление мы не делали для сенсоров, но я все же хотел добавить этот факт в статью. Так что если вам нужен сессионный шутер для телефонов, welcome.
Исходники на Git: gitlab.com/Flakky/Stream-multiplayer-shooter Исходники на ЯДиск: yadi.sk/d/8-Vn_QQ-3Smyqq Сборка игры: yadi.sk/d/nC3FJjRV3Si8qP (сервер в папке MultiplayerShooter/Binaries/Win64) Лицензия: creativecommons.org/licenses/by-sa/4.0/deed.ru
По планам дальше я хочу создать аркаду на С++, а за ней будет серия стримов по созданию RTS стратегии. В группе по стримам вы сможете найти подробную информацию, записи стримов, а так же смотреть сами трансляции.
>>2387147 > не отличать имена собственные и названия торговых марок от английской кальки слова, для которого есть синоним, соответствующий всем нормам языка
>>2387211 >норма языка Звучит как "стандартизированная бутылка для приседания", любому нормальному человеку похуй на нормы пидорашкинского кривожопого языка, они будут выражаться так, как хотят, с любыми заимствованиями, несловарными выражениями и т.д., кому надо тот поймёт, а что там НОРМОпидораха скулит никого не волнует.
>>2386883 (OP) Ну а хули, одебиливание и упрощение сейчас везде, жмешь кнопку\педальку\курок - пиздат. Скоро любой мамкин погромист в два клика сможет йоба дрочильню создавать, технологический прогресс блядь
>создать игру - 90 часов >отлов багов - бесконечно Давайте признаем - игроделы уже настолько охуели, причём не только российские и даже вполне японские, что уже называют альфа-поделку ИГРОЙ. Просто потому что дегенераты и за такую заплатят.
>не понимать, что речь идёт буквально о конкретном программном продукте, который обеспечивает объектное программирование для C++, а не о "чертежах" с твоего вонючего завода
>>2387272 Ну а то, надстройка она для того и существует чтобы не лепить велосипеды а использовать абстракцию над сложной функцией которую делал специалист.
C++ classes can be extended with Blueprints, allowing programmers to set up new gameplay classes in code that can be built upon and changed with Blueprints by level designers. There are a number of specifiers that change how a C++ class interacts with the Blueprint system, and some of them will be highlighted in this example.
>>2387280 Так всегда было - на олдгеймсе интересно почитать про игры 90-ых, там такие высеры попадаются, что просто охуеваешь и ведь за них кто то бабло получал
>>2387307 Помнится пару высеров от достопочтеного Ричарда Гэрриота и уважаемых (тогда) ЕА жападные задроты сожрали и не поморщились. Видимо чтобы не выглядеть ватаном надо жрать говно с лыбой на лице, в знак уважения к интеллектуальной собственности и товарному знаку.
>>2387297 Так и называй свою сраную, занюханную библиотеку, фреймворк или хуй знает что это за говно Blueprint-ом уебуй отсюда вместе со своим говенным поделием в стиле "Как трахнуть твою мамку за 21 день".
>>2387001 >>2386915 >>2387211 Эх, а ведь можно запустить редактор, да импортнуть несколько мешей в сцену, и партиклами сверху приправить, набросать блупринты, а затем в код углубиться, эвенты прописать, чтобы партиклы к вертексам снапились, ну и за рендером следить, чтобы фпс был хороший.
>>2387371 Чтобы осознать достижения этого "ватана", нужно сожрать сотни обучающих видео других авторов и понять, что они дают на 90% меньше информации, а часто ключевую информацию сознательно недоговаривают.
А "ватан" показывает процесс от начала до конца. Так практически никто не делает — просто разводят на бабки, сверкая своим именем.
>>2386883 (OP) мдауж. По сути он 90 часов запускал дэмку из старых версий UDK. Вот еслибы он за это время реализовал механику D&D или MTG под управлением нейросети и обучил нейросеть создавать ёба биллды или деки, вот тогда да можно былобы прихуеть с такого.
>>2388406 Переехал в онлайн и на мобильные платформы, слоупок. И довольно неплохо себя чувствует - эти ваши шутаны и РПГ продаются хуже тем тетрисы и фермы, рыночек порешал.
Привет, харб! Примерно год назад я выкладывал статью о том, как я в прямом эфире создал выживалку за 150 часов. На этот раз хочу представить вам сетевой шутер, который я создал за 25 заходов по 3 — 4 часа. Всего вышло около 90 часов и в итоге мы создали онлайн шутер, в который сыграли вместе со зрителями.
Как и в прошлой серии, цель проекта — показать новичкам, как работать с сетью в UE4 на примере шутера. В стримах мы рассмотрели как организовывать связь между сервером и клиентами, где какая логика должна быть и выполняться, а так же рассмотрели разные побочные аспекты разработки, вроде создания карт, настройки анимаций и прочее.
Несмотря на чистое время, данный проект занял примерно 10 месяцев. Я делал большие перерывы в стримах, но тем не менее, закончил разработку и теперь он доступен всем бесплатно и без смс.
Если вас интересуют подробности, записи стримов, исходники или билд игры с сервером в комплекте, предлагаю прочитать дальше под катом!
В стримах мы рассмотрели почти весь процесс создания игры (за исключением её релиза). От планирования, до импорта и настройки графики и тестирования с реальными игроками. Тем не менее, из-за сжатых сроков, мы пропустили несколько важных моментов, например балансировку, прототипирования и ещё пару моментов.
Большая часть, конечно, ушла на логику игры. Изначально мы реализовали поведение персонажа, сделали менеджер и классы оружия, затем уже делали игровые режимы и раунды.
Почти весь проект написан на Блупринтах. Причины достаточно просты:
Курс нацелен на новичков. В С++ им ориентироваться сложно, а так все более понятно.
Нет смысла использовать С++, когда от него нет никаких преимуществ по производительности. Клиент работал стабильно и быстро. А сервер при 16-ти игроков занимал всего 1-2% от процессора ( домашний i7 4770). Да и вся логика событийно-ориентированная.
При желании, можно включить нативизацию Блупринтов, что бы они конвертировались в C++. Благодаря этому разница между Блупринтами и С++ остается лишь в удобстве и возможностях, но не в производительности.
Все, что нам нужно было, умеют Блупринты. Единственный раз, когда нужно было залезть в С++, это написать создание сессии. Конечно, это и Блупринты умеют, однако это нужно было из-за того, что бы работала Онлайн сабсистема и её мастер сервер, которую разработчик может присоединить (Например Steam)
Так же мы поработали над графикой. На реалистичную или какую-то особую графику времени не было, поэтому мы сделали простую, мультяшную графику с обводкой. Оружие и персонажей оставили стандартные. Сделали даже две карты, что бы после завершения раунда у нас было голосование за следующую карту и, соответственно, сам переход.
А вот и видеообзор всего, что мы сделали
https://www.youtube.com/watch?v=dpQRB4-jzio
Канал разработчика https://www.youtube.com/channel/UCLbkGIcYJxxL0tciH9RVebg/videos
Конечно, на готовый продукт это не похоже, но я надеюсь, что свою работу проект выполнил. Мы рассмотрели очень много полезных вещей, использовали все основные возможности блупринтов по общению клиентов с сервером. В итоге мы собрали выделенный сервер и поиграли все вместе в командном режиме 8 на 8 игроков.
В дополнение хочу сказать, что вне стрима я собрал билд на андроид. Игра работала и подключалась к серверу нормально. Мы с другом смогли побегать вместе (он на телефоне, я на компе). Конечно управление мы не делали для сенсоров, но я все же хотел добавить этот факт в статью. Так что если вам нужен сессионный шутер для телефонов, welcome.
Исходники на Git: gitlab.com/Flakky/Stream-multiplayer-shooter
Исходники на ЯДиск: yadi.sk/d/8-Vn_QQ-3Smyqq
Сборка игры: yadi.sk/d/nC3FJjRV3Si8qP (сервер в папке MultiplayerShooter/Binaries/Win64)
Лицензия: creativecommons.org/licenses/by-sa/4.0/deed.ru
По планам дальше я хочу создать аркаду на С++, а за ней будет серия стримов по созданию RTS стратегии.
В группе по стримам вы сможете найти подробную информацию, записи стримов, а так же смотреть сами трансляции.