Как написать 2D движок на Python?

Хочу попробовать написать свой 2D движок на python, для платформенных игр. Думаю либо написать с нуля, либо написать библиотеку методов для pygame.
Во общем есть какая нибудь литература или хоть какая нибудь информация на эту тему(можно и на англ)?
  • Вопрос задан
  • 8274 просмотра
Решения вопроса 1
angru
@angru
Думаю вам лучше копать не в сторону питона и pygame, а в сторону архитектуры игровых движков, а технологии не принципиальны.

Литература о построении игровых (графических) движков?

Кстати, помимо pygame есть еще pysfml и pyglet, как мне кажется они более низкоуровневые и больше подходят к вашей задаче. Но если вы совсем новичок, тогда лучше брать то, что проще, а это скорее всего как раз pygame. А если правильно продумаете архитектуру и полностью скроете все упоминания о pygame от конечного пользователя движка, то потом можно будет относительно легко заменить бекенд(pygame) на другую библиотеку, если от этого будет какой-нибудь значительный выигрыш в скорости.

Также хочу предостеречь вас, написание движков на питоне - относительно неблагодарное занятие, не зря я не встречал ни одного такого движка(разве что RenPy, но он для визуальных новелл, там скорость не нужна), а всякие pygame, pysfml, pyglet - это просто биндинги к сишным библиотекам. Питон сам по себе не очень шустрый и добавлять дополнительный слой абстракции - дополнительное ограничение быстродействия. На мой взгляд, если и писать игры на питоне, то просто сразу поверх одной из трех вышеперечисленных библиотек, без всяких движков. И скорее всего придется отчаянно сражаться за производительность и писать не совсем идиоматичный код: как-то избавляться от циклов, стараться поменьше вызывать функции, сокращать использование точек и т.д. Простые танчики или марио можно написать и без этих извращений.

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

ну а вообще нет ничего невозможного(код), хотя там минимум функционала.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы