🎮
The Legend of PyZelda: Breath of the Snakes
  • Обложка
  • Введение
  • Подготовка
  • Пишем уровень
  • Создаём игрока
  • Создание камеры
  • Графика
  • Анимация Линка
  • Оружие героя
  • Интерфейс
  • Монстры
  • Драки с монстрами
  • Музыка
  • Деплой
  • Итоги
Powered by GitBook
On this page

Введение

PreviousОбложкаNextПодготовка

Last updated 1 year ago

Привет, читатель! Прежде чем создать свою игру на питоне, мне бы хотелось обсудить несколько вопросов:

  1. «Как человеку заняться геймдевом?»

  2. Зачем писать игру на питоне, если есть unity и unreal engine?

Обычно есть два пути, как человек попадает в геймдев:

  1. Умышленный путь. Человек, играющий в игры, увлекается ими настолько, что у него возникает желание их создавать. Тогда он выбирает, где и как ему учится. Он учится работать с игровыми движками и изучает C-образные языки.

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

Конечно можно сказать, что если ты хочешь работать — иди учись и получай нужные навыки. Осваивай Unity или Unreal и работай в крутой . В этом есть доля правды. Однако, превращать любое своё хобби в работу — дело не благоразумное. Выгорание скажет об этом достаточно понятно. Тогда вам могут предложить сделать либо мод на игру (например, ) или поиграть в , которая тоже очень популярна. Такой вариант вполне подойдёт, но появляется новая проблема: "Выбор варианта работы".

Выбор варианта работы

Есть три варианта работы над игрой:

  1. Создать игру на известном движке-конструкторе

  2. Сделать мод на существующий движок

  3. Создать свой движок и написать игру

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

Так зачем выбирать "сложный" путь? Во-первых, не для всех он сложнее. Лично мне сложнее перейти на C# с использованием Unity, чем написать новый проект на Python. Во-вторых, люди не всегда понимают сам движок. Сейчас я преподаю в . Это одно из первых профильных учреждений, где обучают геймдеву. Я спросил у студентов: «зачем им движок?». Каково было моё удивление, что далеко не все понимаю, вообще зачем он нужен. Спойлер, не из-за пресетов.

Зачем вам движок?!

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

  1. Физика. Если вы окончили физмат, вы понимаете насколько сложно определить и прописать траекторию падения стеклянного шара весом в 2 килограмма на доску из дуба, которая лежит под углом 32 градуса. Также, нужно не забыть прописать с какой высоты должен упасть шар, чтобы разбиться. Движок прописывает эту физику за вас, а вы лишь обращаетесь к тем или иным объектам.

  2. Тайлсеты. Тайл — это маленькие картинки для прорисовки графики (чаще всего, карт). Процесс создания тайлов , а наложение этих тайлов достаточно простое дело. Просто выбрать где лежит камень, а где земле или вода. В движках типа Unreal или Unity можно выбрать слой карты и нарисовать клеточками из тайтлов карту.

  3. Анимация. Самый спорный пункт. В движках все элементы на карте — это объекты. Каждый объект имеет форму по координатам x, y, z и их можно менять прямо в самом движке путём перемещения, сжатия или растягивания объекта. Но важное уточнение, прорисовывать анимацию по x, y, z — не самая лучшая идея. Куда надёжнее, красивее и вообще правильнее прописывать каждый шаг объекта путём перемещения по пресету персонажа по графике.

Иными словами, сам игровой движок — это автоматизирующая система, которая позволяет упростить разработку. Однако, при использовании движка теряется часть гибкости в настройках. Моя задача — описать как можно более подробный процесс написания игры по самому сложному пути, хотя Python и упрощает часть вещей.

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

Автор книги - Валерий Линьков: более 8 лет в IT-образовании от сетей до змей!

Редактор - Анастасия Линькова: более 7 лет объясняет сложные вещи простыми словами.

Эта книга будет интересна всем, кто начал своё знакомство с языком Python. В книге будет объясняться все вопросы, которые затрагивают игровые механики. Минимальны порог входа для прочтения данной книги — пройденный курс .

Если вы нашли ошибки - напишите на почту . Пришлем вам презент за вашу внимательность :)

некоторым программистам становится интересно попробовать свои силы в разработке собственной игры
геймдев-компании
на движке Source
Грёзы
институте "Бизнеса и Дизайна"
весьма энергозатратный
"Поколение Python": курс для начинающих
admin@montirovka.com
Валерий Линьков
Анастасия Линькова