Вот уже два года как я планировал сделать свой собственный mmorpg мир с гвинтом и куртизанками, сидел вечерами кодил, высчитывал баланс, изучал язык программирования и вот, в один момент я понял, что это вытягивает время, силы, и не принесет ожидаемого результата с вероятностью почти 100%. Почему - да потому что таких игр сотни, если не тысячи, имею ввиду те, что про меч, магию и брожение по локациям в поисках очередного шлема великого магистра. Те проекты, которые пользуются спросом, практически все созданы большими командами, а я даже на анимацию более-менее нормальную не готов тратить несколько дней. Да, есть проекты, которые "выстреливают", но это нужно чтобы все звезды сошлись и была оригинальная идея. Смешно.
Ну и, как говорится, смех смехом, а эта самая кверху мехом, и не теряя лишних минут, я генерю за пару вечеров казуалку, которая с гораздо меньшими силами получается залипательнее. Пусть и механика избитая, но нет нет, да зайду иногда попробовать рекорд побить предыдущий. Правила просты - собираем зеленые мячи и уворачиваемся от красных, желтые тоже собираем, это бустеры - X2 к очкам за собранный зеленый шар, притягивание зеленых шаров на некоторое время и здоровье. Может кто еще какой бустер предложит, идеи приветствуются. Игра в телеге, если зайдет, перенесу на андроид или буду еще чего-нибудь придумывать простенькое, если не зайдет. Кому интересно https://t.me/jugreenbot
Недавно с товарищем разрабатывали один внутренний ресурс и понадобился удобный Alert. Нужно было получать уведомления, если система вдруг перестанет отвечать. Подумал, что телеграм в этом плане подойдет идеально: ничего дополнительно ставить не нужно, все под рукой.
Я пробовал поискать готового бота, пообщался с коллегами — давали разные варианты. Но либо функциональность не та, либо интерфейс неудобный. В итоге решил: «А почему бы не написать своего?»
И написал.
Бот по расписанию пингует API эндпоинты (в общем то любую страницу) и присылает уведомление в телеграм, если что-то пошло не так: нет соединения, долгий отклик или отрицательный код ответа. Звучит просто, но внутри все немного интереснее.
Писал на Java 21. Да, знаю, не супер прагматично для телеграм-бота, но я джавист — привычнее и спокойнее.
Начал с проектирования структуры и сущностей. Получились User (потом масштабировал в Chat), Api и HistoryApi. Первоначально бот управлялся через команды, но по мере роста модели управления пришлось перейти на inline-меню, чтобы UI был удобнее.
Проверку эндпоинтов реализовал конкурентно: выгрузку списка API из базы распределяю по виртуальным потокам (Java 21). В каждом потоке выполняются задачи проверки и асинхронного ожидания ответа (с учётом таймаутов). Такой подход позволил без лишних накладных расходов параллельно обрабатывать тысячи проверок.
В какой-то момент увлекся: добавил статистику, историю проверок, выгрузку журнала, работу в групповых чатах, возможность более точной настройки интервалов и времени отклика. Да, это добавило нагрузки, но зато функционал получился гибкий.
Кстати, сервер, через который бот выполняет проверки, находится в Санкт-Петербурге (пока). Это значит, что время отклика измеряется именно из этого региона, и результаты могут немного отличаться от того, что вы видите со своего компьютера.
Сейчас бот работает так:
добавляем эндпоинт — встали в очереди на проверку;
дефолтный интервал проверки — 15 минут;
максимальное время отклика до уведомления — 2000 мс;
интервал обхода очереди всех API раз в минуту.
Меню управления
В меню управления можно изменить название, URL, интервал проверки, время отклика, приостановить проверку, отключить уведомления для конкретного API или удалить его.
Если во время проверки больше 10 раз не удается получить положительный ответ, проверка ставится на паузу. Пользователь после решения проблемы с ресурсом может возобновить её вручную.
Авто-остановка проверок при многократных ошибках
Бот бесплатный, но есть разные планы для удобства и справедливого распределения ресурсов.
Бесплатный — для обычных пользователей: до 2 API, проверка не чаще чем раз в 15 минут, простой порог отклика 1000 мс, статистика только последней проверки. Для большинства это более чем достаточно.
Персональный — для тех, кто хочет больше контроля: до 5 API, проверка каждую минуту, порог отклика до 250 мс, статистика последних 5 проверок и выгрузка CSV до 14 дней.
Групповой — для команд и групп: работа в чатах, до 20 API.
Эти тарифы сделаны не для того, чтобы кого-то заставлять платить, а чтобы покрывать расходы на активных пользователей, которые используют ресурсоёмкие функции. Если вы просто хотите получать уведомления о своих парах API, бесплатного плана хватит с головой.
Из проблем, с которыми пришлось разбираться вручную, — работа с часовыми поясами. Сервер в UTC, пользователи в разных часовых поясах. Добавил ручной ввод смещения от UTC, теперь статистика и история отображаются в локальном времени.
В перспективе хочу добавить поддержку Мini app — чтобы UI стал еще удобнее и можно было управлять проверками прямо в Telegram без многоступенчатых меню.
Когда я написал первый пост про то, что хочу сделать свою mmorpg игру, в планах был текстовый вариант игры в телеграме. С тех пор прошло уже больше 2 лет, свою идею я не забросил, но несколько поменял реализацию. Когда-нибудь, я уверен, там будет постоянный онлайн, пусть и небольшой, из тех, кто любит такие же онлайн игрушки и у кого ностальгия по временам далеких двухтысячных годов.
Текстовый вариант это интересно, думал я, и в свободное время занимался основами игры, без квестов. Ума не приложу до сих пор, как их нормально реализовывают. В общем, сидел, смотрел на свою текстовую бродилку и думал чего не хватает и, наконец, придумал. Не хватает преобразовать ее в html5 игру. Знаний JS у меня не так и много, но ИИ вполне помогают заполнить некоторые пробелы и подсказать в каком направлении двигаться. И выбор пал на Phaser. Честно сказать, больше люблю разбираться в коде, чем использовать какие то конструкторы и Phaser подошел мне как ни что другое. В нем реализована физика, работа с ресурсами, работа с анимацией и много другое, но писать надо на том же JS все. Поэтому я взялся за переписывание своей RPG под визуальную составляющую. Так как основной функционал был реализован (сражения, предметы, перемещения и прочее), мне оставалось, по большому счету, заняться графикой. Самая жесть это всякие текстуры, карты. С этим тоже спасибо ИИ генераторам изображений, облегчают жизнь на первых шагах. Багов и работы хватает еще, конечно, буду исправлять и дорабатывать со временем. Из квестов пока придумал как реализовать несколько регулярных задач на сбор ресурсов, предметов и побед над противниками. В общем, проект в разработке, по мере сил занимаюсь. Считаю, что ничего не теряю, даже если игра не найдет своего пользователя, хотя бы навык разработки не теряется. Кому интересно, можете глянуть https://t.me/antariumrpgbot. Предложения и критика приветствуются.
Собственно, город, с которого начинается игра
Сражение представляет из себя перемещение по линии и выбор действия
Прошел год с момента публикации последнего поста. Едрить-колотить, целый год бездельничал. На самом деле, весь в делах, весь в работе, как говорится. Подзабил, в связи с занятостью, на свою игру, за сервак не платил и благополучно 1000 человек, которые зарегались, потеряны. Активных игроков было немного, конечно, но тем не менее. Теперь к делу. Начал переписывать весь код игры с нуля, структурированно, исправляя ошибки в основном коде, подойдя к делу ответственно. Моя мечта - создать рпг игру, по ранним стандартам, прокачка уровня, сражение с противниками, квесты, в общем, текстовая игра, для развлечения. Пока переписан практически весь функционал, кроме квестов. Не могу придумать, как их в БД организовать грамотно, если есть идеи - пишите, ну и что поменять тоже. Заценить можно по ссылке https://t.me/vzland_bot
🧑💻Начну свой первый пост со знакомства. Меня зовут Евгений, мне 19 лет. Я занимаюсь разработкой майнкрафт проектов, по простому я разработчик серверов или же их технический администратор.
🫶🏻В добавок к этому посту я прикрепил небольшой трейлер моего личного сервера, а точнее его beta части.
🖥Сейчас я активно занимаюсь разработкой своего сервера и нуждаюсь в людях которые могут меня поддержать и стать частью игрового комьюнити.
💻+📱Самое главное, я всегда создаю сервера кроссплатформенного типа, это значит что на сервер можно заходить с любого устройства, будь до телефон(minecraft pe) или же компьютер(Java). Я ориентируюсь на всех и никого не обделяю.
Если я смог тебя чем-то зацепить, то подпишись на меня, мне будет очень приятно увидеть твою поддержку.
Я открытый человек и всегда рад новым знакомствам!
Если имеется желание, то в добавок хочу оставить свой телеграмм канал, где ты можешь лампово провести время, поговорить со мной и просто найти новые знакомства!
Меня зовут Дмитрий я Java/Kotlin разработчик который залетел в IT без образования и опыта 4 года назад. Сегодня я Senior Software Engineer и работаю в области финансовых технологий.
Когда-то я уже писал пост о том что могу помочь ребятам желающим стать разработчиками и ко мне пришло более 100 человек. Большинство из пришедших были быстро кикнуты за игнор и нулевую активность. Примерно ~10 человек решили учиться или уже учились, и только 1 из них в данный момент проходит стажировку и устраивается на работу в ту компанию. Почему так произошло? Большинство не понимает, что программирование требует много времени. Условно, вам надо потратить 1000 часов чтобы стать стажером с нуля. Чтобы быть Junior и иметь возможность получить оффер, в дополнение к 1000 часам вам требуется энтузиазм кодить в отрыве от учебного процесса. Не существует курсов которые заложат вам в голову культуру и мышление инженера программного обеспечения(программиста). Этому придется учиться самостоятельно.
В прошлый раз я набирал 10 человек для менторинга и предоставления доступа к нашей Jira, где расписаны все шаги для выноса с ноги вакансий Junior/Middle Java/Kotlin Developer.
Часть задач в нашей Jira
Часть нашего Confluence(Это типо Wiki для команды/проекта)
Если вы думаете что вы потащите кодинг и у вас есть мотивация, то добро пожаловать на новую волну Rolling Into IT. Я снова набираю людей для менторинга. В этот раз будет таргетированный отбор для добавления вас в Jira и личный менторинг с учетом ошибок первой волны. В ближайшее время я планирую запустить подкаст, где вы сможете задать интересующие вас вопросы про IT: математика, вышка, где проще, какой язык, рынок перегрет и тд. Я не буду заниматься снобизмом и расскажу как все есть с моей точки зрения. Жду всех кто хочет найти работу в IT или уже ищет, поделимся опытом и знаниями.