@waiius

Создание чат-квеста. Как это сделать?

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

Можно ли такое сварганить на Java?
Я чайник в этой теме, поэтому простите за глупые вопросы :з
  • Вопрос задан
  • 1387 просмотров
Пригласить эксперта
Ответы на вопрос 3
saboteur_kiev
@saboteur_kiev Куратор тега Разработка игр
software engineer
Как можно создать этот чат, чтобы смс по мере поступления уходили наверх?

Никак, смс недоступны сторонним приложениям. Если стандартное приложение телефона не умеет двигать смс вверх - то никак.

Можете написать свой "мессенджер", или сделать бота для телеграма.
Можно и на джава.

Но тут вопрос - если вы хотите игру - наймите программистов, пусть вам напишут.
Если вы хотите научиться программировать - научитесь программировать сперва что-то попроще, а потом уже задавайте вопросы.
Ответ написан
Комментировать
@Rioran
Excel & VBA senior
Здравствуйте. Как раз на днях делаю похожую вещь, но в HTML+JS. Да, Ваш проект можно реализовать на Java - на ней и сложнее вещи делаются. Правда, если речь о приложении для Android - нужно будет мимоходом вникнуть в нюансы xml, возможно JSON или ещё чего. Ваш вопрос в целом довольно широкий и отвечать на него конкретикой сложно. Но всё же вот несколько моих личных предвзятых советов. Вам нужно декомпозировать Вашу задачу на отдельные части:
1). Прописать дерево сюжета. Какие вопросы приводят к каким последствиям. У меня это реализовано через JSON: rioran.ru/js/lit-rpg-questions.js чтобы можно было динамически подходить к количеству ответов на вопрос. Впрочем, имеет смысл хранить в табличном виде - так легче редактировать.
2). Продумать элементы механики. Участвуют ли дополнительные характеристики, инвентарь героя? Ограничивают ли они варианты ответов? По ссылке в пункте "1" у меня также часть механик "зашиты" в вопросы. Например, параметр "change_health" содержит массив значений, индекс которых соответствует индексу выбранного игроком ответа. А на основной странице rioran.ru/lit-rpg реализованы процедуры обработки этого параметра, если он в вопросе есть. Язык JavaScript, может отличаться от Java местами, хотя в чём-то похож.
3). Продумать и реализовать интерфейс, с которым будет работать игрок. Если речь о формате псевдо-чата с героем, то можно:
- нижнюю часть экрана отвести под кнопки авто-выбора ответа. То есть, герой спрашивает "Как мне поступить? Мои варианты: 1 ... 2 ... 3..." и кнопки с номерами появляются внизу. Вам нужно будет научиться генерировать произвольное количество кнопок, научиться выравнивать их по ширине чтобы они нормально заполняли экран (рекомендую цепляться за % ширины, так как на разных экранах пиксели будут разными), научиться присваивать кнопкам выполнение соответствующей команды (идею можно подсмотреть в моём демо, где у меня реализован выбор нескольких значений). Также почерпнуть дополнительные идеи реализации кнопок можно, посмотрев на их реализацию в Telegram, например.
- Часть экрана выше области для кнопок можно отвести под поле для ввода произвольного текста. Это создаст атмосферность чата и позволит игроку, например, представиться и давать имена каким-нибудь объектам. В мобильном приложении это делается созданием базового поля для ввода текста. Нужно будет прописать процедуру для очистки этого поля ввода.
- И, наконец, основную часть экрана будет занимать поле псевдо-чата. Имеет смысл делать его через WebView класс https://developer.android.com/guide/webapps нужно будет научиться добавлять поля с текстом, научиться давать этим полям ширину, например 95% от экрана, и задавать разный отступ репликам игрока например вправо, репликам собеседника влево. С треугольником, указывающим на сторону говорящего - для начала рекомендую забить, красивый элемент который необязателен, но сожрёт кучу времени. Лучше пилить в последнюю очередь. Все сообщения будут бесконечно добавляться снизу и игрок всегда сможет проследить всю историю переписки. В WebView, который основан на HTML, это сделать будет относительно просто.
Хочу отметить, что для стартового проекта Вы выбрали относительно простую и интересную идею, что уже половина успеха. Советую реализовать в такой минимальной конфигурации и любые усложнения делать уже после того, как эта версия будет готова (например, идея для усложнения: игрок может переключаться между чатами с несколькими героями). Если опыта в программировании мало - предельно упрощайте механики и держите в узде фантазию. А то рискуете бросить проект не закончив. Расчитывайте, что для среднего человека без опыта программирования Ваша идея может занять около недели работы с утра до вечера. Без учёта дерева вопросов-ответов. Удачи!
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Как вариант, вы можете сначала проработать историю в движках "для непрограммистов" Twine или Ink. Когда сюжет приобретет форму и станет интересным — тогда и можно будет задуматься о внешнем виде и о публикации в сторе (из указанных движков любой вменяемый программист сделает вам приложеньку для мобильных).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы