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

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



I agree that many of the things on your wonderful list would be useful. I've also starting adding them to a plan (see at the bottom).

I still think promoting packaging is still very useful, and a very low effort thing to do.

Game distribution for general users should definitely not happen on the cheeseshop. Especially not as the primary method. The audience I'm thinking of is more other game developers (and people who will eventually become developers).

I think the package index is better than 'random free upload webpage on the internet', which many are uploading code to now. Also pyweek has proven that a code template can provide a helpful structure for people using other packaging tools. Often times, eventually, someone figures out the latest work arounds for the various packaging tools and a script appears which works for many platforms. Of course every year platforms update, and the packaging tools develop new features...*cough* bugs *cough* that means that last years script has stopped working.

But now with free CI options... it seems more possible to make a tool which builds peoples apps for them. But again would require maintenance. By leaning on the python packaging infrastructure, we access to all the tools for packaging libraries.

The pygame website, and things like pyweek have thousands of games on there already. There's also thousands of people who look through those games every month. I'm fully intending to improve apon the features on the website for people releasing games.

We need to try and make it as simple as dragging a game folder onto website. Because that's basically what people are doing to upload their games. Some people don't even know git, github, pypi, travis... all those things. Hopefully we can take much of the tediousness out of it.


I'm hoping to collaborate with DR0ID, who is working on the pyweek 'skellington' base code on a file structure we can use by combining it with the pypa 'sampleproject'.

I've started writing a series of blog posts about all this stuff... about the benefits of packaging games for the python community, what we can do to make distributing games easier.
http://renesd.blogspot.com/2017/01/promoting-pypi-for-python-game-releases.html
http://renesd.blogspot.com/2017/01/using-common-file-layout-lets-us-create.html


Looking forward to the day when we have build bots package games up for android, mac, windows, ubuntu, pip, raspberrypi etc, etc, then have things automatically do release announcements and such.


cheers!




On Mon, Dec 26, 2016 at 1:17 PM, Thomas Kluyver <takowl@xxxxxxxxx> wrote:
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.