Предыдущие части: Эпичный провал, Обработка действий игрока, Давайте уже рисовать, Чёрный квадрат, Графический контекст, Расстановка объектов, Инициализация, Функции и библиотеки, Проектирование
Игра, написанию которой я посвятил 10 частей, закончена. Что я подразумеваю под этим? Я реализовал все необходимые алгоритмы, чтобы игра работала по установленным правилам. Однако можно ли в нее играть? Да, но без всякого удовольствия.
Почему так получилось?
Дело в том, что случайная расстановка объектов на поле в большинстве случаев приводит к таким ситуациям, когда игрок сразу же оказывается в безвыходном положении. В механику игры заложена возможность сталкивать роботов друг с другом и с препятствиями, но игрок попросту не может этого сделать из-за дурацкого расположения всех объектов. Это видно сразу, и это расстраивает.
В моей памяти эта игра из прошлого осталась как нечто более увлекательное. Хотя память может меня подводить.
Тем не менее, попытки улучшить игру уже делались:
- Большое поле. На большом поле у игрока есть гораздо больше места для маневра.
- Балансировка количества роботов и препятствий. Если оптимально подобрать количество, игра становится более интересной. Например, в своем варианте я снизил количество роботов с 10 до 3.
- Телепорт у игрока, который переносит его в другое место поля.
- Роботы при столкновении образуют кучи, в которые врезаются другие роботы.
- Роботы делятся на два типа: которые проходят одну клетку за раз и которые проходят две клетки. Это позволяет устраивать более хитрые столкновения.
Я бы также мог предложить менее случайную расстановку. Скажем, чтобы препятствия всегда находились в определенном поясе поля и чтобы роботы вначале не стояли очень близко к игроку.
Еще можно подумать о каких-нибудь минах или гранатах у игрока.
Наконец, самый интересный вариант – отказаться совсем от случайной расстановки и создавать на каждом уровне поле вручную, продуманно расставляя на нём стенки, опасности и роботов, чтобы получилась настоящая головоломка, где игрок должен думать над каждым ходом.
Всё это можно попробовать реализовать когда-нибудь, но на данный момент проект завершен, потому что его цель была в другом.
Я написал в общей сложности 30 статей, посвященных программированию, и самая первая из них называлась "Почему не надо учить Питон".
Тем не менее, я сейчас написал игру на Питоне. Но учил ли я для этого Питон? Нет. Я знал, какие структуры мне нужны для игры, как я буду их использовать, и как организую игровой процесс. Мне всё равно, на чём писать. Чтобы написать игру на Питоне, я просто смотрел его документацию. Мне не были нужны никакие курсы и видеоуроки.
В ходе написания игры я использовал и по мере сил объяснил:
- массивы
- константы
- циклы
- условия
- функции
- графическое представление
- главный цикл игры
- обработку событий
Есть ещё огромное количество необъясненных вещей, и зачастую мне приходилось переписывать код так, чтобы он не был слишком "продвинутым". Да, это намеренно примитивный код. Но я надеюсь, что всё то, что я изложил во всех своих статьях, поможет вам увидеть настоящую природу программирования. И если вам понадобится какой-то язык, то вы сможете просто почитать его документацию, чтобы начать писать на нём.
В дальнейшем я планирую рассказывать про игры как с точки зрения программирования и кода, так и с точек зрения гейм-дизайна, графики и музыки. Расскажу про свои удачные и неудачные проекты, про то, что хотел сделать и никогда не сделал, про то, что боюсь делать, и про то, что делаю сейчас.