Gamedev — Выбор модуля Python для написания игры


Содержание

Python и 3D-игра

Здравствуйте, хотелось бы узнать профит от использования Python в качестве основного языка для написания 3D-игры на opengl.
Наблюдение показало, что графические и физические движки пишутся в основном на плюсах, а питон используется в основном для скриптования и управления через буст.
Для меня двумя важными факторами являются скорость разработки и скорость выполнения.
Что касается скорости разработки — я достаточно хорошо знаю python и достаточно плохо c++. Кроме того, слышал, что сам питон по скорости разработки быстрее си. И, конечно же, хотелось бы использовать для хобби (то бишь геймдева), то, что используется и на работе.
Что касается скорости выполнения — естественно, любой байт-код (а особенно питоний) в разы медленнее машинного. Насколько это ощутимо? А что если использовать jit-компилятор (pypy, psyco?) — будет ли скорость работы скомпилированного им кода сопоставима со скоростью выполнения программы, написанной на c++? Опять же, если использовать pypy или psyco — не возникнет ли проблем с либами, типа pygame и pyopengl?

Так что посоветуете, начинать проект на питоне и SDL или на c++ и qt (хочу кроссплатформу)?
Заранее спасибо.

Скорость скрипта не сопоставима. Зависит от того что писать на питоне: если логику и NPC, то сгодится, а вот ИИ я бы на нем писать не стал. Возможен вариант комбо: логику пишем на скриптах, а что-то тяжелое на плюсах и кидаем бинды в питон.

ЗЫ для игр часто используется луа. Шива — трехмерный движок который неплохо дружит с ним.

Ziberbulger
> Здравствуйте, хотелось бы узнать профит от использования Python в качестве
> основного языка для написания 3D-игры на opengl.
Скорость разработки, очевидно же.

Ziberbulger
> И, конечно же, хотелось бы использовать для хобби (то бишь геймдева), то, что
> используется и на работе.
Ну тут никаких проблем.

Ziberbulger
> А что если использовать jit-компилятор (pypy, psyco?) — будет ли скорость
> работы скомпилированного им кода сопоставима со скоростью выполнения программы,
> написанной на c++? Опять же, если использовать pypy или psyco — не возникнет ли
> проблем с либами, типа pygame и pyopengl?
Я бы в это вообще не лез. ИМХО только больше гемора станет.

Ziberbulger
> Так что посоветуете, начинать проект на питоне и SDL или на c++ и qt (хочу
> кроссплатформу)?
А чем не подходит C++ + SDL?

horizonOffset
> А чем не подходит C++ + SDL?
Поднимал эту тему уже на этом форуме (кьют или сдл). Мнения разошлись. Одни говорят, что не для этого qt сделан, другие, что первые просто не умеют его готовить. Мне понравился этот фреймворк. В нем помимо того, что есть в SDL еще много чего вкусного имеется. Скажем так, все же немного ускоряет скорость разработки. Лично меня не пугает факт того, что нужно тянуть за собой либы, все же не так уж и много они весят, если все правильно собрать. Ну а насчет скорости сигнально-слотовой системы еще не разбирался . Какие еще минусы Qt в сравнении с SDL или плюсы SDL в сравнении с qt?
п.с. надеюсь, ничего страшного, что тема перешла на другое немного?

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

ок, посмотрю панду, отпишусь о впечатлениях =)

Создание игры на Python

Разработка игр на Python 3 с PyGame / #1 — Начало

Видеоурок

Полезные ссылки:

Прежде чем изучать библиотеку PyGame стоит ознакомиться с самим языком программирования Python . После прохождения базового курса вам будет намного проще понимать синтаксис языка и у вас не возникнут дополнительные вопросы в ходе этого курса.

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

Библиотеку PyGame это специально разработанная библиотека для создания игр с интерфейсом на языке Python. В ходе этого курса мы научимся создавать простенькие 2D игры на языке Питон (3 версии). Мы создадим игру с анимацией, спрайтами (картинками), функциональностью и графическим интерфейсом.

Сама библиотека вышла уже давным давно, примерно в 2000 году. Приложения написанные на PyGame могут спокойно работать на Андроид, а также на компьютерах. Таким образом вы можете создавать игры, которые будут работать на нескольких устройствах, но при этом иметь один и тот же код.

На основе этой библиотеки уже было построено множество игр и приложений. Посмотреть большой список популярных игр можно на их официальном сайте .

Установка pygame и создание шаблона для разработки игр в Python 3

Библиотека pygame – это модуль Python с открытым исходным кодом для разработки игр и мультимедийных приложений. Основанный на портируемой библиотеке SDL, модуль pygame может работать на многих платформах и операционных системах.

С помощью pygame можно контролировать логику и графику игр, не беспокоясь о сложностях бэкэнда, связанных с работой видео и аудио.

Этот мануал поможет установить модуль pygame в среду разработки Python и создать шаблон для разработки игр в Python 3.

Требования

Для работы вам понадобится локальная или удаленная среда разработки Python 3.

Кроме того, нужно ознакомиться со следующими руководствами:

Установка pygame

Разверните среду программирования Python 3:

Теперь установите pygame:

pip install pygame
Collecting pygame
Using cached pygame-1.9.3-cp35-cp35m-manylinux1_x86_64.whl
Installing collected packages: pygame
Successfully installed pygame-1.9.3

Если вы установили pygame в систему с доступным видео и аудио, вы можете проверить установку с помощью команды, которая запустит макет игры и продемонстрирует, что pygame может делать с графикой и звуком:

python -m pygame.examples.aliens

Если вы не хотите запускать макет или в установке нет аудио/видео, можно открыть интерактивную консоль Python и попробовать импортировать модуль pygame. Чтобы запустить консоль, введите:

Теперь можно импортировать модуль:

Если вы не получили ошибок после того как нажали Enter, значит, модуль pygame был успешно установлен. Вы можете выйти из интерактивной консоли Python с помощью команды quit().

Если во время импорта произошла ошибка, обратитесь к рекомендациям на сайте pygame.

Примечание: На последующих этапах для отображения графического интерфейса пользователя и проверки кода используется монитор.

Импортирование pygame

Создайте файл our_game.py.

Начиная работу над проектом pygame, нужно сначала импортировать модуль. Добавьте в начало файла строку:

Также можно использовать еще один оператор import, чтобы добавить константы и функции pygame в глобальное пространство имен файла:

import pygame
from pygame.locals import *

Модуль pygame импортирован в файл проекта. Теперь можно создать шаблон игры.

Инициализация pygame

Затем нужно инициализировать pygame с помощью функции init().

import pygame
from pygame.locals import *
pygame.init()

Функция init() автоматически запустит все модули pygame, которые нужно инициализировать.

Также можно инициализировать каждый из модулей pygame по отдельности:

Функция init() может возвращать кортежи. Кортеж будет сообщать о состоянии инициализации. Это можно сделать как в общем вызове init(), так и при инициализации определенных модулей (это позволит понять, доступны ли эти модули).

i = pygame.init()
print(i)
f = pygame.font.init()
print(f)


Запустив этот код, вы получите вывод:

В данном случае переменная i вернула кортеж (6, 0): было выполнено 6 успешных инициализаций pygame и получено 0 ошибок. Переменная f вернула None, что значит, что модуль недоступен в этой среде.

Настройка отображения

Затем нужно настроить отображение игры. Используйте pygame.display.set_mode() для инициализации окна или экрана отображения и передайте функции переменную. В функции нужно передать аргумент разрешения экрана; это пара чисел, которые выражают ширину и высоту в кортеже. Добавьте функцию в программу:

import pygame
from pygame.locals import *
pygame.init()
game_display = pygame.display.set_mode((800, 600))

В качестве аргумента функции set_mode () был передан кортеж, который определяет высоту (600 пикселей) и ширину (800 пикселей). Обратите внимание: кортеж содержится в круглых скобках функции, поэтому в приведенной выше функции указаны двойные скобки.

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

Ширину экрана игры можно присвоить переменной display_width, а высоту – переменной display_height. Переменные можно передать функции set_mode().

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))

Обновление экрана

Затем нам нужно использовать одну из двух доступных функций для обновления отображения поверхности игры.

По сути анимация – это просто смена кадров во времени. Хорошим примером тут будет кинеограф – сшитая в блокнот серия картинок, при быстром перелистывании которой получается анимированное изображение.

Для обновления поверхности игры можно использовать функцию flip(). Вызовите ее:

Эта функция обновляет всю поверхность отображения.

Чаще вместо flip() используется функция update(), которая обновляет только часть изображения, что экономит память.

Добавьте update() в конец файла our_game.py:

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.update()

Программа будет работать без ошибок, но экран игры просто откроется и сразу закроется.

Цукерберг рекомендует:  Meteor - Ваше мнение о Meteor

Создание цикла игры

Теперь можно начать работу над основным циклом игры.

Создайте цикл while, который будет запускать игру. Цикл будет вызывать логическое значение True, потому он будет работать непрерывно, пока его не остановит пользователь.

В главном цикле игры нужно построить цикл for для итерации очереди пользовательских событий, которые будут вызваны функцией pygame.event.get().

На данный момент в цикле for ничего нет, но в него можно добавить оператор print() и убедиться, что программа работает правильно. Передать события для итерации можно как print(event).

Добавьте в файл циклы и print().

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.update()
while True:
for event in pygame.event.get():
print(event)

Теперь убедитесь, что код работает:

После запуска файла на экране появится окно 800×600. Чтобы проверить события, вы можете навести курсор мыши на окно, щелкнуть по окну и нажать клавиши на клавиатуре. Эти события будут распечатываться в окне консоли.

Вывод выглядит примерно так:

Этот вывод отображает пользовательские события. Такие события будут контролировать игру, поскольку они генерируются пользователем. Всякий раз, когда вы запускаете функцию pygame.event.get (), код будет принимать эти события.

Остановите программу (CTRL + C).

На данном этапе print() можно удалить или закомментировать.

Выход из игры

Чтобы выйти из программы pygame, можно сначала объявить соответствующие модули неинициализированными, а затем просто выйти из Python с помощью функции quit().

Поскольку пользователи контролируют работу и события в игре, pygame.QUIT отправляется в очередь событий, когда пользователь завершает работу программы, нажав на «X» в верхнем углу игрового окна.

Добавьте в цикл for выражение if.

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
quit()

Новый код говорит программе, что если пользователь нажал Х, программа должна прекратить работу с помощью функций pygame.quit() и quit().

Поскольку ранее мы импортировали pygame.locals, теперь можно использовать event.type и QUIT без «pygame.» в начале.

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

Событие KEYDOWN значит, что пользователь нажал клавишу на клавиатуре. К примеру, это может быть клавиша Q или ESC. Добавьте код в цикл for.

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT or (
event.type == KEYDOWN and (
event.key == K_ESCAPE or
event.key == K_q
)):
pygame.quit()
quit()

Логические операторы сообщат программе, что она должна прекратить работу, если пользователь нажимает «X» в верхнем углу игрового окна или клавиши Q или ESC.

На этом этапе можно протестировать функциональность игры и затем выйти из нее, либо с помощью значка Х, либо нажав Q или ESC.

Улучшение кода

Теперь у вас есть полностью рабочая программа, однако код еще можно усовершенствовать.

К примеру, код цикла while можно поместить в определение функции.

def event_handler():
for event in pygame.event.get():
if event.type == QUIT or (
event.type == KEYDOWN and (
event.key == K_ESCAPE or
event.key == K_q
)):
pygame.quit()
quit()

Это сократит цикл while, что особенно важно для удобочитаемости кода.

Также можно добавить заголовок окна (в настоящее время здесь указано pygame window). Для этого используйте:

Функцию pygame.display.update() можно переместить в основной цикл игры.

В итоге код программы выглядит так:

import pygame
from pygame.locals import *
pygame.init()
display_w > display_height = 600
game_display = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption(‘Our Game’)
def event_handler():
for event in pygame.event.get():
if event.type == QUIT or (
event.type == KEYDOWN and (
event.key == K_ESCAPE or
event.key == K_q
)):
pygame.quit()
quit()
while True:
event_handler()
pygame.display.update()


Этот код еще можно улучшить, например, добавить оператор break.

Теперь вы можете приступать к изучению анимации, спрайтовой графики и управления кадрами. Больше информации о pygame можно найти в документации pygame.

Gamedev — Выбор модуля Python для написания игры

Статья расчитана на тех, кто имеет минимальные познания в Python.
Наверняка все вы знакомы с браузерными MMO(RPG) играми. Такие в наше время можно встретить на просторах интернета часто. Это могут быть как простейшие текстовые игры, так и агрегаты на Flash или HTML5. Но не забываем, что одному другое не мешает. Вы вполне можете использовать множество технологий в одной игре.
Сейчас мы рассмотрим с вами процесс создания веб-сайта на языке программирования Python. Конечно, есть конструкторы, которые позволяют создать подобные игры за считанные минуты (MMO Constructor), но опыт программирования и собственное творение с нуля нам тоже не помешает.

Предполагается, что вы имеете установленный Python. Если же нет, рекомендуем скачать с официального сайта и произвести инсталляцию на ваш компьютер или сервер.
В данном примере мы будем использовать Web.Python 0.37, однако при желании вы можете установить последнюю версию.
Распакуйте и скопируйте папку web в директорию с приложением, или же просто выполните команду:

Давайте создадим новый текстовый файл и назовём его code.py.
Откроем его и наберём данный код:

Теперь при входе в корень сайта будет загружена страница index. И пусть руки у вас не чешутся, сударь, ибо ничего ещё не готово.

Страницы сайта, GET\POST запросы

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

200?’200px’:»+(this.scrollHeight+5)+’px’);»> import web

class index:
def GET(self):
return «Hello, world!»

if __name__ == «__main__»:
app = web.application(urls, globals())
app.run()

Скриптовая часть простого сайта готова, теперь надо его лишь запустить.

Зайдите в командную строку вашего сервера (или SSH-терминала) и введите команду:

Популярные проекты на Python

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

Где применяется Python

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

И хотя он не может потеснить Java и PHP с ведущих мест в веб-разработке, в сфере машинного обучения Python – язык номер один.

Создание приложений

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

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

Возможность встроить в Python код на С/C++ сглаживает проблему низкой скорости работы программ.

Веб-разработка

Python захватил определенную часть сферы, но не может соперничать с такими гигантами, как PHP, Java и Node.js. Для реализации серверной логики они удобнее и мощнее Python.

На Python часто создаются решения, которые имеют узкую направленность. Например, отправку документа с сайта на принтер трудно реализовать на PHP, а Python легко справляется с этой задачей.

Python проигрывает, потому что он является языком общего назначения, PHP – это инструмент, заточенный только под веб-программирование, а Java уже давно используется в вебе.

Машинное обучение

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

Python стал абсолютным лидером в этой сфере по ряду причин:

  • Язык очень простой, это нравится ученым. Им не нужно тратить много времени на написание кода, вместо этого они могут сосредоточиться на проектировании ИИ.
  • В Python легко встраивается код на C и C++, что позволяет использовать C-код в тех местах, где важна скорость.
  • Python обзавелся достаточным количеством библиотек и фреймворков, созданных для упрощения машинного обучения.
  • Гибкость языка позволяет не ограничиваться какой-то одной парадигмой разработки, программист может писать как объектно-ориентированные программы, так и процедурные.

Интересные проекты на Python

Разработок много, но не все из них можно назвать успешными, однако есть проекты, заслуживающие внимания. Рассмотрим примеры известных программ, игр и сайтов написанных на Python.

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

Mount and Blade

Mount and blade – это RPG, у которой нет аналогов. Игрок погружается в средневековый мир, путешествует по глобальной карте, набирает армию и завоевывает себе славу и власть. Когда начинается битва, игра превращается в средневековый симулятор сражений, игрок управляет персонажем от третьего лица, у него есть несколько десятков воинов, которым можно отдавать приказы, и он должен убить всех воинов противника.

Такой системы нет ни в одной игре. Стратегия, RPG и экшн — странная, но крутая смесь. Кроме того, на поле боя может быть несколько сотен воинов, управляемых компьютером, такой масштаб впечатляет.

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

Battlefield

Battlefield полюбили миллионы человек. Не стоит думать, что игра полностью написана на Python. Разработчики использовали его для создания некоторых скриптов, серверной части игры и её логики.

Игра вышла в 2005 году и имела подходящие для компьютеров того времени системные требования. Использование Python позволило ускорить разработку и не повлияло на производительностью

EVE Online

Как и в случае с Battlefield, в EVE Online Python использовался для создания игровой логики и управления серверной частью игры.

Разработчики использовали улучшенную версию интерпретатора, которая называется stackless python. Так как это ММО, сервер может обрабатывать миллионы запросов, и stackless python отлично справляется с этим.

Цукерберг рекомендует:  Книги - Где найти бесплатные книги о изучении языка

Sims 4

Sims – это самый известный симулятор жизни.

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

Civilization 4

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

Разработчики не ограничились использованием Python для реализации каких-то частей проекта, они написали на нём практически всю игру.

Программы


BitTorrent

Популярный торрент-клиент, которым пользуются миллионы людей, был полностью написан на Python.

Примечание: 6 версия программы была переписана на C++.

Blender

Это программа для работы с 3D графикой, способная соперничать с такими гигантами, как Maya и 3DMax.

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

Главное преимущества программы заключается в том, что она распространяется бесплатно. Blender постоянно улучшается, дополняется с помощью различных расширений, получает все больше поддержки в виде видео-уроков и обучающих статей.

Python используется для создания логики, импорта и экспорта, автоматического выполнения задач и работы инструментов.

GIMP является редактором растровой графики и, частично, векторной графики.

Он является единственной достойной заменой Adobe Photoshop в системе Linux и установлен на большинстве дистрибутивов по умолчанию.

Python использовали для создания фильтров, дополнительных модулей, некоторых скриптов.

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

Calibre

Любимое приложение каждого, кто читает много книг.

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

Искусственный интеллект

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

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

Обилие библиотек позволяет без проблем создавать ИИ, способные ориентироваться в пространстве, принимать решения, выполнять задачи, недоступные человеку.

Одним из новейших искуственных интеллектов, написанных на Python, является AlphaStar – искусственный интеллект для Starcraft 2.

Разработчики использовали PySC2 — инструменты, написанные на Python специально для SC2.

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

AlphaStar показал поразительные результаты, он обыграл одного из лучших игроков мира.

Сайты

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

Google

Это самая популярная поисковая система в мире.

Каждый день через сервера Google проходит огромный объем трафика, который обрабатывается и направляется с помощью Python.

YouTube

Это сайт, где пользователи могут загружать и смотреть видеоролики.

Он известен каждому пользователю интернета и ежедневно собирает миллиарды просмотров.

Facebook

Это самая популярная социальная сеть в мире, ежедневно пользователи загружаются миллионы картинок, меняют статусы, создаются посты — всё это обрабатывается с помощью инструментов языка Python.

Instagram

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

Всё, что связано с картинками (поиск, постинг, просмотр) обрабатывается кодом на Python.

Потенциал Python в крупных проектах

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

Да, этот язык можно использовать во всех крупных проектах, как инструмент для создания прототипов, но как насчет применения в финальной версии?

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

Игры, в которых использовался Python

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

Вот некоторые из самых известныx игр, в которых был в той или иной мере использован Python:

Battlefield

(2005 / Digital Illusions CE (DICE) / Стокгольм)

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

EVE Online

(2003 / CCP Games / Исландия)

Это многопользовательская онлайн ролевая игра (MMORPG), действие которой разворачивается в антураже научно-фантастического пространства. Пользовательская база насчитывает более 500 000 игроков. EVE Online полностью написана на StacklessPython, что делает ее одной из крупнейших игр, использующих Python для своих нужд.

Mount & Blade

(2008 / Tale Worlds / Турция)


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

Sims 4

(2014 / Е.А. Maxis Sims Studio / США)

По праву является самой известной игрой в жанре симуляции жизни. Sims 4 — первая компьютерная игра, которая занимала лидирующие позиции на всевозможных игровых чартах на протяжении двух лет, и продалась в объеме 408,150 экземпляров по всему миру в течение первых четырех дней. На сегодняшний день продано более 1.1 миллиона копий по всему миру, что делает Sims 4 одной из самых продаваемых игр, которые использует Python — для обеспечения внутриигрового моддинга, открывающего пользователям огромные возможности по изменению параметров игры.

Civilization IV

(2005 / Firaxis Games / США)

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

Frets On Fire (FoF)

(2006 / Unreal Voodoo / Финляндия)

Музыкальная игра с открытым и свободным исходным кодом, которая сама по себе имитирует коммерческую игру Guitar Hero. Игра полностью написана на Python с использованием библиотеки Pygame. Благодаря открытости и простоте кода, игра представляется как хорошая площадка для изучения и практики программирования.

Спасибо CheckiO за интересную статью.

Выбор игрового движка и языка программирования для разработки своих игр

Java. Современные и неплохой язык, который живет и процветает. Раньше,на нем писались ява игрушки для твоих любимых Siemens и Sony-Ericsson (у меня, кстати, был k750i). Идеально подходит для мобильных игр, а так же очень неплохо подходит для игр на ПК. Для примера, используется в игре — Minecraft. Могу посоветовать jMonkey Engine и LibGDX, как движки для создания игр на яве, будь это 2D игры на смартфоны или 3D игры в браузере.

Objective-C. Любишь яблока? Дело в том, что язык был создан и используется в основном для продукции Apple. Так что, если хочешь писать любые игры и приложения исключительно для яблока — тогда давай малыш, дерзай. Но хотя смысла нет, потому Apple создали новый язык под название Swift, который должен стать заменой этому языку, да и вообще стать типо крытым и новым языком программирования. Пока он в развитии и неизвестно, что с него выйдет.

JavaScript. Не путай с Java. Серьезно, а то за такое программисты тебе мышку в зад засунут. Это их бесит так же само, как когда им говорят «ты ж программист». JavaScript используется в основном для постройки веб приложений и динамичных сайтов, но в связке с другими инструментами например как Node Js + html5, можно создать неплохую браузерную онлайн игру, аля Agario. Так же используется в движке Unity, на котором можно создать любую 2D или 3D игру для любой платформы, будто телефоны или даже телевизоры

Pascal. *Похоронный марш*

C#. Современный и мощный язык компании Майкрософт, широко используется в мире, поддерживается многими игровыми движками. Официально работает только с Windows, но игровые движки и дополнения могут Легко снять этот головняк, как рассол утреннее похмелье. Можно создать практически любую игру, любого жанра и для любой платформы (наверное даже для калькулятора). Используется в основном для того же движка Unity, который является быстрорастущим и популярным игровым движком в мире.

C++. Кароче, на нем можно сделать все что хочешь и для чего угодно. Абсолютно. Поддерживает многими игровыми движками. Не заморачивайся с ограничениями, хотя может жестко трахнуть твой мозг. На нем кстати Windows написан. Но хрен его знает, он может через пару лет отойти на задний план и быть вытеснен теми же C# и Java, ибо язык довольно таки старый. Но если ты хочешь написать очень красивую игру, к тому же 3D, как BT, Готика или GTA, то под C++ используются такие гиганты движки как CryEngine, Unrial Engine и FrostByte.

PHP. Толковый игры ты на нем не сделаешь, даже приятный 2D платформер. Уж прости. Он Используется для построения веб сайтов и общения клиента с сервером, но в основном в связке с JavaScript и HTML.

Python. Не так популярный как тот же C#, Java или JavaScript, и не так много русской литературы для игр, но он может многое. Простой, шустрый, красивый и современный. На нем очень быстро писать код, можно сделать тот же сайт или программу, что есть его особенностью, но не особо предназначен для игр. Для пайтона (или питона, кто как говорит), могу посоветовать Cocos2d. Кроссплатформенные 2D игры он все же сумеет создать.

Цукерберг рекомендует:  PINQ - Опрашиваемые наборы данных. Фасеточный поиск

Ruby. Нуууу. В принципе, можно написать игру. Хоть веб игру, телефона или ПК. Он правда не так сильно развит в этом, и ты не особо много уроков найдешь об этом, как, например, о том же C# или Java, но этот язык вроде как набирает свои обороты.

Как видишь, у каждого языка или игрового движка есть свои цели. Ей Богу, если ты ща задашь тупой вопрос типа: «а создаст ли например ваш Unity для меня красивую РПГ?«

Фак, просто загугли примеры игр любого интересующего движка и сравни со своими интересами.

От себя могу посоветовать Java, потому что, он как будто рожден для этого игр. Или, так же, могу посоветовать C#, ибо очень популярный язык и много игровых движков его поддерживает. Но это лишь мое мнение.

С тобой по-прежнему был — Флатинго (Flatingo). Если тебе так же интересна разработка игр, то можешь иногда посещать мой YouTube канал. Не забывай говорить будь здоров, после того как чихнул. Удачи, игродел.

Игры, в которых использовался Python

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

Вот некоторые из самых известныx игр, в которых был в той или иной мере использован Python:

Battlefield

(2005 / Digital Illusions CE (DICE) / Стокгольм)

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

EVE Online

(2003 / CCP Games / Исландия)

Это многопользовательская онлайн ролевая игра (MMORPG), действие которой разворачивается в антураже научно-фантастического пространства. Пользовательская база насчитывает более 500 000 игроков. EVE Online полностью написана на StacklessPython, что делает ее одной из крупнейших игр, использующих Python для своих нужд.

Mount & Blade

(2008 / Tale Worlds / Турция)

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

Sims 4

(2014 / Е.А. Maxis Sims Studio / США)

По праву является самой известной игрой в жанре симуляции жизни. Sims 4 — первая компьютерная игра, которая занимала лидирующие позиции на всевозможных игровых чартах на протяжении двух лет, и продалась в объеме 408,150 экземпляров по всему миру в течение первых четырех дней. На сегодняшний день продано более 1.1 миллиона копий по всему миру, что делает Sims 4 одной из самых продаваемых игр, которые использует Python — для обеспечения внутриигрового моддинга, открывающего пользователям огромные возможности по изменению параметров игры.

Civilization IV

(2005 / Firaxis Games / США)

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

Frets On Fire (FoF)

(2006 / Unreal Voodoo / Финляндия)

Музыкальная игра с открытым и свободным исходным кодом, которая сама по себе имитирует коммерческую игру Guitar Hero. Игра полностью написана на Python с использованием библиотеки Pygame. Благодаря открытости и простоте кода, игра представляется как хорошая площадка для изучения и практики программирования.

Спасибо CheckiO за интересную статью.

Разработка игр. C++ or C# or Python?

13.08.2020, 11:06

Что перспективнее — разработка игр под мобильные платформы или разработка embedded-систем
Доброго времени суток. Скажите пожалуйста, как вы думаете, что перспективней в будущем -.

Разработка игр
Здравствуйте, ув. Форумчане! Уже более полу года интересует как начинают писать всякие игры? В.

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


Разработка игр
Сначала не знал, писать сюда или в раздел игр, но т. к. программирование ближе, решил сюда. .

Разработка игр
Всем привет.Есть ли статьи по разработке игр?Конкретно мат.часть которую я не понимаю.РИсовать.

13.08.2020, 12:02 2

Думаю в этом основная проблема Можно хоть всю жизнь выбирать и так и остаться на стадии выбора

По теме — Havok написан на C++, Source написан на C++. Даже RAGE Engine (на котором GTA) на C++. Я вообще плохо себе представляю игровой движок на Python.

Добавлено через 5 минут
Сейчас стало интересно, решил посмотреть список игровых движков. Там куда не ткни — везде C++

13.08.2020, 12:20 [ТС] 3 13.08.2020, 12:28 4

EVE online создана на игровом движке Carbon Engine.

по хорошему вам понадобятся все 3 языка.
сюда ещё и вэб можно добавить.

любые вычислительные мощности.

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

игровой клиент можно писать хоть на бейсике,
был бы доступ к игровому апи движка.

Добавлено через 6 минут

понимаете. что такое «игра» с технической точки зрения?

это — двигатель, который представляет собой рабочую среду.
клиент, который интегрируется в эко-систему движка.

и кучка высокоуровневых игровых скриптов и контента,
которые собственно и делают игру игрой.

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

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

13.08.2020, 12:28
13.08.2020, 12:45 [ТС] 5
13.08.2020, 12:53 6

движок ничего не знает ни о каких основах игры.
и не должен этого знать.

движок предназначен для создания разных игр.
а у разных игр случаются разные основы.

вам нужно поработать немножко с каким нибудь реальным движком.

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

питон никуда не убежит. понадобится — освоите.
тоже самое касается Lua.

на плюсы пока забейте — это не ваше.

13.08.2020, 12:59 7
13.08.2020, 13:07 [ТС] 8

По поводу движка, я работал. Я просто думал, что к примеру движок Rage и какой нибудь open gl это разные вещи. Если движок вида Blitz, OpenGL, то это программа, которая отвечает за вывод графики, воспроизведение звука и т.д.
По поводу Юнити я бы рад, но с редактором Юнити работать физически не могу. Там нет как такового GUI интерфейса. Там визуальные объекты, с ними работать не могу. А без редактора, на сколько мне известно, то есть в чистой студии, писать нереально. Только если движок подключается в саму IDE как библиотека.
По поводу Шарпа, а какие аргументы для этого? Ведь он не такой мощный, а мне нужно примерную производительность GTA. Иначе если у меня будет всё глючить и без графики, что это за игра тогда.
Там где основы C++, я соображаю отлично. Как только указатели, stl, итералы, всё. Я читал в десятках учебниках о этом, но переварить не могу.
Я о Шарпе думаю ещё потому, что мне не нужна крассплотформенность. Мне нужен программинг чисто под Windows.

Добавлено через 3 минуты
Я вообще могу взять Script Hook под GTA 4 или 5 и программить что-то своё. Но в GTA графика, и если буду продавать, это копирайт.

[gamedev][python] Подскажите игрушку на питоне с комьюнити

Хочу получить опыт в геймдеве, на c/c++ не хочу писать, подскажите игрушку на питоне (или со скриптингом на питоне) где есть живое комьюнити разработчиков и полу-играбельная версия (PARPG не предлагать)

Здесь пробовал найти?

смотрел уже
играбельных версий нету, комьюнити немецкое

Эээ, там есть вроде http://www.unknown-horizons.org/ на этой энжине.
А нужно какое комунити?

ну, англоязычное
unknown horizons нету английской версии даже

Ну вообще-то я с ними нормально общался по англ года 2 назад. Универс сайт на английском, видео игры, мануалы на англ.
Ну в общем ладно, ищи. :)

Беру свои слова назад. Проекты на пигейме это леденящий душу заоблачный звиздец. Мой бейсиковский код пятнадцатилетней давности и то лучше был.

перенесите что-ли в games или talks.

Основные люди, которые держат проект — немцы (рождался проект не немецким комьюнити, так сложилось). Нормально общающийся на английском. Даже захаживающие на соответствующие русские форумы (в англоязычные секции). Проект удивительно живуч. Но все пилят и пилят.

> игрушку на питоне с комьюнити
10 секунд сосредоточенно думал, зачем играть с коммюнити. Тем более на питоне.

> Хочу получить опыт в геймдеве, на c/c++ не хочу писать

если опыт нужен с целью последующего трудоустройства — то как раз c/c++/asm и нужны.. ну и c# скоро станет уже обязательным :(

пистон почти никто не использует для игр. кроме CCP никого и не могу вспомнить.. разве что у всех по мелочи скрипты попадаются изредка, для внутренних нужд.

>пистон почти никто не использует для игр. кроме CCP никого и не могу вспомнить..

Скрипты, скриптовый же язык ).

Вообще было бы желание. А что вы предлагаете юзать для скриптования? SSL?

я вообще ничего не предлагаю (пистон — точно не предлагаю :)

просто констатирую факт, что пистон в играх используют единицы. то, что в википедии перечислен список из десятка игр — еще не показатель. это совсем не массовое явление :)

скрипты все равно пишут программисты. знание пистона — это, конечно, будет плюс. но требование C++ для gameplay programmers никуда не денется.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих