Существуют ли библиотеки игр Python (Pygame, Pyglet и т. Д.) С поддержкой RPython? Или библиотеки игр, специально созданные для RPython? Или привязки для игровой библиотеки для RPython?Библиотека игр с поддержкой RPython
ответ
Да, проверьте интерпретатор gameboy, написанный на RPython, pygirl. https://bitbucket.org/pypy/lang-gameboy
RPython не является Python. Это разные языки, хотя бывает так, что вы можете выполнить код RPython с помощью интерпретатора Python и получить аналогичные эффекты (гораздо медленнее) для запуска скомпилированной программы RPython. Это чрезвычайно вряд ли когда-либо будет какая-нибудь разумная библиотека Python (игровая библиотека или любой другой вид), который также работает в RPython. Он должен быть специально написан для RPython, и если бы он работал в RPython, он был бы настолько негибким, если бы он рассматривался как обычная библиотека Python, которую никто не использовал бы в этом контексте.
Если вы хотите запрограммировать язык на более низкоуровневом языке с библиотеками игр, используйте C# или Java. RPython не является хорошим конкурентом (во многом потому, что у него очень мало библиотек для чего-либо, даже не из стандартной библиотеки).
Если вы хотите запрограммировать программу на Python, используйте Python (возможно, используйте PyPy-реализацию Python, которая может быть быстрее, чем стандартный интерпретатор Python, если она поддерживает все библиотеки, которые вы используете). RPython не поможет вам писать код Python, который идет быстрее.
Если ваша цель состоит не в том, чтобы специально создать игру, а в том, чтобы делать какой-то проект в RPython, потому что вы хотите изучить RPython конкретно, то это вполне разумная цель. Но писать игру, вероятно, не будет самым полезным проектом для обучения написанию RPython; вам, вероятно, следует подумать о том, чтобы написать вместо этого какой-то интерпретатор, поскольку это то, что предназначен для создания RPython.
Знаете, вы * можете * вызывать библиотеки C из RPython ... – refi64
@ kirbyfan64sos Да, но RPython не приносит большого значения таблице, если все, что вы используете для нее, это вызов C. Вы можете вызывать библиотеки C из Java или C#, и получить аналогичную статическую модель OO с гораздо большей поддержкой и другими доступными библиотеками. Имеет смысл писать вещи в RPython, которые достаточно «интерпретируют», чтобы извлечь выгоду из своих возможностей убийцы (например, автоматическое добавление компиляции GC и JIT к «интерпретируемому языку»). Если вы не пользуетесь ими, то RPython не делает много для вас. – Ben
Я не знаю, но я написал материал, не относящийся к интерпретатору, в RPython. На самом деле это не так плохо, за исключением привыкания к сообщениям об ошибках. Я даже написал в нем ходок каталогов ... а затем добавил JIT для чистого удовольствия (??). Я имею в виду, это требует привыкания, но это не так уж плохо. – refi64
Почему? Я не думаю, что это стоит усилий, учитывая, что RPython является (1) довольно неприятным языком для программирования, и (2) не предназначен ни для чего, кроме как для написания виртуальных машин. – delnan