Ответы пользователя по тегу Разработка игр
  • Создание чат-квеста. Как это сделать?

    @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, это сделать будет относительно просто.
    Хочу отметить, что для стартового проекта Вы выбрали относительно простую и интересную идею, что уже половина успеха. Советую реализовать в такой минимальной конфигурации и любые усложнения делать уже после того, как эта версия будет готова (например, идея для усложнения: игрок может переключаться между чатами с несколькими героями). Если опыта в программировании мало - предельно упрощайте механики и держите в узде фантазию. А то рискуете бросить проект не закончив. Расчитывайте, что для среднего человека без опыта программирования Ваша идея может занять около недели работы с утра до вечера. Без учёта дерева вопросов-ответов. Удачи!
    Ответ написан
    Комментировать