Как создать текстовую игру в Телеграмме

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

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

Тогда я решил посоветоваться со своим другом, и как только я ему написал, что делаю свою игру, он сразу же выпалил: «Надо про постапокалипсис». Чтобы вы понимали, насколько несерьёзно и скептически я тогда относился к игре: если бы он написал не «постапокалипсис», а, например, «царство фей», то сейчас в Telegram была бы MMORPG про фей Винкс. Но постапокалипсис тоже ничего. Примерно так мне и пришла идея создания Wasteland Wars — комплексной survival-MMORPG в формате бота для Telegram.

Как создать текстовую игру на Pikuco.ru

Платформа для реализации игры

У меня вообще не стояло вопроса о выборе платформы, я загорелся идеей попробовать сделать игру именно на основе бота в Telegram, а затем уже под этот формат придумал Wasteland Wars. Мобильные приложения я и так часто разрабатываю на основной работе, и нужно быть парнишей с большими странностями, чтобы во время отдыха от работы заниматься тем же. Мне хотелось что-то принципиально новое.

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

Целевая аудитория

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

Если серьёзно, игра определённо придётся по душе поклонникам тематики постапокалипсиса: фанатам серии Fallout, книги «Дорога»; любителям фильмов про миры, пережившие катастрофу: «Дитя человеческое», трилогия «Безумный Макс», «Я — Легенда»; любителям ролевых игр и рогаликов. Ещё больший фан игра доставляет, если собраться в ней компанией друзей.

В целом контингент в проекте собрался очень разнообразный, играют люди от 18 (почти) до 50 лет — с разными увлечениями. Меня до сих пор удивляют взрослые мужики с жёнами и детьми, которые активно проводят в боте и игровых чатах по 16-18 часов в день. Так что точного ответа тут дать нельзя. Зато игра точно не рассчитана на детей.

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

Как сделать бота для РП по любой игре в ТГ

Текстовый формат игры: плюсы и минусы

  • высокая скорость разработки;
  • нет ограничений по игровой вселенной;
  • можно добавлять в игру ситуации и события любых масштабов;
  • возможна любая степень проработки игрового мира;
  • не требует для разработки мощных компьютеров.

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

Аналоги и похожие проекты в Telegram

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

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

Еще по теме:  Как круто назвать группу в Телеграмме

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

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

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

Какое влияние проект может оказать на рынок таких игр

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

Для понимания потребуется зайти немного издалека. Я замахнулся делать свою Wasteland Wars с ориентиром на большие MMORPG для компьютеров, такие как Lineage 2 и WoW. Самому до сих пор сложно в это поверить, но так получилось, что сейчас мой игровой бот в Telegram функционирует на базе почти идентичной комплексным, большим играм ММО.

  • сюжетные квесты;
  • лут;
  • торговля;
  • альянсы (здесь они называются бандами);
  • битвы PvP и PvE;
  • различные NPC;
  • рейды на боссов;
  • подземелья;
  • большой открытый мир;
  • глобальные события;
  • и другие атрибуты больших игр.

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

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

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

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

Дата начала работы над игрой

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

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

Популярность игры и масштабы аудитории

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

Но я понимаю, что для многих этот момент самый интересный, поэтому давайте так: средний суточный онлайн зависит от многих факторов, в том числе от игровых событий, запланированных на этот день, праздников или выходных, соответственно, это довольно скользкий показатель, меняющийся каждый день. Но если взять навскидку, то диапазон суточного онлайна колеблется где-то от 500-600 до 1000 человек в сутки.

Развитие проекта и выпуск обновлений

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

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

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

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

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

Про ближайшие обновления

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

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

По аналогии с введением отдельной PvP-зоны для битв один на один, в игру будет добавлена зона PvP для массовой потасовки сразу нескольких участников из разных банд. Теперь мериться силой можно будет вместе со своими друзьями из банды — стенка на стенку. Будет расширена функциональность банд, а в общем складе банды её главарь теперь сможет управлять распределением ресурсов.

Механика побочных квестовых локаций в пустоши станет более глубокой, а улучшать можно будет не только собранное оружие, но и крафтовую броню. Барахолка, возможно, приоткроет свои двери для игроков-одиночек (но это совсем неточно). Ну и, разумеется, это лишь небольшая часть из нововведений, запланированных на активно готовящееся к релизу обновление 1,9.

Какое будущее я вижу для проекта

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

При каждом крупном обновлении, особенно перед релизом, я ловлю себя на мысли: «Ну всё, Макс, с этими фишками ты точно перегнул палку, сейчас словишь массу негатива в лицо, и все забросят игру». Чёрт. Это сложнее объяснить, чем я думал.

Допустим, я понимаю, что конкретная новая функция слишком непривычна и нестандартна для игр в целом, в частности — для Telegram. Я понимаю, что мой юмор может оказаться слишком непонятным или чересчур жёстким для неподготовленного игрока, из-за чего тот воспримет шутку за чистую монету и идиотскую механику.

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

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

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

Именно такие, зачастую рискованные и провоцирующие игрока на самые разные эмоции геймплейные фишки до сих пор поддерживают тот огонёк энтузиазма внутри меня. Так что лично для меня будущее Wasteland Wars всё ещё не совсем очевидно. Я делаю игру своей мечты, и пока в неё будут с удовольствием играть — я буду с удовольствием её развивать.

Источник: spark.ru

Как мы устроили квест в Telegram, и что из этого вышло

Привет, Гиктаймс! В уходящем году мы запустили одну штуку, которая нам понравилась, и мы собираемся продолжать. Речь идет про наш канал и бот в Telegram, и конкурсе, который мы запускаем сегодня для вас. Но обо все по порядку: вся история началась полгода назад, в начале лета, с этого и начнем.

Итак, где-то в июне мы сели обсуждать, что хотим сделать на «Игромире». У нас было 90 метров площади, 4 фокусные модели игровых гарнитур, коллектив девушек гоу-гоу, новая клавиатура, легендарный капитан CS Даниил «Zeus» Тесленко, 12 коробок призов и бесконечное множество браслетов всех сортов и расцветок, а также оверклокер-шоy и стойка с Xbox. Не то чтобы это был необходимый запас для «Игромира», но раз уж начал готовиться к крупнейшей игровой выставке в стране, то сложно остановиться… Чего у нас не было – это тихого спокойного места, в котором мы могли бы поговорить с «продвинутыми» или «взрослыми» пользователями, которым интересны наши продукты, которые хотят узнать больше про технологические особенности, но в общем шуме и гаме теряются.

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

Еще по теме:  Бот в Телеграмма заваливает звонками

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

Сказано – не значит сделано. Наверняка, по мнению многих, кто не знаком с разработкой, создание бота в Telegram выглядит примерно так.

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

Мини-туториал по созданию текстового RPG на Python

Обложка: Мини-туториал по созданию текстового RPG на Python

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

Для начала нам нужен randint.

from random import randint

Теперь можем сделать классы.

class Player: hp = 100 damage = 10 # Записываем в переменную, чтобы было удобно. p = Player() class Enemy: # Рандомно получает хп врага от 70 до 130, рандомно получает дамаг врага от 6 до 13. hp = randint(70,130) damage = randint(6,13) # Записываем в переменную, чтобы было удобно. e = Enemy()

Пожалуй, можно сделать меню.

def menu(p): while True: print(«1) Сражаться») print(«2) Посмотреть статистику») # try и except просто фиксят ошибки. Не обращайте внимания. try: n = input(«Введите число: «) if n == 1: menu_fight(p) if n == 2: menu_stats(p) else: print(«Чего ждем?») except NameError: print(«Введите число») except SyntaxError: print(«Введите число»)

Статистика тоже не помешает.

def menu_stats(p): print(«Статистика игрока») print(«*****************») # Попробую обьяснить, что значит %s. Она по последовательности списка вписывает в %s переменную. print(«hp «) print(«damage: «) input(«Нажмите Enter для продолжения.»)

Теперь потруднее, нужно сделать сражение.

def menu_fight(p): while e.hp > 0: # Также, как я и сказал по последовательности списка расставляет переменные. print(f»Вы hp: damage: «) print(f»Враг hp: damage: «) print(«**********************») print(«1)Ударить») print(«2)Хил 0-5») n = input(«Введите число: «) if n == 1: # Здоровье врага отнимает от вашего дамага. e.hp -= p.damage print(«Вы ударили противника, у него осталось %s hp»)%(e.hp) # Здоровье игрока отнимает от дамага врага. p.hp -= e.damage print(«Противник ударил вас, у вас осталось %s hp»)%(p.hp) print(«*********************») if n == 2: # Рандомно от 0 до 5 добавляет хп. p.hp += randint(0,5) # Если здоровье игрока больше, то хп игрока будет равна 100. if p.hp > 100: p.hp = 100 print(«Ваши хп %s»)%(p.hp) else: print(«Чего ждем?») if p.hp < 0: print(«Вы проиграли») if e.hp < 0: print(«Вы победили») print(«******************»)

Под конец осталось просто вызвать меню.

# Вызов меню. menu(p)

Полный код

from random import randint class Player: hp = 100 damage = 10 # Записываем в переменную, чтобы было удобно. p = Player() class Enemy: # Рандомно получает хп врага от 70 до 130, рандомно получает дамаг врага от 6 до 13. hp = randint(70,130) damage = randint(6,13) # Записываем в переменную, чтобы было удобно. e = Enemy() def menu(p): while True: print(«1) Сражаться») print(«2) Посмотреть статистику») # try и except просто фиксят ошибки. Не обращайте внимания. try: n = input(«Введите число: «) if n == 1: menu_fight(p) if n == 2: menu_stats(p) else: print(«Чего ждем?») except NameError: print(«Введите число») except SyntaxError: print(«Введите число») def menu_stats(p): print(«Статистика игрока») print(«*****************») # Попробую обьяснить, что значит %s. Она по последовательности списка вписывает в %s переменную. print(«hp %s.»%(p.hp)) print(f»Вы hp: damage: «) print(«damage %s.»%(p.damage)) input(«Нажмите Enter для продолжения.») def menu_fight(p): while e.hp > 0: # Также, как я и сказал по последовательности списка расставляет переменные. print(«Вы hp: %s damage: %s»)%(p.hp, p.damage) print(«Враг hp: %s damage: %s»)%(e.hp, e.damage) print(«**********************») print(«1)Ударить») print(«2)Хил 0-5») n = input(«Введите число: «) if n == 1: # Здоровье врага отнимает от вашего дамага. e.hp -= p.damage print(«Вы ударили противника, у него осталось %s hp»)%(e.hp) # Здоровье игрока отнимает от дамага врага. p.hp -= e.damage print(«Противник ударил вас, у вас осталось %s hp»)%(p.hp) print(«*********************») if n == 2: # Рандомно от 0 до 5 добавляет хп. p.hp += randint(0,5) # Если здоровье игрока больше, то хп игрока будет равна 100. if p.hp > 100: p.hp = 100 print(«Ваши хп %s»)%(p.hp) else: print(«Чего ждем?») if p.hp < 0: print(«Вы проиграли») if e.hp < 0: print(«Вы победили») print(«******************») # Вызов меню. menu(p)

Спасибо, что прочитали. Можете дать советы, мне будет интересно почитать.

Источник: tproger.ru

Рейтинг
( Пока оценок нет )
Загрузка ...