Игры на основе Python - как они сделаны?

0

Согласно этому списку ---> http://en.wikipedia.org/wiki/List_of_Python_software#Video_games есть несколько игр, написанных на питоне, но похоже, что некоторые из них являются коммерческими, поэтому исходный код не может быть показан пользователи и игра должны работать даже на компьютере, где нет установки python. Поэтому мой вопрос: как они сделаны? Связаны ли они с кодом C++ или встроены в программу C++?

  • 0
    Это действительно несколько вопросов в одном. Какая часть вас интересует: как написать игру на Python, как распространять игру, написанную на Python, без зависимости от уже существующей установки Python, как распространять игру, написанную на Python, не отдавая исходный код, как объединить Python и C ++ или что-то другое? Каждый из них является разумным вопросом, но просто «как сделаны игры» - нет.
Теги:

3 ответа

2

Многие люди используют PyGame или создают собственные библиотеки поверх PyGame. Теоретически, некоторые из них взаимодействуют с C++. Например, модемная система Mount and Blade (нежно известная как модули) полностью программируется на Python, используя крючки для основного движка.

Однако я не видел огромное количество игр, разработанных на Python, и это, вероятно, связано с отсутствием потрясающих пакетов GUI. Есть несколько достойных 2 и 3D графических пакетов, но по сравнению с такими языками, как Java, С#, C++ и т.д., Они все еще очень ограничены.

Самое главное отметить, что Python является дополнением ко многим из игр, перечисленных на странице, с которой вы связаны, это не основной движок.

  • 0
    Хорошие библиотеки GUI на Java ?! ГДЕ?!
  • 1
    @JustinDanielson JOGL (Java OpenGL) достаточно мощный и имеет несколько написанных игровых движков.
Показать ещё 4 комментария
1

Позвольте сначала сделать это:

игра должна работать даже на компьютере, где нет установки python. Поэтому мой вопрос: как они сделаны?

Как правило, игры, созданные (полностью или частично) в Python, не зависят от установки Python пользователя, а вместо этого объединяют свои собственные. Даже для игр с чистым Python это довольно легко сделать с такими инструментами, как pyInstaller, py2app, py2exe, cx_Freeze и т.д.


А также:

исходный код не может быть показан пользователям

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

И некоторые из этих, подобных Civilization IV, явно хотели, чтобы пользователи видели (некоторые из) исходный код, чтобы служить примером кода и/или документации API для моддеров.


В заключение:

Связаны ли они с кодом C++ или встроены в программу C++?

Ну, во-первых, не каждая собственная программа построена в C++. OS X и iOS ожидают, что в Objective C. будет реализован сложный GUI-материал. Gtk+ ожидает, что это будет сделано в C (или Vala или...). Android требует Java. Только Windows действительно требует C++.

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

В онлайн-игре, такой как Eve Online, сервер может быть написан на чистом Python (или приложениях Python за веб-сервером, написанном на каком-то другом языке), даже если клиенты написаны на совершенно другом языке. (В случае веб-игры клиенты, очевидно, написаны на JavaScript + HTML + CSS или ActionScript/Flash.) Трудная часть логики игры в основном находится на сервере, и эта часть, которую вы хотите упростить написать.

Даже в локальной игре вы можете разделить игру на интерфейс и движок. Опять же, это означает, что жесткая часть игровой логики находится в движке, которую вы можете написать на Python, чтобы упростить ее запись, а часть, которая должна быть чувствительной к молниеносной работе и использовать функциональные возможности платформы, может быть в [CN10 ] или ObjC или что-то подходящее для платформы.

Даже внутри движка вы можете комбинировать C (или C++ или даже Java или.NET) и код Python, создавая пользовательские расширения C для используемого кода Python или встраивая интерпретатор Python в приложение C или оба,

Конечно, вы можете написать сам интерфейс и в Python, чаще всего с помощью PyGame.

Вы могли бы даже обойти все вокруг назад, если бы вы действительно хотели написать PyGame-интерфейс с движком, реализованным на C, который разговаривал с сервером, написанным на JavaScript. Это не так часто, как наоборот, но вам ничего не мешает.

Итак, Eve Online имеет чистый сервер Python. Civilization IV имеет встроенный в свой движок интерпретатор Python. Frets on Fire - это все Python, с PyGame. И так далее.

0

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

  • 0
    Это верно для некоторых игр, но далеко не все из них. На самом деле, если вы читаете список, это довольно ясно говорит вам об этом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню