Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Скайдом - пожалуй, самая красочная и интересная головоломка с действительно уникальными режимами игры!

Скайдом

Три в ряд, Головоломки, Казуальные

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Unity + Видеоигра

С этим тегом используют

Gamedev Разработка Инди Инди игра Игры YouTube Компьютерные игры Геймеры Steam Шутер Ретро-игры Все
423 поста сначала свежее
8
Milana.Satellite
Milana.Satellite
2 дня назад
Серия Всё про Satellite Odyssey

Экскурсия по советской космической станции⁠⁠

Привет! Добро пожаловать на станцию "Икар"!

Пойдем, я тебе всё тут покажу...

Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

Вот это - наш главный холл.

Не обращай внимание, на станции небольшой бардак! Если увидишь где-то красные следы, не переживай! Мы просто красили...ковёр...

Это точно не кровь. Абсолютно точно.


Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

А это Заря - искусственный интеллект, управляющий нашей станцией

Скажу тебе по секрету, она немного с прибабахом


Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

А вот эти милые мусорные вёдра на ножках - это наши роботы-инженеры

Честно говоря, я ни разу не видел этих халявщиков за работой! Они хоть чем-то полезным занимаются?


Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

Вот это - наша лаборатория... Ой-ой-ой, кажется тебе туда нельзя

Пойдем скорее дальше, у нас много дел!


Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

Это наш подвал. Тут можно уединиться и подумать о смерти...

...то есть о вечном! Само собой, я имел в виду именно это!


Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

А вот так выглядит наша станция "Икар"
Сейчас мы находимся на орбите Сатурна. Но по плану мы должны вернуться на Землю уже в 1980 году!

Как это уже 1986?!

Ой, кажется Ласка вышла из криосна! Я побежал!


Кстати про нашу станцию сделали игру 🚀

Можешь её пройти, она сейчас как раз со скидкой 30% на летней распродаже Steam 🎉

Экскурсия по советской космической станции Компьютерные игры, Gamedev, Видеоигра, Unity, Инди, Инди игра, Satellite Odyssey, Хоррор игра, Научная фантастика, Steam, Космос, СССР, Длиннопост

Спасибо, что заглянул ❤

Нам будет очень приятно, если ты жмакнешь стрелочку вверх или подпишешься🔺

Показать полностью 7
[моё] Компьютерные игры Gamedev Видеоигра Unity Инди Инди игра Satellite Odyssey Хоррор игра Научная фантастика Steam Космос СССР Длиннопост
4
429
white9
white9
7 дней назад
Лига Разработчиков Видеоигр
Серия Разработка проекта "Красный рубеж"

Знамя Победы. Поддержка с воздуха!⁠⁠

Доброго времени суток, продолжаю знакомить с проектом "Знамя Победы", который я 3 года разрабатываю в одиночку.

Это тактическая стратегия с управлением каждым юнитом от третьего лица и продвинутой системой строительства укреплений.

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

Знамя Победы. Поддержка с воздуха! Инди, Gamedev, Unity, Инди игра, Разработка, RTS, Стратегия, Великая Отечественная война, Шутер, Видеоигра, Видео, Короткие видео

И-153 "Чайка", в начале войны примерил на себя роль штурмовика

Использовать возможности авиации нужно с умом: удар способен изменить ход боя, но при неосторожности может зацепить и своих.

В игре представлено три типа самолётов:

  • Разведчик - пролетает над зоной, временно подсвечивая вражеские силы.

  • Штурмовик - наносит точечные удары ракетами.

  • Бомбардировщик - сбрасывает серию тяжёлых бомб. Мощно, но менее точно.

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

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

Пехоте помогут выжить не только воронки, но и окопы - они спасают от осколков и разрывов поблизости.

Бои в игре - это не только манёвры, но и грамотное использование местности, прикрытия и поддержки.

Спасибо, что продолжаете следить за проектом!

Все основные ссылки по традиции оставляю в комментариях

Показать полностью 1
[моё] Инди Gamedev Unity Инди игра Разработка RTS Стратегия Великая Отечественная война Шутер Видеоигра Видео Короткие видео
29
11
SevaFreeman
SevaFreeman
10 дней назад
Лига Разработчиков Видеоигр

Моя дебютная игра в Steam. Первый опыт. Crime Screen: Detective Cases #1⁠⁠

Всех приветствую!
С радостью анонсирую свою авторскую игру и делюсь первым геймплейным трейлером.

Crime Screen: Detective Cases — атмосферный нуарный point-and-click детектив с визуальным стилем эпохи PS1.

Изначально я планировал, что это будет простой поиск предметов в формате скринлайф для мобильных устройств и Яндекс.Игр: рабочий стол, папки, секретные файлы, пароли — и никакой трёхмерной графики!
Позже понял, что у меня получился довольно неплохой обучающий уровень, в котором я совместил 2D и 3D, приправив всё PS1-шейдерами.

В детстве на меня сильно повлияла первая PlayStation, и эта игра — своего рода дань уважения той самой консоли.

Вдохновением для атмосферной составляющей послужили Max Payne и Fahrenheit, а также классические игры эпохи PlayStation 1.

На текущем этапе разработки уже готова первая глава.

Для первого поста на Pikabu, думаю, этого достаточно. Подробнее об игре вы можете узнать на странице в Steam. Всем классных игр! До скорого!

Страница игры в Steam: https://store.steampowered.com/app/3793290/Crime_Screen_Detective_Cases/

[моё] Инди игра Инди Gamedev Unity Видеоигра Трейлер игры Русский трейлер Мобильные игры Разработка Компьютерные игры Головоломка Детектив Point and click Приключения Нуар Playstation 1 Steam Indiedev Видео Видео ВК
2
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
818
white9
white9
14 дней назад
Лига Разработчиков Видеоигр
Серия Разработка проекта "Красный рубеж"

Знамя Победы. Все в укрытие!⁠⁠

Доброго времени суток, продолжаю знакомить с проектом "Знамя Победы", который я 3 года разрабатываю в одиночку.

Это тактическая стратегия с управлением каждым юнитом от третьего лица и продвинутой системой строительства укреплений.

Показываю свежий геймплей с новой механикой - системой укрытий в прямом управлении
— Укрытия у окон и проемов - удобно для ведения огня из зданий
— Низкие укрытия - можно занять позицию, оставаясь в безопасности

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

Спасибо, что продолжаете следить за проектом!

Показать полностью
[моё] Инди Gamedev Unity Инди игра Разработка RTS Стратегия Великая Отечественная война Шутер Видеоигра Видео Короткие видео Видео ВК
56
4207
white9
white9
29 дней назад
Лига Разработчиков Видеоигр
Серия Разработка проекта "Красный рубеж"

Знамя Победы. Новое видео!⁠⁠

Доброго времени суток, продолжаю знакомить с проектом "Знамя Победы", который я разрабатываю в одиночку уже 3 года.

Вы сможете управлять любым бойцом в режиме шутера и стратегии, меняя роль на поле боя. Иными словами, сможете и полком командовать, из винтовки стрелять, и на танке кататься!

Показать полностью
[моё] Инди Gamedev Unity Инди игра Разработка RTS Стратегия Великая Отечественная война Шутер Видеоигра Видео Короткие видео
335
142
white9
white9
1 месяц назад
Лига Разработчиков Видеоигр
Серия Разработка проекта "Красный рубеж"

Красный Рубеж/Знамя Победы на IGN!⁠⁠

Продолжаю в одиночку разрабатывать игру о Великой Отечественной войне.

Вчера состоялся международный анонс нового трейлера игры на крупнейшем игровом канале IGN!

Разве мог я ранее думать о подобном?

О проекте

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

Танки, пехота, миномёта, артиллерия - всё это может быть под вашим прямым контролем.

Недавно у проекта появился издатель, а также международное название:

"Victory Banner/Знамя Победы".

Новое название является глубоко символичным и на английском языке обозначает знамя, водружённое над Рейхстагом!

Проект создаётся всего одним энтузиастом без финансирования. Для меня важно сделать хорошую патриотическую игру.

Буду очень рад вашей моральной поддержке!

Показать полностью
[моё] Инди Gamedev Unity Инди игра Разработка RTS Стратегия Великая Отечественная война Шутер Видеоигра Видео
13
13
Milana.Satellite
Milana.Satellite
1 месяц назад
pikabu GAMES
Серия Satellite Odyssey: Jupiter

Satellite Odyssey: Jupiter - Devlog#1⁠⁠

Научная фантастика, сиськи, собака, космос, Resident Evil, ретрофутуризм, советская эстетика...

Satellite Odyssey: Jupiter - Devlog#1 Опрос, Игры, Компьютерные игры, Steam, Космос, Научная фантастика, Видеоигра, Gamedev, Шутер, Хоррор игра, Инди, Unity, Инди игра, Видео, Без звука, Короткие видео, Длиннопост

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


Привет, товарищ! Мы уже полгода работаем над второй частью нашей серии игр — Satellite Odyssey: Jupiter. И с сегодняшнего дня будем время от времени публиковать небольшой рассказ о проделанной работе.

🎮 Если ты не знаешь ничего про нашу серию игр, то можешь почитать посты вот тут или сразу заглянуть на страницу нашей первой игры в Steam!
Проходится она за час-полтора и стоит всего 82 рубля!

Satellite Odyssey: Jupiter - Devlog#1 Опрос, Игры, Компьютерные игры, Steam, Космос, Научная фантастика, Видеоигра, Gamedev, Шутер, Хоррор игра, Инди, Unity, Инди игра, Видео, Без звука, Короткие видео, Длиннопост

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

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


На данный момент мы выпустили первую часть серии - Satellite Odyssey: Prologue.

Как упоминалось выше, она совсем короткая и стоит символических 82 рубля.
Это сюжетное приключение, вдохновленное советскими фильмами и классикой научной фантастики.

У игры 94% положительных отзывов в Steam, а также 8 наград на шести разных фестивалях.

Satellite Odyssey: Jupiter - Devlog#1 Опрос, Игры, Компьютерные игры, Steam, Космос, Научная фантастика, Видеоигра, Gamedev, Шутер, Хоррор игра, Инди, Unity, Инди игра, Видео, Без звука, Короткие видео, Длиннопост

Недавно вышло интервью нашего креативного директора с Виталием Казуновым из iXBT, где он много рассказывает про все наши ошибки в процессе разработки первой части.


Вот с таким багажом мы подошли к разработке Satellite Odyssey: Jupiter.

Какой мы видим вторую часть серии?

  • В отличие от первой части, в Jupiter за основу будет взят геймплей, а не сюжет.


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

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

    Само собой, мы привнесем в него свой сеттинг, свой сюжет и дополним какими-нибудь уникальными нюансами. Но в основе будет вполне понятный референс.

Satellite Odyssey: Jupiter - Devlog#1 Опрос, Игры, Компьютерные игры, Steam, Космос, Научная фантастика, Видеоигра, Gamedev, Шутер, Хоррор игра, Инди, Unity, Инди игра, Видео, Без звука, Короткие видео, Длиннопост
  • Атмосфера станет более мрачной, а сеттинг эволюционирует

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

    Наш персонаж попадает на советскую базу на Европе - спутнике Юпитера... Пока не буду раскрывать всех тонкостей, но восприятие знакомой стилистики неизбежно поменяется.

  • И, да, мы решили украсить визуал игры не только великолепным видом на льды Европы, но и эстетичным женским телом

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

    Не зря же я так часто наблюдала на стримах, как игроки неистово приседали по несколько минут подряд, оценив мою озвучку охов и вздохов главной героини Satellite Odyssey: Prologue
    😅


На каком этапе игра сейчас?


Satellite Odyssey: Jupiter в разработке с ноября 2024 года. Уже этой осенью мы выпустим в Steam демо-версию. Это будет очень важный этап для нас, потому что у первого проекта не было демо. В этот же раз мы очень хотим уже на этапе демки получить обратную связь наших игроков.

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


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


Наш 3D художник Лёша строит многочисленные коридоры, комнаты и лестницы, тщательно подбирает текстуры, наполняет каждое помещение уникальными предметами интерьера.

1/3

Серёжа Каретников отвечает за ощущение от игры в целом. Поэтому всё от сюжета до расположения книг на полке в одной из десятка комнат - это его ответственность.

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

1/5

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



А что там с собакой-то?


Охх, с собакой целая история!

Идея добавить её в игру родилась у нас в самом начале разработки. Тогда мы буквально за 2 недели собрали первый играбельный прототип. На его основе мы сделали трейлер и скриншоты, с которыми открыли страницу в Steam. С этим же прототипом мы участвовали в Игропроме и РЭД ЭКСПО.


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

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

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

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

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

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

Лицевая анимация - отдельная песня! Даже в ААА проектах это может выглядеть кринжово, а мы-то куда с такими затеями?

Вот так и получается, что не только наши идеи, но и просьбы наших игроков мы зачастую не способны реализовать. На фестивалях, увидев игру за двух персонажей, люди часто спрашивали "А это кооп?". После ответа "Нет", они вздыхали и просили "А сделайте кооп!". А мы бы и рады, но сделать такой кооператив, чтобы обоим игрокам было интересно, при этом сохранив собаку и не понижая текущий уровень графики, а еще уложившись в сроки и бюджет (хоть отдалённо)... Это задача может стоить нам примерно 4 седые головы, 2 инфаркта и 3 нервных срыва.

❗ Сразу оговорюсь: идею создания кооператива в рамках нашей вселенной Satellite Odyssey мы не закапываем! Но её реализацией мы займёмся немного позже.

В процессе дальнейших размышлений над сценарием и геймплеем, мы твёрдо решили, что нам в игре нужен женский персонаж. Но тут возник вопрос. Что лучше: женщина или собака?

В поиске истины мы натыкались на самые разнообразные варианты😅

Satellite Odyssey: Jupiter - Devlog#1 Опрос, Игры, Компьютерные игры, Steam, Космос, Научная фантастика, Видеоигра, Gamedev, Шутер, Хоррор игра, Инди, Unity, Инди игра, Видео, Без звука, Короткие видео, Длиннопост

На данный момент мы всё же склоняемся к тому, что собаки в этой части не будет. Но всё может поменяться в любой момент! Не секрет, что итоговую версию Satellite Odyssey: Prologue мы собрали за 4 месяца до релиза. До сих пор у нас есть почти готовая игра с совершенно другим сценарием. Однажды мы её доделаем и выложим в каком-нибудь формате. Лично мне та версия нравится даже больше, чем релизнутая 😉


Что ж. Для первого девлога, пожалуй, достаточно!

Что хочется отметить в конце?

  1. Весь визуал, который вы видите в скринах, видео и в трейлере НЕ является финальным.

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

  2. Мы всегда рады вашим идеям и предложениям! Так что смело пиши, чего ждёшь от игры и какие фишки хотел бы видеть.

  3. Если хочешь поработать над нашим проектом, то можешь заполнить анкету.

  4. Если хочешь знать обо всех новостях и нюансах разработки, то подписывайся на наши соцсети! Для самых любопытных есть Twitch канал Серёжи, где можно напрямую задавать любые вопросы главному человеку на проекте!

Будем очень благодарны поддержке в виде лайков и комментариев! Задавайте любые вопросы - постараюсь на всё ответить!

И, конечно же, любим всех от Земли до Сатурна и обратно ❤


Что тебе интереснее видеть в девлогах?
Всего голосов:
Показать полностью 13 5 1
[моё] Опрос Игры Компьютерные игры Steam Космос Научная фантастика Видеоигра Gamedev Шутер Хоррор игра Инди Unity Инди игра Видео Без звука Короткие видео Длиннопост
11
15
alrocraft
alrocraft
1 месяц назад
Лига Разработчиков Видеоигр

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1⁠⁠

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Картинка для кликбейта

Доброго времени суток! Если вы вдруг захотели сделать игру со случайной генерацией мира (В моем случае это приключенческий выживач-боссобойка) но у вас как и у меня нет либо навыков, либо желания делать сложную процедурную генерацию полноценных структур, то, возможно, вам подойдет мой вариант, который я постараюсь расписать ниже.

  1. Сам принцип:

Играли в Морской Бой? В нем на двухмерной матрице 10x10 на нужно расставить опр. количество маленьких, средних и больших кораблей.

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

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

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

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Само собой это можно будет конфигурировать под ваши нужны, например если бы вам хотелось чтобы крупных островов было больше, а маленькие, к примеру, могли бы прилегать к островам побольше. Да в принципе и понятие "большой" можно наверное превратить и в целые материки, не 2x2 ячейки, а скажем 6x6.

Штош, хватит картинок и буковок, займемся кодом! (Ага, теперь буковки даже без картинок пойдут...)

2. Пишем код для генерации 2d матрицы с данными о расположении островов

Для начала определимся что карта островов будет int двумерным массивом, где:
0 - пустое пространство
1 - маленький остров
2 - средний остров
3 - большой остров

И так, создаём скрипт "IslandMapGenerator", и первым делом задаём перечисление (enum) с нашими островами (заодно видны настройки класса, он не статический, и не Monobehavior)

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

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

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Конструктором мы будем определять экземпляр класса, задавая ему при инициализации seed

Метод GenerateIslandsMap()

Далее пишем основной метод, который и будет возвращать 2d массив с островами, она же наша карта островов

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Метод принимает следующие параметры:

worldSize - размер мира, то есть размер нашего 2d массива
b|m|s_islandCount - количество островов каждого типа, которые необходимо генерировать.

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

Возвращает метод int[,] islandsMap, то бишь необходимый нам результат в виде 2д массива с будущими островами, пока что это просто цифорки)

Метод PlaceIslands()

Теперь, собственно, перейдем к методу PlaceIslands() :

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Метод принимает 2d массив карты (1), который мы определили методом ранее, размер мира (2), количество островов (3) и тип острова (4).

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Он что делает... Он выполняет цикл while пока :
А Не будет создано необходимое кол-во островов.
Б количество попыток/итераций превысит лимит.

В каждой попытке он через наш _random определяет случайную координату для нашего массива, и... И вызывает еще один метод (Обожаю, сука, методы в методах!) TryPlaceIsland(), и если этот метод успешен (вернул true), то мы увеличиваем значение созданных островов на 1 (сама пометка ячейки под цифру острова происходит "глубже")

Метод TryPlaceIsland()

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Принимает в параметрах этот метод следующее:
1. 2d массив карты
2. размер мира
3 и 4. координаты в которых будем генерироваться (пытатся) остров, ну и вид острова.

Он через Switch определяет вид острова, и в зависимости от вида, вызывает ЕЩЕ ОДИН ВЛОЖЕННЫЙ МЕТОД (Эти последние, правда! (нет)), для каждого вида острова свой, зощем? Да потому что у каждого вида острова своя логика размещения.

(3) Большие острова - это 4 ячейки вместе (2х2), и соотв. за раз метод красит 4 ячейки и проверяет отсутствие соседей вокруг этих 4 ячеек, а не вокруг одной.

(2) Средние острова могут быть горизонтальными или же вертикальными, и состоят из 2х соседних ячеек

(1) Ну а с мелкими всё и так понятно

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

И наконец последние 3 метода, которые и выполняют всю логику пометок ячеек массива соотв. числом.

Все следующие методы будут принимать один и тот же набор параметров:
1. 2d массив карты
2. размер мира
3. позицию генерации х (внутри массива) и позицию y

Метод для большого острова TryPlaceBigIsland()

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

1) Первым делом мы проверяем что наша координата массива (startX и startY) не находятся в правом крайнем, или нижнем ряду массива, ведь тогда при попытке создать 4 ячейки острова он просто выпадет в ошибку (выход за границы массива)

2)

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Далее мы циклом перебираем все 4 ячейки будущего большого острова (красной точкой я отметил нашу startX | startY ячейку), внутри которых выполняем метод (этот точно последний, простите) IsCellValidForIsland(), метод выполняет проверку всех соседей вокруг ячейки, и возвращает true если соседей нет. (Код этого метода напишу в конце)

3) Если все 4 ячейки успешно прошли проверку этим методом, тогда мы переходим к третьему циклу, в котором мы точно так же проходимся по всем 4м нашим ячейкам, и передаем им значение 3 ((int)IslandSize.Big это 3)

Метод для среднего острова TryPlaceMediumIsland()

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Так как средний остров может быть либо вертикальным, либо горизонтальным, тут 2 поведения, в зависимости от значения horizontal, которое мы определяем через простенькое выражение (1) _random.Next(0, 2), генерирует случайное число в заданном диапазоне, и если == 0, то горизонтальная ориентация, иначе вертикальная.

2) Делаем в принципе аналогичные действия что и для большого острова, только для 2х ячеек а не для 4х, и со смещением на одну вправо по x

3) Аналогично, но смещаемся на одну ячейку вниз по y

Метод для маленького острова TryPlaceSmallIsland()

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

Ну тут все максимально просто, проверили соседей, влепили ячейке 1

Ну сам метод проверки отсутствия соседей IsCellValidForIsland()

Как я уже написал ранее, этот метод принимает в параметрах координаты ячейки, проверяет все ячейки вокруг (от x -1 y -1 до x+1 y+1) и возвращает истину если ни одна из этих ячеек не занята, и не выходит за границы массива

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

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

Давайте создадим еще скрипт (В этот раз стандартный Monobehavior ), и назовём его WorldGenerator, и повесим его на новый объект в сцене, и назовем его World

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

И напишите в скрипте следующий код:

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

DebugPrintIslandsMap() выведет в консоль игры текстовый вариант карты, которую мы в параметре ему передаем

А в Start объявляется в переменную генератор наш IslandMapGenerator, с сидом 123, создается маленькая карта через генератор, 10 ячеек, 2 больших острова, 3 средних и четыре маленьких, и выполняется метод вызова в консоль.

[Делаем игоры в Unity] Preset Islands, оно же "Самый простой способ генерации островного игрового мира", часть №1 Разработка, Gamedev, Компьютерные игры, 3D моделирование, Видеоигра, Unity, Инди, Длиннопост

У меня при заданном сиде 505 получился вот такой результат, немного повело из-за разницы в размере символ, но в целом читается.

На этом первую часть думаю стоит завершить, слишком много текста получилось. Пока что довольно непрезентабельно и примитивно, но я сам вызвался писать поэтапно) А это по сути просто массив-заготовка. Всё еще впереди)

Показать полностью 17
[моё] Разработка Gamedev Компьютерные игры 3D моделирование Видеоигра Unity Инди Длиннопост
14
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии