Найти в Дзене

Как я писал игру про деньги на Python

Оглавление

Кухня создания игры

Сегодня экспериментальный пост. Не про финансы, но про программирование. Попробую рассказать о кухне создания мобильной игры глазами новичка. Я никогда раньше не писал компьютерные игры. Поэтому не претендую на правильную последовательность шагов, просто делюсь опытом.

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

Выход из зоны комфорта
Выход из зоны комфорта

Я уже рассказывал, как для отработки новых правил мы с детьми рисовали заново игровое поле и играли в «Арифметику богатства». Каждая партия может занимать от 20 до 40 минут. При этом всегда есть вариативность и судить о том как повлияло на игру очередное изменение правил можно только приблизительно.

Когда базовые правила игры уже сложились, в моем списке всё еще оставалось много идей как «улучшить» игру. Но часть идей скорее всего ухудшат игровой процесс, как это проверить? Как быстро понимать что станет с игрой при добавлении очередного правила? Отыгрывать по несколько партий вживую с каждым изменением — это долго. Поэтому захотелось автоматизировать процесс.

Кодинг текстовой игры

Я не программировал уже 20 лет, поэтому пришлось вспоминать матчасть. В качестве жертвы для экспериментов был выбран Python. Это один из самых лёгких в освоении языков программирования. Кроме того, мне всегда нравилась лаконичность и красота питоновского кода.

После пары недель вечернего чтения самоучителей и просмотра обучающих роликов был со скрипом установлен Jupyter Notebook и я сел кодить.

Вечер за вечером я делал и переделывал. Сначала процесс шел очень медленно, но как только я немного разобрался появилась первая версия «Арифметики богатства» на Python.

Первая текстовая версия игры «Арифметика богатства»
Первая текстовая версия игры «Арифметика богатства»

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

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

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

Но я доволен, потому что теперь есть модель для проверки гипотез. А логика, запрограммированная в текстовой версии, еще пригодится для разработки мобильной версии для iOS/Android.

Что дальше?

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

Параллельно выбираю движок. Пока пробую свои силы на разных платформах. Возможные претенденты:

  • PyGame
  • Python Kivy
  • React Native
  • Unity
  • Adalo

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

Хотел еще написать про графику для игры, но это в следующий раз.

А пока почитайте лайфхаки, которые легли в основу первой стадии игры:

На сегодня всё.

Если вам интересно с какими трудностями я столкнусь в процессе разработки настольной и мобильной игры — подписывайтесь.

Лайк тоже не забывайте. И да пребудет с нами сила чистого кода.

P.S. Изобретаю игру, которая учит детей обращаться с деньгами.

Каждый игрок «проживает» несколько шагов: №0. Избавься от долгов№1. Накопи финансовую подушку№2. Сделай пассивный доход выше расходов №3. Воспитай наследников и продолжи династию

Правила настольной версии игры «Богатей» в свободном доступе.

Наука
7 млн интересуются