ADMIN: How to package your game
Owing to some historically terribly packaged games, I've created a "game skeleton" that all entries must download and use as the basis for packaging their game. Please find the "skellington" in the help page section on how to submit your entry.My reasoning for requiring the use of the skellington is pretty simple: users downloading the games will have an entirely predictable method of invoking the games. No guesswork, no pain.
And I figure that's pretty darned important.
(log in to comment)
eugman: Yes. Your one python file will be called "main.py" in the "lib" directory.
RB[0]: I think you understand where I'm coming from.
Is this really so onerous?
Hey - locate the "run_game.pyw" should say "run_game.py". You might also want to remove those junk .pyc files. Also - if you want, I can supply my hacked together version of setup.py that builds py2exe, py2app, and (if anyone cares to) cx_freeze binaries.
Great job on the skellington - I expect this will increase the odds of games being played by quite a bit this time :)
Phil
Please, email me the setup file Phil :)
For instance, presumably the name of the startup file is a requirement, but use of specific subdirectory names (lib, data, etc.) is not?
Or maybe I'm being too paranoid. I dunno, I've just seen so many games broken because of silly little packaging mistakes made by first-timers (and in some cases second- and third- ...)
I you wish to change the structure, do so. If it breaks, I will have no mercy when I come to rate your game :)
RB[0] I already had that rule last time and it had zero impact on the quality of packaging.
Good idea about the naming though, thanks!
Comments
I'll use the skellington if need be, but I would prefer to just develop the game, and have another file call the game?
If this would disqualify me, obviously I would not do it, but I feel that there are getting to be too many rules coming up :/ And that we should be allowed to make the game as we please, but perhaps dock "production" points if the packaging is terrible.
It may be I am making a mountain out of nothing ;)
But since you run pyweek, you've seen every pyweek game, and you know much better how many games are badly structured, that means structuring really is a problem. In that case, I think it's a good idea. Better to follow a few standards rather than have a lot of unplayable/hard-to-run games.
It's a pity some people think all pyweek games are bad just because one can't be run.
- add into run_main.py something like:
import os
import glob
join1 = os.path.join
def join2(*p):
#use glob to find the file in a case-insensitive manner
#return the filename if it exists ...
#or just return the filename
os.path.join = join2
That might be wrong to add into this though. But if you think it would help, I'd be glad to fill in those details in the middle.
I know last time packaging wasn't one of our strong suits ;)
Perhaps you could just make a rule that you can only have one .py file in the main directory, one README.txt, and maybe a LICENSE.txt?
Just throwing out ideas, I hadn't realized that you had been getting complaints about the games not running.
My biggest concern was that when it is no longer a pyweek game, I would have to re-write a lot of it to get it to look like it were a professional game.
I wouldn't want the main start script for the program to be "run-program.py" or "play-game.py" or something, if it were outside of the compo :P
But now that I look at it that isnt really that bad ;)
One more thing, maybe you could ask people to name the folder of there game there team name?
So instead of "the whatever game" they would put "team_name"?
That would really help the judging, instead of trying to find out who's games are which :)
I guess I'm one of those who didnt follow that rule ;)
I think Ill have another gander at the rules page, seeing how bad I'm getting :P
eugman on 2007/03/25 00:19:
What if I end up having one python file and a readme file. Am I still required to make use of skellington?