说句实话,直到几天前,我才知道有一个黑客马拉松,而且10.24日是程序员节,请原谅我的孤陋寡闻。code colar群中有朋友发了一个黑客马拉松的报名链接,并且鼓动大家报名参加,我就这样知道了黑客马拉松,而且报名参加了,相约他们同去。
到了10.24这天,我去了,然而相约的那几位由于各种原因都没来, 群里来了的及公,则是早有队伍了的。于是我成为没有团队的了。 没有分组同学也很活跃,都很快就组成了团队。一直到最后,只剩下我们互不相识五位,于是我们就组成了一个团队,只不过没想到,我们拿到了这次马拉松编程大赛的第二名。
但是事实我们团队是个充满激情和创新精神的团队,我们有js刘大神,华科研究生小邓,已经创业了的田总,还有仙风道骨的张大师。刚刚坐下来,就互相了解各自的技术路数并尝试磨合。《技术改变生活》这个题目一出来,我们就讨论了三个项目,最后投票决定做小邓提出的相约打篮球的app,并由小刘和小邓讨论需求,但是,事情并不太顺利。网络很慢,而且伟大祖国建造的伟大防火墙挡住了我们的前进的步伐,很多依赖的包下载不了,前端环境除了田总搭建好外,其余队员的都没有弄好。时间离最后提交却只有10个小时了,24个小时开发时间,我们已经消耗了一大半。
这个时候,刘大神说话了,我们如果继续搞这个,肯定做不完。于是大家同意废弃这个项目,进行头脑风暴,讨论做一个能快速完成的,并且不能太依赖外网网速的项目。实际上,这个决定非常重要(在这次马拉松大赛中,那些演示中出了岔子的项目估计都用了云服务)。刘大神提出来一个匿名邮箱的想法,使用sendCloud的api。只是这个项目适用于哪个应用场景不是太好想明白,但是我们认为开发速度很快。只是要用js做mobile前端,后台用php,这块我并不太熟悉,只是和小邓调通了那个云api,然后家交给刘大神和田总作为主力开发了。
我、张大师和小邓开始闲聊。小邓研究生还没毕业,他研究方向是模式识别,我想到之前看到老外的js面部识别的开源包,有点不明白,正想抓个专业的问问。看了面部建模的还有头部跟踪的,都觉得很不错,可以挖掘一下,做个游戏什么的,但是想不明白如何和《技术改变生活》切题,如何抓住痛点。张大师说,这个好,这个可以治疗颈椎病,大师不愧为大师,向他竖大拇指。于是我们就有一个想法,便就是rock your head。用头部动作控制游戏。
我们振奋了!但是又有点忐忑,这个想法很好,但是js做识别,精度如何,会不会消耗cpu很大导致游戏很卡等等问题,还没谱。但是我们觉得作为备用方案可以试一试。于是我们分成了两组,刘大神和田总继续那个邮件的项目。我、小邓、张大师弄头部控制的问题。
然而,并不容易。首先阈值不好找,点头时头部移动多大位移才算点头,这个阈值是一点一点实验出来的,当浏览器用console.log打印出nod的时候,胜利的曙光出现了,头部控制方案可行!而田总那边出现了状况,伟大的防火墙有一次发挥了作用,田总要安装的开发包没有下下来,于是,小刘也加入了rock your head 这个组。然而做什么样的游戏呢?头部控制显然不能弄那种操作复杂的游戏,我们一开始想到flappy bird,点头让小鸟飞翔,这个想法很直接,于是搞起。但是最初搞出来的时候,发现老有点问题,比如,点一次头鸟会飞两次,要么根本不飞直接掉在地上。这些问题解决后,就开始大家一起试玩,效果不错,只是太难操控了,刚刚玩的时候,脖子还没动,鸟就掉到地上,或者直接撞到柱子上,一个关卡都过不了。后来,让刘大神弄了一个没有柱子的版本。游戏难度降低了些,但是仍然难以操控,要想小鸟不掉下来,头部得要想抖动的火箭一样抖动着上升才行。
要是弄一个点头打鼓类的游戏就好了,这样就好操控多了,我这样说了一句。但是觉得不太现实,时间已经用的差不多了,将这个没有柱子的flappy bird交上去也很不错。总之完成任务没有压力了。于是我回去睡觉,走之前也对他们说,可以回去睡觉了哈,但他们没有走,继续熬夜。第二天我早早的来了,刘大神说,点头打鼓的做好了。大神不愧是大神。他找到的是一个文档不全的游戏引擎,数个小时便重新做好了一个新的js游戏。这就是我们最终版的rock your head。于是我们开始试玩,确实很好玩,操控也容易多了,而且还有不少其他队的队员也过来体验这个游戏,还有保安同志也过来试玩了一把。玩这个游戏是一种乐趣,看别人玩也是一种乐趣。后面演示便是后话了,只不过确实没有想到能拿到第二名,其他团队技术实力还有创意也都是很不错的。
这是我参加的最有意思的一个项目。团队是临时组成的,没有明确的分工,人人是设计师,人人都是产品经理,人人都是程序员。24小时的开发,我们废弃了3个项目,并有两个备用方案,并且对产品做了3次迭代,完成度为100%。都很难相信我们的团队竟然是如此的高效。