Как сделать открытый мир в игре

Добавил пользователь Владимир З.
Обновлено: 19.09.2024

Автор: Артём Клиновицкий. По диплому — специалист по защите информации, но в основном занимался AR, VR и интерактивными инсталляциями в разных странах мира. В Pixonic пришёл на должность ведущего VR-разработчика, а сейчас — Senior R&D Software Engineer. Работает над прототипами и другими экспериментальными проектами компании.

Вот мы и добрались до темы, которую наверняка ждали многие, — как сделать трёхмерную игру. В головах некоторых начинающих разработчиков при этом возникает картина шикарной RPG с открытым миром, полной свободой действий и грабежами корованов. Но попытка на чистом энтузиазме взяться за реализацию масштабного проекта часто приводит к разочарованию. Лишь спустя десяток-другой собранных прототипов приходит понимание, какой объём работы нужен для разработки каждого элемента игры.

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

Поэтому лучше начинать с малого и постепенно добавлять в игру новые возможности. Тогда полученный в процессе опыт окажется намного ценнее, а следующая попытка гарантированно будет лучше.

Минутка истории. Многие в качестве примеров первых 3D-игр обычно вспоминают Doom или Wolfenstein 3D, но настоящим прародителем трёхмерных шутеров (ещё и с мультиплеером) была игра, выпущенная в стенах NASA в 1973 году — называлась она Maze War.

В те времена не было движков, программисты с большим трудом добивались лицензий и исходников какой-то существующей игры, чтобы её доработать, или же просто писали всё с нуля. На это уходила львиная доля времени разработки самой игры. Сегодня всё намного проще — можно спокойно выбрать один из популярных движков.

Рекомендую начинать с Unity: его не так сложно освоить, у него очень активное комьюнити и есть много готовых компонентов. На ближайшие несколько лет возможностей движка вам точно хватит.

Если вкратце, все 3D-движки создают изображение по одному сценарию.

  1. Модели и виртуальная камера располагаются в трёхмерном пространстве, с учетом положения, вращения и масштаба. К анимированным моделям применяются соответствующая анимации, например, изгибается часть модели, которая привязана к суставу скелета.
  2. Все модели покрываются текстурами. Одни текстуры сообщают о цвете определенных частей модели, другие — о том, насколько сильно эти части отражают свет, третьи содержат информацию о рельефе поверхности и так далее. По сути, текстуры — это обычные картинки. За то, как именно они будут накладываться и отображаться отвечают шейдеры — своего рода инструкции для видеокарты.
  3. Рассчитывается освещение с учётом источников света, расположения моделей относительно друг друга, заранее подготовленных световых карт (специальных текстур, содержащих информацию об освещённости 3D-моделей).
  4. Применяются пост-эффекты для финальной обработки картинки. Например, стилизация под нуар или эффект миниатюры.

Сами модели для игр создаются в отдельных редакторах вроде 3ds Max или Maya. Ещё есть бесплатный Blender с кучей туториалов на YouTube. Как именно это делается — слишком большая тема для нашего цикла, тем более, что в прототипах можно обойтись готовыми моделями из онлайн-библиотек и каталогов самих игровых движков.

Всё, что требуется от начинающего разработчика в этой части — понять общие принципы работы с моделями, отбора их для прототипа и грамотного размещения на сцене.

Как уже говорили в прошлой статье, для создания прототипа добавлять какую-либо озвучку в принципе не обязательно. Можно сделать целую игру, обкатать геймплей, настроить всю графику и только в конце добавить озвучку. Но важно ведь ещё и не потерять интереса к процессу.

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

В этом разделе речь пойдёт о том, что делает статичный набор моделей, картинок и звуков собственно игрой.

Вам будет проще, если вы уже владеете программированием на одном из высокоуровневых языков. В целом, написание кода для игр происходит по тем же фундаментальным принципам, с использованием тех же паттернов и моделей проектирования. Программирование всё равно придётся изучать — рано или поздно.

Но кому хочется корпеть над учебниками по кодингу вместо того, чтобы делать игры. Тут есть два пути.

Первый: освоить самые азы, повторяя за туториалами (разницу между туториалами и курсами мы разобрали в прошлой статье цикла). Делая это, можно узнать, как писать код для самых базовых вещей, понять синтаксис языка и то, как код управляет происходящим в игре. Постепенно вы сможете делать аналогичные вещи самостоятельно, а затем выучите новые операторы, которые расширят ваши возможности.

Конечно, сделать действительно сложную логику с помощью только этих инструментов будет крайне трудно, а поддерживать и отлаживать — ещё труднее. Но для новичков они сильно снизят порог входа в геймдев.

Возможно, для первого раза лучше отложить собственные идеи для игр и выбрать один из готовых проектов, для которого есть хорошие туториалы. Так вы сможете шаг за шагом изучить интерфейс и возможности игрового движка и его редактора, понять основы построения игр. А также более трезво оцените свои собственные силы.

Следовать туториалам несложно, но я очень советую избегать слепого копирования. Экспериментируйте: что будет, если задать другое значение параметра в скрипте; а если сделать совсем другую форму коллайдера; и так далее.

Закончив урок, добавьте к проекту что-нибудь своё: новую возможность для персонажа, красивый уровень из найденных ассетов, озвучку или другой вариант управления.

Главное — выйти за рамки простого повторения. Только тогда можно по-настоящему усвоить материал и приобрести устойчивые навыки.

Движок Unity со всем необходимым можно получить совершенно бесплатно. Более того, сделанные в нём игры можно официально публиковать и продавать, пока они не начнут приносить прибыль больше $100 тысяч в год. Функции бесплатной версии фактически не ограничены — разве что придётся мириться с логотипом Unity на старте игры и светлой темой интерфейса редактора.

Советую сразу скачивать последнюю версию, несмотря на то, что большинство уроков сделаны до её выхода. Большая часть действий почти не будут отличаться, а если где-то возникнут расхождения, тем лучше — самостоятельно найдите, как выполнить в новой версии то, что описано в уроке. Так обучение будет намного эффективнее.

Важное исключение: если урок затрагивает создание интерфейса игры (UI) и он предназначен для Unity версии 4.5 или раньше — он устарел целиком и полностью. Потому что в версии 4.6 UI был полностью переработан — изучать устаревшую версию не имеет смысла.

Ещё в комплекте с Unity поставляется бесплатная некоммерческая версия редактора кода Visual Studio. Советую сразу его установить и привыкать работать в профессиональной среде.

Теперь к конкретным урокам, которые могут пригодиться для создания первого прототипа. Заодно можно на практике увидеть, как работают люди с большим опытом создания игр.

    начального уровня от Unity по созданию адвенчуры про Элен, которая потерпела крушение на неизвестной планете. Весь урок можно выполнить без написания и строчки кода, на основе бесплатного 3D Game Kit. А после него можно изучить и весь раздел Tutorials на сайте Unity — там много полезных уроков. , официально рекомендуемый Unity. Он охватывает множество аспектов этого движка: программирование, физика, шейдеры, искусственный интеллект, звуки, частицы и так далее. Курс рассчитан примерно на 50 часов, и на него иногда действуют большие скидки. от YouTube-канала Brackeys по созданию игры в жанре Survival. Инди-игры в этом жанре довольно популярны, и многие наверняка хотели бы сделать что-то подобное. Этот туториал поможет начать. с отдельными роликами от того же автора. В нём могут быть уроки, которые пригодятся именно вам. от разработчиков Unity. Я советую первые две: прототипирование на UFPS и работа с Playmaker. от N3K по созданию мобильного раннера, по сути — клона Subway Surfer, но про пингвинов. Однозначно стоит взглянуть всем, кто интересуется разработкой мобильных игр. по созданию профессионально выглядящей лесной сцены в Unity из готовых ассетов (ссылки на них есть в описании к роликам). Подойдет тем, кто хочет самостоятельно собрать крутой уровень, не хуже, чем в коммерческих проектах.

Кто-то мечтает сделать классический ПК-шутер, кто-то мобильный раннер, кто-то возродить жанр стратегий в реальном времени. Поэтому задание будет общим.

  • Выберите серию уроков, которая лучше всего вам подходит, — из списка выше или самостоятельно.
  • Скачайте и установите Unity или любой другой движок. Начните следовать выбранным урокам, повторяя за автором. Но не забывайте экспериментировать, чтобы понять, как всё устроено.
  • Закончив туториал или курс, попробуйте самостоятельно улучшить результат. Добавьте то, без чего прототип игры в выбранном жанре будет неполным. Это не обязательно должно быть чем-то сложным, главное — выйти за рамки обучающих материалов.

В следующий раз мы немного отойдем от Unity и более подробно разберем создание логики для прототипа без навыков программирования. Для этого мы используем Blueprints, о которых мы уже говорили, и которые входят в базовый комплект движка Unreal Engine.

Мы сейчас с друзьями создаем игру с большим открытым миром на Unity. Недавно провели такой эксперимент.
Взяли высокополигональных моделей цветов и расставили их в большом количестве на небольшой территории около здания.
Когда игрок находится на противоположной стороне здания, в том месте где не видно этих самых цветов, и поворачивается
к ним лицом, тогда игра начинает притормаживать. Получается, что в Unity даже те модели, которые в принципе не видны, происходит
их рисование? Это нас немного огорчило, потому что игра планируется с очень большим открытым миром с множеством
моделей. И, пока проект находится на начальной стадии разработки, задумались сменить игровой движок. Только не знаем как
обстоят дела в Unreal Engine и CryEngine. Там так же рисуются модели, которых не видно (которые закрыты другими строениями)?
Посоветуйте как поступить и какой игровой движок выбрать в данной ситуации?

UE и CE вроде могут.

pi-x-el
> Только не знаем как обстоят дела в Unreal Engine и CryEngine.
Примерно точно так же, может чуть-чуть получше.

> Посоветуйте как поступить и какой игровой движок выбрать в данной ситуации?
Конечно же NetWars Engine, только он идеально подходит для больших открытых миров, и особенно если будет ММО составляющая.

pi-x-el,
Dmitry10, скромно не объявил, что NetWars Engine - это его творение , с закрытым кодом, платное.

pi-x-el
> Там так же рисуются модели, которых не видно (которые закрыты другими
> строениями)?
Врубаешь куллинг, и не рисуются, так же как и на юнити можно сделать.

Спасибо. Про NetWars Engine впервые слышим. Попробуем посмотреть что это за чудо. А то, что платное не есть хорошо)

Dmitry10
> Конечно же NetWars Engine, только он идеально подходит для больших открытых
> миров, и особенно если будет ММО составляющая.

Есть примеры готовых игр или игр в разработке на данном движке?

pi-x-el
> Врубаешь куллинг, и не рисуются, так же как и на юнити можно сделать.
Получается куллинг по умолчанию выключен. Не знал про это. OK

pi-x-el
> А то, что платное не есть хорошо)
То что платное - это враньё, движок полностью бесплатный, в отличии от Unity, UE и CE.

> Есть примеры готовых игр или игр в разработке на данном движке?
Да, есть, и SDK есть, гугли, инфы много о движке.

Dmitry10
> Да, есть, и SDK есть, гугли, инфы много о движке.

Кроме шахмат и карт и простеньких примеров вывода текста и гуи ничего не нашел

pi-x-el
> Получается куллинг по умолчанию выключен. Не знал про это. OK

там довольно мудрёная система, но для качественного эффекта необходима такая мудрёность

предполагаю, проблему могут составить деревья и трава, которые от ветра колышатся (модифицируются в вершинном шейдере), да и прочие анимированные объекты с костной анимацией


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

0xc0de
> Кроме шахмат и карт и простеньких примеров вывода текста и гуи ничего не нашел

шахматы хоть с открытым миром?

Chupakaber
> шахматы хоть с открытым миром?

На заднем плане какой-то мир виднеется :)

0xc0de
> На заднем плане какой-то мир виднеется :)
Ну, он открытый?

Почему открытый мир не всегда идет на пользу видеоиграм?

В конце 90-х все геймеры мечтали, что когда-то появятся игры, в которых можно будет бегать по огромному, открытому миру и делать все что угодно. Хотели? Получите! Уже в 2001 году выходит GTA 3, которая просто поражает своими масштабами и доступными для игрока возможностями. С этого момента игр с открытым миром становилось все больше, а вместе с ними и проблем, которые создают огромные масштабы проектов.

Сегодня поговорим о главных недостатках открытых миров в видеоиграх, которые зачастую все портят.

Почему открытый мир не всегда идет на пользу видеоиграм?

Естественно, в таких ситуациях сложно понять, о чем вообще идет речь в очередном квесте. Иногда сюжет постепенно вспоминается по ходу игры, но бывает и такое, что геймер не понимает, почему сейчас он решает те или иные задачи, потому что перед этим делал кучу ненужной чепухи. Такой проблемой грешат как не очень популярные игры, так и ААА-проекты вроде того же Red Dead Redemption 2, где можно потратить несколько часов на охоту или сбор каких-то ресурсов и забыть, на каком моменте остановился сюжет игры. Это очевидно проблема, потому что открытый мир не дает как следует погрузиться в историю.

ТОП 10: Лучшие кооперативные игры с открытым миром

Подборка игр с большим открытым миром, в которые можно поиграть с друзьями или знакомыми в кооперативном режиме.

Ужасные второстепенные задания

Почему открытый мир не всегда идет на пользу видеоиграм?

Скорей всего, игроделы еще долго не будут писать внятные сайд-квесты, потому что им это не нужно. В большинстве современных игр из всех побочных заданий встречается от силы 2-3, которые действительно увлекательные, а все остальное просто вызывает скуку. Это, опять же, серьезная проблема открытых миров, ведь разработчики начали заполнять их чем попало.

Лишние активности для игрока

Почему открытый мир не всегда идет на пользу видеоиграм?

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

Все эти вещи созданы для того, чтобы заполнить пустой открытый мир в играх, но по сути, они никому не нужны и только вызывают раздражение. Наверняка со мной согласятся те, кто играл в Far Cry 5 или более поздние части франшизы. В них ненужные активности возвели в абсолют и вы больше времени убьете на зачистки деревень с сектантами и сбор всякого мусора, чем будете изучать открытый мир и погружаться в историю проекта.

Статичность виртуального мира

Почему открытый мир не всегда идет на пользу видеоиграм?

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

10 великих актеров, скрытых в ваших видеоиграх

Спрятанные актеры в видеоиграх. Бен Кингсли взошел на престол, Мишель Родригез снова сильная женщина, а Сэмюэл Л. Джексон устроил коррупцию в полиции.

Вынужденный гринд

Почему открытый мир не всегда идет на пользу видеоиграм?

Этот недостаток касается всех проектов с открытым миром, где присутствуют элементы RPG. Дело в том что в последнее время разработчики буквально грешат разделением открытого мира на области, которые доступны по достижению определенного уровня или после выполнения каких-то условий. То есть главный герой начинает свое путешествие в одной локации, чтобы попасть в следующую, ему нужно прокачаться. В противном случае новая локация либо вообще заблокирована, либо там его ждут настолько сильные враги, что лучше не терять время и вернуться в предыдущую для гринда.

В любой игре, где присутствует подобная механика, концепция открытого мира ломается. У игрока изначально появляются ограничения, хотя, казалось бы, в подобных условиях, где якобы вся виртуальная вселенная игры открыта, такого быть не должно. Мы же в реальной жизни можем ходить куда угодно, и нам не нужно, например, закончить школу, чтобы попасть в новый район в своем городе, а потом универ, чтобы путешествовать по разным городам, и только когда получим работу, откроем весь мир. Зачем это нужно в играх, я не пойму до сих пор.

Однообразные локации

С этой проблемой лучше всего справляется Ubisoft. Например, в The Division 2 можно найти массу запоминающихся мест, притом что события игры происходят в мегаполисах штата Вашингтон. Казалось бы, можно сделать от силы 5 спрайтов для зданий и просто чередовать их, но разработчики пошли дальше и отменно детализировали город. Вот такой подход идет открытому миру на пользу и заставляет любоваться им во время прохождения.

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

Как играть в Minecraft по сети с друзьями

Играть в Майнкрафт можно не только в одиночном мире, взаимодействуя исключительно с жителями деревни – существуют разные методы, позволяющие создать локальный или сетевой сервер, чтобы сгенерировать новый мир и начать исследовать его вместе с друзьями.

Предлагаю ознакомиться с разными способами создать сервер Minecraft для игры с друзьями по сети.

Вариант 1: Открытие одиночного мира для игры по LAN

Если ваши с другом компьютеры объединены в одну локальную сеть или хотя бы соединены с одной беспроводной точкой доступа, можно воспользоваться самым простым вариантом – открыть одиночный мир для игры по LAN. Для этого нужно выполнить пару простых действий.

Редактирование локального сервера для игры по сети в Minecraft

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

Мощные игровые серверы для Minecraft от 3 руб./час

От 4 Гб ОЗУ, от 80 Гб на скоростном NVMe и стабильные 200 Мбит/сек

Вариант 2: Создание выделенного локального сервера Minecraft

Этот вариант тоже подойдет в том случае, когда вы с другом находитесь в пределах одной квартиры и подключены к локальной сети при помощи LAN-кабеля или Wi-Fi. Если вы еще не организовали подобное подключение, обязательно выполните его, а затем на всех компьютерах приступайте к общей настройке операционной системы, необходимой для присоединения к будущему серверу.

В качестве IP задайте 192.168.0.X , где вместо последней цифры вставьте любое число до 64. Маска подсети указывается как 255.255.255.255 . В завершение отправьте компьютер на перезагрузку. На других ПК сделайте то же самое, но последнюю цифру IP-адреса меняйте на неиспользованную ранее, чтобы при подключении не появились конфликтные ситуации.

Следующий этап – создание сервера для игры по локальной сети. В этом случае у пользователя появляется два разных варианта. Первый более оптимальный, поскольку позволяет создать полноценный сервер и далее модернизировать его модами или изменять настройки по желанию. Файлы пустого сервера Майнкрафт понадобится скачать с любого удобного сайта в интернете, задав соответствующий запрос поисковику. После этого войдите в директорию и откройте файл с настройками через любой текстовый редактор (файл server.properties).

Поиск и загрузка сервера для подключения по локальной сети в Minecraft

Далее отредактируйте несколько строк для обеспечения нормального соединения. В первую очередь найдите server-ip=X и после знака равно впишите IP того компьютера, который выступает в качестве основного (тот IP-адрес, что создавался в предыдущем шаге). В строке server-port=N вписывается порт, обычно это 25565 . Осталось запустить сервер через присутствующий в директории файл start.bat .

Вариант 3: Организация сетевого подключения через Hamachi

Hamachi – самая популярная программа для организации виртуальных сетей. Она может использоваться геймерами для того, чтобы создавать одну сеть для совместной игры с друзьями, которые находятся за пределами локальной сети или не могут подключиться к ней по другим причинам. Каждый пользователь должен скачать Хамачи с официального сайта и создать учетную запись.

Настройка Хамачи для игры по сети в Minecraft с друзьями

Вариант 4: Использование общедоступных серверов или Realms

Существуют общедоступные серверы Майнкрафт, на которых может играть огромное количество людей одновременно. Ничего не помешает вам с другом найти одинаковый сервер, подключиться к нему, пройти регистрацию и найти друг друга для дальнейшей игры. Учитывайте, что некоторые серверы доступны только для лицензионных версий Minecraft, а другие работают и с пиратскими.

Просмотр условий подписки на официальном сайте для игры с друзьями в Minecraft

Еще один вариант – покупка Realms на официальном сай те . В счет ежемесячной подписки у вас появляется возможность организовать сервер и подключить к нему до десяти игроков. Кликните по выделенной ссылке, чтобы ознакомиться с преимуществами этой подписки и решить, нужна ли она вам с друзьями.

Это были все возможные варианты организации совместной игры с друзьями в Minecraft по сети. Приятной игры вам и вашим друзьям!

Читайте также: