Howdy! Another New Face Here.
Hi, I'm Joshua and I'm looking forward to participating in the upcoming PyWeek! I'm a software engineer by profession and a game maker by obsession.I need a bit of clarification. I'm planning on using a library I've been working on for quite some time, and it's lived on GitHub for four years now. Does the one month requirement start now(as of this post), or from when I first committed on GitHub?
Toast Python Module
Thanks in advance!
(log in to comment)
Comments
I guess I'm out then. Shame...
"If you do have a library you must release it within a reasonable amount of time (at least 1 month) before the challenge starts so that others may have reasonable opportunity of using the library"
No mention of needing documentation here.
"You are allowed to use existing libraries that have been available for at least one month before the challenge (and are well documented)."
Perhaps this should have, "As clarification to aspect number 2" before the rest of the sentence.
"A great resource is the pygame.org cookbook. It is perfectly acceptable to cut-n-paste code from the cookbook, as that code is released and should be considered equivalent to a library."
Which also has absolutely horrible documentation on many of the recipes.
I absolutely agree with the idea that libraries and/or frameworks should be released within a 30 day time frame. Additionally I believe that if we are enforcing a library which has been released for 4 years prior to a competition may not be used by anyone due to poor documentation or lack thereof is hypocritical if recipes from the pygame.org website are allowed. I feel that Joshua's library should either be allowed, or the rules page need updated.
Sorry to be "that guy," but double-standards are not okay in my book.
Additionally, I have never heard of the Toast package. And I've been around Python gaming for some time, actively poking around new things when I find them. It has not, as far as I can tell, been "released" in any meaningful manner.
You're comparing a package with dozens of modules to snippets in the pygame cookbook. I hardly think the comparison is fair.
Joshua:
Toast looks like the kind of framework I began working on several months ago using pygame as a back-end, only more mature and feature rich. Obviously it won't be valid for the competition coming up now, but is there any chance you will be working on documentation so that it would be valid for upcoming competitions?
Also as a side note/suggestion, I implemented a fixed delta time step without using the pygame clock() and instead used platform independent high resolution timers and it worked very well. Just something you might be interested in.
richard
I've been around the Python gaming scene, about seven years now. Toast started roughly five years ago as a nameless personal library that I've been constantly tweaking and improving. I've never really had a chance/platform to promote it, and I'm trying to put it out there in hopes that someone might find it useful or learn from it. I'm always up for suggestions or help on making it more visible/useful.
dmreichard
Thanks for the kind words. I've been looking into using Sphinx to generate API documentation, and I've had good results so far. In fact, I might end up spending PyWeek getting this in order and publishing a proper API. I'd also like to get a website going, but that might involve renaming the package so I can find a URL that isn't already taken.
Sure, I'm interested! Feel free to hit me up: joshua.skelton@gmail.com
The "rules" page starts with 4 points:
- Must be challenging and fun,
- Entries must be developed during the challenge, and must incorporate some theme decided at the start of the challenge,
- Will hopefully increase the public body of python game tools, code and expertise,
- Will let a lot of people actually finish a game, and
- May inspire new projects (with ready made teams!)
IMHO that's the important part, and it says nothing about winning the contest!
reidrac
You make some very good points, you've got me there! I do make games with my library, but the pressure of getting something done and actually released helps.
Actually I'm pretty excited about getting my little library in better shape. I'm planning on refactoring the package structure to something more pythonic, adding documentation, and possibly adding it to pypi. Any guidance would be appreciated.
You make some very good points, you've got me there! I do make games with my library, but the pressure of getting something done and actually released helps.
Actually I'm pretty excited about getting my little library in better shape. I'm planning on refactoring the package structure to something more pythonic, adding documentation, and possibly adding it to pypi. Any guidance would be appreciated.
Sphinx output, and the Wikis for a start with the documentation).
I would recommend you using some sort of release process maintaining a "changelog" and tagging versions in GiHub, so any potential user knows which code can be considered "usable" (sometimes the git repo can be in a unstable point).
After that adding the library to PyPi shouldn't be that difficult :)
You can start using GiHub features (see GitHub pages for a nice project website and I would recommend you using some sort of release process maintaining a "changelog" and tagging versions in GiHub, so any potential user knows which code can be considered "usable" (sometimes the git repo can be in a unstable point).
After that adding the library to PyPi shouldn't be that difficult :)
If the rule actually gets you to write the darn documentation after five years, at the cost of you not using your library for one PyWeek, then I would say that the rule promotes the language far more than it hurts it.
richard
Haha. Deal. I'll disclose this upfront, and if I'm DQ'd oh well.
Cosmologicon
I understand your sentiment, and even agree. The thing is, originally I didn't anticipate ever publicly releasing my little library. It was just a collection of things to Get Stuff Done, which as programmers we all have. The examples are mostly there to verify that I don't break anything when I make changes to the underlying objects, but do serve to illustrate example usage.
The examples are mostly there to verify that I don't break anything" Yeah exactly. It sounds like exactly the kind of private codebase the rule is trying to discourage. FWIW, I think you should spend this week documenting as much as you can, and maybe somebody other than you can actually use it for this time. Better late than never, and all that.
"Why would you want to discourage someone from participating?
Agreed. I am getting excellent results from Sphinx and am actively trying to get as much documentation as I can. Trying to make this a useful thing outside myself is a major goal.
Question: What is the preferred format of the documentation? Html? Rst?
Thanks again for your input, I do appreciate it.
I don't think it is as bad as you think. They are system level and performance tests.
Yeah.... exactly. I'm saying examples are primarily intended as tests (something you need for development), not as documentation (something you need for distribution). The format is not as important to me, as long as it's there. :)
Why would you want to discourage someone from participating?
Well let's be clear. I don't really care that much one way or the other. Richard has decided that the rule enforcement should be very lax and I accept that. Also, the rule "violation" here is pretty minor: you obviously didn't intentionally hide anything from anyone.
But if someone came in and clearly wanted to violate a major rule (for instance, wanting to submit a game that someone else wrote, or a game they wrote in advance) and they refused to participate without violating this rule, then yeah I would definitely "discourage" them from participating.
Yeah.... exactly. I'm saying examples are primarily intended as tests (something you need for development), not as documentation (something you need for distribution). The format is not as important to me, as long as it's there. :)
Why would you want to discourage someone from participating?
Well let's be clear. I don't really care that much one way or the other. Richard has decided that the rule enforcement should be very lax and I accept that. Also, the rule "violation" here is pretty minor: you obviously didn't intentionally hide anything from anyone.
But if someone came in and clearly wanted to violate a major rule (for instance, wanting to submit a game that someone else wrote, or a game they wrote in advance) and they refused to participate without violating this rule, then yeah I would definitely "discourage" them from participating.
Understood. Yeah, the rules seem more lax after the discussion here. I can certainly understand in cases of major violation(for the reasons you mentioned) why they wouldn't be appropriate to include in the challenge.
Aaand... by not including your source code, you've managed to get an 8% disqualification score and break this record. Congratulations. :P
I mean: it is breaking the rules or is not, and asking 50% of the voters to detect that is ineffective and clearly doesn't work (I didn't notice myself that one of the entries was using copyrighted material without license, so I failed to vote DQ :facepalm:).
Anyway, the worst part is that I don't have a windows machine to play Joshua's entry :(
The DQ percentage is calculated based on the number of finished entries and not based on the number of votes of that entry. The DNW percentage is calculated based on the number of votes of that entry.
See: https://bitbucket.org/r1chardj0n3s/pyweek/src/6f5093a03ffa/pyweek/challenge/models.py?at=default#cl-429
richard on 2013/03/29 00:52:
The one month requirement just means that the library has to have been published and documented over a month from the start of the challenge. Sadly it looks like Toast doesn't meet the documentation criteria (which exists to ensure other challenge entrants would have a reasonable chance of learning to use the library before the challenge).