I have made a small space invader game using pygame and I was wondering if I could play it on the browser using pyscript. Is this even possible ? Do I have to rewrite everything ?
I have made a small space invader game using pygame and I was wondering if I could play it on the browser using pyscript. Is this even possible ? Do I have to rewrite everything ?
No, Pygame is not supported in PyScript at this time. I'm not sure what is the best way to find out what packages are supported, but I have managed to piece together the following:
You can use the following test script to see if a package is supported:
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- pygame
</py-env>
</head>
<body>
<h1>PyScript import test script</h1>
<py-script>
import pygame
</py-script>
</body>
</html>
This is basically just a "try it and see what happens" script that will throw an error in the console if a package is not supported. The error you'll see will be
ValueError: Couldn't find a pure Python 3 wheel for 'pygame'. You can use
micropip.install(..., keep_going=True)to get a list of all packages with missing wheels.
Yes it's possible but has not been made available because :
pyscript uses pyodide, pyodide is NOT optimized for games but for scientific stack instead and notebooks presentations.
Today, i'd recommand using pygbag https://pypi.org/project/pygbag/ from https://pygame-web.github.io. It uses the same principles applied to pygame coming from Panda3D webgl port using Web Assembly for modern browsers.
( and if you really want to support pyscript tags you could probably find a way ).