@FuFX

Игры на python и kivy, чем пользоваться?

Привет, я не очень довно начал учить Python как первый язык программирования. У меня вопрос можно создавать игры на чистом Python? Для чего нужна библиотека kivy? Где лучше создавать игры на чистом python или в библиотеке?
  • Вопрос задан
  • 6504 просмотра
Решения вопроса 3
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Теоретически можно, на практике никто так не делает. На практике на питоне игры в принципе не делают, только визуальные новеллы с помощью RenPy. Раз в пять лет появляется одна инди-игра на питоне, но не более, инфраструктура создания игр на питоне очень скудная. Не так давно появилась поддержка питона для движка Godot, можете попробовать, но, вообще говоря, на многое не рассчитывайте. В контексте игр рассматривайте питон чисто как учебный язык с малой практической ценностью.
Ответ написан
@bigburn
Делаю неживое живым
Пара мыслей по поводу Kivy:
Для начала советую вдумчиво изучить гитхаб.
Чтобы вообще понять, какой минимум (именно минимум) можно достичь на киви и как устроено там все внутри.
Там конечно много шлака и сырых приложений как результат kivy конкурсов (типа калькуляторов и вариаций flappy bird), но местами попадаются довольно достойные примеры.

Что касается игр, то это в основном 2D, правда я видел одного безумного стримера, который написал RPG 3D с элементами физики, уровнями и тд (хотя дизайн ну очень на любителя, но тем не менее).

Сложность в том что многие вещи нужно будет писать самому
В частности kivy совсем не для ленивых 3D разработчиков (из официальных примеров по-моему только вращающаяся голова обезьяны).
Поэтому будьте готовы пройти через тернии к кватернионам.

на данный момент для kivy нет вообще такого понятия как ассеты, как на unity, В общем, многие вещи нужно будет поднимать с нуля.

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

Самое главное, на что ни в коем случае не надо обращать внимание — это на убогость дизайна элементов kivy по умолчанию (кнопки цвета хаки, которые при нажатии выделяются синим, не должны дизморалить). Есть например kivymd, но можно сделать еще лучше, богаче и умнее.

С другой стороны обнадеживают две вещи:

1. просто посмотрите, как лаконичен в среднем код для приложений на kivy. Это значит будет очень сложно запутаться. Если понять что к чему, то писать такой код будет определенно в радость.
И да, в отличие от того же Unity, в качестве компенсации удобства и скорости разработки игр, kivy может похвастаться гораздо большей гибкостью. в плане гибкости можно часто услышать определение "пластилиновый фреймворк" — что хотите то лепите.

2. Киви поддерживает Glsl.
Это то, с помощью чего делают крутые шейдеры в играх.
То есть если подучить glsl, то в киви можно делать реально бомбезные по красоте вещи.
Можно написать например те же даймондс, которые не будет уступать по дизайну топовым на Google Play.

Можно писать всякие красивые UI элементы, не уступающие CSS и тд.

3. Кроссплатформенность.
Можно запускать даже на Андроиде, по сути это то, почему я начал его изучать.
В том числе релизить свои игры и приложения в Play Маркете и если продукт действительно стоящий, то это дело монетизировать.

В общем, по крайней мере обратить внимание считаю определённо стоит
Ответ написан
@yeedab
Ну на чистом Python вы будете ограничены input и print, и да, конечно, этого достаточно для создания игры, например, монополию или текстовый квест можно так сделать, но зачем? там не будет ни графики, ни удобного интерфейса, да и сам процесс написания скорее всего будет неприятен и уныл.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Guest007
@Guest007
Django, Python, Linux и всё такое...
Вот игрушка, к примеру, на Kivy написана:
https://play.google.com/store/apps/details?id=rock...

Так что всё можно. Была бы голова на плечах. Судя по вопросу - рано пока Kivy трогать - надо просто на Python научиться программировать. Если Курсы прошёл/книжку какую прочитал - пройди хотя бы пару островов на checkio.org
Потом уже попробуй с GUI библиотеками разбираться. Хотя лучше сначала что-то без GUI поделать - боты, web...
Ответ написан
LaRN
@LaRN
Senior Developer
Вот тут есть ответ на похожий вопрос Есть ли перевод книги making games with python & pygame на русский язык?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы