云风的blog BLOG: MMO 的排队系统

您现在的位置: -->
--> 服务器排队系统的一点想法
服务器排队系统的一点想法
&&&&今天突然想到的,先记下来。
&&&&以前考虑过这个问题,写过一篇
。我今天想到,其实可以把排队完全独立出来。和原有系统分离。这样,所有不支持排队的游戏系统,只要简单加上就可以用了,不用对系统结构做大的调整。
&&&&想法是这样的:
&&&&游戏系统需要估计自己的环境大约可以支持一定时间段多少人可以进入。这个用来估算每个新用户的大致等待时间。
&&&&游戏系统采用一个以时间为演算因子的序列 key ,用来做进入的验证。只有持有这个 key 的用户才认为是经过排队的。允许进入。
&&&&排队服务器独立安置,当用户直接连接游戏服务器遇到拥堵时,服务器简单记录他的用户名,和等待鉴权的口令,然后让其去排队服务器排队。如果用户再次连接上来而没有经过排队。因为有用户名记录,所以可以在帐户信息里做记录。之后的处理就比较简单了。
&&&&用户的这个流程(先尝试游戏服务器,再被转到排队服务器,并不可以二次尝试),这个过程由用户 Client 保证。用户不修改 Client 是不会违规的。游戏服务器只是记录那些用异常手法插队的用户。
&&&&在排队服务器,首先向第一次进来的用户发放序号,以及通知大约等待时间。并记录用户的用户名,以及一个等待鉴权的口令。用户则可以离线,由 Client 等待指定时间再上来排队。为何要提交鉴权口令?因为要防止有人恶意冒充插队。当排队服务器检测到用户不守规定不在规定等待时间内重复尝试,则回头鉴定用户是否的确是本人,而后再决定在其帐号里做违规记录。
&&&&等待用户快排到了,则可以向排队服务器保持长连接,直到排队服务器发放进入游戏服务器的口令。他就可以离开队伍,前去游戏了。
&&&&这样做这个系统,可以让排队系统和游戏足够分离。便于开发。不受游戏服务器的构架变换影响,也更容易部署。
觉得文章有用?立即:
和朋友一起 共学习 共进步!
我们猜你喜欢:
作者:&&&&来源:
发布时间: 13:28:11
我们猜您喜欢
扫一扫订阅我的微信
近3天十大热文
& 2009 - 2014 本页面所有内容,转载请注明出处 站长@经过数个月的沟通,丁终于理解了我的决定。在杭州 7 楼尽头的 CEO 办公室里,我接过了老丁送给我的一盒月饼。我给他分享了我最近在野外攀岩的一些视频。老丁打趣说,今天,Jobs 退休了,你也退休了,我还得坐在这里。
2011 年 8 月 25 日,我的离职申请上签上了丁磊的名字。
在网易 10 年半了,和一帮网易的兄弟们相聚甚欢。2001 年 4 月 8 日,在广州 36 楼办公室办理入职手续的镜头仿佛就在眼前。我甚至还记得当时办公室的摆设。那一个个鲜活的人还坐在那个位置,我记得前台的金鱼缸,入门处的植物,办公室的落地窗,窗外环市中路上火柴盒般大的小汽车。
接待我的 mm 学艺,应该还在公司吧?她帮我租的房子住的很舒服。安静的旧楼藏在街道深处。房东两位老人很和蔼。清晨的阳光照进主卧,窗外是一片绿色。
公司的快餐是订的楼下的蓝与白,12 块的人均标准可以吃的很好。在休息室里财务部门的美女们热情的和我聊天。嗯,八卦新闻总是很多。那时,我在大家的眼中估计是个初入社会的大孩子吧。
人生就这几个十年,我珍惜这其中的点点滴滴的时光。和朋友们聚聚散散,不曾想过自己离开的情景。但天下无不散之宴席,能够这样开开心心的分手,也是相当难得之事。
我对身边的人充满感激。网易是家非常不错的公司。我们一起做成了一点事情。这和与之奋斗的所有人都分不开。丁磊,叮当,都给了我极大的信任和支持。私人交情上,我们也有相当的感情。我与网易的情谊难以割舍。不同的人,即使有一些理念差异,也能求同存异。我认为他们的不同时期的不同决策在特定角度都是正确的。我也感谢网易这个由大家共同建设起来的平台,虽说总有些不尽人意的地方,但我认为在各位的共同努力下,已经做到了能够做到的足够好了。
这次离开,是我个人最近一年的愿望,思考了很久,并非因为人。先前也担心被误解,全程都在很低调的推进。最近突然在网上传出各种消息,让我领略了信息传播中的失实。我们都知道一个游戏,让一队人排队口头传递一个故事,当传到最后一位时,已经完全不偏离了最初的事实。让我觉得有必要做一点点澄清:
10 年前的今天,我在广州 36 楼办理了入职网易的手续。
这些年陆陆续续写了很多,原本计划在今天总结一下,突然又没有什么感觉了。入职第一天,肖海彤是我的引路人。他私下跟我说,我们没有那种灌输式的入职培训,我知道你也不喜欢那样。很多企业都喜欢那种洗脑式的培训,网易还没有。不过员工手册可以拿去读一下。
多年之后,我在杭州。阿里巴巴是我们的邻居。屡屡听到有入职阿里系的同学说起他们冗长的入职培训,我脑子里总会闪现出“洗脑”的字样。但是念头挥之而去,我知道这是个可笑的想法。如今,我们的新人培训也有至少两天的课程了。如果是毕业生,还会安排拓展。我在广州也做过拓展的领队,那次基本上大家觉得辛苦的运动都会推我上去。当领导的话,必须身先士卒。如果你不愿意做的事情,怎能要求别人去做。写到这里,我想起了莱因哈特。
无论做何项目,我都不希望那个主持大局的人只是指手画脚。如果是程序员,那么就应该保持贡献代码,而且是超出整体质量的代码。这么要求,或许有些固执。但我偏执于坚持对那些付出努力坚辛只为了有朝一日摆脱当下状态的人保留一丝轻蔑的态度。所以,当有不熟悉的同学问起,“你现在还写代码啊?”,我只是一笑,“当然写,三天不写就手痒了”。如果有更多任务要完成,我会分出工作以外的时间去做。而不压减编码第一线的时间。
今天晚上 18:00 准点去一楼食堂吃饭,结果队伍排到了门口还打了个圈。花了 20 多分钟才领到口粮,回头一看,队伍并没有减短。看着前后都有同学抱着 PSP 狩猎 MHP3,我有点后悔没把 PSP 带下来了。
从这几天的经历来看,我们公司食堂的处理能力应该是够的。从 17:30 到 18:45 基本能处理完 600 号人的进食问题。也不能完全怪发放食物的带宽不够,经过一个月的观察,这部分可以优化的余地不大。而且我认为优化的意义也不大。
那么怎么才能减少这么多无谓的排队时间呢?粗看可能性不大,但仔细想想,如果把眼界放宽到整个系统办公楼运作系统,应该是有可能的。
在不提高食堂带宽的前提下,如果用户随机抵达,理论上队伍总会排到 200 开外。并不会在某个特定时间点减少(只有等到最后队伍才可能逐步缩短)。但我们其实可以把排队时间挪一部分到食堂外面的。行政部以前分发过通知,安排各个部门错开时间用餐也是这个想法。
今天一边排队,一边跟前后的同学讨论是否有可能利用软件来节约大家的时间。
这段时间除了忙项目外,还在参加游戏部门的程序技术评审。我是 6 人评审委员会成员之一。
这项工作逐渐收尾了,所以随便写点东西总结一下。只是我的个人想法,不代表任何其他同事和公司。我想我们尽量做到公平公正,这个是努力方向。至于公开…… ,好吧,现在还做不到,未来争取吧。写这篇东西,算是私下为“不公开”开一个小口。
在我看来,网易的管理一直都是稍显混乱的。管理层很薄弱,相比公司更重视研发技术,管理方面要差的多。对于开发人员,尤其是程序员来说,许多人甚至喜爱这种感觉。这就无法评论其好坏了。这五六年,隐约感觉管理层想逐渐在制度和管理方面正规化,做出一些改变。确实有许多改变在逐步实施,也有不少同事对此郁闷甚至失望。我觉得作为一个公司的灵魂,在重视技术方面我们不能抛弃,否则就不再是原来的网易。这次大规模的技术级别审核评定,也是肯定这一方向的。
以前 popo 有一个内部版本很好用的,可以方便的查到同事的 popo ,并且建立联系。后来为推广 popo 取消掉了。今天,公司内部又重新推内部版本。当然,client 是没有新做一个版本的,只是换了一组服务器。用公司 email 帐号登陆。
接到通知后,我登陆了新的服务器,发现居然联系人里空空如野。心中暗骂,真是太白痴了。
就算没有一个分好组的检索名单,总该提供一个机制,可以让我提交一下原有的 popo 帐号吧。只要每个人都登记一下,服务器完全可以自动建立起原有的联系人关系网。这不过是一个程序员半天的工作。而现在呢,我不断的收到请求添加联系人的广播。试想,公司 2000 多员工,平均 50 个联系人。每个花一分钟时间重新建立联系,这可是 10 万分钟的时间。超过了一个人年。这还没有算重新建立工作用的群(群本身就是一个很傻 X 的设定,只需要比较一下 twiiter 的机制就明白群这个东西多么白痴了)用的时间成本。
据说公司的 OA 系统是买来的。不知道是谁做的,反正一刹那,我想把这帮人拖出来打一顿。好吧,我不够淡定。
一直以来,这套 OA 系统只支持 IE ,还需要装个 ActiveX 控件才能得到完整的特性。怨声载道啊。这也就忍了。https 的证书没配置好,每次都要求确认一下。我觉得吧,公司还不至于花不了这点钱弄个正式的安全证书。罢了,这也忍忍。
这两天做招聘面试的流程。我的面试记录是写在纸上的。辛辛苦苦的把几份都录入到 OA 系统里。然后电子流程走了一圈。因为到某个环节的流程错误,被退回了。
结果,我输入的面试记录全部被清空了 !现在要重新敲一遍。
昨天在北京,去
的同学那里蹭饭。 的同学也在。
席间,我们谈及了
我个人是 google reader 的忠实用户,就和许多 qq 用户认为,他们无法更换 IM 的是因为建立在 qq 上的社交群。我也承认,短时间我无法从 google reader 迁移到 youdao reader 。因为我实在是太依赖 google reader 的 friends share 帮我节省的大量时间了。
当然,这并不妨碍我给 youdao reader 提出我的建议,希望他们可以做的更好。去年用 email 写过一次,昨天在飞机上又想了许多,下了飞机便又给 zhoufeng 同学写了封 email ,整理了我的思路。
况且,说到用户迁移,我曾经使用 qq 五六年,在上面认识了众多好友,其结果是,我还是很自然的在 5 年前逐步放弃了 qq 。别轻易下结论说不可能。
在 QQ 增加所谓“群” 这个功能之前,我就不用 qq 了。(所以找我要 qq 号的朋友不要再问了)
但是“群”这个讨厌的东西,总是阴魂不散的游荡在我的网络世界里。
今天在 twitter 上看见
“我真受不了我可爱的同事们了,你们就不能不用"群"啊? 这是 IM 工具最烂的一个设计。除了浪费时间,还能干什么?” ,真是心有戚戚啊。
当然,人和人对事物的看法见解是不一样的。物以类聚、人以群分吧。我还真见过真心喜爱“群”的同学,大体上和 以及。虽然分享“小笑话、新闻链接、有趣的小图片” 我觉得应该属于 google reader 的事情,
popo 作为网易内部交流工具,当初设计群的时候,我是发过言的。情况大致是这样:
在 google reader 上看到朋友 share 的一篇 "" ,恰逢周末,可以接下来闲扯几句。
对于所谓民主、自由、平等这些话题,我从来都不愤青。所以在我的 blog 上也看不见此类文章,不是我不敢写、不愿写,而是我觉得那些问题过于复杂,尤其是在读了些许历史之后。上篇 blog 用了 ”平等“ 这个题目,其实不完全是想谈 "平等" 这个概念,是因为我不知道该用什么样的题目表达我的意思。
yeka 写了一篇"" 引述了蒋纬国的一段话,”不论是谁,稍稍有权威后就开始耀武扬威了“ 。其实,未必是"耀武扬威"那么霸道而另人生厌。稍有涵养的人也不会如此。只是有些人表面上和颜悦色、骨子里的独断和自负却是不经意间流露的。这是我想说的:无论人站到了多高,都需要时刻自省,并理性的倾听。
过年在武汉时,和 的朋友一起吃饭。 问,你在网易那么多年,说说网易的文化吧。
一时间,我不知道从何说起。网易从来没有一本如职培训教材上条条款款写明所谓公司文化的。也没有什么人认真总结过。我想,每个网易人心中都有一份网易文化的定义。
如果让我说,第一反应是,网易重视技术人员。通常在 IT 的创业小公司中,这种现象比较常见。网易已经不算是小公司了,坚持这样比较难得。这倒不是因为丁磊有技术背景,我想更多的是,网易在几个关键时期,都是技术人员起了重要的作用。公司善待技术人员,算是投桃报李了。这是公司的一种发展偏好吧。
网易在做重要决策时,往往显得谨慎小心。不够大气。往往比别人慢一拍,且少有破釜沉舟的投入。这是几个公司高层性格的体现,物以类聚,人以群分,所以这也影响了许多员工。这似乎成了公司的性格,因此,也有性格不合的人离开。
能称之为文化的是什么呢?我拿不太准。或许,追求“平等”,勉强算的上吧。
明天就是五一假期了,同事都已放假。我不打算在假期加班,因为加班也无事可做,手头上的工作都需要与人合作。
前几天和新同事吃夜宵,大家聊的异常兴奋,我也忍不住开始想当年。当年那些美好的日子,记忆已经很模糊了。我想再过个两年,估计我都不能准确回忆起那些曾经对我影响深刻的日子准确的时间。是时候记下点什么,对自己是一种纪念。
我这人有个优点,选择性记忆,那些不快的回忆很容易随风而去。活在我记忆中的人们,对他们只留下感激。我也曾经爱写日记,很早我就写电子日记,记在自己的机器上,PDA 上,当我有一些不愿意再回忆的事情时,我会个将整个文件加上密码,长长的一次性密码,保证自己只能记住一小段日子。当这段日子过去,密码就消失在记忆中。然后再也打不开这些文字,等到下次更换硬盘,无论我多么的想再看一眼当年的自己,也无能为力,只好把加密过的文件删去。
我想我就是这么成长过来,没有什么挫折的感觉被反复咀嚼,都已经抛在脑后。生命中没有什么不可以失去的,这个道理很早就明白了。我曾经懊恼过丢失了大量的源代码、自以为写的不错的文章、早年的聊天记录、珍贵的日记、数年的电子邮件…… 最后我明白了,一切的一切不过是身外之物,我能拥有回忆中最美好的部分,那么已经是特别幸福了。
不过也正是如此,以下的记录也只能是我努力的回忆。或许因为时间久远,跟真实有所偏差,或许从我的角度只看到的事物的一面,但是、我可以保证,并没有故意在叙述中掺差虚假的东西。
是的,我想讲一个真实的故事,一个拥有数千万玩家的游戏诞生的故事。我并不喜欢这个游戏系列本身,但是我为这个产品自豪。我的代码曾运行在几千万用户的机器上,作为一个程序员,还有什么比这更让人满足的呢?也许有,比如让这个用户数量再扩大 10 倍。
的朋友问起我们公司的各种 web 服务时,我都很惭愧。做为网易的老员工,居然无力推动各种 web 服务对 opera 的支持度。以前还只是一个页面美观度的问题,后来 ajax 的流行,干脆许多东西都用不了了。
其实,在支持 opera 这个方面,我已经很卖力了。抓到机会就在那些同事的耳根子底下叨叨,直到他们怕了我 :)
一些简单的活,我倾向于自己来做。比如去年帮 URS 的页面抓到了几个 opera 下的显示 bug (HTML 写的不标准造成的)。
现在也官方解决了。
但是,更多产品更全面的支持 opera 还是需要大家的努力。今天,终于发现的同事(以前用 opera 登陆 web 邮箱,需要选择非 ajax 的界面,而不能用极速版)。这下终于敢对人说, 是国内做的最好的了 :D由于我们公司
在移动平台游戏业务的发展需要,现在想招聘 QC 一名。
工作职责:
负责网络游戏的测试,包括:
协助策划保证游戏设定的合理性;
制定测试计划和方案,完成测试用例;
执行测试过程,并跟进缺陷;
推进开发和测试流程的的持续改进;
配合项目组解决工作中遇到的问题,并能对项目组提出合理化建议。
工作要求:
理工科专业,本科以上学历(计算机相关专业尤佳);
2年以上游戏测试经验(具备手游测试经验者优先);
熟悉项目开发流程、测试流程,熟练掌握各种测试技巧,熟悉测试用例及测试文档,测试报告的编写;
具备一定的编程能力,有一定的自动测试工具的研发或二次开发经验;
具备较强的逻辑分析及学习能力,有良好的团队合作意识,有强烈的责任心和积极主动的工作态度,较强的沟通能力和表达能力;
热爱网游,具备丰富的游戏经验,对游戏有自己的思考和见解
如果具备以下经验更佳:
熟悉iPhone或Android手机平台的测试工作,对移动终端游戏玩法或测试方法有一定经验
对手机客户端的功能,性能,中断等测试内容有一定经验
有一定的自动化测试脚本编写经验, 熟悉服务器端性能测试方法
我们公司的第一个手游:陌陌争霸终于上线了。
苹果审核比我们预计的快了两天, 所以原定 10 号上线的, 今天就开始了。
有兴趣的同学可以玩一下。客户端基于前几天开源的
,服务器使用的是我们开源项目
Andriod 版:
由于这个产品是为传说中的交友神器
开发的,所以必须有陌陌账号登陆(最初设计时是不需要注册登陆的)。
12 月 10 日: 此招聘已经结束, 谢谢大家.
由于业务发展, 希望更多志趣相投的同学加入。
最近,公司开始了两个手游项目,其中
2d 游戏使用自己开发的图形引擎;而
3d 项目则使用 Unity3D 。之前我们已经有一个端游项目
已经用 Unity3D 开发了 2 年,积累了不少经验。
这次,我们招聘 1 到 2 名程序,希望能具备 Unity3D 的开发经验,参与我们的手游的客户端开发。
我们可以提供一个程序员乐于工作其中的环境。工作地点在广州天河区中心地段,办公室舒适宽松,同事以开发人员为主。公司雇有厨师,有自己的食堂提供所有人的中餐和晚餐。早上十点上班,一天八小时工作,周末节假日正常放假。
如果你想成为我们中的一员,那么还希望能有开放的心态,乐于和人交流,热爱编程。邮件发简历给我们(可以发到我的 blog 上所列 gmail 邮箱),我们将和你沟通联系,看看有没有机会一起工作。
或许真是到了招聘季了, 感谢大家的热情. 到今天 (10 月 24 日) 我的邮箱里的简历已经多的处理不过来了。所以这次招聘暂时就到这里了。
等我们公司顺利发展下去,我们会提供更多的位置让大家有个满意的环境一起工作。
因为公司发展需要,我们又招聘了:)这次的职位是
的运营平台开发。
和不同,我们的平台开发部门已经有一定规模(目前有三名开发工程师),所以不一定需要有丰富的开发经验。我们欢迎应届生或能保证工作时间的实习生的加入。
工作内容包括但不限于面向用户的网站,内部运营系统,部分运维工具。目前工作中涉及到的技术包括但不限于:
HTML / CSS / Javascript
/Java / Objective-c
HTTP / AMQP / TCP
MongoDB / Mysql / Redis
Linux / iOS / Android
这个职位并不需要对提到的技术都熟悉,尤其对于没有工作经验的同学无相关经验要求。计算机基础知识扎实,能快速学习,愿意做一个一专多能的全端工程师即可;对于已经工作的同学,最好至少有一项技术非常优秀。
有兴趣加入我们的同学,可以 email 和我联系。如有可能,附上自己的作品或列出自己参与过的项目,开源项目更佳。
工作地点在广州天河区。公司雇有厨师,有自己的食堂提供所有人的中餐和晚餐。早上十点上班,一天八小时工作,周末节假日正常放假。
现为正在研发中的 MMORPG
招聘特效制作人员一名。
需要有 3D 游戏特效丰富的工作经验。
需要有较强的沟通能力。
是 3D 游戏玩家。
若熟悉 Unity3D 游戏引擎更佳。
斗罗大陆 online 是一款类似魔兽世界类型的 MMORPG ,计划在明年底上市,目前开发资金和人员齐备,开发进度良好。
工作地点在广州天河区,公司雇有厨师,有自己的食堂安排所有人的中餐和晚餐。早上十点上班,一天八小时工作,周末节假日正常放假。
有兴趣的同学,或有朋友可以推荐的同学可以和我
,或者直接和 联系。
5 月 30 日:从发布消息至今,我们已经通过 email 前后收到 9 位同学的自荐材料。目前我们公司的 HR 同学正在进行后续的工作。到今天,这个职位的对外招聘阶段结束,感谢大家的支持。
最近我们代理的游戏
开始二测了,忙坏了我们的 SA Aply 同学。
Aply 是我的大学校友,低我一届,在学校门口的网吧认识,到现在已经有十多年。前年底我们的公司
成立时,他就找到我想一起干点事情。我们正好缺一个 SA ,他便从程序员转职了。从开始的各种不熟悉,他迅速的承担了所有 SA 的工作,得到全公司同事的认可。从今年开始,狂刃一步步发展,已经不再是一两台服务器的管理工作,一个人做这些事情已经显得太繁重了。
为了让 Aply 同学能有正常的假期和休息时间,我们想再招聘一名系统管理员,协助 Aply 同学的工作。职责主要是负责狂刃游戏的服务器运维。
狂刃的服务器暂时工作在 Windows 下(我们正在协助移植到 Linux 平台,但需要一段时间),所以需要有 Windows 平台的系统管理经验。
我们公司未来自研发项目全部在 Linux 下,所以也需要用 Linux 平台的经验(不必须特别丰富,但需要有学习的热情)
对这个职位的要求是:
有系统管理员工作经验三年以上。
熟悉 Windows 平台,对 Linux 有一定了解。
懂得如何批量部署,监控多台服务器(工具不限)。
懂得如何编写脚本(不限语言和工具)进行系统管理工作。
了解基本的网络协议。
可以 24 小时响应突发事件,并能承受突发事件带来的额外工作强度。
有兴趣的同学可以 email 和我联系了解更多细节。
5 月 16 日 注:由于已经收到足够多的简历,所以招聘提前终止,谢谢大家的热情。
招聘网络游戏服务端开发人员一名(截至到 2013 年 6 月 1 日)。
基本要求:有至少原创 1000 行以上 Lua 语言编程经验,一万行 C/C++ 语言编程经验。有网络服务开发经验:可以独立解决问题(包括但不限于设计合理的通讯协议,评估其效率及安全性)。
有游戏行业从业经验两年以上可以加分。
有兴趣且满足基本要求的同学,可以 email 和我联系获得更详细的信息。
今天读到策划同学的周报中提到的一个关于合租房子的分摊房租问题。
引用周报中的一节如下:
上周在搬家,和喵、刘阳一起租房子住,遇到一个问题,就是分摊房租。中式的解决方法一般都是商量一下,但具体怎么商量,没有手段,总之就是大家估摸一下,觉得大略上说的过去就OK了。很少有拉下面子认真谈价格的,即使心里其实觉得并不认可。
在这方面,美国人还真能想一些办法,这是一个旅美的留学生在博客上写的,他和老美同学的商议方式:
两个人A,B合租一个二居的房子,比如每个月是1500美元,因为主卧和次卧有大有小,价格肯定是不均的,那么两个人分别写两个价格,也就是对主卧和次卧的心理价格。可以很极端,比如,但总额必须是1500,因为这是A,B必须接受的大条件,然后公开,除掉开价完全相当的情况,两间卧室必然各有一个出价最高的人,价高者入住,而月租则是A,B对这个卧室开价的均值。例如A出价是900:600,B出价是,那么A住次卧,价格为550,B住主卧,价格为950。两个人都得到了自己认可的房子,而价格还低于自己的预期。
这一方案还有一个优势,就是双方都无法通过恶意的叫价来损害对方,获得利益。相信很多同学会提出一个更直接的解决方案:一个人提价格方案,另一个人选择。但是这一方案也有点问题,提价格的人相对是吃亏的,对吧?
遗憾的是,这种做法,似乎无法推广到三个人的情况。
我觉得这个问题很有趣,晚上想了一下,其实是可以推广到三人甚至更多人的。
2012 年 10 月 16 日 : 我们这个职位的同学老马, 昨天已经到岗了. 感谢大家的支持.
我们计划从下个月开始做 web 平台开发的工作了。希望可以邀请到一位经验丰富的 web 开发工程师加盟我们的
,这项招聘工作将持续到 2012 年 10 月。
在去年的时候,我曾经在 blog 上贴过一则 。收到了不少 email 。非常抱歉的是,由于我们的开发计划调整,最终并没有设立这个职位。但这次不同,经过细致的规划,相关开发计划已确定于 2012 年 10 月展开。虽然时过近一年,但我们当初预留的创业公司股份依然没有变化,希望能以此吸引到志同道合的朋友。
这次招聘的开发岗位只有一个, 。他将负责我们未来所有 web 平台的基础建设。我们希望他首先精通 web 前端开发技术,并有丰富的相关经验;同时,了解 web 后端开发。欣赏简约的设计风格,最好能有一定的设计能力。能够全面负责这一块业务从无到有的展开。
我们期待在这个职位上的同学,能够独立架构整个 web 平台(在初期,第一步工作是游戏玩家的用户系统。逐渐会有计费平台、玩家交易、在线客服、游戏增值服务、营销支持等等),并可以听取大家的意见和建议。如果你是我的 blog 的读者,你应该了解到,我们的团队包括我个人,在很多技术领域都有一些自己的想法,希望可以一起交流,相互尊重。
这次,我们没有将前端后端开发人员一起招聘,而先只招聘一名开发人员。是因为我认为,只有两者兼顾的人,才能设计出好的构架而不被相互沟通而制约手脚。可以真正的将两者的关系解耦。当你发现一部分设计不合理时,可以不通过集体决策而快速将系统不合理的地方修正。
但这不是说,我们要将前端开发和后端开发混杂在一起。相反,我希望我们的 web 平台中,数据和呈现部分能够清晰分离。有良好的 api 设计。这样,可以更好的向移动领域拓展。这些工作,需要在这个职位上的人已经有更多的沉淀。
我们并不是想找一个人来解决所有的问题,完成所有的工作。只是我希望,这位同学可以找到好的方法,用较低的工作量,更好的达成目标。当然在工作展开必须更多人手时,他也可以担负起新的人手的甄选工作。
固然,有这个能力的同学不愁找不到好的工作。可以预见,我们找到满意的人的过程将困难重重。但至少,我们想充分表明诚意。提供相当的回报。
公司名为 简悦科技
,我们目前正在开发一款 MMO RPG 游戏 ,计划在明年底上市,目前开发资金和人员齐备,开发进度良好。(注:这次招聘的职位不涉及游戏开发)
工作地点在广州天河区,公司雇有厨师,有自己的食堂安排所有人的中餐和晚餐。
早上十点上班,一天八小时工作,周末节假日正常放假。不强制加班,但希望大家有创业的激情。可以全心投入到事业中去,当成自己的事业来做。
相对应的,我们提供了丰厚的创业公司股份,确保在事业有成时获得相应的回报。同时,这个职位会有不错的薪水,不需要在广州担心生活。
我们对这个职位的人选非常重视,招聘面谈工作将由我的合伙人,公司的 CEO ,亲自主持。
有兴趣的同学可以给我发 email ,在 可以找到地址。也可以,同样会有专人负责。
前几天写的 有很大争议。我并不认为我的结论一定正确,但我想讨论这个问题的人忽略了许多现实的复杂性。
我想说,这是个真实事件,并不是因为我想说明什么问题编的故事。我依然相信,我最后如果做一个交换,会更好一些。不过不想为这个事情争论下去 :)
我觉得这个问题和有相似之处,但并不相同。我也没想仔细去计算概率,直想快速判断,换或不换哪种得到正确结果的可能性更大。
下面我想向有兴趣讨论说说我上次说的比较含糊的一些条件。毕竟这些条件只有当事人才注意的比较清楚:
。我们将为每个玩家的接入提供一个 agent 服务。agent 相应玩家发送过来的数据包,然后给于反馈。
对于 agent 服务,是一个典型的包驱动模式。无论我们用 Erlang 框架,还是用 ZeroMQ 自己搭建的框架,agent 都会不会有太多的不同。它将利用一个单一的输入点获取输入,根据这些输入产生输出。这个输入点是由框架提供的。框架把 Agent 感兴趣的包发给它。
我们会有许多 agent ,在没有它感兴趣的包到来时,agent 处于挂起状态(而不是轮询输入点)。这样做可以大量节省 cpu 资源。怎样做的高效,就是框架的责任了,暂时我们不展开讨论框架的设计。
下面来看,一旦数据包进入 agent 应该怎样处理。
游戏服务逻辑复杂度很高,比起很多 web 应用来说,要复杂的多。我们不能简单的把外界来的请求都看成的独立的。把输入包设计成 REST 风格,并依赖数据服务构建这套系统基本上行不通。几乎每个包都有相关的上下文环境,就是说,输入和输入之间是有联系的。简单的把输入看成一组组 session 往往也做不到 session 间独立。最终,我把游戏服务器逻辑归纳以下的需求:
今天起晚了, 到了办公室, 行政mm 出去了, 中饭却已经订好。据说随便帮我订了一份。
几分钟后,快餐送过来,我很纠结我应该拿哪一份吃。只好等其他同学取走。当桌子上还剩下四份的时候,我决定试一下手气,看看能不能拿到我的那一份。
打开检查了一下,发现有三份是相同的,都是牛展,一份是香菇。盘算了一下,我拿走牛展拿对的几率有 75% 。
这个时候蜗牛同学和怪物公司都过来了,居然他们都拿了牛展。这个时候我犯了个错误,没有及时的放下手上的盒饭。果然,几分钟后,PS 同学就在抱怨他的牛展怎么变成香菇了。
我检讨了一下,本来我是有机会修正我的错误的,这其实是一个简单的概率问题:
当有四份快餐的时候,假定另外三人的选择是随机的,三人出现的次序也随机。那么,如果存在一人订的香菇的概率是 75% 。我一开始的选择并没有错。
但是出现了两个取走牛展的同学后就不一样了。假如我的那一份真的是牛展的话,发生这件事的概率只有 1/3 。所以,我的饭是香菇的可能性要更大一些。
这件事上,我的结论是,晚上要早睡,早上早起就可以不麻烦别人帮忙订饭。
这周的工作主要是写代码。
开发计划制定好后,我们便分头写代码去了。我们希望一期早点做出可以运行的东西来,一切都从简。整体的代码量并不多,如果硬拆成很多份让很多人来做的话,估计设计拆分方案,安排工作,协调每个人写的东西这些比一个人全部实现一遍的工作量还要大的多。
所以,最终就是两个人在做。怪物公司在弄客户端的东西,蜗牛同学包干了服务器。好吧,基本没我的事了,我就是那个打酱油的,好听点说,就是设计方案。当然,事情没多少,空下来的时间也可以干活。训练自己可以找到事情做,并真的做有用的事情,还是很难的。
话说回来,我们在这么一个简单的框架下,一开始确定了要采用一些现成的技术方案,即要用到 Redis , Google Protobuffer , ZeroMQ 。
Redis 和 ZeroMQ 是我最早选的,想了很久。
,按照我们一期项目的需求,昨天我简单设计了数据库里的数据格式。数据库采用的是 Redis ,我把它看成一个远端的数据结构保存设备。它提供基本的 Key-Value 储存功能,没有层级表。如果需要两层结构,可以在 Value 里保存一组 Hashes 。
这是我第一次实战使用 Redis ,没有什么经验。不过类似的设施几年前自己实现过,区别不大。经过这几年,有了 Redis 这个开源项目,就不需要重造轮子了。但其模式还是比较熟悉的。也就是说,是按我历史经验来使用 Redis 。
一期项目需要比较简单,不打算把数据拆分到不同的数据服务器上。但为日后的拆分需求做好设计准备。以后有需要,可以按 Key 的前缀把数据分到不同的位置。例如,account 信息是最可能独立出去的,因为它和具体游戏无关。
折腾了好久,终于可以开始正式项目开发了。
之前的这段日子,我们陷落在公司的股权分配问题中,纠结于到底需要几个人到位才启动;更是反复讨论,到底应该做个怎样的游戏。林林总总,终于,在已经到位的几位同学的摩拳擦掌中,叮当决定自己挂帅开始干了。
就这么不到十个人,空旷的办公室,跟我们起先想像的情况不太一样。尤其是主策划还没有落定。我说,叮当,你好歹也是一资深游戏玩家,带了这么多年的游戏部,跟了这么多成功的项目,没吃过猪肉总见过猪跑吧,我就不相信你干着会比别人差。若不是我必须盯着程序实现这块,我都想自己做主策划了。不过有你干,我放心。
主策划的位置,咱们可以先空着,前期工作不能延。产品经理代理一下游戏主策划的位置也是创业公司必须的;正如我这挂牌的 CTO ,除了负责系统架构以外,也得兼个程序员做实现嘛。
经过两天对项目计划表的讨论后,我们今天就算正式开工了。
游戏是怎样的?半保密,不在这里多写,怕大家骂。再说了,这个东西现在说是怎样的,一两年后肯定有变化,多说无益,多解释无益。简单说呢,就是一个战斗系统类似魔兽世界,但系统核心玩法差异很大,更为轻松,更偏重 PvP 的 MMORPG 。为什么是这样一个东西,不想解释,反正不是拍脑袋想出来的。
既然是开发笔记,就写写现在在做些啥,打算怎样做下去。
, 选了个好日子 , 我们最初的几个人入住了新办公室。小光棍节呐,果然一帮孤家寡人要开始干活了。
明天早上 10 点开始上班,作为程序员,数字控, 这个回文数当然是更带感了。
这个月也没闲着,不过都是瞎忙。办公室装修有人在负责,不过我住的近,时常过来看看。看着地板被平整,墙刷白了,灯光按我的意思做了调整。05 年我刚到杭州的时候,也是我,租了写字楼,修改了装修的图纸;这次,又重新来了一次。有了上次的经验,当是做的更好一些了。
写字楼在华南理工附近,华工操场上竖了攀岩墙,比杭州岩馆的高。这倒是意外收获了,可以经常保持练习。希望忙过这两年,可以回去把
这边的线路还爬的不太习惯,一条 5.10a 的线爬了好几次都在最后的难点没能完成。虽然我一直都是进步很慢的,但信念比较坚定,爬不了就慢慢来,相信自己总会有长进的。何况在杭州时,这个难度的线路都可以搞定。最终, 那条线在上周完成掉了, 很开心。其实真的不难,一旦搞定,连爬了两次都爬的比较轻松。下次开始再来磕另一条 5.10c 的。说来惭愧,几乎跟我在攀岩这件事上花了差不多时间的人都能爬 5.12 了。当然,体验着自己一点点进步还是件非常愉悦的事情。
结果这两天收到了好多热情洋溢的 email , 真是受宠若惊。
上次说的不详细,其实也没完全想好,只是之前在讨论公司架构的时候提到了这个岗位。昨天晚上又讨论了一下,把需求细化了一些。这样也省去一些误解。
我个人,作为程序员,对 web 前端开发领域没有太多了解,很惭愧。我在这方面的知识仅限于对 html/css/javascript 的粗浅了解,在很多年前自己做过自己的个人主页,设计实现过一个简单的 。后来有几天有了点兴趣, 。我自己自知是远不够资格去评判 web 前端开发的新技术的。
在网易工作 10 余年,很奇怪,网易游戏部门作为从网易分出来的大部门,照理来说,应该在 web 开发方面有深厚的积累。但在这些方面我却没有太多感觉。昨天跟 dingdang 谈及此事,他也觉得网易游戏对 web 前端开发不够重视。但我们都明白,在 web 时代,给 web 用户最好的用户体验是非常重要的,这里就需要经验丰富的 web 前端开发人员的支持。
我们现在还是家初创公司,以游戏开发为住,并不是围绕 web 应用来展开工作的,所以也不想维持一支庞大的 web 开发的队伍(除非决定日后向 web game 领域拓展)。故,希望能找到一名较强力的开发人员,来完成以下工作:
到广州已经有两周了。一直在忙着公司的初期筹备。我们到现在都没确定要做的具体游戏是什么看起来是件有点奇怪的事情。今天丁磊打电话过来问我的近况,我花了 30 多分钟很坦诚的介绍了现在的进展。虽然很有可能演变为一种竞争关系,甚至网易的旧同事会有投奔过来的,但我不觉得作为朋友,值得为这些翻脸。我相信人各有志,每个人真想做点什么,没有什么可以拦得住的。虽然我们融到了一大笔钱,但我也完全不想用高薪去挖人。我们需要真正想一起共事,做点不一样的事情的人,大家可以共进退。
新的公司名字叫简悦,我贡献了其中一个简字。正如我的笔记本上刻的那行字,简单正是我所追求的。简单快乐,是对我们未来作品的期望。
叮当最终说服我一起来重新做点事情,而不是急着退休。名利对我们来说,现在已经可以满足。对于未来要做的事情,我们再各取所需。做成一个符合自己价值观的大公司,是他所求;而我,需要一个自己能有足够主导力的平台,来进行我的各种兴趣。
公正,平等,分享,这些是我们的共同追求,我希望可以写进新公司的血液中去。而才此基因下,产生高品质的游戏作品,我相信可以最终可以赢得玩家。而从中再得到回报,我想那一定是自然而然的结果。

我要回帖

更多关于 云风的blog 的文章

 

随机推荐