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

Дрифт Без Лимита

Гонки, Симуляторы, Спорт

Играть

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

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

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

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

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

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

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

Gamedev + iOS

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

Инди Разработка Инди игра Игры Unity Компьютерные игры YouTube Android iPhone Apple Приложение Халява Google Play Все
96 постов сначала свежее
20
Calvares
Calvares
4 года назад
Лига Разработчиков Видеоигр

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong⁠⁠

Привет, Пикабу! Пишу первый раз, хочется рассказать всему миру, что моя первая игра вышла на куче платформ, но об этом в конце. Сам пост о задаче, с которой столкнулся уже на релизе.
Итак, меня зовут Коля и я хочу рассказать тебе о проблеме, с который ты можешь столкнуться при разработке ритм-игры (и с которой точно столкнешься, если разработка будет под мобильные устройства). Ну и о её решении тоже поведаю, конечно.

В марте 2019 я выпустил в Steam свою первую ритм-игру Lofi Ping Pong. Это настольный теннис, в котором мяч надо отбивать в такт треку. Летом 2020 мне захотелось отдохнуть от разработки второй музыкальной поделки, так что решил портировать Пинг понг на мобилки и Switch. Тут-то и появились сложности - мяч вдруг начал лететь отрывисто, "заикаться". Чтобы вкратце разобраться с недугом, требуется вступление.
Ниже геймплей игры.

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

Про особенность музыкальных игр.

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

В большинстве игр обязательно есть какое-либо движение - будь то носящийся по всей карте Meat Boy или падающий с потолка ящик в Portal. Любое перемещение становится плавным, когда мы добавляем один волшебный ингредиент - Delta Time, то есть время между фреймами. С помощью него, как известно, мы перестаем зависеть от выдаваемого фпс, что делает, к примеру, скорость персонажа всегда одинаковой.

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

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

У нас есть расстояние между началом и концом полета мяча S. Чтобы рассчитать время полёта T, требуется знать скорость песни - её BPM (beats per minute). Это количество ударов (долей) в минуту, как если бы вы отстукивали темп песни ладошкой по коленке и записали количество шлепков за 60 секунд. Количество чего-либо в единицу времени есть частота, значит, чтобы найти время одного удара (период), достаточно перевернуть её с ног на голову, не забыв перевести в секунды, умножив на 60 (T = 60 / BPM).

В школе вроде учили, что скорость V = S / T. Не забудем добавить в формулу наш любимый delta time, и готово!

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS
Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

Как только мяч долетает до нужной позиции, мы нажимаем кнопку, меняя end point и start point местам, и движение продолжается, но в обратную сторону. И всё идёт прекрасно, пока ты так не поиграешь 10, 30, 60 секунд. После этого начнётся сильнейший рассинхрон между играющей песней и скачущим мячом - каждый новый удар будет всё дальше удаляться от реального бита песни.

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

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

Тебе надо следить за позицией трека и считать, как много времени прошло с предыдущего бита. Время между битами - как расстояние между start point и end point. Delta between beats будет отображать позицию нашего мяча. Но это довольно странно ставить знак равно между временем (delta between beats) и координатой (позиция мяча). Понятнее будет перевести всё в доли- поделив delta between beats на time between beats мы получим процент между соседними битами. Этот процент будет таким же у мяча между начальной и конечной позицией.

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS
Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

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

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

Про проявление заиканий и решение.

Разобравшись с главным концептом, ты делаешь основную игровую петлю, тестируешь на ПК, все идёт прекрасно. До того момента, как ты решишь запустить игру на мобильном устройстве.

Тут наступает ужасное - мяч летит отрывисто, заикается, как будто игра идёт в 15 фпс. Ты профайлишь игру, но все показатели в норме, да и остальные элементы игры, не зависящие от хода музыки, ведут себя адекватно. Может, мы рано решили избавиться от Delta time?

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

Ты начинаешь дебажить позицию песни каждый кадр - и что же ты видишь! Оказывается, позиция трека не обновляется покадрово, а скачет, как ей вздумается! Вместо того, чтобы в окне дебага видеть "0, 16, 33, 49, 65, 80..." (мс), показывается вот это "0, 0, 0, 48, 48, 65, 65, 65...". Аудиодвижок просто-напросто живёт своей жизнью и отказывается подчиняться обновлению каждый кадр (те кто работают в Гамаке знают, что если во время теста игры она у вас крашнется, то аудио продолжит работать в отрыве от картинки).

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

Что ж, значит нам придётся вручную "догонять" позицию трека, чтобы она плавно переходила от одного значения к следующему. Плавно... где-то я это слышал... delta time! Почему бы здесь нам не использовать нашего старого друга, ведь всё же мы будем увеличивать позицию искусственным путём.

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

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

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

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

Можно вновь обвинить Delta time и сказать, что дело в нём, но это не так. Точнее, мы просто слегка неправильно его используем.

Давайте оставим переменную lastFrameTrackPosition и введём ещё одну - trackPositionContainer, которая поможет нам не изменять позицию трека напрямую через прибавку delta time, но с помощью постепенного приближения (известного как easing). Мы опять начнём со сравнения положения песни в текущий и предыдущий кадр. Делаем только одно сравнение - не равны ли они, и если они и правда отличаются, то мы приблизим значение trackPositionContainer к позиции трека с помощью среднего арифметического. И возвращать в качестве позиции песни для MoveBall() мы будем именно приблИженное значение контейнера, но не самой рваной позиции трека.

Заикание в ритм-играх - симптомы и лечение на примере Lofi Ping Pong Ритм-игра, Gamedev, Релиз, Туториал, Гифка, Видео, Длиннопост, Steam, Nintendo Switch, Android, iOS

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

Теперь, наконец, гештальт закрыт. Я перерыл старый код, заново переписал игру, сделал порты на мобилки и сегодня выходит последний порт на Nintendo Switch. Надеюсь, было полезно и хоть немного интересно, ребятки. Оставлю ссылки на всевозможные сторы, если захотите посмотреть проект. Спасибо за прочтение!

Nintendo Switch: https://www.nintendo.ru/-/-Nintendo-Switch/Lofi-Ping-Pong-18...
App Store: https://apps.apple.com/app/id1539408060
Google Play: https://play.google.com/store/apps/details?id=com.Calvares.L...
Steam: https://store.steampowered.com/app/1028570/Lofi_Ping_Pong/

Показать полностью 10 1
[моё] Ритм-игра Gamedev Релиз Туториал Гифка Видео Длиннопост Steam Nintendo Switch Android iOS
2
YoungDeveloper
4 года назад

Возможно ли создать игру на телефоне лежа на диване?⁠⁠

Решил на минутку откинуть всеми любимый Unity и Unreal Engine (популярные движки для умных) и попробовать создать простую 2D игру на ДЕШЕВОМ ТЕЛЕФОНЕ не отходя от кассы. Знаю о чем вы можете подумать, но эта мысль давно меня не покидала. Я отобрал самый популярный софт на эту тему и решил исследовать насколько это вообще реально (по крайне мере в 2020).

Gamedev Разработка Android iOS 2D 3D Видео
6
Alberte
4 года назад

Безумные и не очень трюки на приоре. Игра на "Unity"⁠⁠

[моё] Unity Android iOS Игры Gamedev Инди игра Безумие Экстрим Видео Приора Авто
12
12
Azatmumin
5 лет назад
Лига Разработчиков Видеоигр

Knight's Life - выход в app store⁠⁠

Knight's Life - выход в app store Игры, Мобильные игры, iOS, Android, Онлайн-игры, Gamedev, История, Помощь, Длиннопост

Прошло довольно много времени с момента моего последнего поста.  Была произведена просто колоссальная работа над графикой и механикой боя. Добавлен новый класс - Берсерк. Были добавлены новые персонажи для берсерка. Новые способности.


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


Первый этап - разработка боевой механики мы успешно прошли. Классы есть, способности есть.

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

Третий этап - подключение мультиплеера есть.


Теперь чтобы преодолеть следующий этап нам необходимо реализовать сюжетную линию!

Вот как выглядит берсерк.

Knight's Life - выход в app store Игры, Мобильные игры, iOS, Android, Онлайн-игры, Gamedev, История, Помощь, Длиннопост

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


Если есть желание поучаствовать в проекте пишите на почту: Azat_mumin@mail.ru

В теме письма укажите: Knight's Life - сюжетка!


Ну и конечно же кому интересно оставлю ссылку на проект:

Страница игры в play market - ссылка

Страница игры в app store - ссылка

Показать полностью 1
[моё] Игры Мобильные игры iOS Android Онлайн-игры Gamedev История Помощь Длиннопост
10
15
peotor
peotor
5 лет назад
Лига Разработчиков Видеоигр

Woof: The Good Boy Story. Work in progress⁠⁠

Тем временем продолжаю допиливать свой проект.

Предыдущий пост

Скоро вроде как конференция White Nights. Вот собираюсь отправить свою игру на ревью, посмотрим что скажут. Видео с временными штампами. (Приятнее всего смотреть на YouTube)

Вдруг найду спонсоров)

А пока - всё ещё стадия формально закрытой альфы! Присоединиться

Более подробный блог веду в сообществе VK. Ты это, заходи, если что)

Показать полностью
[моё] Gamedev Аркадные игры Work in progress Собака Игры Android iOS Телефон Видео
6
17
MooseStudio
MooseStudio
5 лет назад
Лига Разработчиков Видеоигр

Ты тоже хотел разработать игру?⁠⁠

Ты тоже хотел разработать игру? Gamedev, 2D, Компьютерные игры, Платформер, Android, iOS, Длиннопост

Кто я:


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


Зачем я пишу здесь:


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

О чем я буду писать:

1. О разработке игры

2. Полезные материалы которые я буду встречать на своем пути. Рунет сейчас заполонили гайды о том как сделать платформер за 30 минут, и как закопипастить Flappy birds, но очень мало информации как выстроить целиком свой проект.


Зачем Вам подписываться/читать/оставлять комментарии/жать в сраный колокол:


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


С чем я сталкивался ранее:

-Программирование на C++/Python (Учился по специальности Информационная безопасность)

-Работа в графическом редакторе Photoshop (Зарабатывал фотографией и сильно был ей увлечен)

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



В НАЧАЛЕ БЫЛО СЛОВО. В моем случае идея


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


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

Глава №1. Конец
Томмас, и Дженифер собирали свои вещи для пикника, а Джеки, как и полагается добропорядочному и здоровому псу, мечась от радости, крутился под ногами своих любимых хозяев. Ведь, сегодня суббота и он знал, — сегодня ему предстоит очередное приключение — поездка на пикник, в хорошо знакомую рощу Тима Уилсона.
Наступил вечер, наши ребята уже собрали все свои следы пребывания в этом живописном месте, погрузились и поехали в сторону дома.
Они были уверены, что Джеки, — самый шабутной пес которого я знал, — уже, как обычно это бывает, впереди всех, зарылся в груду вещей на заднем сидении, и готов к отправлению.
В этот раз, что-то пошло не так.

Глава №2. Джеки
Вам наверняка, стоит рассказать о Джеки.
Этого пес, породы бигель, которого Томас 3 года назад забрал из приюта уже довольно взрослым. Прошлые его хозяева, отказались от него после страшного пожара произошедшего у них дома. Треть шкуры была повреждена огнём, многочисленные ожоги и ссадины заживали больше полугода.
Куривший в постели хозяин уснул с сигаретой, — сам чуть не погиб в этом пожаре.
У Джеки тогда было мало шансов на поправку, но удача ему улыбнулась: приют его выходил, а Томас всю жизнь мечтавший о четвероногом друге, его в итоге нашел.
Не знаю, как другие собаки но наш главный герой Джеки, после трагедии, боялся огня… как огня?


Концепция игры: Герой должен попасть домой.


В следующих постах расскажу о том как я собираюсь вести проект, чем буду пользоваться и т.д



PS
Да, Unity
Да, он многих достал
Да, он настолько прост, что я начну с него

PSS
Я буду очень рад, если вы будете давать обратную связь, это на само деле Важно.
Даже если Вам не будут нравится, мои посты -- я продолжу их писать, что бы через 1-2-3-4-5 лет случайно забрести на свой блог и ужаснуться, какую же херню я делал.

PSS
Так же будет интересно понаблюдать за вашими проектами, оставляйте ссылки в комментариях, я подпишусь в vk/telega/inst




Картинка с лосем сворована.

Показать полностью 1
[моё] Gamedev 2D Компьютерные игры Платформер Android iOS Длиннопост
65
113
DELETED
5 лет назад
Лига Разработчиков Видеоигр

INMOST⁠⁠

Привет!


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

И у меня есть новость, которой я обязан поделиться.


INMOST сегодня вышла в Apple Arcade.

Релиз

Вот

http://bit.ly/INMOSTarcade


Поиграть можно на iPhone, iPad и AppleTV. Скоро будет и мак.


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

Игра, как и заявлено изначально, так же выйдет на ПК и Switch в этом году и ждать осталось совсем не долго.



Ну и релизный трейлер:

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


Для меня это не просто игра, которой я хотел развлечь кого-то. Я действительно старался вложить в нее что-то.

И я абсолютно не знаю, получилось ли это, поэтому мне очень страшно.


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


Это было очень и очень важно.


Спасибо!

Показать полностью 1
[моё] Inmost Pixel Art Инди Gamedev iOS Видео
56
Партнёрский материал Реклама
specials
specials

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

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

Попробовать

Ремонт Теплый пол Текст
22
pavelprosto
pavelprosto
5 лет назад
Лига Разработчиков Видеоигр

Недооцененный вертикальный режим для мобильных игр.⁠⁠

Современные 3d игры для телефона почему то все зациклены на горизонтальном режиме.

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


Но необходимо понимать, что преимущество мобильного телефона - это его портативность!

А значит играй везде и когда ты хочешь!

Недооцененный вертикальный режим для мобильных игр. Gamedev, Indigamedev, Мобильные игры, Android, iOS, Мысли

И все эти "философские" мысли мне пришли в обычный день, пока я ехал в метро и вдруг решил поиграть в свою игру =)

Как не сложно предположить, у меня это не получилось. Ибо в раскарячку, держась одной рукой, да еще и в толпе народу, особо не поиграешь.

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

• Вертикальный режим позволяет играть в игру на ходу(когда вы находитесь в дороге)

• Вы не создаете дискомфорта окружающим(а соответственно они и вам меньше), так как не приходится держать телефон 2 руками.

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


И все это добавляет прекрасную ноту, которые и должны делать 3d мобильные игры - приукрашивать нашу повседневную рутину.

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