Бешеный программист
39 subscribers
52 photos
5 videos
18 links
Download Telegram
Для игр типа "крокодил" (когда нужно жестами объяснить какое-либо слово) мне всегда лениво было придумывать слова. Поэтому - просто написал такой сервис. Раньше компанией использовали, теперь - сервис грустит. Так что, хорошенько его переработал, обновил. И теперь делюсь с вами :))
https://gs.doubledox.com/word_gen/
База слов пока не очень большая, но если будут пользователи - дополню из архива, плюс форму для предложения новых слов запилю :)

Краткий мануал -
Create Room - создать комнату
Public/Private - приватность комнаты
Invite/Join by invite - подключение через инвайт-код (в приватную комнату)
Start/Finish game - запустить, остановить игру )
🔥32
Несмотря на мой долгий опыт разработки игр, у меня было довольно мало практики работы с аналитикой. Ну, большая часть проектов не доходила до пользователей, а те, что дошли - там не было времени отвлекаться от разработки :)
Штош, надо исправлять. Тем более что сейчас в релизе есть собственный проект :)
Подобрать оптимальную систему за все эти годы я так и не смог - часть не работает с играми, часть тормозит, часть чёрти как интегрируется с юнити. А если учесть современные тенденции "устаревания серверного оборудования" (не буду показывать пальцем сами знаете в кого) - решил залезть в технологию своими ручонками - и написать свой трекер. ну, трекер получился быстро. Но суть аналитики как раз в визуале представления данных, который мне было делать откровенно лень. И тут уже в ход пошёл ИИ :) Довольно шустро получилось накодить базовый интерфейс.
Теперь дело за малым. Надо как-то данными её заполнить... 😅
2🔥2
А помните те времена, когда интернет был не нужен для мультиплеера? Я вырос на таких играх. Самая движуха была именно тогда, когда вы собирались в комнате за одним экраном.... Именно этот дух движет мной при создании игр =)
Поэтому! наконец то добрался до изучения Unity Input System (да-да, я не всегда пишу своё с нуля) - это такая обновленная система управления вводом от игроков - теперь мои гоночки полноценно поддерживают и Split screen (разделенный экран), и ввод с мобильных устройств (android).
Свежая версия для пк - https://github.com/DoubleDox/DoubleDox-Racer/releases/tag/1.2.3
Свежая версия андроид - https://www.rustore.ru/catalog/app/com.doubledox.racer
кстати, да! не хвастался ещё, но мои гонки доступны под андроид! =)
🔥3👏2
В последние недели больше сфокусировался на веб-сервисах, и, вот небольшой дайджест краткослов! (ну, раз англицизмы теперь нельзя...:))) )
Потихоньку социализирую сайт с базой песен https://akk.doubledox.com. Сделал логику событий, теперь заказы и историю исполнения можно привязывать к ним. Основная цель - мэтчить слюбливать участников гитарников/квартирников по пересечению репертуара. Ну и чтобы можно было искать тех или иных исполнителей (инструмент, вокал) для совместного музицирования. Плюс - хранение истории исполнения.

А так как мне важно получать фидбек глас народа и понимать "желаемость" тех или иных фич диковин - я сделал возможность просматривать и голосовать за грядущие фичи диковины. Так что можно идти на https://tasker.doubledox.com и ставить лайк любо!

А еще пришла в голову интересная мысль. Я всю документацию храню в формате markdown - и, в общем то, не так уж и сложно сделать сайт (который автоматом будет обновляться из текущей документации) - так что скоро будет доступен хелп кладезь мудрости!
2😁2🔥1
Появилась перспектива по работе поделать сетевые гонки, поэтому резко меняю направление разработки своих гонок в сторону мультиплеера. Все как полагается - комп, рядом ноут, чтобы на двух машинах сразу можно было отлаживать если что... но что-то пошло не так :)
🔥4🥰4
Потихоньку пилю сайт своей группы "Одна Волна" =)
https://samewaverock.ru
Теперь в интернете можно посмотреть полную историю концертов! правда, не все ссылки пока проставил, но всё будет! :)
И как раз отличный момент проанонсировать предстоящее открытие весеннего сезона 5 апреля! )
🔥7
Продолжаю потихоньку пилить сайт группы.
https://samewaverock.ru/#stash
Между выкладыванием демки песни и её попаданием на альбом может пройти довольно много времени. А некоторые треки в принципе не предназначались для публикации в рамках группы. Поэтому пришла в голову мысль оформить это в отдельную страницу на сайте - под названием "каморка" :) Прикрутил плеер и даже кеширование треков на устройство - таким образом можно слушать музыку даже на парковке! 😅
2👍2
как и писал ранее - возникла идея вывести актуальную хранящуюся документацию в веб. И вот! теперь есть единое место, где её можно будет посмотреть (и не только документацию, кстати). Постепенно буду пополнять, по мере возникновения вопросов :) велкам https://wiki.doubledox.com
1🔥1
Смотрю себе русский сериал "Сергий против нечисти", никого не трогаю, тут в конце серии включается реклама. думаю такой ну ёёё совсем озверели, даже до титров вклинили. А там бац, и реклама игры по этому сериалу, прототип которой мы в прошлом году делали )) почувствовал себя Лео из мема ))
🔥4
Полгода назад я начал потихоньку структурировать документацию, которая имелась на тот момент. И, решил поискать какой-нибудь удобный редактор разметки markdown (которую упоминал в одном из прошлых постов). Так я наткнулся на Obsidian. И, в общем то, полгода использовал его как редактор документов.

И только недавно до меня вдруг дошло, что это не просто редактор. И не просто приложение для заметок. Это, блин, личная база знаний, в которой можно сделать всё что угодно благодаря куче плагинов сообщества. А главное - всё локально! Как и мой сервис "Каморка" на сайте Одной Волны - тоже может работать даже на парковке! 😅

Парочка полезных кейсов:
- Написание текстов. Понятное дело, что песни я пишу теперь только в нём :) Самая полезная для меня фишка - это комментарии %% %% - текст внутри показывается серым, а если перейти в режим чтения (Ctrl+E) - они вообще пропадут, и можно скопировать только нужный текст (при написании песен часто нужны пометки или альтернативные варианты)
- Дневник! Рефлексировать важно, а тут можно по одному клику создавать заметку на день по шаблону, куда вписывать не только дела, но и мысли, которые посещают. Ибо если мысль сразу не записать скорей всего она уже врядли возникнет (ну, у меня так:) )
- База знаний. Есть крутое расширение для браузера Obsidian Web Clipper. Теперь я не держу открытые вкладки, которые "когда-нибудь" изучу. Содержимое (вместе с сылкой на источник, разумеется) сохраняется в виде документа markdown в ваше хранилище. А если речь идёт о роликах ютуба, так там еще и транскрипция текстом выгрузится.
- Можно рисовать схемы. Например, с помощью плагина Excalidraw.
- Можно переводить документы в текст с помощью OCR плагина.
И это только то, что я успел начать использовать за это время :)

Короче - это не очередная программа для записей, а способ думать. Она не навязывает структуру, а помогает вашей собственной вырасти естественным путем )) Просто берёшь и начинаешь писать :)
👍2🔥21
С этими предконцертными подготовками забыл поделиться! Неделю назад был в Сколково на киберсубботе, Смотрел как в один из наших рабочих проектов играют... исключительно дети 😅 Ну и ладно, зато играют с интересом :)
🔥62
Всё начиналось еще лет 16 назад, когда мне нужен был сервис, чтобы отмечать список песен, которые знаю. Так и начался этот проект. А позже сделал возможность другим смотреть свой репертуар, чтобы знали что заказывать на гитарных посиделках :)

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

Следующий этап - планирование мероприятий. мне, как исполнителю нужно было под конкретное мероприятие "планировать" плейлист и отмечать исполнение - так появилась вкладка "события". Плюс - события можно делать публичными, или приватными с конкретными участниками - и видеть кто что планирует исполнить, чтобы повторить что-либо к мероприятию.

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

ссылка на сервис: https://akk.doubledox.com/

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

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

P.S. добавление песни пока неинтуитивно понятное - нужно в поиск вбить "ИСПОЛНИТЕЛЬ - НАЗВАНИЕ_ПЕСНИ" (разделитель обязательно пробел-дефис-пробел, чтобы не путать с дефисами в исполнителях или названиях песни) - и нажать Создать.

P.P.S. параллельно делаю офлайн-режим - сайт можно установить как приложение на телефон - будет иконка на рабочем столе, а закешированные песни будут открываться даже без интернета.
🔥41
Вы когда-нибудь задумывались о том, как игра понимает, что происходят столкновения?

Рассмотрим на примере гонок )

Можно подумать, что компьютер просчитывает каждую деталь: зеркала, бампер и даже спойлер. Но на самом деле для игрового движка ваша крутая тачка выглядит... как обычная невидимая коробка! Иногда - несколько коробок :)

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

Гонки, кстати, попиливаю потихоньку :)
под винду https://github.com/DoubleDox/DoubleDox-Racer/releases
под андроид https://www.rustore.ru/catalog/app/com.doubledox.racer
👨‍💻21🔥1
Вообще практически весь мой игровой опыт сводился к проектам "в стол". С рабочими проектами это отдельная боль, а личные проекты были скорее для саморазвития, и все время хотелось что то доделать прежде чем выкладывать. Поэтому пару лет назад решил - сделаю простую казуалку, и выложу в сторы. Пусть будет, пусть люди хоть во что то моё играют :) Так и появился проект Traffic Run. Суть простая - гнать вперед, объезжать траффик, никакой физики и сложного управления - только влево вправо и тормоз :))
Так что, если нравятся простые игры - велкам. фидбеку буду рад :)
https://www.rustore.ru/catalog/app/com.doubledox.trafficrun
21👍1👏1
Еще в начале моего веб-разработческого пути я сталкивался с некоторым опасением со стороны пользователей при авторизации на моём сайте через сторонние сервисы.
Так что, на всякий, давайте разберём всё на пальцах :)

Механизм авторизации, который я использую, называется OAuth. И вот как он работает:
1) Вы нажимаете "Войти через Google/VK/Yandex" на моём сайте.
2) Мой сайт отправляет вас на настоящую страницу Google/VK/Yandex.
3) Вы вводите логин и пароль там, на сайте конкретного сервиса. Я НЕ вижу их. Физически не могу.
4) Google/VK/Yandex проверяет пароль и спрашивает можно ли предоставить данные для моего сайта.
5) Вы нажимаете "Разрешить".
6) Сервис перенаправляет обратно на мой сайт вместе с временным кодом.
7) И уже на своём сайте я могу этот временный код использовать, чтобы обратиться к Google/VK/Yandex и идентифицировать того, кто авторизуется.

Таким образом я на сайте получаю ровно то, что вы сами разрешили при посещении страницы стороннего сервиса. обычно это почта, а иногда даже и почты нет - только внутренний идентификатор внутри этого сервиса. Но мне этого достаточно, чтобы идентифицировать пользователя и пустить его в аккаунт :)
🔥21
получил первый фидбек по Traffic Run! так что, сижу пилю апдейт :)
🔥32
Вы наверняка замечали, что в любом деле - будь то изучение нового навыка или даже выполнение задач на новой работе - есть некоторая градация состояний типа "а чего так просто?", "круто, интересно!" и "ой-ёй че так сложно!". Так вот, у этого есть даже термины - зона комфорта, зона роста и зона паники. Я вот подумал, что вся история видеоигр - это эдакая попытка разработчиков нащупать баланс между ними :)

Взять, например, игры 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

Кстати! У меня по другому проекту назревает баттл между популярными ИИ, готовьтесь :))
🔥32
Подключил сервис рекордов к 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
там, кстати, среди музыки есть инструменталки Одной Волны, что поможет настроиться на концерт! :)

Краткий ликбез - есть два режима - со встречной полосой и без. со встречной сложнее, но за неё начисляются бонусные очки. Есть тормоз (снизу слева или справа на экране). Сложность растёт с дистанцией, но чем сложнее тем больше множитель очков. Лучший результат выводится на стартовом экране (для каждого из режимов отдельная таблица, но лучший результат буду считать там где больше будет).
2👏1
Ну что, соревнование окончено!
Лучший результат 35248 очков поставил игрок с ником KSG911 (режим "со встречной полосой")
Кто ты, воин? свяжись со мной, чтобы получить билет :)

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