Найти в Дзене
ZDG

Написал игру Robots на JavaScript и Python. Часть 10: Итоги и выводы

Предыдущие части: Эпичный провал, Обработка действий игрока, Давайте уже рисовать, Чёрный квадрат, Графический контекст, Расстановка объектов, Инициализация, Функции и библиотеки, Проектирование

Игра, написанию которой я посвятил 10 частей, закончена. Что я подразумеваю под этим? Я реализовал все необходимые алгоритмы, чтобы игра работала по установленным правилам. Однако можно ли в нее играть? Да, но без всякого удовольствия.

Почему так получилось?

Дело в том, что случайная расстановка объектов на поле в большинстве случаев приводит к таким ситуациям, когда игрок сразу же оказывается в безвыходном положении. В механику игры заложена возможность сталкивать роботов друг с другом и с препятствиями, но игрок попросту не может этого сделать из-за дурацкого расположения всех объектов. Это видно сразу, и это расстраивает.

В моей памяти эта игра из прошлого осталась как нечто более увлекательное. Хотя память может меня подводить.

Тем не менее, попытки улучшить игру уже делались:

  1. Большое поле. На большом поле у игрока есть гораздо больше места для маневра.
  2. Балансировка количества роботов и препятствий. Если оптимально подобрать количество, игра становится более интересной. Например, в своем варианте я снизил количество роботов с 10 до 3.
  3. Телепорт у игрока, который переносит его в другое место поля.
  4. Роботы при столкновении образуют кучи, в которые врезаются другие роботы.
  5. Роботы делятся на два типа: которые проходят одну клетку за раз и которые проходят две клетки. Это позволяет устраивать более хитрые столкновения.

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

Еще можно подумать о каких-нибудь минах или гранатах у игрока.

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

Всё это можно попробовать реализовать когда-нибудь, но на данный момент проект завершен, потому что его цель была в другом.

Я написал в общей сложности 30 статей, посвященных программированию, и самая первая из них называлась "Почему не надо учить Питон".

Тем не менее, я сейчас написал игру на Питоне. Но учил ли я для этого Питон? Нет. Я знал, какие структуры мне нужны для игры, как я буду их использовать, и как организую игровой процесс. Мне всё равно, на чём писать. Чтобы написать игру на Питоне, я просто смотрел его документацию. Мне не были нужны никакие курсы и видеоуроки.

В ходе написания игры я использовал и по мере сил объяснил:

  • массивы
  • константы
  • циклы
  • условия
  • функции
  • графическое представление
  • главный цикл игры
  • обработку событий

Есть ещё огромное количество необъясненных вещей, и зачастую мне приходилось переписывать код так, чтобы он не был слишком "продвинутым". Да, это намеренно примитивный код. Но я надеюсь, что всё то, что я изложил во всех своих статьях, поможет вам увидеть настоящую природу программирования. И если вам понадобится какой-то язык, то вы сможете просто почитать его документацию, чтобы начать писать на нём.

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

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