{"id":14,"date":"2007-09-07T14:56:53","date_gmt":"2007-09-07T20:56:53","guid":{"rendered":"http:\/\/www.philhassey.com\/blog\/2007\/09\/07\/my-pyweek-non-game\/"},"modified":"2007-09-07T15:00:17","modified_gmt":"2007-09-07T21:00:17","slug":"my-pyweek-non-game","status":"publish","type":"post","link":"https:\/\/www.philhassey.com\/blog\/2007\/09\/07\/my-pyweek-non-game\/","title":{"rendered":"my pyweek &#8220;non-game&#8221;"},"content":{"rendered":"<p>A day in advance I&#8217;ve completed my <a href=\"http:\/\/pyweek.org\/e\/toba5\/\">pyweek entry<\/a>!  And, to be honest, my pyweek entry was more the completion of the pug.gui than the &#8220;game&#8221; I made.  Some final stats on pug:<\/p>\n<ul>\n<li>gui.py is 31360 bytes<\/li>\n<li>theme.py is 7428 bytes<\/li>\n<li>16 widgets included in the core<\/li>\n<\/ul>\n<p>The theme is easily extensible &#8211; while maintaining separation from the Widget core.  Themes can respond to events (play Sound effects), have per-frame loops (shrink\/grow\/change colors), and be styled using the CSS Box model.  Here&#8217;s a couple fun screenshots:<\/p>\n<p>The default theme:<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2007\/09\/pug-shot2.png\"><img decoding=\"async\" id=\"image12\" alt=\"Standard theme running a cluttered demo of the Widgets\" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2007\/09\/pug-shot2.thumbnail.png\" \/><\/a><\/p>\n<p>The &#8220;game&#8221; with even more custom theme and Widgets:<\/p>\n<p><a href=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2007\/09\/pyweek5-shot4.png\"><img decoding=\"async\" id=\"image13\" alt=\"My \" src=\"https:\/\/www.philhassey.com\/blog\/wp-content\/uploads\/2007\/09\/pyweek5-shot4.thumbnail.png\" \/><\/a><\/p>\n<p>I decided not to actually enter my entry into the pyweek judging mainly because it wasn&#8217;t a game, but also my &#8220;non-game&#8221; was utilizing pug, which wasn&#8217;t released a month ago (per pyweek rules for personal library usage.)<\/p>\n<p>On a more &#8220;game design&#8221; topic, I&#8217;m a lot more comfortable creating arcade games, as that&#8217;s more my style.  Games that involve your typical &#8220;gui widgets&#8221; just don&#8217;t excite me very much.  The rational behind creating pug is that games do need good menus and options screens for the times when you <strong>aren&#8217;t<\/strong> playing the actual game.  Many of my &#8220;core&#8221; widget choices are based on the primary use case I have for pug.<\/p>\n<p>Since pug still isn&#8217;t up to the 32k limit, I&#8217;m likely to add in joystick support as well as add more information into the docstrings.  There are a number of widgets I could include, but I don&#8217;t feel that the primary use case allows for those.  (Users will be free to create &#8220;contrib&#8221; widgets to be placed into the &#8220;contrib&#8221; folder and will not be supported by me.  I might even add in some &#8220;contrib&#8221; widgets &#8211; a secondary use case is quick game dev \/ level making tools.  You need file pickers and dialogs for those &#8211; both of which I&#8217;ve developed for pug already.)<\/p>\n<p>If you want to give pug a whirl: svn:\/\/www.imitationpickles.org\/pug\/trunk<\/p>\n<p>-Phil<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A day in advance I&#8217;ve completed my pyweek entry! And, to be honest, my pyweek entry was more the completion of the pug.gui than the &#8220;game&#8221; I made. Some final stats on pug: gui.py is 31360 bytes theme.py is 7428 bytes 16 widgets included in the core The theme is easily extensible &#8211; while maintaining [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,2],"tags":[],"class_list":["post-14","post","type-post","status-publish","format-standard","hentry","category-pygame","category-python"],"_links":{"self":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":0,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/posts\/14\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/media?parent=14"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/categories?post=14"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.philhassey.com\/blog\/wp-json\/wp\/v2\/tags?post=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}