盗賊の極意

Feed Rss

学新知识,最好是看教程,然后看实例。我知道的,但从来都不肯遵守,当然也付出了与之对应的惨痛代价。

 

我最开始学编程,跟大多数人一样,是在大学课堂里。那时候完全没有基础,除了看教程还能怎样?幸好我的性格和编程很和,入门很顺利,积极性得以完好保存,还小有增长。

一年之后的暑假,我决定挑战游戏编程。当时我学得最好的是java,就找了一本用java做游戏的教程学了下去。那时候每天上午在烈日下走一小时去图书馆看书抄代码,晚上回家把本子上的代码输入电脑编译调试。这过程虽然略显艰苦,但每天重复,也就习惯了。

 

每天看一点点书,晚上回家实践,这样慢慢推进,是我至今为止评价最高的入门方法。可惜现在会一点儿了,反而没法像原来那么安心了,总想找捷径,找最好的入门教材,最新的api,最受认可的示例,最佳的开发框架,结果大量的时间耗在寻找和分析上,入门本身反而被搁置了。这就叫,分析瘫痪吧。

 

除了“按部就班”和“分析瘫痪”,我还有第三种学习模式,就是先确定目标,然后为了实现这个目标而学习周边的知识。这也是一个效率比较高的学习方式,但作为入门方式来说有点太急躁了。我在这种模式下入门成功的例子有lua,shell命令。其中lua因为简单技巧就满足了我的目标,结果导致我至今没有掌握metatable等等lua精髓的用法,比较遗憾。shell命令我现在也是用到了现查,我觉得大家应该都是这么入门shell的吧(有人真的买一本shell入门,然后从头看到尾来入门吗?)。

在这个模式下入门失败的例子,或者说还没有顺利入门成功的例子有:cocos2dx,pomelo框架。cocos2dx连我自己都感觉到我太急了。因为我写了一辈子2D程序,也知道这个领域本身难点很少,所以是以一种非常自负的态度去学的。起点高当然要求也高一点,我要自己直接找到最能合理使用cocos2dx的开发模式,而不仅仅是实现功能。这下可好了,要最优就要充分理解,结果战线拖太长,热情受损严重,还没能保底“学会实现功能”。不过我也要讲讲我的借口,就是cocos2dx的接口变动频繁,没有完善的文档和入门教程。因为我追求最优,想直接学习最新的api,所以对仅有的一点点教程也很挑剔,文档又不全不新,跨平台和浏览器游戏编程又是我很陌生的全新领域,各种问题纷纷浮出水面,围攻我的学习热情,现在热情已经出现问题,不足以支撑我以高速学习状态前进了,可惜。

pomelo的入门虽然有点慢,但其实还算是顺利,之所以归类为“还没有顺利入门”,是因为还没有用pomelo作出什么作品来,不足以证明我“已经入门了”。cocos2dx和pomelo都是我下一个demo里需要用到的新知识,本来我想先学好cocos2dx做个小客户端,再学pomelo做服务器端的。照现在看来,可能命令行服务器端会先完成也说不定呢

这个月开始进入一个手机游戏的服务器端项目组,1月份开始,2月中旬就要完工,有意思。

本来我还跟笃志说我没有服务器端开发的经典开发框架的知识,这下好了,直接要给我来一套完整的服务器端开发经验套餐。只能说,我又一次收到了上天的眷顾。我曾经无数次发表过“在扭转人生级别的大事件上,我运气太好”的观点,现在又一次应验了。不知道一路引领我到今天的这份运气最后到底是想把我带到哪去,不过反正你既然给我了,那我就高高兴兴地收下,然后尽量不辜负这份幸运背后对我的某种“期待”吧,如果有的话。

 

心理障碍已经克服,既然接受了“服务器端程序员”这个立场,接下来就可以一边安心看公司在用的php服务器端框架,一边慢慢读node.js的pomelo了。

今天听说玉兔登月了,有点好奇评论区持什么观点,于是打开久违的新闻网站看了起来。结果有点意外,从最近一周甚至最近一月的新闻关注排行榜上找出最受关注的有关玉兔的新闻,评论参与人数也不过寥寥1w而已,有点失望。之后漫无目的的把窗口拖至网页下端,结果被推荐区里一条《李嘉诚红颜知己周凯旋:究竟特别在哪里》吸引了过去。通篇读完,不由得感慨,强者的魅力,无关男女。

 

周凯旋

周凯旋并不是出身财阀家族。不过毕竟是生在商人家庭,中学入读富豪云集的一流女校。在校期间积极参加社团活动,而且是学生会会长,在校颇有名气,深得学妹仰慕。

高中毕业的暑假去电台实习,实习结束后在昂贵的高档场地请电台同事吃谢师宴,对与他人“关系”的重视之早,策划之妥当,可见一斑。

年轻时的周凯旋结识了很多对她有很大帮助的人,其中很重要的一位是张培薇。据介绍,她当时喜欢周凯旋喜欢到“搬进周凯旋的家做闺蜜室友”,之后也合组公司,还帮助她认识了周凯旋之后人生路上的两个贵人——家族企业掌门人、香港行政长官董建华,以及今天看到这篇新闻标题中提到的李嘉诚。

再后面就是她低调做事,保护自己作为“合伙人”的立场,不依附于任何人的女强人事迹了。

 

整篇文章中我比较在意的事有两点:


1)她学生时代已经很注意与人之间的交往,做事有目的,而且能够达成。

想我在中学时代,甚至直到不久以前也一直把提高个人技术(中学时是解题能力)看作唯一要务。不过到现在工作了大半年,我已经明显感觉到有一种“做成事”的能力,它和做这件事时所需的具体技术细节并不十分相关。我以前一直很轻视的“学生会”、“社团”,都是可以磨练到这种能力的地方。其实很久以前我就非常频繁地看到听到人们讨论这种能力,但我还是经历了如此漫长思考,才终于认同它的存在。这种感觉就像我第一次领悟2D游戏开发的节点框架,第一次读过设计模式,第一次参观过豆瓣搭讪小组时的感觉一样,夸张点说就是“看到一扇通往新世界的门,在我面前打开


2)她被人喜欢,喜欢到有同性愿意搬去和她同住,做室友。

我离开大学还不算久,对室友这个词还很亲切。大学时代的室友现在都是我极致亲密的好友,虽然离得很远,但随时可以打电话骚扰。与人成为室友,最后多半都会产生如此之深的羁绊。周凯旋让她的朋友喜欢她喜欢到想和她这么亲密,这真的是让我羡慕佩服到五体投地的魅力。我想象了一下我想和谁成为室友,想来想去还是大学时代的那些好友吧。虽然在大学之前之后也认识并喜欢、欣赏过很多人,但要达到想和一个人做“室友”的程度,至少我要知道这个人在日常生活中不容易生气,至少不生我的气,不会翻脸,安全可靠,对我的生活也不会做过多干涉。在这基础上,我们还要有比较接近的道德观价值观政治立场,有一些共同的乐趣爱好,最好有一些可以一起努力的目标,有些可以一起参与的活动……怎么感觉好像在讲我的择偶观

总之周凯旋作为一个被人拿择偶标准来衡量都属合格的人,难怪会得到众多贵人提携。至于“红颜知己”这个称谓也不算是乱扣,毕竟是拿择偶标准来衡量都过关了的人,异性与之交往时很难不动心吧。

 

希望我今后也能成为让别人愿意做我室友的人,我也会为之而努力的。

断断续续花了两天时间,终于成功编译了pomelococos2dx客户端示例的windows平台示例。但还是无法用按键输入。

开局这样就不错了。今天争取在android上也成功运行这个聊天室,我就没有遗憾了

开发小组里现在算上我只有4个人,可谓完全没有“小组”的氛围,只是一个平均每人每周只说一句话的死群而已。不过项目才刚开始,连我都还在扫清技术障碍阶段,还能怎么苛求别人对我的项目有热情呢。反正我相信,等项目步入轨道,至少有一个可以实际操作把玩的demo以后,大家的热情就会上来了。

今天准备给开发小组建一个svn,可能的话也想要dav或ftp,也算是利用一下这个每年100多美元的服务器(遇到我们这么不会折腾的客户,dreamhost真是赚死了= =)。

最近在看网易的pomelo服务器框架。(这已经不能算是cocos2dx入门了= =)

下载直接运行hello world, 聊天室和捡保的实例都通过了。捡保在我这里测试,客户端出现服务器心跳超时的情况比较频繁,游戏基本上撑不了2分钟吧,不过还是很开心。毕竟是第一次接触服务器端,这样已经很不错了。

我仔仔细细一行一行读过的代码只有那个hello world。聊天室的做法大概能想象得到,捡保估计有点大,还没看。

先说明一下,这个cocos2dx入门系列是为了做一款桌面卡牌游戏《暗影猎人》的手机游戏而开的,所以我对服务器端的期望就是让我能跑起来卡牌游戏。

目前我看到的pomelo部分都是一问一答,类似网站ajax的模式,像卡牌这种需要保存一些临时状态,需要服务器端计算很多逻辑的游戏应该怎么利用pomelo来写,我还是没有头绪。或者说我对游戏的服务器端逻辑怎么写完全没有头绪= = 啊~啊,好想看个简单的游戏服务器端示例,赶紧入门过了这关呀~

服务器逻辑没头绪,把我整个开发计划都给卡住了,最近晚上回家也不看示例文档,不想游戏框架了。这可不行,不能自暴自弃啊!

按理说,这会儿我应该是先继续看pomelo,至少把入门文档看完。不过我就是耐不住性子搞这种事。学东西最快的就是实践中用到了自己不会的时候去学,不是吗?所以先强行写写看吧。毕竟我当年也是尝试去做过php网页版三国杀的男人(不过很快就搁置了)。开发这种事,只要有了热情,就没有不可能。

今天 在qq群里瞎聊,浪费了太多时间。以后不是很欣赏的群里,就不花那么多时间push一些想法了。

我本来是冲着找人一起做游戏去的,又不是因为想找人没有主题的闲聊= =。我还没那么喜欢和没有我欣赏的要素的人交往。

后来又看了一些gltracy写的shader自我激励了一下,平缓了一下心态。好,同志仍需努力,做练习去。

今天把pomelo的helloworld的客户端运行起来了,但是和服务器端的联通测试没通过。

熬夜一整个晚上,就这点战果,真是痛心

这两天做完了7篇一套的那个入门。以前看过一遍笃志写的cocos2dx的介绍,看着概念不多,也都很好理解。这次做练习主要是试一试怎么个跨平台开发法,算是达到目的了吧。

接下来准备看配套资源的生产工具cocostudio,还有我准备负责的网络部分,要看一个pomelo库的cocos2dx聊天室示例。

写UI是一件挺恶心的事,而2D游戏除了UI就没别的了所以,寄希望于cocostudio了。

今天看了教程的第二章,在里面意外地学到了如何让visual studio在每次编译完成之后执行一些后续命令。

教程里要执行的命令是xcopy /Y /E .\Resources\*.* $(OutDir) ,结果编译后执行失败,导致编译被看作失败。

琢磨了一下,应该是xcopy /Y /E ..\Resources\*.* $(OutDir)才对嘛,搞什么搞= = 


我至今没有什么正经的3D编程经验,这让我很着急。不过好处是2D这点东西我搞得很熟,看到接口就能大概想象到它的实现,用起来不会心虚。

欲速则不达,进展缓慢什么的就不要抱怨了,沿着路走下去迟早可以走完的。

今天修改了一下代码,总算是理解一次开发,跨平台打包的模式了。开发果然还是在vs里开发,很好。

ios版一直没弄,先走win32 + android路线了。

看官方教程,官方教我安装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里面重做了一遍。

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