Как стать автором
Обновить

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.5K

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

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

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

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

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

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

Рабочее название игры — ЭВЕО (энргия, вода, еда, опыт)

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

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

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

Структура

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

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

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

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

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

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

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

Дисбаланс показателей пока некорректный. Герой может быть сытым на 200% - а это не правильно. Планирую установить лимит 100 на ЭВЕ, край - 120.
Дисбаланс показателей пока некорректный. Герой может быть сытым на 200% - а это не правильно. Планирую установить лимит 100 на ЭВЕ, край - 120.

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

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

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

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

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

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

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

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

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

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

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

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

переменные:

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

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

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

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

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

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

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

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

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

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

  • полезные привычки

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

  • болезни

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

  • здоровье

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

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

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

Теги:
Хабы:
Всего голосов 5: ↑5 и ↓0+5
Комментарии36

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань