shootGFW: 一个使用PyGame开发的小游戏

| 2 Comments


shootGFW: 一个使用PyGame开发的小游戏。源码已经依据GPL协议公开,Google Code 项目主页: http://code.google.com/p/shootgfw/

这个游戏的灵感来源于HelloTee的breakGFWTee(图片), 自从一看到这个图案就想要实现这个好玩的创意。

起先打算自己使用PyGame从底层开始来写,后来决定采用更加快捷的方法。上网搜寻了几个类似的游戏源码,直接在上面实现这个创意。

原版的创意是打砖块,后来觉得用Space Invader(俗称小蜜蜂)的游戏方式可能会更加过瘾。

本游戏的源码改自
Python Space Invader
2004/08/16
Jim E. Brooks
http://www.jimbrooks.org/python/pyspaceinvaders/
这个源码采用GPL授权,如果对原版有兴趣请到上述网站下载。

写shootGFW的过程中,发现PyGame是一个可以快速实现心中构想的游戏开发框架。整个程序开始修改到现在公开的版本大致用了4个多小时,大约是两个晚上下班回家后的时间完成的。当然我做的修改只是非常小的一部分,可即使是原版部分原作者也谈到是在非常短的时间里完成的。在工作之余可以快速完成一个轻松的小东西,很惬意。

具体的操作方法是:

Z,X,左右箭头控制移动
左右Ctrl键开火
Space: 特技1
C: 特技2

安装方法:

Ubuntu 及其他 *nix 系统

首先需要安装 PyGame (Python在大多数系统上已默认安装,就不再做特殊说明)
开启终端执行 sudo apt-get install python-pygame
http://code.google.com/p/shootgfw/downloads/list 下载程序(或者通过mercurial 从 Google Code 里面 clone 最新的代码)
使用 python 执行 pyspaceinvaders.py 这个脚本 : python pyspaceinvaders.py 即可开始游戏!

Windows

首先需要到python.org 上面下载python 的Windows 安装包 (Windows 下推荐安装 Python 2.5, 安装包链接)
然后到pygame.org ,下载对应Python相应版本的PyGame安装包 (Python 2.5安装包链接)
http://code.google.com/p/shootgfw/downloads/list 下载程序(或者通过mercurial 从 Google Code 里面 clone 最新的代码)
使用 python 执行 pyspaceinvaders.py 这个脚本 : 即打开解压好的程序文件夹,双击 pyspaceinvaders.py 即可开始游戏!(如不能执行可能需要重启电脑)

本来考虑为了方便Windows的用户也可以方便地爽到这款游戏,我想要通过py2exe编译一个Windows版本。谁知屡次尝试均告失败。目前只好麻烦一些了

此游戏源码遵照GPL协议开源。对此程序有兴趣,希望自己亲自做些修改的朋友,请到Google Code 的项目上,参与这个项目(此项目使用Mercurial版本管理系统)

不过想对这个游戏的提一些指导意见,希望各位未来的贡献者们能够认同:
  • 此游戏主旨在于娱乐以及PyGame学习交流,请不要在游戏中夹杂各种与政治、时事等相关观点    
  • 游戏中不出现任何中文文字
  • 尊重各位贡献者的署名权

最后祝大家玩得开心,Have Fun!

OpenParty "柳岸寻鱼"

| No Comments
六月份再度归来的OpenParty "柳岸寻鱼",话题依然很足料。 大家只消看一下话题投票时的题目,就可知道这会是怎样一个观点和知识激情碰撞的下午:题目涉及包括技术管理、Mozilla Fennec、译言带来的翻译版权话题、催眠体验、信息存储转发架构、智能推荐系统、企业开发中的RoR、IT眼保健、中国内家拳法...

还是简要谈一下自己参加的话题:

Mozilla Fennec 项目,作为Firefox 的移动版本自然得到关注。同时由于自己也在进行移动版网站的开发工作,所以对这个浏览器也很感兴趣。Mozilla中国的这位朋友讲述很有意思。同时在交流中也了解到了不少关于Mozilla的逸事:许多重要部件如Gecko核心等的开发者有很大一部分并不是Mozilla的雇员,而都是由分散在各大IT公司的技术大牛完成的(不过目前Fennec是完全由Mozilla Labs里面的设计大牛们做的);被大家诟病最多的网银问题也曾有一个在技术上和观念上非常妥协的解决计划,但是由于和Mozilla 的主旨完全背离而不得不放弃,这点我十分理解。

言归正传谈谈Fennec,Fennec目前支持三大移动平台:Linux(Maemo, 即Nokia N810的平台), Windows Mobile, Symbian。目前Windows Mobile平台的版本最为稳定(同样其中有着占有率的因素)。Fennec的创造者,Mozilla Labs里面的大牛们为其提出的主旨是,Web只有一个,用户在不同设备上应该有一致的体验,而不必为一个网站创建多个版本。整个软件的界面设计和目前的移动版Safari不同,控制部分分置左右,默认隐藏,通过滑动可以显示。左侧是带有预览的Tab标签,Mozilla的工程师还曾为需要有多少个标签进行过激烈讨论。整个项目完全从底层开始构建,所以相较代码耦合度非常高的Firefox有着更好的执行效率。

这个项目很让我惊奇的地方在于,未来会完美支持Firefox的插件在本地运行,也就是说Firefox的插件可以无须修改(现阶段需要很少量的修改)即可在Fennec上面执行,我认为这是把Firefox这个平台无限延伸的很大一步。另外还看到了Fennec现阶段在PC/Mac上面的原生版本,也就是可以直接安装使用的浏览器版本、以及Mozilla没有详细说明的,我认为可能会大大改变移动网站设计的一些技术。不知未来能否拿到Fennec的原生版本和更加详细的信息,如果我可以拿到并且那些信息可以公开的话,我十分愿意和大家共享。

参与的另一个话题是智能推荐算法。相信大家都对这个东西很感兴趣,但是若谈起算法的实现难免会觉得艰深晦涩。我一开始对此的兴趣只是"能否有一个简单的Python库来让我调用呢?"。没想到,这个话题讨论不但让我这个数学门外汉都理解了SVD的基础知识,并且还实现了我一开始的想象!

新浪音乐的超群朋友带来的这个话题经过精心准备,完全不晦涩。完整的幻灯片可以看这里。三种常用算法:关联规则、Slope One、SVD的分别介绍,随后就是激动人心的实践,而一开始我的设想,也在幻灯的第26页得到了解答:Python智能推荐的完整解决方案DIVISI库,只要几行代码就可实现相关功能!数学真的是强大和巧妙的,更多详细信息大家可以仔细研究那个slide,很有启发。另外我最后咨询了一下关于机器学习的算法,那是一个叫做RSVD的算法,和SVD不相同,对此还有兴趣的朋友请自行Wikipedia吧。超群还谈到了Netflix的智能推荐竞赛,Netflixprize,悬赏100万美元来改进其搜索结果。虽然已经有队伍很快就要接近胜利,但其竞赛公开的资料是不错的数据挖掘和智能推荐的演示材料(超群讲述时特别注明:1、不同应用不可能采用相同的策略均达到最佳效果(没有银弹!)2、Netflix的数据很庞大,该公司使用256GB内存机器来跑相关应用,即使是网站上的公开测试资料也很重量级,配置一般的机器跑不动)。

遗憾的是,每次参加OpenParty,都希望自己强烈拥有的分身技能仍然没有出现。此次很想听的主题,基本大都被排在了一起。分身乏术导致自己很感兴趣的信息:存储转发架构设计和译言关于翻译版权的话题都没听成,期待未来可以看到相关内容的介绍。

此外有个想法,不知道以后的OpenParty是否会采纳。增添一个白板区域,供大家以文字信息的形式进行交流。这可以说是三分钟讲话的文字版本。参加的朋友可以提前准备好关于自己的作品/想法/观点的介绍,附上自己的联系方式,然后在粘贴OpenParty上白板上。我认为这样为大家又增添了一个交流的途径,而且几乎不增加什么时间及物质上的成本。另外还是希望可以添加关于首次参加的朋友的自我介绍。就我个人几次参与的经验来看,很多第一次来参加的朋友,很多都有一些很有意思的想法和主题,也渴望和大家分享。多多给予他们热情的反馈和认同,更彰显OpenParty的开放本色。当然这个部分可以和三分钟讲话一起,只需要主持人稍加说明即可。

最近的一个体会是,时间越来越紧凑,听各种话题的时间,和朋友交流的时间,基本上在一个下午很难安排,很是纠结。没聊够的只好放到下回,与大家七月再见。

谈谈 BetaCamp, TEDxShanghai 等活动

| No Comments
上周日参加了BetaCamp 这个活动。这是个延续了TED精神的活动(鼠标移到链接上查看什么是TED?),从它的命名方式就可以看出来。不知是刻意还是碰巧,上周末的几天里,仅我所知就有所三个与TED相关或类似的活动在举行。其中TEDxShanghaiTEDxSYSU 似乎都是TED官方授权的活动。还有一个就是与TED的形式和概念都接近的BetaCamp 了,作为一个TED迷,我决定去看看。

BetaCamp 从总体上讲,是个很有意思的活动。参与的题目有着一定的广度,从城市规划到创意工作室创业史,从文化品牌的推广策略到处于一个更高层次的盲人摄影公益活动,在不长的时间里,听众确实能够了解到跨越多个行业的一些经验、观点和想法。印象比较深的是盲人摄影的演讲者郝曦先生,作为一名弱视人士(他在北京近30年,普通话好到惊人),他推动的盲人摄影活动旨在向世人证明即使弱视人群无法再体验视觉,但是作为视觉的感觉却可以存在并加以利用和练习。现场也展示了几幅作为弱视摄影者十分令人惊奇的作品。另一个令我印象深刻的是"陈幸福"品牌创始人的介绍,在一个精彩有趣的个人经历陈述中,展现了作为一个创意玩具品牌,从每天晚上下班后一个人在超市买的缝纫机前的创造,到三里屯Village旗舰店创意店铺的过程。其中一些令人印象深刻的经历:天桥下等人时卖出的第一个玩具、在税务大厅里因欠税而哭泣。深切有趣的经历、幽默的演讲风格,令人耳目一新。

事实上,对于TED类型的,主旨在与观点交流的活动,是否成功的标准并不取决于是否有多少个人撰写了无数篇Blog Post来描述它是多么的好,而是经过这样的一次活动,可以给予多少人全新的观点以启迪,并激发他们来行动。所以内容非常重要。而我认为同样重要的,还有另外一点,环境。

从最早看TED开始,那个聚光灯笼罩的、漂亮的讲台就成了我最喜欢的场景之一。我想TED的组织者们一定怀着类似这样的想法:"给最棒的头脑以最好的舞台"。的确,能够在那样的讲台上演讲,无疑是最令人振奋的事情。而且舞台上明星般的打光确保了背后硕大的屏幕不会削弱演讲者的主题感。同时最令人称赞的是演讲时摄像的多机位设计。这确保了每一个TED视频都是一部在镜头上雕琢的佳作,而不是简单的DV录影。是一个既能体现演讲者个人魅力与风格,又能为演讲内容阐述提供帮助的极佳表现。

说完了演讲舞台,再谈谈讲台下的环境。我没能有幸到过TED会场,但其会场家具赞助商SteelCase的广告,却向我们展现了TED环境之优雅。不必做过多描述,大家可参考如下的TED视频(一个非常短小的介绍视频,包括SteelCase的广告一共才两分钟)

正如我之前所述,在一个主旨是"观点"的活动中,环境若是优异,是大可为思想提供积极的帮助的,否则Google也就没有理由创造它那如此优秀的办公环境了。

目前在我们身边的活动,我以为尤其是在环境上还有很大的改进空间。BetaCamp 的环境对于这样的活动来说还是较为拥挤,演讲区域的屏幕太突出,削弱了演讲人的感染力。另外对于本次的BetaCamp的环境以外的问题是,演讲者没能按照时间限制进行发言是一大遗憾。因为就我自己演讲的体会感觉到,限时演讲是一种更加能够保证演讲效果、同时也对演讲者能力提出更高要求的措施。不少演讲者的幻灯以及演讲中还犯有很多初级错误,说明我们这里的演讲风格还有待成熟。TEDxShanghai 我通过网络观看了当天下午的直播。感觉这是在是目前最贴近TED精髓的活动。演讲的题目和感觉都和TED的感觉十分相似。从照片来看,现场的环境也很不错。唯一值得诟病的是摄像时的镜头:从演讲开始,就没有改变过,只对着演讲者的头部一动不动。这大大减少了视频的感染力。中山大学的TEDxSYSU活动没有看视频,就不对环境等做太多评价了。

当然,我完全理解在当前的中国,举办这样一个活动的辛苦和艰难。我所谈到的对于环境的要求难免苛刻,以至于几乎是吹毛求疵,但无非是想让大家在更好的环境中取得更好的效果。我始终相信,生活中积极、新颖的观点和活动越来越多,我们的生活就越有希望。最后向在过去、现在和未来举办类似活动的组织者和贡献者致敬。

Find recent content on the main index or look in the archives to find all content.

OpenID accepted here Learn more about OpenID