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

Сноуборд

Спорт, Аркады, На ловкость

Играть

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

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

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

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

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

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

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

Unity + Компьютерные игры

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

Gamedev Разработка Инди Инди игра Игры YouTube Видеоигра Юмор Геймеры Steam Картинка с текстом Все
650 постов сначала свежее
14
DevKitchen
DevKitchen
1 месяц назад
Лига Разработчиков Видеоигр
Серия Делаю игру на Unity3d

Делаю игру на Unity3d. Эпизод 7: Дерево поведения⁠⁠

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Сегодня мы посмотрим, как выглядит дерево поведения!

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Ведь посмотрим, да?

Использование дерева поведения требует прикрепления к игровому объекту специального компонента - BehaviourTreeComponent.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Ничего лишнего

В компоненте указывается только конфиг с настройками дерева. Конфиг у нас в виде ScriptableObject и настройки всех нод дерева тоже выполнены в виде ScriptableObject, но уже вложенных.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

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

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Есть несколько типов нод - корневая, составная (параллельная, выборочная, последовательная), условная и действие (состояние). Все выделено особым цветом для удобства. При клике на ноду видим ее параметры.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Красота!

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

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Зеленым выделены активные узлы

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

Подробности, как всегда, в полном видео на моем канале

А потом приглашаю в комментарии - задавайте вопросы по видео и просто по юнити!

Приятного просмотра!

Показать полностью 6 1
[моё] Gamedev Разработка Инди игра Unity Инди Unity3D Indiedev Компьютерные игры Программирование IT IT юмор Паттерны YouTube Видео Длиннопост
5
3
mars.frontier
mars.frontier
1 месяц назад
Лига Разработчиков Видеоигр

Как сделать игру, в которую люди возвращаются?⁠⁠

Как сделать игру, в которую люди возвращаются? Разработка, Gamedev, Компьютерные игры, Игры, Ретро-игры, Мобильные игры, Unity, Unreal Engine, Длиннопост

На графике видно, что около половины визитов - это повторные входы пользователей. Как удалось добиться подобного % Retention? Читаем в данной статье!

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

Мы сами задавались этим вопросом, разрабатывая Mars Frontier — и вот какие выводы для себя сделали.

1. Должны быть причины вернуться

В нашем случае неплохо работает концепция зарядки аккумулятора. Поездил по карте, посадил аккумулятор, какое-то время ровер остается на зарядке. Об окончании оповещает рассылка (которая также поднимает retention - % вернувшихся пользователей). Также, конечно, частично работают:

  • Ежедневные бонусы - каждый новый заход в следующий день дает большее число монет - 1, 2, 5, 10 итп. До 50, потом цепочка сбрасывается.

  • Новые события (ивенты) - стараемся придумывать что-то новое в каналах и чатах, чтобы был стимул следить за развитием проекта, ловить промокоды, разные квесты на карте

  • Рейтинги, создали 2 видов, Собиратели (поиск кристаллов на карте) и Инвайтеры (по рефералам), сначала были недельные, теперь сократили до 2 дней интервал. Каждый раз счетчики рейтинга обнуляются, таким образом, новички вполне могут участвовать на равных вместе с матерыми дальнобойщиками, исколесившими половину карты.

Игрок должен чувствовать: если он придёт завтра, он увидит что-то новое или получит преимущество.


2. Прогресс должен быть видимым

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

Мы постарались сделать целый ряд метрик - от собранных кристаллов и монеток до пробега в метрах. Думаем еще добавить звания, соответствующие суммарному пробегу ровера - "Черепаха", "Пешеход", "Странник", итп.


3. Редкие штуки, которые нельзя получить сразу

Игрокам нравится охотиться за редкими предметами или достижениями.
Да, это немного азарт, но когда механика честная (не «заплати и получи», а «играй и заработай»), это работает как отличный стимул.
Редкие ресурсы, уникальные события, ограниченные бонусы — всё это подстёгивает вовлечённость. Все карточки ресурсов, которые можно найти бурением почвы на карте нажатием на свой ровер - встречаются с разной степенью распространения на карте. Есть очень редкие ресурсы, например, Плутоний, а есть часто встречающиеся - например, Водяной лёд.


4. Сообщество и сравнение

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


5. Удобство возвращения

Если игроку сложно вернуться (например, нужно пройти кучу экранов, чтобы просто продолжить), он быстрее теряет интерес.
Telegram, например, хорош тем, что игрок просто открывает бот — и он сразу внутри.
Это одно из преимуществ платформы: минимальная воронка возвращения. Тут есть один момент, бот часто может уплыть в переписках вниз, соответственно, переход в игру должен быть в каждом посте в канале, в закрепленных сообщениях в чате, итп. Чтобы кнопка Играть (желательно называть ее одинаково везде), была на виду. Кстати, если вы не знали, то сообщение с кнопкой в канале, если его сделать закрепленным, делает красивую цветную кнопку прямо в превью закрепленного поста.


💡 Вывод

Чтобы игроки возвращались, нужна не магия, а:

  • постоянные поводы для интереса,

  • ощущение прогресса,

  • редкие или уникальные награды,

  • социальные элементы,

  • и простота входа.

Мы сами продолжаем учиться делать это лучше — и если вам интересно, могу отдельно написать о том, какие ошибки мы допускали в Mars Frontier (и что сработало неожиданно хорошо).

💬 Напишите в комментариях: а какие игры заставляют вас возвращаться снова и снова?

Показать полностью
[моё] Разработка Gamedev Компьютерные игры Игры Ретро-игры Мобильные игры Unity Unreal Engine Длиннопост
7
125
Вопрос из ленты «Эксперты»
artokarsus
artokarsus
1 месяц назад

Нужны ли человеки в шутане из Глины?⁠⁠

Продолжаю ваять игру в пластилиновом стиле - вроде Neverhood (1996), только с пушками.

Задумался: а нужны ли вообще человекоподобные враги? Ведь из пластилина можно вылепить что угодно, и ограничиваться двумя руками и двумя ногами - нуу... такое себе, почти криминал! 🚨

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

Если интересна судьба проекта - заходите в Телеграмм (или куда душа лежит):

Telegram | Steam | TikTok | YouTube | Twitter/X | Discord

Показать полностью
[моё] Вопрос Спроси Пикабу Gamedev Инди Neverhood Unity Своими руками Пластилин Глина Шутер Компьютерные игры Ретро-игры Видео
30
1
KellyFryingPan
KellyFryingPan
1 месяц назад

Что за игра такая FryMay?⁠⁠

Что за игра такая FryMay? Gamedev, Инди, Инди игра, Unity, Компьютерные игры

FryMay – это фабрика в мире живого фаст-фуда!

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

Вы — вчерашний студент, потративший 5 лет на изучение профессии работника общепи... т.е. программиста. А единственный работодатель в вашем городе, который берет на работу без опыта, это ресторанчик FryMay!

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

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

Автоматизируйте производство, прикалывайтесь над посетителями, выполняйте задания в удобном для вас темпе: уровень сложности вы выбираете сами. Хотите оптимизировать логистику? Пожалуйста! Объем вашей фабрики зависит лишь от вашей фантазии.

P.S.

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

Показать полностью 1
Gamedev Инди Инди игра Unity Компьютерные игры
0
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
9
DevKitchen
DevKitchen
1 месяц назад
Лига Разработчиков Видеоигр
Серия Делаю игру на Unity3d

Делаю игру на Unity3d. Эпизод 6: Машина состояний⁠⁠

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Закончился мой отпуск в Сиродиле, и я нашел время сделать еще один ролик!

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

Мой проект сражается с Oblivion за право получить мое внимание. Фото в цвете.

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

Для использования стейт машины нужно прикрепить к игровому объекту специальный компонент CompositeStateMachineComponent.

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

Видишь суслика?

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

Как я уже говорил - стейт машина составная. И в данном случае настроены три вложенных машины состояний:

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

Можно добавлять любое количество конечных автоматов.

Нажав на кнопку стейт машины мы открываем окно с её настройками:

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

Красота

Окно использует Graph API, для создания графа состояний с переходами между ними.

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

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

Вот такой вот рубильник!

А чтобы настроить переходы между состояниями, надо кликнуть на линию, связывающую их, и открыть окно редактирования условий переходов:

Делаю игру на Unity3d. Эпизод 6: Машина состояний Gamedev, Инди игра, Unity, Инди, Компьютерные игры, Программирование, Разработка, IT, IT юмор, Паттерны, Indiedev, Unity3D, Видео, Короткие видео, YouTube, Длиннопост

В этом окне можно настраивать условия переходов между состояниями и объединять их в группы.

А в игровом режиме редактор позволяет отслеживать текущее состояние объекта в реальном времени:

Подробнее я все разбираю в своем ролике. А если у вас возникнут вопросы по моему проекту или в общем по разработке игр в Unity, смело пишите их в комментарии!

Приятного просмотра!

Показать полностью 5 2
[моё] Gamedev Инди игра Unity Инди Компьютерные игры Программирование Разработка IT IT юмор Паттерны Indiedev Unity3D Видео Короткие видео YouTube Длиннопост
0
0
Agmioli
Agmioli
1 месяц назад
Искусственный интеллект

Как с нуля, сгенерировать игру или приложение, состоящие из нескольких файлов. Для чайников!⁠⁠

Как с нуля, сгенерировать игру или приложение, состоящие из нескольких файлов. Для чайников! Искусственный интеллект, Нейронные сети, Gamedev, Unity, Приложение, Android разработка, Digital, Программа, Компьютерные игры, Программирование, Программное обеспечение, Python, Гайд, Лайфхак, Чат-бот, Разработка, HTML, Браузерные игры

Как с ноля, сгенерировать игру или приложение, состоящие из нескольких файлов. Для чайников.

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

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

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

Но если вы создаете игру не на базе html-страниц и сайта, то вместо фразы "которая будет запускаться с html-сайта", вам надо указать типа-платформу игры, или ее среду разработки.

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

ПРАКТИКА.
Вот полный пример запроса для нейросети, чтобы создать саму примитивную игру, которая запускается в виде веб-страницы в браузере.

ЗАПРОС:
Напиши для каждого файла код игры которая будет запускаться с html-сайта. Суть игры следующая.

Объект-игрок, вид которого задается файлом"image1", управляется при помощи клавиш. Клавиши-стрелки определяют направление стороны движения объекта-игрока.

В пространстве игры, рандомно расположены объекты-препятствия, внешний вид которых задается файлом "image2".

Если Объект-игрок задевает объекты-препятствия, то Объект-игрок отскакивает в сторону.

Фон игры задается файлом "image3".

Код созданный для каждого файла, полностью вставляете в текстовый редактор (например Блокнот), и сохраняете с тем названием и расширением, который указала нейросеть.

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

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

Показать полностью
[моё] Искусственный интеллект Нейронные сети Gamedev Unity Приложение Android разработка Digital Программа Компьютерные игры Программирование Программное обеспечение Python Гайд Лайфхак Чат-бот Разработка HTML Браузерные игры
1
Партнёрский материал Реклама
specials
specials

Как бросить курить и не сорваться: инструкция от тех, кто смог⁠⁠

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

Как бросить курить и не сорваться: инструкция от тех, кто смог Курение, Борьба с курением, Зависимость, Telegram (ссылка), ВКонтакте (ссылка), Длиннопост

История 1 — отражение

@holoroad

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

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

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

История 2 — список

@maxneb

Беременность жены, рождение ребенка, здоровье, деньги — ничего не было веским поводом бросить окончательно. Постоянно срывался. Помогло составить список, что теряю и что получаю от сигарет, и понимание, что хотя бы одна затяжка — и все насмарку: пару месяцев буду курить. Только список и его осознание. Для каждого он свой. И постоянное обращение к нему. После составления списка курил еще. Но он как заноза висел в голове с вопросом «зачем?»... Так, что-то щелкнуло и сейчас не тянет. Иногда тянет физически, но осознание бесполезности курения сразу глушит позывы. Полгода, полет нормальный...

Бросать на авось — идея, которая подойдет не всем. Нужно понимать, что делать в трудные моменты:

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

  • Замените привычки. Сигарету в руках можно заменить орешками, палочками морковки, жвачкой или даже кубиком льда.

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

  • Планируйте, что делать при тяге. Она длится всего 3–5 минут. Дыхательные практики или звонок другу помогут пережить сильное желание закурить.

  • Откажитесь от «наградных сигарет». Одна затяжка и вы откатитесь назад.

Можно бросить резко, «с понедельника», или постепенно, снижая количество сигарет до нуля. Главное — определиться и не отступать.

История 3 — переключение

@Spaka

45 лет, стаж 30. Пытался завязать много раз, потом понял, что после каждой попытки бросить, курить начинаешь больше. Как ребенок, которому не дают вкусняшку, а она случайно попала ему в руки. Из чего мозг сделал вывод: не уверен — не бросай. Потом стал замечать, что организм уже стал сам просить перестать курить. По утрам было очень неприятно во рту, удовольствие после сигареты стало короче, а негатив, приходящий следом, ощутимее: неприятные ощущения в горле, боли миндалин, страх схватить онкодиагноз. Хотя врачи говорили, что все ок, в голове-то гоняешь мысли. Я решил попробовать обмануть сам себя. Не делать из процесса отказа какого-то события. Бросить так, как будто это и должно было произойти, но ты не знаешь когда. Про себя помолился, как сумел, и попросил помощи, хитро прищурил глаз и в момент, когда забыл купить про запас (оставалась пара штук в пачке), просто перестал курить. Мне теперь даже странно, как я раньше это делал. Так и живу почти два года. Кстати, раньше в момент завязки курящих ненавидел, дым был очень противен, до тошноты. Теперь все равно. Присоединяйтесь ;)

Есть несколько стратегий отказа от курения:

  • Резкий. Эффективный и решительный подход.

  • Постепенный. Сначала — меньше сигарет, потом — меньше затяжек. И так до нуля.

  • Психологическая замена. Каждая сигарета — это ритуал. Найдите для каждого из них «здоровую замену».

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

Каждый, кто хочет оставить зависимость в прошлом, может обратиться в центры здоровья, которые работают при поддержке нацпроекта «Продолжительная и активная жизнь», и получить необходимую помощь специалистов. Адреса доступны на официальном портале Минздрава России о здоровье: takzdorovo.ru. Также можно позвонить на горячую линию по отказу от зависимостей 8 800 200-0-200.

История 4 — форма

Аноним

Курила электронки 2 года как замену обычным сигаретам. Думала, что это не так дорого, не так вредно да и для девушки вроде более привлекательно: не пахнут волосы и руки. А потом решила привести свое тело в форму. Стала ходить в зал и поняла, что задыхаюсь на первом же упражнении, хотя женщины гораздо старше меня бодрячком. Было очень тяжело слезть. Друзья советовали заменять сигаретами. А потом уехала в отпуск в страну, где нельзя покупать электронки, отвлеклась, и после возвращения уже не тянуло. Даже на тусовках, где все дымят.

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

«Особую тревогу вызывает рост потребления табачных изделий и электронных сигарет. Согласно исследованию, проведенному в нашем Центре, 36,8% курильщиков потребляют одновременно и табак, и электронные сигареты. Среди молодежи в возрасте 25-39 лет этот показатель превышает 45%. Электронные никотиносодержащие и безникотиновые устройства поражают сердце, сосуды, дыхательную систему и ДНК организма не менее пагубно, чем традиционные сигареты, а в ряде случаев способны вызывать острые состояния, включая сосудистые поражения и летальные исходы» – рассказывает руководитель Центра профилактики и контроля потребления табака НМИЦ терапии и профилактической медицины Минздрава России Маринэ Гамбарян.

История 5 — пари

@kernima

Вроде не было никаких серьезных предпосылок, чтобы бросить. Да и чтобы начать: просто все вокруг курили, думал, это сейчас тренд. А потом как-то сидели в баре и решили поспорить с некурящим другом. Он затирал, что моя жизнь из-за электронки катится ко дну, я — доказывал, что это всего лишь маленькая шалость. В общем поспорили на пять тысяч. Чтобы было легче и можно было отвлечься, начал бегать по утрам. Друг проиграл, а я возвращаться к курению не стал. Вдруг снова у еды появился вкус, я начал высыпаться и больше не устаю на втором лестничном проеме. Короче, советую!))

Сульфат никотина, один из компонентов электронных сигарет, раньше использовали как пестицид, но запретили из-за высокой токсичности. Жидкость для «электронок» содержит и опасные химикаты вроде пропиленгликоля, ацетальдегида и акролеина — промышленных веществ, способных вызывать воспаления, поражения органов и мутации клеток. Ароматизаторы, создающие иллюзию безвредности, на деле могут привести к более тяжелой интоксикации, чем при курении сигарет. А еще вейпы содержат не природный, а синтетический никотин — солевой. Он быстрее всасывается, дольше выводится и вызывает зависимость стремительнее.

Когда организм отвыкает от никотина, бывает нелегко: люди становятся раздражительным и нервозными, быстро устают, возникают сухость во рту, кашель, трудности с концентрацией. Важную роль в борьбе с этими симптомами играет питание. В рацион стоит включить овощи, фрукты, орехи, семечки. Клетчатка способствует очищению организма от токсинов. Важно питаться сбалансировано: с достаточным количеством белков, жиров, углеводов и витаминов. Лучше временно исключить продукты, усиливающие удовольствие от табака (например, мясо), а также отказаться от алкоголя, кофе и крепкого чая. Они могут спровоцировать желание закурить. А вот большое количество воды, травяных чаев и настоев облегчит очищение организма и поможет справиться с сухостью во рту.

История 6 — связь

Аноним

Устал курить, понял, что мне это мешает заниматься спортом и в целом комфортно себя чувствовать. Пошел через ассоциации: покурил во время головной боли, и потом через самовнушение дал себе установку, что голова болела от курения. Звучит странно, конечно, но это сработало. Никотиновую зависимость снижал постепенно через редкое курение кальяна (2-3 раза в неделю с последующим уменьшением).

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

Разберитесь, что именно тянет вас к сигарете: скука, стресс, привычка? Когда вы это осознаете, будет легче подобрать альтернативные действия — прогулку, книгу, разговор с близким. Учитесь распознавать моменты, когда особенно хочется закурить, и переключаться на что-то другое. Можно подключиться к программам или группам поддержки — это поможет не сдаваться. И главное: уберите из дома все сигареты.

История 7 — вершина

Аноним

Поднимался с сыном по Пушкинской тропе на гору Железная. Мне лет сорок пять было, идем общаемся, сын бегает туда-сюда. Ну идем короче, а сзади нас догоняет семейная пара, мирно о чем-то щебеча между собой. Догнали и обходят. И так спокойно удаляются… Все бы ничего, но им лет по шестьдесят, если не больше. Я попробовал в их темпе, но задыхаться стал. Короче, поднялся я на гору, спустился, смял пачку и выкинул в мусорную урну. Вот уже 13 лет не курю. Стаж 27 лет.

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


Каждый, кто пытался избавиться от никотиновой зависимости, знает, как это тяжело. Ломка, раздражительность, навязчивые мысли. Даже при переходе на вейпы, иллюзия «меньшего вреда» быстро развеивается: химические коктейли из ароматических смесей также бьют по легким, сосудам и всему организму.

Хорошая новость в том, что вы не одни. В сообществе «Давай бросать» (ВКонтакте и мессенджере Telegram), который работает при поддержке нацпроекта «Продолжительная и активная жизнь» знают, каково бороться с триггерами, искать замену привычке и удерживать себя от срыва. Здесь делятся историями тех, кто смог, поддерживают тех, кто только начал, и помогают разобраться в главном: как пережить отказ без мучений.

Социальная реклама. АНО «Национальные приоритеты», ИНН: 9704007633

Показать полностью
Курение Борьба с курением Зависимость Telegram (ссылка) ВКонтакте (ссылка) Длиннопост
9
CGAleksey
CGAleksey
2 месяца назад
Лига Разработчиков Видеоигр
Серия TOTAL RELOAD

Нужен уникальный робот? Пожалуйста:⁠⁠

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Думаю этот промежуточный вариант достаточно нормальный

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

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

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

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Архивное фото, робот пытается присесть.

Много писать не буду, работа по созданию персонажа началась со сбора референсов как разных узлов так и целых роботов. В итоге были протестированы разные варианты конструкций всех частей тела :)

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Собрал разные части робота в одном файле

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Вариантов головы было перелопачено раз в 10 больше чем сохранилось:

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Даже не знаю под каким чаем я создал этот вариант

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Этот вариант, наверно, с мотошлема срисовал

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Палец заставил меня помучиться с его разработкой XD

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

А потом переделка пальца, переделка руки, переделка кисти. Ну вы поняли, переделывалось много раз пока не добился результата :)

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Cкирины промежуточных результатов рук и ног:

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Финальная версия после настройки разверток и текстурирования:

Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост
Нужен уникальный робот? Пожалуйста: Инди, Инди игра, Gamedev, 3D моделирование, Разработка, Unity, Компьютерные игры, Длиннопост

Ну и по классике, ссылка на проект с роботом:
https://store.steampowered.com/app/2412090/Total_Reload/
(отдельная благодарность за отзывы по игре)

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