认真你就输了

Feed Rss

看官方教程,官方教我安装visual studio的创建项目模板,可我下载回来的cocos2dx里根没有没有那个安装用bat。

上网查了一下是要用tools/project_creator里的python文件生成空项目。

上网查了一下用法,直接运行那个python文件加适当参数,结果出现了诡异的文件夹权限问题,文件夹删不掉了。用windows的python和cygwin的python都是这个结果。

上网查了一下解决方案,chmod 777 -R cocos2dx目录,解除权限限制。原来删不掉的文件夹也能删了,创建新项目也正常了,开心。

空项目里有各种平台的模板。先看了一个win32的,sln打开直接运行就是游戏画面,很顺利。

再去看android的。把项目导入eclipse,报错找不到cocos2dx的库。

上网查了一下,要把cocos2dx/platform/android/java也导入到eclipse里才能找到库,理由不详,反正不报错就好。

接着是不能运行,说Unable to execute dex: java.nio.BufferOverflowException什么的。

上网查了一下,有说改改配置就能修复的,改了该,没修复。有说下载一个support什么东西的可以修复,下了,也没修复。最后不得已,用了最大动干戈的办法,卸载了build-tool 19,安装了18.1.1,不报错了。

启动虚拟机,运行空项目,GLES崩溃。

上网查了一下,好像模拟器对GLES2.0支持不好,apk自己是没有问题的。于是拿平板来安装空项目的apk文件,正确运行,不过画面不拉伸而是剧中,嘛这个以后慢慢学。

在网上稍微扫了一眼,似乎可以让电脑的模拟器也支持GLES2.0,需要设GPU加速,还是什么x86模拟器啊,没仔细看。我想既然是跨平台,应该可以在win32项目下开发,然后发布到其他平台吧。毕竟用visual studio开发最顺手。

到这里,还不太清楚怎么个开发模式。如果是我在win32的项目里开发,完了把代码复制粘贴到android的空项目里,可那android方面的配置文件什么的怎么办呢。配置还是空壳的,源文件是win32项目里拿来的。如果我用了一些外面的库什么的,这怎么无代价移植到android项目里?

今天太晚了,凌晨3点半了都,就到这儿吧。

明天如果有机会,继续看那个从cocos2d移植过来的教程。

中文版:http://cocos2d.cocoachina.com/resource/show?nid=82

英文版:http://www.cocos2d-x.org/news/18

代码:https://github.com/flyingpacer/Cocos2dxSimpleGame

10月末考完托业,昨天考完日语,心里总算没什么担子了。

无事一身轻,于是开一个系列学android开发,为接下来的cocos2dx入门做个准备。

android的SDK和NDK我以前都过过一遍hello world的,可惜只有hello world是没有意义的,你看,这不都忘了么,结果还得再来一遍。

顺便吐槽一下android官方网站上的教程都跟不上自己的版本了,看得我一愣一愣的——怎么你说的界面就跟我的不一样呢= =

还好创建项目有eclipse插件,下载更新API有Manager,我跟着走就行了。

刚入门,尽量不贪多求快了。一步一步努着走吧。

今晚看了这个教程,把NDK的自带sample自己在eclipse里面重做了一遍。

我发现,博客园里的程序方面的文章,靠谱的比较多。不相关的废话不多,也不跟你客套,上来就是干货,我喜欢。

在家断网1个多月了,挣扎了几次,现在也渐渐平静下来了。

虽然浪费在网上的时间现在都用到了睡眠上,学习进度还是没有进展,但每天的精神明显好多了,在公司亢奋工作到晚上8点左右都不会疲倦。

嗯,但是学习没有进展这个有点苦恼啊。这样下去不就和高中时代的周末一样了么——虽然没有电脑没有网没有手机没电视,但也没有做事。

这个月重构做得太过火,导致后期加班严重,另外加班其实也不太出活,人少了就开始聊天了。每天到家11、2点,磨蹭磨蹭一两点钟睡觉,睡到9点多也没睡满8小时嘛。

人家柳比歇夫一天睡10小时还是能保持超高的效率,我也觉得问题不在睡眠时间过长上面。

慢慢想吧,想到想通为止,想到能说服自己行动为止。

最近没网,脑子闲下来的时候多了,感觉在家的时候也没那么忙,生活开始变得安静起来了(虽然我在家时都是放音乐的= =)。

网费照付是有点心疼啊。初步预计断网状态会持续到12月初,还有一个多月。为了缓解心疼的症状,我准备把NAS也运到亲戚家里去,和我的WiMax团聚。然后把那个3G卡退了?如果感觉自制力够强了,也可以拿回来用,毕竟不能给家人朋友打skype是有点不舒服的。

NAS和WiMax团聚意味着我可以远程控制NAS重新下载东西和传文件什么的,还有私有云。嗯,要是有时间折腾的话也想设一个git什么的,但是鉴于我的NAS有过1500G硬盘资料全毁的恶劣事迹,而我现在手头又没有双仓NAS可以组raid,代码仓库什么的还是算了吧。我生产的数据和我下载的数据的重要度可是完全不同的,丢了我承受不了。

其实真想玩linux的话,本地可以自己装,远程可以用D-Horse和hacklu的服务器甚至VPS,自己折腾NAS实在是没什么意义。但是,其实,咳咳,我有一个梦想。

I have a DREAM.

事情是这样的。我家长辈的电子设备以前都是由我维护的,现在我不在身边,跟他们的联系变得很不方便。我希望给每家配一个NAS,这样有什么想给他们推荐的电影电视剧什么的不用每次都远程协助,可以直接下进他们的硬盘里了。还有一些家族照片,可以用NAS在关机后慢慢同步,这样再大的数据也可以同步到各家的电脑里。关键是这些都可以由我代劳,这个非常重要。对长辈来说,把照片从SD卡移动到电脑里都是一个没有远程协助就难以完成的艰巨的挑战。我认为,与其现在要长辈们去学习电脑的用法,我宁可全部为他们代劳,他们只要会看就好,可以享受到科技带来的好处就可以了。本来回国那一次我还想教会他们用微信,为此还录了高清操作讲解视频,但是姥姥的听力已经下降,听不清我视频里的话了,我走了以后他们就再没用过微信(我是不是应该去学一下后期制作,给视频再配个字幕??)。

总之,用NAS抹去各家电脑的操作难度就是我的梦想。不过这需要一些自动化的辅助,还有姥爷家的网通网络在NAT后面,要连上NAT后面的NAS,需要一些穿透内网的办法。至少要让我能ssh登陆内网的NAS,最好是能访问NAS的http管理页面。这个我在我订阅的一个叫做“依云”的博客上见到过,当时没仔细看,等有机会尝试的时候试试看,好象是写个脚本就可以了。


午休的日志时间结束,回去上工咯~

月初夹带私货,往公司代码库里写了一堆UI基础类的恶果开始显现出来了——我的开发进度落后了。

不过还好,明天的开发截止日期之前可以完成。开发截至后还有一周的缓冲时间修改bug,嗯嗯,这个月就这样吧(汗)。

我主要想说的是,这个月我的工作量(被我自己)变大了,加班到深夜的次数也增多了,也大概搞清楚了每个人都什么时候回家的了。

是的,以前我是尽量不加班的,19点下班我就象征性加1小时左右到20点就走人,如果能走的话。所以我都不太清楚大家每天加班到什么时候。

这个月看来,除了大家都加班到很晚以外,我也知道了坐我旁边一个年轻人每月的加班时间总量之大——每天22点以前基本不会离开,周末出勤很频繁而且周末也是干到22点多才走。看得我那个惭愧啊……

但是,说实话,他给我的印象并不是很强(失礼了…)。

在我接受过场动画以前,他负责过这个部分。

我“把excel改造成脚本语言”的过度设计固然不好,但确实让过场动画的编辑更加灵活了。

他负责时是使用excel数据表格把每一帧的各种数值写入表格内直接取用,这样要编辑和修改起来代价太大了,而且很难直观地修改一些连续变化的数值,角度之类。

加上每一个过场动画都要重新编写专门的一组函数和变量,所有的过场动画用函数和变量都堆积在一个巨大的gamemain类里(gamemain类:高峰期超过1.7w行,管理着进入游戏战斗画面后所有的switch case分支和各种状态的巨兽类,持有数百个变量,超恐怖…)。

这种场合,直觉上应该是把过场动画的处理独立出去,尽量不要再向巨兽体内堆积代码了才对嘛。

……好吧,程序员普遍会高估自己低估别人,我自己也觉得这么写不太好,不是很对头……

我想说的是,这位同学投入了远超别人的时间在工作上,工作也确实都能按时完成,但我还是觉得这样不太对,对自己手艺的提高效率不特别高。

大家都很努力,但每个人的水平还是有差距,而且这种差距肯定是在今后越来越大的。

希望我自己也能注意,拼工作量之于,也要想一想什么样的工作方法可以拉开和过去的自己的差距。

7个月,我留在原地的时间,有点久了呢。

进公司以前我也算是也过一点程序,也跟人合作写过游戏,但都是我一个人负责全部程序部分,程序的读者和作者都只有我一个人。

我当然知道代码是写给别人看的,但至今为止那个别人也就是几天、几周、几个月、至多几年以后的我自己而已。

一些我想出来的框架被用在我的多个程序中,是对我来说印象很深的东西,这些结构放多久我都不会忘。这样每次都建立在之前的基础上进一步添加功能,让这个框架越来越灵活,越来越合理,同时也越来越复杂。

证据是,这个框架我用着是越来越合手,但越来越不知道应该怎么介绍给别人了。写篇文章讲也许还好,只用注释想解释清楚就有点麻烦了。

在公司工作一段时间,免不了要读要用别人的代码。只用它一两个函数的还好说,要我系统地读整个类的设计思想我就犯懒了。这种时候一个常用的借口是“反正理解了也是只能在这家公司用的东西,也不知道设计的好不好,要看也应该看些开源框架,学习在哪里都用得到的知名框架才对”。现在想想,公司别人看我实现的UI框架的时候,大概也是同样的心情吧。

这个心情我倒不觉得有什么不好,毕竟公司很多程序是赶时间做出来的,大量代码是复制粘贴而来,或者是实现目标就好,完全不考虑复用的一次性类,从它们中学到东西的收获很可能抵不上读它花费的代价。

但是我写的是UI框架啊,别人不读不去理解我提供的虚函数的用法那不全白扯了嘛!

怎么办,怎么办。我想继续增加新功能,设计自己的美术资源异步初始化流程,但流程中子类独有的资源要子类理解初始化流程的基础上小心地控制bool flag才行。嗯……先看看这里能不能简化一下吧。

可是如果子类需要两段、三段异步初始化怎么办?简化掉以后这部分就要强行覆盖框架类的一部分函数才能实现了,这个人家更不敢用了啊。

嗯……总之,午休结束了,下次想到什么以后再写吧

失败一次很正常

10.18.2013, 3 条评论, 未分类, by , 2,066 views.

我有过很多个人项目,但没有一个走到终点= =

流程一般是这样的。

我突然有了一个想法,然后身体里瞬间产生了强烈的实现这个想法的欲望,强烈的欲望,有种体内压强增高,身体紧绷,要向外膨胀的感觉。

我列了一个单子,大概是有哪些技术问题需要克服,有哪些模块需要实现,模块的轻度细分,等等YY的东西

这时,如果我的强欲还没有消退,就可能进入实践步骤,开始编写粗略的框架,然后找一个可以看到的目标,拼命的走到目标实现那一步。我想做的多半是游戏什么的,有界面,所以能“看到”那个东西是一个很清晰的里程碑,这个方向很明确,所以这个步骤的成功率还不错,挺高。

现在,如果我的热情依然有所残存,大概就会系统地计划今后的步骤,还有重构整理之前凭着一股热情快速写成的粗糙原型了吧……好吧,我已经好久没有走到这一步了。


在过程中,如果我的热情消退了,我就认为自己坚持不了一件事,自责一阵,然后把代码搁置,然后,基本上就不会有然后了。

今天看逆向小超人阿姆罗的博客,又被励志了一下。你看,人家大牛不也是冲一轮没能到终点嘛,但是人家还有第二轮、第三轮啊。

嗯,今后朝这个方向多想想吧。

午休结束了,写不了太长= =

代码重构是个很好听的名义,基本上是道德制高点、正义之举的级别,所以每次当重构成为选项之一的时候,我都极其倾向于重度重构,甚至推倒重练。

不过现在我参与的工程规模越来越大,重构难度越来越大,不能随便就搞大重构了,但我还是在尽量寻找机会整理眼前的代码,别人的代码,我的守备范围内的各种代码。代码洁癖已经养成,看到复制粘贴的混乱代码就手痒,真希望我未来媳妇整理房间的热情能有我整理代码热情的至少一半吧(笑)。

不过话说回来,重构真的很花时间,对工作进程影响略大。这个月我在做的一个工作就是这样。

这个月我看我们游戏项目的2D界面至今没有一个UI框架,每次都重新写各种基础逻辑,尤其那种点击一下就消失的半透明蒙版啊、四方形按钮什么的,看着它们被一次又一次的重新实现,我整个人都不好了。

把散乱在一个类中各处的UI逻辑整理成可复用的各种UI组件,这看起来是正确无误的判断吧,于是我就跟着感觉重构下去了。结果越做越开心,基本把自己平时写游戏时用的那套简单的UI基础框架都挪到游戏项目里来了。

动作太大影响范围就会大嘛,所以到框架大概成型后的调错过程就很枯燥,很漫长。

其实公司自己有一套和2D显示相关的框架的,但那个是单个显示单位的框架,比如一个图,一个2D动画过程什么的,属于比UI组件小的单位。那个既有框架里功能还挺多的,但我写自己的框架已经来了兴致,跟没没兴趣去了解那个只有公司内的这一个游戏在用的私有框架。结果我大概了解了一下它的创建读取和释放,显示非显示,位置设定和优先级设定之后,就拿着这东西去拼我的UI组建了。

昨天写道23点多,身边仅剩的几个人已经进入聊天状态,我也累了,就上前炫耀了一下我的战果,说原来那个框架功能不足啊你看我给补上了哈哈哈哈。结果原2D负责人现在我直属上司突然情绪亢奋,凑上来问我哪里功能不足,我说了几个部分,他表示这个有稍微曲折一点但是用既有代码也可以做到的解决方案。我想那套既有代码里有他贡献的一部分代码,说老代码的坏话他肯定不高兴的。不过知道我重复实现了一些已有的功能对我还是有很大打击。回家的路上,我开始想,这次为什么做得不对。

重构是大义,应该做的。这次的问题是出在写出了兴致,开始过度设计了。在我把自己的框架移植过来的时候,其实我已经不是为了解决,而是为了写一个漂亮的框架而在写代码。这对自己学习来说也许有点意义,但是在公司做这种事就比较理亏了。

以后注意吧。在工作领域,快速完成工作是第一优先。


不过这样也无法阻止我继续在工作中寻找提升自己技能的机会的!

在公司工作,总怕被分到“体力活”,因为担心对自己没有帮助。

做一些针对公司内部专用格式的资源文件的处理程序时,也力求做到类本身可以复用,可以泛用于任何私有格式。

解决问题之前首先会花大量时间在网上查清楚每一个具体步骤,力求第一次就一步不错走完全场,否则就极其抵触乃至恐惧,最终无法付诸实践。

追女孩时混都还没混熟呢,就开始希望自己是他的最后一个男朋友,想着跟她结婚生活的种种可行性。感觉可能走不到最后,就不愿意放手去追。

自己的代码重构了再重构,越来越漂亮但是始终无法抵达终点,将之完成。

想锻炼自制力于是给自己一些一定要坚持的课题,但最后都以坚持这个不是有意义的事,浪费了时间为由堂堂正正的放弃……

最优,正确,美好,有意义,一次成功…这种在理科学生时代助我披荆斩棘的行为倾向,现在却领我进入了一个永远不能成事的尴尬处境。

“生命不是赛跑而是要看路边风景”什么的,当然是听了不止一次,我也很认同。但是这点鸡汤级别的东西还不足以动摇我这么多年来磨得坚固无比的固执倾向。

其实在披荆斩棘的学生时代,我就已经意识到自己不能完成自己设立的计划的问题了。比较明显的情况就是周一到周五有人逼着学习,所以效率很高,周六周日没有压迫就没有行动力了。

说“压迫”有点饥不择词了,应该是没有……没有什么呢,没有截止日期近在眼前的那种紧迫感吧。

我不喜欢完不成事的人是没有“压力”这种说法。研究生时代我被每周跟老师见面汇报进展的事情压得满地打滚痛哭流涕,每天给家人打电话吐苦水解压,最后已经发展到每周都需要心理咨询的程度。

但即使压力大到这种地步,我还是不肯在平日看哪怕一眼的论文,写哪怕一行的代码。

当时的我,已经完全陷入了逃避模式。我每天生活的目标,就是等待毕业论文截止日期的临近,近到让我开始着手去写论文。

能给我这种大到让我真正心理崩溃了的压力,一定是因为那个教授是个非常不通情面地刻薄批评学生的严厉的人的关系吧?

完全不是。正好相反,她是一位温和到让的我世界观不得不重做调成的好教授。我跟人介绍我教授的时候常常说,她对我好到我将来如果结婚了,一定要邀请她作为贵宾参加的程度。

面对我空洞的进展报告,甚至当我连空洞的进展报告都提不出来的时候,她还是笑着跟我讨论怎么能做出进展,一次都没有生气。事实上研究室的博士生们也表示从没见过教授生气的样子。

人不生气还不算太难,她要是对谁的事都不上心不动气那也就不会生气了,可这位教授真的很替我考虑。虽说作为学生的教授她有保证学生能毕业的责任压力,不过那种替你担心的感觉和催你不要给她添麻烦的感觉我还是分得出的。

有点跑题了。我想说的是,那种天塌了一般的巨大压力是我自己给自己的。

正因为我的教授太好了,我非常迫切的希望做出伟大的研究成果,成为一个值得她骄傲的学生。不过依我的经验来说,这种要做出“伟大的”、“了不起的”东西的完美主义心情一旦出现,事情多半就会朝着很糟糕的方向发展。

能贯彻自己的完美主义的话问题就不大,不过追求完美但又控制不到自己,那接下来就会进入恐怖的“拖延地狱”。

拖延最大的杀伤力来自于自责。偏偏我有时候就是超喜欢在自己身上找原因,极其容易过度自责的人。

自责了嘛,对自己的自信心就会下降,然后完成任务的自信也跟着下降,然后就放弃了。通常大概就是这么一个套路。

我想中断这个毁灭世界的连锁反应,所以琢磨了一下哪一环最容易突破。

1. 不再自责

2. 自责但不让自信心下降

3. 对自己自信心下降,但不让自己做成事的信心下降

4. 没信心也不放弃

改变说起来容易,做起来很难的。尤其是没有这种基因,体验不到这种心情的人,只会轻松地说一句“想做就能做到”什么的,就好像高个子跟矮个子的人说“想长高就会长高,你可以的”。

心理改变也不是完全不会发生。那我就希望自己能在第0步的地方——不再许过于完美的愿望,做庶民级别的地味计划——开始,尝试改变吧。

还是赶紧把内存追踪流水帐贴出来,赶紧完结掉,好开始写之后的日志吧。

经过了百无聊赖的8月,9月初公司终于给了我一个新任务——找出现在正在开发的游戏中的内存峰值的出现位置,然后想办法解决一下。

上司的意思是,这是个体力活,你在源代码各处看看都哪里在读取2D3D资源文件,数数看大概用了多少内存,可我当时听到这个任务的时候心里想的是“这个活儿NB啊,我要做内存分布追踪工具!”

不是我好高骛远,这里确实是这个道理。你看,我们副部长搞那个精简分散内存开支的活儿已经不是一天两天了,他都搞不定,我们下面的小喽罗想凭运气找出这个内存瓶颈就更困难了,何况我还不了解各处是以什么习惯在申请和释放内存(比如说,每次用之前申请用完释放,还是进入界面前一口气都申请了,之后就不管了)。

反正就是这么回事。开工吧。

先在网上搜了一圈,大概看了一下内存用量追踪的做法,然后锁定了这篇文章 《Monitoring Your PC's Memory Usage For Game Development》。不仅是内存使用量侦测,而且正好是应用于游戏开发,内容难易度也在我可以理解和实现的范畴之内,开心~

 

『当初我庆幸自己一下就找到了实用教程的时候,还没有想到之后的路会这么的难走……』