[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Promoting cheeseshop/pypi for game releases?



My tldr: PyPI and pip are the wrong tools for game distribution, there are better places to focus effort.

If the instructions to get your game say 'pip install yourgame', you're limiting your audience to people who have Python installed and are comfortable with the command line. Even among those people, you may find yourself having to explain about using pip3 on some systems, or about why running 'sudo pip ...' is a bad idea.

PyPI and pip exist primarily to distribute Python libraries. We use them secondarily to distribute command-line tools, because it's a quick and easy alternative to building packages for different platforms, and the kind of people who use a tool like 'nosetests' know how to install it with pip. They're not a good fit for GUI applications where the user shouldn't need to know that Python is in use.

So, where do I think we should focus effort?

  • Tools to package up Python applications into convenient installable bundles
    • Shameless plug: Pynsist is a tool I made to build Windows installers.
    • I'd particularly like to see work around the new Linux application packaging formats, Flatpak and Snappy. Can we make a tool that takes some form of description and builds both kinds of package?
    • The BeeWare projec (http://pybee.org/ ) is doing some interesting work on packaging for mobile platforms.
    • Stretch goal: can we start with a single application description and build packages for various platforms? I'm sceptical, but it would be cool, even if the packages lacked some polish.
  • Guides on preparing & submitting games to various app marketplaces:
    • Platform owners: Microsoft, Apple, Google, Canonical...
    • Third party: Steam, Itch...
  • (Maybe) A better catalogue of non-professional games, for creators who may not want to put their games up on Steam or whatever. I'm still unsure if there's an actual gap to be filled here, though, and what shape it is if it exists.

Thomas

On 25 December 2016 at 00:52, René Dudfield <renesd@xxxxxxxxx> wrote:
Hello,

tldr; promote using pypi and pip for game releases?


With all the great work from lots of people pygame is often easily installable via pip - the standard python packaging system. We still have some issues, but it works quite well on major platforms.

Now our games can be installed with pip too!

pip install yourgame

Since many people enter the python world via games, it makes sense that they get used to publishing python packages as well. I've sat in python groups, and still 75% of the room has never published a python package despite many of them working with python every day.

As a game developer why should I use pip? Firstly, there is a very large audience of people who can install python games. You don't need to worry about the platform issues of binaries so much. If they have pip on their platform, then they can install your game. Other benefits of publishing on pypi include syndication, since many people tweet and copy all the releases on pypi. Another benefit is all the infrastructure work that goes into pypi, CDN networks and such.

I suggest efforts should be applied to:
  • updating tutorials, and spreading the idea of publishing python games to the cheeseshop (pyweek, pygame.org tutorials, external tutorials, books, youtube videos)
  • base code for a pygame game in a standard structure (skellington, cookiecutter etc)
  • contacting other python game communities to suggest pypi should be a priority
  • making the cheeseshop/pypi itself a better platform for game publishing needs

What pypi doesn't do currently? It doesn't do many things that a good game release system would do. Video/youtube links, and even screenshots aren't available. Discussion has been disabled (they found it way too hard to moderate). Even ratings are not on there (which can help for discover-ability). Another issue is that closed source things aren't really looked apon nicely there(but it is allowed). Finally, packaging in python still isn't the easiest thing (it's definitely not as easily as uploading a zip file, but it is waaaaaay nicer now than ever before).

Any work that goes into making the packaging system for python better for games helps out with other python game communities as well. We can perhaps even gain allies from the other communities to help improve things for games in general.

Here are where the pypi projects live.