Cloud Hsu(许靖昕),是一位来自台湾的个人游戏开发者,半导体业的软件架构师。从2010年的合作一个外包案,“厕所大战”游戏开始进入移动游戏开发,目前已有多款移动应用作品。代表作包括:超级宝贝猪、Fight Bingo、Ninja Darts。曾在2011年三星星空大赛获奖。同时,他也是跨平台框架CloudBox作者。
图:Cloud Hsu
超级宝贝猪开发的一天
Cloud Hsu在开发“超级宝贝猪”时,整天除了代码还是代码。对于个人开发者来说,自己就是PM,自己也是程序员。虽然是兴趣使然,但也要没日没夜的干活,才能给自己一个交代。生活与工作交织在一起,代码与辣妹皆大欢喜。本文就是Cloud Hsu在开发中的某一天。这天他遇到了一些麻烦,需要在解决Android平台上opengles问题。
图:超级宝贝猪
08:40 起床。
09:10 煮早餐。
09:20 吃早餐。
09:45 计算机开机,打开我的MacBook Pro Retina。
09:50 看看公司的信件。
10:00 上网打开TestIn,因为我使用它的平台测试Android上的问题。
10:05 看logcat打印的的结果。
10:10 开始Google搜索这些问题。
10:15 打开Facebook。
10:17 看到朋友给我一个信息,说opengl的纹理需要为2次方的宽高,具体原因是因为显示芯片的支持。他给我的文章上面写到一些新的芯片有支持非2次方的纹理,但很多芯片不支持。
10:20 用google找相关数据,在stack overflow上找到一些相关的文章,然后修改,丢上TestIn测试。
11:00 看结果,结果还是失败。
11:10 开启d3,开始打电玩。
12:20 出去买中餐吃。
13:30 继续开始google搜索。
这时候在stack overflow上搜索到一段代码,说可以使用。
setEGLConfigChooser(8, 8, 8, 8, 0, 0);getHolder().setFormat(PixelFormat.RGBA_8888);
这段代码强制设定GLSurfaceView为RGBA_8888,修改后上传TestIn。
14:00 上TestIn看结果,发现Google nexus7可以正常显示游戏画面了!但其他大部分机型还是不行。好吧,至少有进步了,多一台可以用!
14:10 继续谷歌,不过这次啥都找不到。
15:00 累了,沮丧了,不搜索了,开d3刷宝。
16:30 结果d3刷宝一样黑,啥都没打到。
16:40 整理衣服,出发到健身房去。
17:00 拉筋暖身。
17:10 偷看一下韵律教室中有没有辣妹,嗯,发现有一个爆乳妹子。总算多少消除了找不到问题的不满。
17:20 开始做腹肌训练,仰卧起坐,抬腿,两个为单位一组,做三组。
18:00 开始做重训,今天打算做背部,手臂,大腿。
19:00 进飞轮教室,踩飞轮了,一边踩一边心不在焉,想着这困扰好几天的问题。
19:40 突然想到我好像有在哪边看到2次方的相关代码。
20:00 下课,去泡三温暖,一边泡一边想我是在哪里看过这种代码。
20:20 我好像是在iOS的某段原码上看到这段代码。
20:40 回家。
20:45 开计算机,找代码。
在Apple提供的Texture2D.m中找到了一段:
width = imageSize.width;if((width != 1) && (width & (width - 1))) {i = 1;while((sizeToFit ? 2 * i : i) < width)i *= 2;width = i;}
嗯,Apple提供的代码中居然有这样处理纹理的宽高!修改一下改到我的引擎CloudBox中。然后放上TestIn。
21:00 打开testin,看结果,太棒了,终于几乎所有的机型都有画面了!
21:10 开始打包新版本,一个一个上传应用市场:Google Play,安卓市场,机峰,小米,安智,魅族,应用汇等等。
21:30 整理代码,commit+push到我的git server。
21:50 升级修改CloudBox,commit+push到git hub跟我的git server。
22:10 可以休息下了,带狗去散步。
22:40 开d3,继续刷宝,果然问题解决了就顺了,一场刷到3个暗金。
00:30 刷牙睡觉。