Вообще практически весь мой игровой опыт сводился к проектам "в стол". С рабочими проектами это отдельная боль, а личные проекты были скорее для саморазвития, и все время хотелось что то доделать прежде чем выкладывать. Поэтому пару лет назад решил - сделаю простую казуалку, и выложу в сторы. Пусть будет, пусть люди хоть во что то моё играют :) Так и появился проект Traffic Run. Суть простая - гнать вперед, объезжать траффик, никакой физики и сложного управления - только влево вправо и тормоз :))
Так что, если нравятся простые игры - велкам. фидбеку буду рад :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
Так что, если нравятся простые игры - велкам. фидбеку буду рад :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
❤2✍1👍1👏1
Еще в начале моего веб-разработческого пути я сталкивался с некоторым опасением со стороны пользователей при авторизации на моём сайте через сторонние сервисы.
Так что, на всякий, давайте разберём всё на пальцах :)
Механизм авторизации, который я использую, называется OAuth. И вот как он работает:
1) Вы нажимаете "Войти через Google/VK/Yandex" на моём сайте.
2) Мой сайт отправляет вас на настоящую страницу Google/VK/Yandex.
3) Вы вводите логин и пароль там, на сайте конкретного сервиса. Я НЕ вижу их. Физически не могу.
4) Google/VK/Yandex проверяет пароль и спрашивает можно ли предоставить данные для моего сайта.
5) Вы нажимаете "Разрешить".
6) Сервис перенаправляет обратно на мой сайт вместе с временным кодом.
7) И уже на своём сайте я могу этот временный код использовать, чтобы обратиться к Google/VK/Yandex и идентифицировать того, кто авторизуется.
Таким образом я на сайте получаю ровно то, что вы сами разрешили при посещении страницы стороннего сервиса. обычно это почта, а иногда даже и почты нет - только внутренний идентификатор внутри этого сервиса. Но мне этого достаточно, чтобы идентифицировать пользователя и пустить его в аккаунт :)
Так что, на всякий, давайте разберём всё на пальцах :)
Механизм авторизации, который я использую, называется OAuth. И вот как он работает:
1) Вы нажимаете "Войти через Google/VK/Yandex" на моём сайте.
2) Мой сайт отправляет вас на настоящую страницу Google/VK/Yandex.
3) Вы вводите логин и пароль там, на сайте конкретного сервиса. Я НЕ вижу их. Физически не могу.
4) Google/VK/Yandex проверяет пароль и спрашивает можно ли предоставить данные для моего сайта.
5) Вы нажимаете "Разрешить".
6) Сервис перенаправляет обратно на мой сайт вместе с временным кодом.
7) И уже на своём сайте я могу этот временный код использовать, чтобы обратиться к Google/VK/Yandex и идентифицировать того, кто авторизуется.
Таким образом я на сайте получаю ровно то, что вы сами разрешили при посещении страницы стороннего сервиса. обычно это почта, а иногда даже и почты нет - только внутренний идентификатор внутри этого сервиса. Но мне этого достаточно, чтобы идентифицировать пользователя и пустить его в аккаунт :)
🔥2❤1
Вы наверняка замечали, что в любом деле - будь то изучение нового навыка или даже выполнение задач на новой работе - есть некоторая градация состояний типа "а чего так просто?", "круто, интересно!" и "ой-ёй че так сложно!". Так вот, у этого есть даже термины - зона комфорта, зона роста и зона паники. Я вот подумал, что вся история видеоигр - это эдакая попытка разработчиков нащупать баланс между ними :)
Взять, например, игры 90-х - старые платформеры на Dendy или Spectrum. Одна или несколько жизней, никаких сохранений, один пропущенный удар - и ты начинаешь игру сначала. Игры прошлого не церемонились с игроком. Они с порога пинали его в Зону паники. Выживали только самые упорные (или упоротые:) ). Это масса удовольствия при победе, но большая часть игроков просто бросала игру :)
Сегодня индустрия панически боится, что игрок закроет игру. Поэтому вас берут за ручку с первой секунды. Стрелочки показывают, куда прыгать. Автоприцел доводит пулю во врага. Каждые пять минут вам сыплют награды, а если вы проигрываете, игра возрождает вас в двух шагах от места проигрыша. Вас бережно держат в Зоне комфорта. Это приятно, это расслабляет, но... это превращает игру в жвачку для мозга. В ней нет вызова, а значит - нет и развития.
Имхо, идеальная игра - это не та, что издевается над вами, и не та, что гладит по голове. Это игра, которая удерживает вас в Зоне роста. Это состояние, когда задача кажется чертовски сложной, но выполнимой. Тебе нужно напрячь извилины, улучшить реакцию, понять скрытую логику - и только тогда ты победишь. Ты чувствуешь, как ментально растешь над собой.
Как вы считаете, какая игра из тех, что вы проходили, идеальнее всего балансировала в Зоне Роста? Когда было трудно, но безумно интересно, а не просто "нажми X, чтобы победить"?
Взять, например, игры 90-х - старые платформеры на Dendy или Spectrum. Одна или несколько жизней, никаких сохранений, один пропущенный удар - и ты начинаешь игру сначала. Игры прошлого не церемонились с игроком. Они с порога пинали его в Зону паники. Выживали только самые упорные (или упоротые:) ). Это масса удовольствия при победе, но большая часть игроков просто бросала игру :)
Сегодня индустрия панически боится, что игрок закроет игру. Поэтому вас берут за ручку с первой секунды. Стрелочки показывают, куда прыгать. Автоприцел доводит пулю во врага. Каждые пять минут вам сыплют награды, а если вы проигрываете, игра возрождает вас в двух шагах от места проигрыша. Вас бережно держат в Зоне комфорта. Это приятно, это расслабляет, но... это превращает игру в жвачку для мозга. В ней нет вызова, а значит - нет и развития.
Имхо, идеальная игра - это не та, что издевается над вами, и не та, что гладит по голове. Это игра, которая удерживает вас в Зоне роста. Это состояние, когда задача кажется чертовски сложной, но выполнимой. Тебе нужно напрячь извилины, улучшить реакцию, понять скрытую логику - и только тогда ты победишь. Ты чувствуешь, как ментально растешь над собой.
Как вы считаете, какая игра из тех, что вы проходили, идеальнее всего балансировала в Зоне Роста? Когда было трудно, но безумно интересно, а не просто "нажми X, чтобы победить"?
❤3🤝1
Вообще, в Traffic Run изначально просто хотел добавить фоновую музыку.
Тем более, что у меня уже есть гоночный пак, включая несколько инструменталок Одной Волны https://t.me/samewaverock 🤘
Но, нельзя же просто добавить музыку, нужно вывести в настройки.
А если уж добавил аудио - то надо и звуки интерфейса
Ну тогда уж и звук двигателя авто и тормозов. И столкновений.
А теперь в лобби музыка есть, а машина статичная - скучно, надо бы оживить.
Изначально колёса у машин не просчитывались и не крутились - ракурс всё равно не позволял это увидеть, а теперь в лобби это видно, так что... Хорошо математику помню! Берём скорость машины, делим на длину окружности колеса (2 x Pi x радиус колеса), и получаем на сколько нужно повернуть колесо :)
Ну, всё, готово! Так, стоп, почему на телефоне музыка не играет? А, ошибки, нужно подключить сбор ошибок. Чтобы уж от всех собирать репорты :)
И, хм, почему в часть машин вообще никак не реагирует на столкновение? ну, я молодец, почти у всех машин включая машину игрока масса была 1 кило :))
Фух, теперь вроде всё :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
Кстати! У меня по другому проекту назревает баттл между популярными ИИ, готовьтесь :))
Тем более, что у меня уже есть гоночный пак, включая несколько инструменталок Одной Волны https://t.me/samewaverock 🤘
Но, нельзя же просто добавить музыку, нужно вывести в настройки.
А если уж добавил аудио - то надо и звуки интерфейса
Ну тогда уж и звук двигателя авто и тормозов. И столкновений.
А теперь в лобби музыка есть, а машина статичная - скучно, надо бы оживить.
Изначально колёса у машин не просчитывались и не крутились - ракурс всё равно не позволял это увидеть, а теперь в лобби это видно, так что... Хорошо математику помню! Берём скорость машины, делим на длину окружности колеса (2 x Pi x радиус колеса), и получаем на сколько нужно повернуть колесо :)
Ну, всё, готово! Так, стоп, почему на телефоне музыка не играет? А, ошибки, нужно подключить сбор ошибок. Чтобы уж от всех собирать репорты :)
И, хм, почему в часть машин вообще никак не реагирует на столкновение? ну, я молодец, почти у всех машин включая машину игрока масса была 1 кило :))
Фух, теперь вроде всё :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
Кстати! У меня по другому проекту назревает баттл между популярными ИИ, готовьтесь :))
🔥3❤2
Подключил сервис рекордов к Traffic Run, и вот мне какая мысль пришла... А как насчёт небольшого соревнования? :) Тот, чей результат будет лучший на момент четверга 16 июля 20:00 - получит бесплатный билет на летний концерт Одной Волны (https://t.me/samewaverock) 1 августа :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
или напрямую APK файл
https://disk.yandex.ru/d/6HqdFSBLy6SF-g
там, кстати, среди музыки есть инструменталки Одной Волны, что поможет настроиться на концерт! :)
Краткий ликбез - есть два режима - со встречной полосой и без. со встречной сложнее, но за неё начисляются бонусные очки. Есть тормоз (снизу слева или справа на экране). Сложность растёт с дистанцией, но чем сложнее тем больше множитель очков. Лучший результат выводится на стартовом экране (для каждого из режимов отдельная таблица, но лучший результат буду считать там где больше будет).
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
или напрямую APK файл
https://disk.yandex.ru/d/6HqdFSBLy6SF-g
там, кстати, среди музыки есть инструменталки Одной Волны, что поможет настроиться на концерт! :)
Краткий ликбез - есть два режима - со встречной полосой и без. со встречной сложнее, но за неё начисляются бонусные очки. Есть тормоз (снизу слева или справа на экране). Сложность растёт с дистанцией, но чем сложнее тем больше множитель очков. Лучший результат выводится на стартовом экране (для каждого из режимов отдельная таблица, но лучший результат буду считать там где больше будет).
❤2👏1
Ну что, соревнование окончено!
Лучший результат 35248 очков поставил игрок с ником KSG911 (режим "со встречной полосой")
Кто ты, воин? свяжись со мной, чтобы получить билет :)
Спасибо всем, кто присоединился, полученная аналитика поможет в дальнейшей технической доработке игры, а так же балансировке геймплея. А если у вас есть пожелания по улучшениям - пишите :)
Лучший результат 35248 очков поставил игрок с ником KSG911 (режим "со встречной полосой")
Кто ты, воин? свяжись со мной, чтобы получить билет :)
Спасибо всем, кто присоединился, полученная аналитика поможет в дальнейшей технической доработке игры, а так же балансировке геймплея. А если у вас есть пожелания по улучшениям - пишите :)
❤2
Traffic Run v0.12.0
Пост-соревновательный апдейт :)
- Подвёз новые ёлки! Те были неоптимизированные и страшненькие. Теперь вродь получше :)
- Обновил окружение - траву, туман, текстура неба
- Добавил еще пару камер. Переключаются кнопкой CAM в правом верхнем углу. Интересно получить фидбек )
- Пересчёт очков обновлён, чутка повышен множитель за езду по попутным полосам.
- Кнопка сворачивания окна результатов - чтобы лучше было разглядывать послеигровое слоу мо :)
- Случайные движения траффика в стороны (пока в рамках своей полосы).
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
Пост-соревновательный апдейт :)
- Подвёз новые ёлки! Те были неоптимизированные и страшненькие. Теперь вродь получше :)
- Обновил окружение - траву, туман, текстура неба
- Добавил еще пару камер. Переключаются кнопкой CAM в правом верхнем углу. Интересно получить фидбек )
- Пересчёт очков обновлён, чутка повышен множитель за езду по попутным полосам.
- Кнопка сворачивания окна результатов - чтобы лучше было разглядывать послеигровое слоу мо :)
- Случайные движения траффика в стороны (пока в рамках своей полосы).
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
❤3
А еще! Сделал мини-модель себя для боевого футбола :)
бонус в комменте в👇
бонус в комменте в👇
🔥4❤1
А я к вам с парочкой апдейтов :)
Решил таки в базе песен (https://akk.doubledox.com) переосмыслить подход к поиску исполнителей на песню - сделать для этого отдельное окно с указанием "слотов" поиска и комментария. Чуть позже сделаю возможность указать слоты, которые сам инициатор закрывает, а так же привязывать запрос к событию.
Traffic Run v0.13.0
релиз на русторе внезапно завис на модерации, ну, значит вот прямая ссылка :)
https://disk.yandex.ru/d/SZCD84SSE7U7iA
Большой апдейт!
- добавил пару машин.
- добавил новый параметр "энергия". в данным момент расходуется на торможение, но чуть позже будет использоваться и на другие абилки
- параметры машин отображаются в лобби
- выбранная камера теперь сохраняется.
- Нашел багу в подсчёте близкого проезда рядом с траффиком - из-за этого в разных режимах сильно отличалось результаты. Теперь результаты должны стать более "справедливые" :)
Решил таки в базе песен (https://akk.doubledox.com) переосмыслить подход к поиску исполнителей на песню - сделать для этого отдельное окно с указанием "слотов" поиска и комментария. Чуть позже сделаю возможность указать слоты, которые сам инициатор закрывает, а так же привязывать запрос к событию.
Traffic Run v0.13.0
релиз на русторе внезапно завис на модерации, ну, значит вот прямая ссылка :)
https://disk.yandex.ru/d/SZCD84SSE7U7iA
Большой апдейт!
- добавил пару машин.
- добавил новый параметр "энергия". в данным момент расходуется на торможение, но чуть позже будет использоваться и на другие абилки
- параметры машин отображаются в лобби
- выбранная камера теперь сохраняется.
- Нашел багу в подсчёте близкого проезда рядом с траффиком - из-за этого в разных режимах сильно отличалось результаты. Теперь результаты должны стать более "справедливые" :)
🔥2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Сижу я как то гоняю в свои гонки, и думаю - что то боты туповаты, надо бы заняться уже и написать логику ботов покруче. А потом подумал - а что, задача вполне изолированная, можно вынести интерфейсы управления машиной и отдать на аутсорс ИИ :)
Так родилась идея устроить полноценный AI Racing Challenge - соревнование между нейросетями в написании логики для гоночных ботов.
Я подготовил ТЗ, вынес интерфейсы управления и натравил на задачу те ИИ, к которым есть бесплатный доступ:
- Claude (sonnet)
- Cursor (composer)
- Gemini
- Grok
- DeepSeek
- Qwen
Спойлер: взлетели не все и не сразу. Кого-то пришлось допиливать напильником и тыкать мордой в их же поделки :)) Но так или иначе - абсолютно все смогли проехать трассу и показать чистое время круга!
Но об этом позже ;)
А как вы думаете, чей гонщик будет лучше? :)
Так родилась идея устроить полноценный AI Racing Challenge - соревнование между нейросетями в написании логики для гоночных ботов.
Я подготовил ТЗ, вынес интерфейсы управления и натравил на задачу те ИИ, к которым есть бесплатный доступ:
- Claude (sonnet)
- Cursor (composer)
- Gemini
- Grok
- DeepSeek
- Qwen
Спойлер: взлетели не все и не сразу. Кого-то пришлось допиливать напильником и тыкать мордой в их же поделки :)) Но так или иначе - абсолютно все смогли проехать трассу и показать чистое время круга!
Но об этом позже ;)
А как вы думаете, чей гонщик будет лучше? :)
❤1🔥1
Продолжаю пилить "матчмейкер" для музыкантов в базе песен (https://akk.doubledox.com/) :)
Сделал возможность посмотреть все запросы одним списком, и, при необходимости, редактировать свои
Так же теперь запрос можно привязать к событию.
А еще с прошлого апдейта забыл рассказать - теперь можно запрашивать подбор аккордов прямо из контекстного меню текста песни. И песня попадет в спец список. По возможности буду подбирать то, на что нет аккордов в инете.
А новая версия раннера так и висит в русторе на проверке. Эх, хороший был сервис, но, видимо, смена владельца не пошла на пользу.
Пока отвлёкся на гонки, готовлю отчеты по соревнованию ИИ, а так же допиливаю новую трассу :)
Сделал возможность посмотреть все запросы одним списком, и, при необходимости, редактировать свои
Так же теперь запрос можно привязать к событию.
А еще с прошлого апдейта забыл рассказать - теперь можно запрашивать подбор аккордов прямо из контекстного меню текста песни. И песня попадет в спец список. По возможности буду подбирать то, на что нет аккордов в инете.
А новая версия раннера так и висит в русторе на проверке. Эх, хороший был сервис, но, видимо, смена владельца не пошла на пользу.
Пока отвлёкся на гонки, готовлю отчеты по соревнованию ИИ, а так же допиливаю новую трассу :)
🔥3
Послевыходной дайджест :)
Ударно попилил метчинг исполнителей для https://akk.doubledox.com
И даже еще одну клевую фичу заложил, но о ней позже :)
Теперь можно видеть список текущих запросов, запрос можно привязать к событию, можно отправить заявку на конкретный слот в запросе, ну а владелец запроса может видеть заявки и назначить кого-то на слот (в том числе и себя).
Я напомню, это сайт в первую очередь для ведения и организации собственного репертуара (для каждой песни можно указывать прогресс изучения, удобную тональность и просто сделать текстовую заметку). По умолчанию репертуар скрыт и пользователя не видно другим, поэтому можно не стесняться становиться исполнителем и вести репертуар. И, если кому то удобно, или есть знакомые которым могло бы быть удобно - делитесь, мне важен фидбек и интересно доделать что то полезное )
По раннеру - изучил аналитику трёх машин и добавил новый параметр машины - бонус награды. Чем сложнее ей управлять, тем больше бонус очков и денег. Плюс теперь стартовая машина - Alpha Stepper, так как она проще для новичков :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
По гонкам (AI Racing Challenge) - первый этап затягивается, потому что пока не все ИИ могут накодить вменяемых гонщиков :)) Но зато новая трасса Alteruna уже доступна (доступна и в прошлой версии, но можно и обновить https://github.com/DoubleDox/DoubleDox-Racer/releases/tag/1.3.6 или https://www.rustore.ru/catalog/app/com.doubledox.racer) :)
Ударно попилил метчинг исполнителей для https://akk.doubledox.com
И даже еще одну клевую фичу заложил, но о ней позже :)
Теперь можно видеть список текущих запросов, запрос можно привязать к событию, можно отправить заявку на конкретный слот в запросе, ну а владелец запроса может видеть заявки и назначить кого-то на слот (в том числе и себя).
Я напомню, это сайт в первую очередь для ведения и организации собственного репертуара (для каждой песни можно указывать прогресс изучения, удобную тональность и просто сделать текстовую заметку). По умолчанию репертуар скрыт и пользователя не видно другим, поэтому можно не стесняться становиться исполнителем и вести репертуар. И, если кому то удобно, или есть знакомые которым могло бы быть удобно - делитесь, мне важен фидбек и интересно доделать что то полезное )
По раннеру - изучил аналитику трёх машин и добавил новый параметр машины - бонус награды. Чем сложнее ей управлять, тем больше бонус очков и денег. Плюс теперь стартовая машина - Alpha Stepper, так как она проще для новичков :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
По гонкам (AI Racing Challenge) - первый этап затягивается, потому что пока не все ИИ могут накодить вменяемых гонщиков :)) Но зато новая трасса Alteruna уже доступна (доступна и в прошлой версии, но можно и обновить https://github.com/DoubleDox/DoubleDox-Racer/releases/tag/1.3.6 или https://www.rustore.ru/catalog/app/com.doubledox.racer) :)
🔥1
Заведу-ка я традицию делать понедельничные дайджесты :)
Внезапно! Захотелось позакрывать задачи по мафии, поэтому сделал пару штук - теперь можно переименовывать комнаты, а так же есть долгожданная фича - ожидание несколько секунд перед переключением суток. Когда раньше играли этого не хватало, чтобы успеть высказать что-либо перед наступлением нового дня :) Правда нет ресурса, чтобы собирать людей на мафию, но лан, когда-нибудь пригодится :)
Поизучал логи ошибок с Базы песен, понял что люди где то умудряются находить устаревшие браузеры и заходить через них :) ну, сделал заглушку чтоб хоть ошибки не сыпались :) И еще на этой неделе постараюсь допилить одну прикольную фичу, но пока не буду спойлерить :)
Гонки - переключился на повышение реализма. Давно пора было заняться раздельной физикой для разных дорожных покрытий (а так же и визуала к ним). Так что на неделе, думаю, будет приличный апдейт. Интересно, как это повлиеят на статистику в соревновании по написанию ботов с помощью различных ии :)
Ну и раннер - следующий апдейт посвящен по большей части обновлению траффика. Разделил на разные сущности тягачи и трейлеры, таким образом эта связка выбирается случайно. А! и добавил лесовоз. Так что мы в одном шаге от "Пункта назначения" 😅
Внезапно! Захотелось позакрывать задачи по мафии, поэтому сделал пару штук - теперь можно переименовывать комнаты, а так же есть долгожданная фича - ожидание несколько секунд перед переключением суток. Когда раньше играли этого не хватало, чтобы успеть высказать что-либо перед наступлением нового дня :) Правда нет ресурса, чтобы собирать людей на мафию, но лан, когда-нибудь пригодится :)
Поизучал логи ошибок с Базы песен, понял что люди где то умудряются находить устаревшие браузеры и заходить через них :) ну, сделал заглушку чтоб хоть ошибки не сыпались :) И еще на этой неделе постараюсь допилить одну прикольную фичу, но пока не буду спойлерить :)
Гонки - переключился на повышение реализма. Давно пора было заняться раздельной физикой для разных дорожных покрытий (а так же и визуала к ним). Так что на неделе, думаю, будет приличный апдейт. Интересно, как это повлиеят на статистику в соревновании по написанию ботов с помощью различных ии :)
Ну и раннер - следующий апдейт посвящен по большей части обновлению траффика. Разделил на разные сущности тягачи и трейлеры, таким образом эта связка выбирается случайно. А! и добавил лесовоз. Так что мы в одном шаге от "Пункта назначения" 😅
🔥1😁1
Понадобилось мне тут поднять второй умный дом, только поменьше :) Посмотрел цены на одноплатники, и взгрустнул. А самый мощный свободный что у меня есть в наличии - Raspberry Pi 3. На который привычный мне Home Assistant (далее - HA) встаёт со скрипом (собственно я с него начинал, но в какой то момент он перестал тянуть).
Ну ладно, надо пробовать, ставлю дебиан, ставлю HA, ставлю модули для работы с девайсами, иии, да, одноплатник сказал КРЯ :)
Думаю - ну, модуль управления устройствами (zigbee2mqtt) можно и без HA поставить. Поставил, всё отлично пашет. Но вот автоматизаций в нём нет. Руки уже потянулись писать свой скрипт, но таки решил покопать что есть готового :)
И, вуаля, есть такая штука как node-red. И там не просто текстом писать условия, там всё визуально! Правда въехал я не сразу, но потихоньку освоился и сделал две автоматизации - на свет по движению, и на управление светом кнопкой. В общем, пока доволен :)
Ну ладно, надо пробовать, ставлю дебиан, ставлю HA, ставлю модули для работы с девайсами, иии, да, одноплатник сказал КРЯ :)
Думаю - ну, модуль управления устройствами (zigbee2mqtt) можно и без HA поставить. Поставил, всё отлично пашет. Но вот автоматизаций в нём нет. Руки уже потянулись писать свой скрипт, но таки решил покопать что есть готового :)
И, вуаля, есть такая штука как node-red. И там не просто текстом писать условия, там всё визуально! Правда въехал я не сразу, но потихоньку освоился и сделал две автоматизации - на свет по движению, и на управление светом кнопкой. В общем, пока доволен :)
🔥2
Решил устроить AI Racing Challenge - соревнование между ИИ по написанию ботов для гонок. Отчёт по квалификационным заездам :)
🔥2