Введение
Last updated
Last updated
Привет, читатель! Прежде чем создать свою игру на питоне, мне бы хотелось обсудить несколько вопросов:
«Как человеку заняться геймдевом?»
Зачем писать игру на питоне, если есть unity и unreal engine?
Обычно есть два пути, как человек попадает в геймдев:
Умышленный путь. Человек, играющий в игры, увлекается ими настолько, что у него возникает желание их создавать. Тогда он выбирает, где и как ему учится. Он учится работать с игровыми движками и изучает C-образные языки.
Путь программистов. Так или иначе везде, где есть код — есть компьютер. Цифровые развлечения, в том числе игры, не проходят мимо тех людей, которые постоянно пишут код. Поэтому . Об этом пути мы и поговорим.
Конечно можно сказать, что если ты хочешь работать — иди учись и получай нужные навыки. Осваивай Unity или Unreal и работай в крутой . В этом есть доля правды. Однако, превращать любое своё хобби в работу — дело не благоразумное. Выгорание скажет об этом достаточно понятно. Тогда вам могут предложить сделать либо мод на игру (например, ) или поиграть в , которая тоже очень популярна. Такой вариант вполне подойдёт, но появляется новая проблема: "Выбор варианта работы".
Выбор варианта работы
Есть три варианта работы над игрой:
Создать игру на известном движке-конструкторе
Сделать мод на существующий движок
Создать свой движок и написать игру
Каждый из этих вариантов хорош по-своему, но и имеет ряд недоработок. Например, выбрав путь создания игры на популярном движке вы столкнётесь с проблемами самого движка, а главное — с проблемами монетизации проекта. Если выбрать модопуть — вы сразу столкнётесь с тем, что не каждый движок открыт для написания игр, а также, не каждый движок позволяет продавать мод хоть за какую-то цену. Путь написания своего движка вызывает в геймдеве дикий припадок, мол "Да зачем опять идти очень сложно, когда сроки горят, а сам ты ещё не доработал концепцию?". Данный путь весьма не популярен для общества из-за сложности реализации и проблем с набором хоть какой-то команды, ведь если вы пишете движок, кому-то с ним работать.
Так зачем выбирать "сложный" путь? Во-первых, не для всех он сложнее. Лично мне сложнее перейти на C# с использованием Unity, чем написать новый проект на Python. Во-вторых, люди не всегда понимают сам движок. Сейчас я преподаю в . Это одно из первых профильных учреждений, где обучают геймдеву. Я спросил у студентов: «зачем им движок?». Каково было моё удивление, что далеко не все понимаю, вообще зачем он нужен. Спойлер, не из-за пресетов.
Зачем вам движок?!
По сути, движок решает всего лишь три, но очень важных вопроса:
Физика. Если вы окончили физмат, вы понимаете насколько сложно определить и прописать траекторию падения стеклянного шара весом в 2 килограмма на доску из дуба, которая лежит под углом 32 градуса. Также, нужно не забыть прописать с какой высоты должен упасть шар, чтобы разбиться. Движок прописывает эту физику за вас, а вы лишь обращаетесь к тем или иным объектам.
Тайлсеты. Тайл — это маленькие картинки для прорисовки графики (чаще всего, карт). Процесс создания тайлов , а наложение этих тайлов достаточно простое дело. Просто выбрать где лежит камень, а где земле или вода. В движках типа Unreal или Unity можно выбрать слой карты и нарисовать клеточками из тайтлов карту.
Анимация. Самый спорный пункт. В движках все элементы на карте — это объекты. Каждый объект имеет форму по координатам x, y, z и их можно менять прямо в самом движке путём перемещения, сжатия или растягивания объекта. Но важное уточнение, прорисовывать анимацию по x, y, z — не самая лучшая идея. Куда надёжнее, красивее и вообще правильнее прописывать каждый шаг объекта путём перемещения по пресету персонажа по графике.
Иными словами, сам игровой движок — это автоматизирующая система, которая позволяет упростить разработку. Однако, при использовании движка теряется часть гибкости в настройках. Моя задача — описать как можно более подробный процесс написания игры по самому сложному пути, хотя Python и упрощает часть вещей.
Я решил писать игру на языке Python, потому что я его хорошо знаю и он для меня удобен. Я обожаю игры, но выучивать новый язык только для того, чтобы написать игру - на мой взгляд, очень муторно. Своим примером я хочу показать, что нет ничего невозможного. Даже с питона можно начать свой путь в игровую индустрию!
Автор книги - Валерий Линьков: более 8 лет в IT-образовании от сетей до змей!
Редактор - Анастасия Линькова: более 7 лет объясняет сложные вещи простыми словами.
Эта книга будет интересна всем, кто начал своё знакомство с языком Python. В книге будет объясняться все вопросы, которые затрагивают игровые механики. Минимальны порог входа для прочтения данной книги — пройденный курс .
Если вы нашли ошибки - напишите на почту . Пришлем вам презент за вашу внимательность :)