РПГ в гугл-таблицах. Первый опыт создания от гуманитария

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

Приветствую, хабравчане!

Начал создавать игру‑РПГ на гугл‑таблицах. Это своего рода планировщик, но с РПГ‑составляющей. Таких приложений полно в плеймаркете, однако мне всегда хотелось создать что‑то свое, для себя. Данный текст — рефлексия, которая, надеюсь поможет мне не запутаться с собственных идеях :-)

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

Важное вступление

Предупрежу матерых разрабов. Я — гуманитарий. Для меня создание этой игры — своего рода полезный отдых, который провожу по принципу «лучший отдых — это смена деятельности». Ковыряюсь в свободное время на работе, дома в метро. Сильно не пинайте, а если моя история покажется — посоветуйте чего‑нибудь полезного)

Если я что‑то называю «сложным» — просьба попридержать тапок свободной рукой) Не забываем, что у меня гуманитарный мозг — многие, казалось бы простые вещи мне нелегко держать в голове, некоторые моменты вызывают трудности для понимания.

Рабочее название игры — ЭВЕО

Почему гугл‑таблицы

Таблицы всегда под рукой и не нужно отвлекаться на интерфейс. Можно добавлять функционал хоть в метро прямо с телефона.

Признаюсь, немного могу в веб‑разработку (PHP, HTML/CSS, JS). Этот вариант не очень удобный — нужно создавать определенные условия (локальный хостинг, базу данных и тд), чтобы работать. Другими языками для разработки, как бы мне не хотелось, я не владею. Опять же, чтобы просто приступить к реализации, мне нужно сначала создать хотя бы простенький интерфейс, а мне не хочется отвлекаться на это.

Структура

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

Моя гугл‑таблица содержит несколько листов:

«БД» — туда я вручную забиваю свойства и их параметры.

«Календарь» — здесь происходит связь игры с реальностью: сколько дел из списка нужно выполнить за день, сколько сделал в итоге, еда, прогулка, чтение, сон, и тд.

Красным выделил показатели, которые будут участвовать в уменьшении параметров персонажа, зеленым — в увеличении. В красных ячейках, хотел сначала указывать отрицательные значения. Но в процессе расчетов поймал себя на том, что начал путаться со знаками, и вместо траты ресурсов получал их рост. Поэтому решил применить цветовую дифференциацию)

«Движок.Перс» — сюда подтягиваю данные из «БД» и «Календарь». Здесь же проводятся расчеты.

«Перс» — сюда транслируются результаты расчетов: насколько персонаж голоден, испытывает жажду, сколько энергии.

Таким образом связь между листами работает таким образом:

В «движок» подтягиваются из «БД» и «Календаря». Из движка данные отправляются в «Персонаж»

В настоящий момент для меня это максимально удобная структура. Все расчеты я провожу в определенном месте, все параметры того или иного параметра — в другом. Если что‑то ломается — я быстро ориентируюсь, где это произошло. «БД» помогает следить за балансом.

Что пока умеет персонаж

Персонаж пока умеет голодать, испытывать голод, копить и тратить энергию. А еще копит опыт — на будущее.

Персонаж перманентно испытывает голод/жажду каждый час.

Умеет пить, есть, выполнять задания: обыденные, нестандартные, и не непонятные. За каждое выполнение он тратит энергию, голодает и испытывает жажду.

Умеет спать. Пока спит — восстанавливает энерг/час, тратит еду/час и воду/час.

Умеет делать полезные дела «в вакууме»: гулять, работать «работу», читать, разрабатывать игры. За это он тратит Э/В/Е и получает опыт.

Особенности «движка»

Список «переменных»

Кажется, такое я видел в OpenCart, но м огу ошибаться. В движок я сначала вывожу все «переменные», которые подтягиваются из «БД» (по сути — тупо дублирую) и «Календарь»:

переменные:

В расчетах я ссылаюсь уже на этот список:

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

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

Конечный результат округляю, потому что цифры после запятой мне не очень нужны.

Средние значения или последняя запись в календаре?

Примечательно, что из «Календаря» я беру именно средние значения, а не из последней записи. По двум причинам:

  1. В определенный момент я просто забыл о том, что существуют способы взять данные из последней записи таблицы.

  2. Игра не подразумевает какую‑то динамику. Мне не важно, что герой делает в текущий момент. Мне важно знать о среднем состоянии героя.

Дальнейшие планы

В ближайшем будущем планирую сделать характеристика персонажа более обширными:

  • плохие привычки

  • моральное состояние

  • здоровье

Эти показатели буду добавлять в календаре, они будут зависеть на потребление еды/воды и расход энергии.

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

Спасибо за внимание :-) По мере появления времени буду продолжать писать.

Источник: https://habr.com/ru/articles/744592/


Интересные статьи

Интересные статьи

Всех приветствую. Меня зовут Алексей Жуков, я практикующий арбитражный юрист. В этой статье пойдет разговор о том, как многие российские IT-компании (известные и не очень) получали субсидию от Минпром...
Приветствую, читатели. Время идет, и все больше и больше новых вирусов и потенциально опасных приложений появляется в сети. Казалось бы, мир уже давным-давно познал целые интернет-эпидемии и не являет...
В статье на реальных кейсах из разных сфер разберём, почему сайты не справляются с ростом нагрузки. Для соблюдения NDA мы не называем заказчиков, а также опускаем детали, которые могли бы их раскрыть....
Изображение из блога компании Miro Киннерет Ифра, эксперт в разработке микротекстов для UI и автор книги «Microcopy: The Complete Guide», в своей статье даёт рекомендации, как сделат...
Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инстру...