Hello,

this is a response to questions like:

'how do we speed up pygame development,
    is it a volunteer project,
    and would funding like a patreon help?'



It's a fairly commonly asked set of questions. Because I guess people would
like pygame development to happen faster.
It's an almost entirely an unfunded volunteer effort.
There are some small exceptions like the Google Summer of Code in the past,
and some people have made money selling education products like books,
or get invited to conferences to talk about pygame things. But most pygame
development is unfunded.

So that means people give up time they could be earning money in a job,
time with families and all that other life stuff.

So, what can we do to speed up development?

Now that pygame 1.9.4 is out I'm going to help out with the SDL2 and
'pygame 2' stuff that Lenard has been working on.
This has me more excited than in a long while to play with all the new
things. And for volunteer projects, that's important.
Making it a joyful, and welcoming place to do stuff in is important. As is
making sure people get some thanks and credit for their work.

The work that Thomas and others have done with the CI should help us a lot.
But we can improve that further still by *moving to continuous deployment*.
So every PR merged sends development builds to pypi.
I guess what I'm saying is, making releases take less time to put together
makes it quicker to do releases.
Sounds like an obvious thing to say(and it is), but it's worth pointing out
as a goal.
And a first step of automating processes is to write them down, which is
what happened with the last pygame release.

Soon, I'll announce a '*python artist in residence grant*',
and donating some money to someone working on python/pygame related art
projects.
I did already plan to announce the first recipient of this, but they are
busy at the moment.
Why this? I feel the python world largely ignores the contributions that
the game development, graphics, education, music and the arts provides for
python. People who make games, music, and art have contributed really major
things to the python world. And the python website doesn't even mention
that art or games are a thing. We don't exist apparently.
An artist residency usually works something like a person does some time in
either a gallery making something to present or in a music club doing a
weekly spot.
Because it will initially be a small amount of money, the pygame one will
only be a month long.
It will be for someone who is already doing stuff with pygame or python in
their arts practice.
There will be a little thumbnail on the website linking towards an artist
statement/patreon page/blog or some such.


Another thing is *making it easier to contribute*. The move to github from
bitbucket,
automating the build process, and releasing the website as python was
supposed to help with this.
But still contributions are still very small. There is still lots of work
to improve things here.

What else can we try to speed things up?

Also, I worked *updating the developer guide* on the wiki,
and also marked a number of easy issues up with 'first good issue'.
However, some contributors still don't know what even a unit test is, or
how to write them,
or how to write them with pygame.
So, the final piece is to finish a guide on how to write unit tests, and
pygame.
I've made a prominent link on the home page for how to contribute to pygame
the library.
There's also a banner on import pygame now linking to the contribute page.
(Appologies if it annoys you. To disable edit the pygame/__init__.py file).
(If we get to pygame 2, then I think we can remove that banner.)
And there are a few people helping out now,
and lots more improvements for the developer guide planned,
as are more learning resources and interesting tasks for people.

The 'learn python by contributing' is a very interesting idea(to me), and I
guess we'll see how it goes.
Hopefully people learn something about python, C, or general software
development whilst they do it.


*The API cleanup*, and C API documentation that was done should make it
easier to understand the pygame code.
We can aggressively clean up things for pygame 2 as well.
For example, I have already worked on moving lots of files out of the root
of the repo and cleaned up 18 years of cruft.
There is more work to do here, like introducing cpplint for C code, and
pylint for python code.

There is now a link to the *compile page* improvements for the platform the
developer is using if the pygame source build fails.
This should help people compile it :) Which is the first step in
contributing things.

I'm going to start a *weekly online sprint again*.
And will try and ask people to contribute unit tests or at least ways to
reproduce issues when they submit them.
Engaging with people quickly often gets a response, and people are often
more happy to help out in solving their own problems.

The discord chat seems to have quite a few people active these days. Often
50-70 or so online at once.
Invite here: https://discord.gg/r8yreB6
*It feels like more of a community* than what the old IRC had become.
You can have a chat with people about things, rather that writing a comment
into nothingness of IRC and no one responding.
Also, I think things seem more friendly than they were in the past.

*Automate all the things* is another step. Which we tried with the website,
and the CI.
But that also seems to take a lot of effort and time. But now docs don't
need to be built manually, and such.
Spam is still a constant battle, and hopefully some people can help
automate this even more.

I did start to prepare some materials for *a funding drive*.
But then I realised I could raise money more quickly by simply working and
finding some European charity that would take dontations for pygame work.
I know the PSF accepts donations on behalf of some projects now. This could
be an avenue to explore. I heard that the pypy project may be moving under
the PSF at some point for example. Requests did a funding drive for $33,000
recently, Pypi raised $180,000, and numpy got a grant for $500,000, so who
knows. Maybe we can raise $50 or so, and buy someone a pizza. Perhaps worth
a try. lol.

Various nefarious shady people have approached different people in the
pygame community
about paying for advertising by including hundreds of javascripts or
including malware in executables.
And I don't think anyone wants that.

Some people, and companies have made money by selling educational products
about pygame. And I think this model of selling educational products can be
good for funding this type of work for people. Having such external
learning materials and documentation available for everyone in the pygame
community is such a wonder. This is mostly beneficial for people wanting to
learn stuff, and toward funding the authors of these products. But not all
that beneficial to pygame (the library) development so far in terms of .py
files and .c files getting some attention. Also, topics covered tend to be
simple ones, and not so much for newer functionality (which we personally
write examples, docs, tests for).

*Patreon?* The Gimp project started listing a couple of their developers
patreon links on their page under a donate button. After some years they
are making about $1000/month between them. A similar amount is being made
by the Inkscape, SDL, and renpy authors on their patreon pages. If you
compare that to the market rates a python/C/asm/C++/objectiveC/...
developer with decades of experience can make... it is almost a rounding
error. The 'vuejs' project main author is making approximately a market
rate salary(on the low side), but there are many companies making
commercial products with that. As far as I know this is the only person in
the world making almost a salary with a patreon page for an Open Source
project. Mostly people seem to be making $12 per month or so. We could put
up some links like Gimp does for core developers who want it I guess.

One SDL author works for Valve getting a nice big paycheck after the
attempt to turn SDL into a private project and sell licenses didn't really
work out. This is a nice relationship, because many games use SDL on steam,
so it is in their interest to hire one of the major developers. Also one
SDL author has made much money porting commercial games. But I don't see
this happening for pygame, because apart from being used in education,
other uses of pygame aren't all that commercial. So, there's not really a
consulting market for it, or some big company using it.

There are possibly some *grants available?*. I did try helping someone
write a grant proposal to help with the pygame documentation in German...
but that wasn't accepted. So these things can be a waste of time. Helping
people with GSOC applications was successful back in the day, but that
generated way too much work for volunteers to handle in a sustainable way.
It was sort of successful in helping newer developers on their way into a
career. But it was not good in that it created a lot of work for us trying
to finish off and maintain that work. I would like to do something like
that again, but not for the reason of speeding up development, because it
really doesn't. I feel perhaps with the infrastructure available with git,
and learning from previous experiences, the GSOC experience could be much
better for everyone involved.

*Working with others* more is probably a great way to go. I feel if various
python game/gfx/sound/music libraries, and SDL users worked together more
it could help everyone.
For example, distribution is one area where lots of projects are working on
their own. Panda 3d is working on their own tool for making packaged
executable for different platforms. Kivy, and renpy have also been working
on their own tools to mobile distribution. We can help find people find
that these efforts in other communities actually exist, and join in and
help them with some pieces rather than working on our own things. Why can't
we collaborate more with the love2d people? There are many opportunities
for collaboration, and sharing the work load where multiple communities can
benefit.

*Helping pygame users be more successful* could also help with pygame
development if people decide to contribute back.
This is everything from cheering on book authors, and game devs when they
do releases.
But also trying to find ways to help them get more reach and make better
things.
Work on distribution tools here would help, but also making it less of a
chore for people to share and promote their work.
How do we help library authors?

What is pygame anyway? Apart from being a thing you import, it's also a
community of developers making interesting things.

There's lots of '*awesome pygame*' related stuff out there. How do we help
people find it and support the authors working on this stuff? If the
question is 'how do we help people make better games?' then a good answer
to that would be to help library authors. Because, does a map library (as
one example) installable as a python package have to be included in pygame
to be awesome and useful to people? No. But is it currently harder for
people to use these libraries, and harder for people to know that these
things even exist? Yes. Helping to improve python packaging is one way, but
also actually contributing packages for things. Even bringing together a
small list of python game related projects made me aware of many things
(and I live and breathe pygame stuff every day). There's lots we could do
here still, but simply publishing that list of 'awesome pygame' stuff we
made some months ago on the website will be a good help. Perhaps a
'project' of the month would be another idea, where we as a community try
to help out one project that month. With packaging, docs, promotion, bug
fixes, examples, and all the other polish that is required to make it a
better thing.

What can we learn from other projects and people? A lot. These last weeks
I've been looking at how some successful projects operate for ideas.

The project method of funding development seems to work for some other
projects.
The blender/gimp model of development where they make *a community project *
together. They have made short films and animations that raised a lot of
money. This way there are potentially cultural funds available, such as
what blender got. As part of making a game, there will be improvements
needed for pygame itself. I also know a Super Collider dev who uses this
model too. Perhaps there's a couple of people in the community who are good
at making games, art, music, marketing, so that there would be a team of
3-5 including a person working on pygame improvements. Maybe it could raise
enough money to fund a 1, 2, or 3 month project? It's possible, and
something that has worked before.

It could be pretty Epic to have some sort of 'pygame community game'.


Just some ideas.




On Sun, Jul 8, 2018 at 9:02 PM, Thomas Kluyver <tak...@gmail.com> wrote:

> Hi Marc-Alexandre,
>
> I pushed a bit for a release to happen so that there was an official
> release with Python 3 support, and I also worked a bit on packaging so that
> it's practical to 'pip install pygame' (that mostly works now, but there
> are still some problems). I've tried to help keep the project moving, but I
> don't really do any development work on it myself.
>
> René is working towards a 1.9.4 release
> https://github.com/pygame/pygame/issues/390 .
>
> Meanwhile, Lenard has been quietly working on SDL2 support:
> https://github.com/pygame/pygame/tree/SDL2_patches . If there's ever a
> pygame 2.0, SDL2 support would probably be the headline feature.
>
> So René & Lenard would be in a better position than me to say whether any
> kind of funding model would help Pygame.
>
> Best wishes,
> Thomas
>
>
> On 7 July 2018 at 18:04, Marc-Alexandre Espiaut <
> marc-alexandre.espi...@etu.u-bordeaux.fr> wrote:
>
>> Hello,
>>
>> I would like to know more about the current Pygame development.
>>
>> I’m glad to see that the Pygame development slowly sped up from December
>> 2016 with the release of versions 1.9.2 and 1.9.3.
>>
>> I would like to know more about your ideas to speed up development even
>> more and reach v2.0 one day. I suppose(?) that like most FLOSS projects,
>> the work on Pygame is unpaid and made during free time.
>>
>> Does starting something like a Patreon would help the Pygame project in
>> anyway?
>>
>> Best regards,
>> Marc-Alexandre *Espiaut*
>>
>
>

Reply via email to