PJ Dev
480 subscribers
58 photos
1 video
1 file
67 links
История в прямом эфире о том, как я стал разработчиком, изменил свои привычки и улучшил качество жизни

https://pjdev.ru/
Download Telegram
Media is too big
VIEW IN TELEGRAM
В школе, где я преподаю, дети на втором курсе обучения изучают классы и основы ООП. Чтобы с этим было легче разобраться я построил их обучение на базе #Python библиотеки #PyGame, которая предназначена для разработки 2D игр.

Так вот, один из учеников в качестве идеи для своего проекта выбрал космический 2D шутер. Многим другим идея тоже понравилась и мы начали с ними делать разные варианты игры.

А чтобы у детей появилось понимание, что вообще можно сделать, и какие есть возможности, я для них разработал свой, более сложный вариант. Код в открытом доступе, готов к конструктивной критике, идеям и предложениям. Будете играть, выпускать на Android?)

#Программирование #игры #pet
👍9🔥7👏1
Мне тут в комментариях недавно посоветовали книгу Эрика Мэтиза — "Изучаем Python. Программирование игр, визуализация данных и веб-приложения". Так вот, я написал один из проектов книги — копию игры Alien Invasion на PyGame. Так что минувшая неделя прошла довольно продуктивно.

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

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

Немного о самой книге. Она разделена на две части:
1) Основы программирования — это переменные, типы данных, операторы, циклы, функции, классы, работа с файлами и тестирование. В общем весь базовый арсенал. Эту часть я пропустил, так как в целом с ней уже достаточно хорошо знаком и перешёл сразу к проектам.

2) Три проекта:
- Игра на PyGame;
- Проект по визуализации данных на Matlib + Pygal;
- Создание веб-приложения на Django.

Сейчас есть желание написать собственную игру, чтобы добавить пет-проект себе в портфолио, а в идеале бы получить на него ревью более опытных специалистов, чтобы узнать, что еще я упустил. Также интересно перейти к третьему проекту — написать веб-приложение на Django, посмотреть чему новому я там смогу научиться.

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

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

P.s. в комментарий добавил короткое видео с геймплеем.

#Программирование #Python #PyGame
👍10🔥6🤓2
Каждый раз после длительного отдыха замечаю, что меня прям тянет поработать. Вот чувствую, что начинаю скучать по коду.

Уже несколько дней сижу и пишу небольшой проект-игру. Пока он для меня исключительно учебный: осваиваю различные возможности игрового двжика PyGame. Учусь по видео с канала Clear Code.

Думаю, что позже можно будет на базе этих знаний сделать полноценную мини-игру. Может так и в GameDev переквалифицируюсь (шутка конечно).

В общем из нового: научился работать с Tile editor (программа для рисования карт), и уже создал с её помощью небольшой лабиринт. Сделал корректную обработку столкновений персонажа со стенами и физическое проявление всех объектов нарисованных на карте.

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

P.s. позже в ReadMe напишу инструкцию по запуску, а сейчас, если коротко, то необходимо создать venv, клонировать проект и установить PyGame.

#Программирование #PyGame #Python
👍8🔥32
Разработка игры продолжается:

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

— Добавил небольшой UI в виде очков здоровья и маны, количества набранного опыта, а также выбранного оружия и заклинания.

— Добавил несколько видов оружия и заклинаний для главного персонажа (дальше можно свободно добавлять и удалять по шаблону)

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

P.s. в комментариях справедливо спросили почему я решил заняться игрой, хотя вроде планировал двигаться в сторону backend. На это есть несколько причин:

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

2. Это просто весело. А еще мне нравится, как явно растёт мой уровень разработки. Если посмотреть на первые игры, которые я писал и то, что есть сейчас — это просто небо и земля.

P.s.s. весь код есть на GitHub в ветке Develop, но сейчас не получится его запустить без дополнительного вмешательства в код, позже это исправлю.

#Программирование #Python #PyGame
👍8👾4🔥2👏21
Закончил обучающий проект по созданию игры. Кому интересно опробовать — добро пожаловать на GitHub.

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

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

P.s. небольшое видео с тем, что получилось.

Может быть когда у меня будет больше свободного времени я к нему еще вернусь, а пока займусь изучением FastApi

#Python #Программирование #PyGame
🔥11👍71👏1