bookmark_border有目标就出手啊,在这里矫情个什么劲儿!

据观测,我的学习生产效率最高的时段是坐在公司电脑前的时间段。
回到家就是上网玩游戏看新闻看博客查各种奇怪的知识和突发奇想,有lol就晃到3点多没lol就晃到2点多,然后睡觉。第二点早晨9点50起床急急忙忙赶电车上班。
最近开始有工作进来,在公司的无压力自学状态已经结束了。但懒散了一个多月两个月,已经习惯了早走(20点一过就走),丧失了后续的学习时间。
想回到以前和末班车同进退的生活吧,竟然有点怕,不敢了。
这种变化让我惊讶。
我才25,能耐得住每晚凌晨3点睡,正是拼命学习的好时候。现在受享乐情绪的控制,未免太早、太不是时候了吧。

肯吃苦,吃苦半辈子,怕吃苦,吃苦一辈子。

今天立贴为证,2014年2月(除影响到交通的极端恶劣天气外)的每一个工作日,我都要在23点30以后回家。

哪怕是赖在公司看新闻写博客,也不许回家

 

—- 02-17 —-

特别想回家,好痛苦。工作也不想做,设计自己的卡牌服务器端逻辑流程倒还是觉得挺有趣的,但这股消极情绪实在是很强烈。

上周五因为东京历史级的大雪而提前回家,今天又不能保证11点半,真是…

算了,自责是最不解决问题的。目前我的自信心问题比责任感问题严重得多。

这股低潮的理由我也许知道,不过无能为力。还是回家逛个超市,泡个澡,喝点小酒,看着漫画睡觉吧。《将太的寿司》,虽然给我看略显低龄了,不过还是挺有趣的

bookmark_border东西不多,常总结(很多服务器端进展,一点个人心情)

公司放我自由自在了一个月,收获颇丰。

现在已经用pomelo做了一个联机猜拳的练手服务器端,可以用chrome的javascript console命令行与之交互。

目前服务器端实现了

  1. 自定义用户名登录大厅
  2. 创建并进入任意名称的房间,获取当前存在的房间列表,进入还没有达到人数上限的房间
  3. 对房间内的空座位开启或关闭AI玩家
    AI玩家是用pomelo-bt 行为树做的,现在只会随便出拳,和人类玩家全离线时立即退出房间。
    顺便说一下,行为树听起来好高端,入门了一下才发现概念真简朴,自己实现一个也不难= =
  4. 开始游戏后有5秒读秒时间,在这段时间内有玩家退出的话游戏自动终止,大家回到房间(向war3致敬,兼提出我针对秒退的对策)
  5. 正式开始游戏以后,每个人可以出拳并随时可以更改手势。
    当房间内每个人都已经至少出拳一次时游戏结束,所有人回到房间。
    也做了可以玩3回合然后游戏结束。不过想了想做猜拳demo就是为了去掉游戏逻辑,锻炼写游戏大厅这部分,所以后来就没再改善过游戏规则了。
  6. 玩家因某种原因意外断开连接时,也会正确处理退出游戏,退出房间,退出大厅的逻辑。
    这部分其实都是pomelo的功能。不过让我知道了这里需要这种逻辑也就够了,以后需要我自己实现C++服务器端时我也会去做便于开发这种事件驱动型服务器的框架的。

客户端是cocos2d-x 2.2.2(好2!>_<),用上了最近刚刚加入引擎的cocostudio的gui类。哎——,用别人写好的UI控件真是幸福,想到什么就能立刻安上去,安上了就能正常运转。想我之前用SDL写游戏,其实大半都是在写2D游戏引擎啊。SDL除了个surface和blit以外啥都没有,我当时也年少无知,看了一个用SDL做的仙剑,就兴奋地决定我的C++入门之作将是一款SDL开发的2D游戏,从此,走上了自制一切之路。

跑题了。还是说我的猜拳客户端。客户端现在只做功能,不在意卖相。功能上是实现了输入任意用户名登录大厅,刷新房间列表,进入已有房间,还没有做创建房间的部分,开启或关闭空座上的AI开关滑块,开始游戏,出拳,还没有做退出游戏、退出房间、换座等功能,游戏也没有任何美术,游戏进程都是通过文字显示在屏幕中央。

 

接下来要好好收拾一下游戏的UI动画和游戏内各种美术元素。不是找美丽的UI素材,而是做出可以使用动态美术素材的各种美术类。

在公司做了几个月商业游戏的2D程序以后我感觉到,游戏系统其实好做,繁琐而困难的是那些难以归类、思路不统一、很脏很没有道理的UI动画效果。当然也可能是我至今为止一直在重系统清画面地做游戏,这方面没有得到很好的训练。不管怎么样,这次我要好好训练一下自己驾驭2DUI动画特效逻辑的能力了。我要设计各种花哨无意义的2D特效,以最华丽的外在美,来包装这个SB猜拳游戏。目标是证明“外在美才是真的美,内在什么的没人会在意”!

 

——– 文理分界线 ——–

心情方面,最近还是感觉在工作上显得很幼稚,很被动,不去主动为还没有定案的策划写代码,对工作没有热情。不过说真的,我对公司开发的山寨游戏的服务器端真是没兴趣(没错,我们公司在做国外热门app的山寨手机游戏,你让我怎么提的起热情 = =),不想浪费时间在了解这个工作上。这次的游戏是两个有一个手机游戏项目经验的前辈加我一个完全的新人来做。因为有责任归属问题,所以设计和客户端通信是交换数据的json内容和数据库的工作我不能插手,可这两个不定下来我的php逻辑就没法写。一开始我看策划草案挺简单的,这两个人又是有开发经验的,我的被闲置状态应该顶多一周就能结束了吧,结果这一闲就是一个月= =。我看他们这一个月几乎没写出多少东西来,好不容易出来一点定案,我都马上把php逻辑给他写好了,结果是我各种闲。一开始我还挺扭捏,不好意思在公司里看我的练手项目技术相关的东西。后来我也放开了,该上服务器上服务器,该开vs开vs,屏幕上都是和php无关的东西,一派死猪不怕开水烫的架势。万幸,倒也没事。

我想,今后制作我不喜欢的游戏将是我行业生涯的主要内容,虽然无奈,但也比做和游戏无关的工作好太多了,至少我练的是和我喜欢的东西有关的技能,等将来遇到了真爱,不至于拿不出真材实料,为她奉献。

 

关于工作之外,其实我们公司有一个不定期程序员交流大会,是一个程序主管一直在推的活动,可是每次都是没有素材,结果就成了各个项目组自我介绍和汇报工作进展的会议。最近开始有技术讲座了,可惜大家不是很重视,准备的人也只讲5分钟左右,ppt和我在研究室时花10分钟准备的早会ppt是一个档次。我跟我前一个项目的主程说我想参加,给你们讲讲用umdh寻找程序中隐藏的内存使用瓶颈的问题,主程也很高兴地说有机会帮我跟上级说说。不过其实我这个公司是个小型公司,上下级之间没那么远,我真的要讲完全可以直接联系那个主催的程序主管,他也绝对会高高兴兴让我讲的。让事情迟迟没有朝这个happy ending发展的人,就是我。我的被动的性格。怎么改,也许以后慢慢就会变主动了?也许,不会。

 

业余时间方面,这几个月是没有什么拿得出手的成绩的,可以说完全是在浪费时间。该业余时间学的东西,我在上班时间学得专注,到家了却跑去lol,夜夜打到凌晨3点。删游戏,安游戏,安游戏,删游戏。以前网速慢,删游戏还有一定的物理上的限制作用,现在100M光线入户,最后一道屏障也已被突破。能保护我的未来不被堕落侵蚀的,只剩我的精神立场。我那柔软,稚嫩,脆弱,敏感,理想主义,精神洁癖,难以控制的A.T.Field.

 

精神方面,依然是各种失态。有时候我觉得自己的情绪变得比较稳定了,结果下一次遇到事情时时还是很快闹起情绪,事后总结是我很久没崩溃是因为我很久没和人类接触了,接触就崩溃。对工作有怨言,对公司有怨言,对自己有不满,对亲近的人撒娇发脾气,对陌生的人不愿接近,个人能力有进展觉得是理所当然的小事根本不值得高兴甚至对自己和神的距离依然遥远而感到沮丧(即使理智想想能意识到这些进展放到另一个普通人身上能让他多么的骄傲自豪),反复咀嚼微不足道的小事直到自己觉得这是件值得焦虑的事情然后为之焦虑(这就是我在写这个自然段时所抱有的情绪)。每隔一段时间我就会搜索一遍“提高情商”,“智商弥补情商”,“how to improve emotional intelligence”之类的关键词,然后找到一些文章和维基词条,看到一些人说“谢邀。虽然我一直是个情商极低的混蛋,但还是让我来给你讲讲如何提升你的情商”之类的短文然后一阵恶心关掉标签页。最后意识到短文无法说服我,我需要大部头,需要我最善于吸收理解的东西:书,教材。然后就是找心理学书籍,下载心理咨询师教材和习题,然后发现这些pdf早已被我下过一遍,现在正躺在我的图书文件夹下等待检阅,然后想起来我上一次走过这一套心理变化和行为时也是到这一步收的尾,然后我这一次的流程也在这里收尾了。这是个可悲可笑的无限循环,我想,总有一天,我会去系统学习心理学,然后读一个心理学第二学位,或者至少考取初级心理咨询师执照。我读书考试很行,对这一点我还是有信心的。对于这种”总有一天“型的想法,我一度以为只是一时兴起的说辞而已,但最近几年我发现我一步步实现了之前的一些”总有一天“。我想,这是一种心理暗示,而我心理脆弱敏感很容易被暗示所支配,最终稀里糊涂朝目标走去,莫名其妙的实现了目标。如果事实真的是这样,就可以解释为什么我总觉得有一种”运气“在刻意帮助我。再进一步,如果我理解并掌握了这种技术,也就间接实现了自控力——通过控制可以控制自己的工具达到了控制自己的目的。听起来有点tricky,不够刚正面,不够精神强壮,但这又怎样呢,结果好,才是真的好嘛(笑)

bookmark_border我焦急而缓慢的学习方式

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

 

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

一年之后的暑假,我决定挑战游戏编程。当时我学得最好的是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做服务器端的。照现在看来,可能命令行服务器端会先完成也说不定呢

bookmark_border突然变成了服务器端程序员=w=

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

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

 

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

bookmark_border做事、做人的周凯旋

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

 

周凯旋

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

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

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

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

 

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


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

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


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

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

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

 

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

bookmark_bordercocos2dx开发入门(6)

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

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

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

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

bookmark_bordercocos2dx开发入门(5)

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

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

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

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

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

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

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

bookmark_bordercocos2dx开发入门(4)

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

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

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

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

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

bookmark_bordercocos2dx开发入门(3)

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

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

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

bookmark_bordercocos2dx开发入门(2)

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

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

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


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

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

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

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