FOSS games and WNPP
This post attempts to share some thoughts on FOSS games, the Debian WNPP pages and software inclusion
For years we have heard the term that this year is going to be the year of the GNU/Linux desktop. I think the problem is not with the desktop experience but the applications and number of applications themselves and more so in the area of FOSS games. A short backgrounder for those new to the cause/experience.
When FOSS GNU/Linux distributions started, more in response to the existing proprietary Unixes rather than Windows,they did see the point how in Windows there is wastage of disk space and duplication with each application installing its own set of libraries even though there might already be an existing set of libraries installed already.
GNU/Linux on the other hand follows/ed the concept of shared libraries where once an application installs a needed library, any future application needs to see if the shared library is there and take care of it. I am putting it too simplistically, but essentially this meant an environment where some quality of experience is/can be expected by users who have installed some x applications. So instead of using .exe which have libraries inside of them we have the .rpm’s and the .debs which along with the package manager (in windows speak the add/remove programs) needs to be more intelligent.
Now in the very early days there was no central place for applications so for these distributions (probably called projects at that point) they could not deliver that sort of experience.Somewhere in that conundrum the idea of having a central repository might have come about.
Repositories are good in the sense at one shot you are able to get softwares,have updates and upgrades from them, get security updates when vulnerabilities in some package are known,compatible with various libraries. In short there is everything good about them. It’s a far superior structure then downloading some application in the wild as there is some sort of support also available (might be voluntary, might be commercial but that’s a different ball-game).
Now the real problem starts, it’s a well-known fact that people have enormous appetites and imagination to looking at problems and probable solutions. This is one of the reasons why for e.g. we have Mozilla Firefox, Google Chrome,Opera, Apple Safari,Internet Explorer and maybe another half a dozen browsers. All because they see the world a bit differently or they have a different tack on it. There are many more reasons but let’s not go in there.
Now this problem is amplified in GNU/Linux distributions who take the headache of distributing and maintaining packages which are packages, libraries, documentation in the repositories. One of the many distributions who is doing its part is the Debian Project. Now while one can know of the existing number of packages which are already part of the distribution, the more interesting and difficult part is in asking for inclusion of a package in the Project. This is where the Debian WNPP comes in. The Debian WNPP stands for Debian Work Needing and Prospective Packages.
As can be seen from the webpage, the backlog is huge which means either :-
a. There is a huge shortage of talented Debian packagers who understand how to make packages for Debian.
b.The explosion of applications due to emergence of the Internet, DVCS (Distributed Version Control Systems) hence distributed development, Internet culture and so on and so forth.
While making a request is simple in Debian, getting the application packaged in Debian is a different deal altogether. Requesting a Package for inclusion in the Debian Project is called an RFP. I am sure you see this when you go on that web-page.
To make a request it is relatively simple. First, the user has to make sure that the application is open-source and its licensed under an appropriate open-source license to even get considered for packaging. There is possibility of a package getting integrated if it’s either the GPL,LGPL,BSD,MIT/X or few others. There are exceptions where popular proprietary applications are also allowed (the non-free repository) but that is an exception.
Anyways, making a request requires installing reportbug or reportbug-ng in your debian machine. You will have to set up reportbug a bit (See both .reportbug-ng/.reportbugrc, /etc/reportbug.conf and the manual for reportbug.conf for setting up instructions but that is beyond the scope of this article.
I will use reportbug to show an example of a package I filed a wnpp for last week.
Please enter the name of the package in which you have found a problem, or
type ‘other’ to report a more general problem.
Are you sure you want to file a WNPP report? [y|N|q|?]? y
*** Welcome to reportbug. Use ? for help at prompts. ***
Note: bug reports are publicly archived (including the email address of the submitter).
Detected character set: UTF-8
Please change your locale if this is incorrect.
Using ‘Shirish Agarwal ‘ as your from address.
Getting status for wnpp…
Will send a report to Debian (per lsb_release). What sort of request is this? (If none of these things mean anything to you,or you are trying to report a bug in an existing package, please press Enter to exit reportbug.)
1 ITP This is an `Intent To Package’. Please submit a package description along with copyright and URL in such a report.
2 O The package has been Orphaned’. It needs a new maintainer as soon as possible.
3 RFA This is a `Request for Adoption’. Due to lack of time, Resources,interest or something similar,the current maintainer is asking for someone else to maintain this package. They will maintain it in the meantime, but perhaps not in the best possible way. In short: the package needs a new maintainer.
4 RFH This is a `Request For Help’. The current maintainer wants to continue to maintain this package, but they needs some help to do this, because their time is limited or the package is quite big and needs several maintainers.
5 RFP This is a `Request For Package’. You have found an interesting piece of software and would like someone else to maintain it for Debian. Please submit a package description along with copyright and URL in such a report.
Choose the request type: 5
Please enter the proposed package name: ogs-mahjong
Checking status database…
Please briefly describe this package; this should be an appropriate short
description for the eventual package:
> OGS Mahjong is a simple mahjong solitaire game with nice 3D graphics
Once you have entered the initial details depending on how you have set up your reportbug editing capabilities either your favorite editor will be setup or you will get nano on your terminal. I have set up nano at my end.
*** Please type your report below this line ***
* Package name : ogs-mahjong
Version : 0.7
Upstream Author : michael kapelko
* URL : https://code.google.com/p/ogstudio/
* License : GPLv3
Programming Lang: C++
Description : OGS Mahjong is a simple mahjong solitaire game
with nice 3D graphics
OGS Mahjong is a simple mahjong solitaire game with nice 3D graphics
and relaxing soundtrack and features
Obviously I have cut short the description otherwise a long description follows. Then either your machine’s mail transfer agent (MTA) or using a web-based mail (gmail,yahoo etc.) you can send the request. Make sure that the request is in plain text as far as possible (no fancy HTMl stuff) to email@example.com
firstname.lastname@example.org is an intelligent bug-tracker which sorts your bug from the package and severity and pings to the maintainer. Also after a while it sends an acknowledgement to the sender and gives issues a bug number. You can see my request at bug 631797
Now while people choose to believe it or not but for many people, gaming is one of the reasons to go/have a computing experience and this is one of the areas where most of the free software world has failed quite a bit. I would go into the reasons a bit later but there are attempts to get it back in shape. For instance, last week I helped by putting almost all the games tagged for the email@example.com team. It was quite time-consuming but was an itch I have had for years. A way to have an overview as to how many requests are there (when trying to add a new package and have to go through thousand plus RFP’s and different request as somebody might have spelled the name differently or know it by somewhat a different name. Now for all sense and purposes I can see it at tagged. While it took me quite sometime to do it right, I hope it makes things easy for the maintainers.
Anyways, some of the reasons why the free software world has not been able to keep up especially around games and gaming is perhaps because they a bit more vulnerable than other applications.
Let me explain :-
a. There have been many studies on applications and people’s usage and expectations about applications and most of us perhaps hover/use around 10% of the features that are in any application. If I take a text editor some of my needs/choices would be :-
1. It should gel with the rest of my desktop theme.
2. It should have less memory map.
3. Be able to copy and paste to and from buffers.
4. Be a temporary place-holder most of the time.
There would be any number of competing text-editors which would fulfill the above feature-list and perhaps a large percentage of users would be happy from it. If it was Windows,then I would have been describing the features of a small application likenotepad.
Games on the other hand, by the sheer expectations from users, the hype and the culture we have ingrained, we somehow want to be transported into another world. We expect to be entertained each time. Whether it’s a puzzle game, a jigsaw puzzle, an RPG or whatever is your cake.
Herein lies the rub, fragmentation. While in windows and Macs, one can just put an .exe or/and .dmg file and more often than not forget about it, the developer would need to put at least three types of file, a source release (.tar.gz), an .rpm and an .deb binary at the minimum . Big projects such as 0AD try to give the best experience. But this is not the case with most of the lone developers who neither have the time, nor the skills and/or the dedication to both develop a game and look after its distribution as well as the resulting headaches. While they would like to support huge number of users they just do not have the bandwidth required for the same.
b. Developers are just like you and me (except they perhaps understand some technical things more) and just like us want to be appreciated and that appreciation window cycle is small. Unless a distribution does not carry a game, that part of audience will not be aware of their work which makes the distribution ecosystem poorer, It also makes the developer poorer as he does not get access to more users and hence some/more potential collaborators.If distributions actively carry more games,then not only the games but the tools used for creating the games also would become more and more sophisticated leading to a virtuous cycle. The window between a project making regular releases and one which one becomes dead is small. If there is no feedback, people stop doing things, simple as that.
While Ubuntu has a PPA story to get some sort of handle over that, Debian, in this regard is still in finding its own way.
c.An interesting thing has happened which does encourage collaboration and that is the introduction of DVCS (distributed control version systems). While it’s definitely an opportunity for users to see more transparently what the developer/s are working and hopefully influence them in the initial stages the number of people who go down that route is pretty small.
Incidentally, I contributed a very small patch (all the info. collected from the developers themselves). No programmer here, but apparently gcc 4.6 has some issue with something called a null pointer and hence the game was not compiling at my end. Chatting with the developers and constantly trying to compile, finally was able to build it and was then requested to submit the patch which I eventually did.
Comment: The easiness with which the hg push happened told me from a casual collaborator/developer’s perspective why distributed development and distributed development tools such as git and hg are such a rage/darling within the development communities.
The ability of the software to discern the diff between the repository and your changes which are relevant for pushing diffs is really a game changer.
d.Language :- This is not easy to fix.For all my wandering on the Internet I have seen almost 10-15 games which are in good shape but the whole developer team talks a specific language, most of them either in Europe or in Japan and while the game is open-source getting through the language barrier and getting things right is a long-haul task. By language barrier I mean the language which they communicate in and not a programming language. While tools like Google translate do help in discerning what the action going on is, they are far from perfect.
e. Many of the games are nothing but clones of many a classic games and they say that it is what they want to recreate. While one cannot help be influenced by a game or/and a genre to say they want to recreate the same game is not so nice. While there are quite a lot of interesting proposals/takes on game implementations for some reason many a FOSS developer tend to be a bit on the conservative/traditionalist in nature when one would expect them to be more free-flowing with ideas and interesting gameplay options.
f. Many a times there are not cordial relations between developers and distributions but this behavior has been exhibited in applications as well. The idea I know best solution/way is both there in the upstream developer and the downstream packager/Maintainer and more co-operation and co-ordiality would definitely improve user experience.
Overall, while there are games, there are quite a few hurdles that both the distributions and developers need to overcome both with each other as well as making the overall ecosystem that much robust. While I am optimistic I have to also say that both users and distribution packagers need to be more pro-active if they want the ‘Year of Desktop’ to happen.