如何学习入门的游戏编程
以下一篇是以服务器为例的,希望对你有帮助。
-------------
学习游戏服务器编程基础篇
姜雪伟
前段时间,一直给开发者灌输学习3D游戏引擎技术,包括游戏底层数据结构封装,算法与游戏实战技术分享视频课程,以及编写了一些使用算法解决游戏实际问题等等方面的文章。再给读者介绍3D游戏引擎的同时,也有人问我关于如何学习游戏服务器编程技术,其实我也喜欢游戏服务器编程。在游戏开发过程中,游戏服务器开发的工作量相对客户端来说少的多,比如游戏开发后期客户端要调各种效果,更换UI等。当然网上关于开源的服务器代码也很多,在Github上能搜到很多代码,比如java的,C#的,C++的,C的,erlang,python等等,很多人为此比较迷惑不知道到底该学习那种编程语言。服务器编程开发也是随着地区不同而不同,IT行业发展的中心是北京,上海,广州,它们对于游戏服务器编程语言的需求也是不同的,北京偏向于java语言编程,上海偏向于C++语言编程,广州偏向于erlang编程,这个也是告诉开发者,如果想去不同的地方可以根据需求有针对性的学习。本篇文章就是告诉读者如何学习游戏服务器编程开发?
我本人还是喜欢C++编程,其实语言只是一方面,原理还是要清楚的,下面我谈谈学习服务器编程的一点体会。
学习游戏服务器编程也要分阶段的,先把基础学习好,编程语言是必须具备的,可以学习java,C++,C#,erlang任意一种要熟练掌握,还是以C++为例,游戏编程中经常会使用一些宏定义或者模版定义,开发者要知道宏定义的含义以及模版定义的含义。服务器开发中经常会使用STL模版中的对象,比如Map,,List,Vector等等。网上有很多学习资料,另外在这里还是要谈到数据结构,不论在客户端开发还是在服务器端开发,数据结构都会用到,比如哈希表,二叉树,队列,堆栈等等,以上提到的是关于语言方面必须具备的。
语言基础掌握牢固的,可以直接略过这一阶段的学习,直接学习第二阶段,关于网络通信协议,比如我们TCP/IP协议一共分七层,各个层的作用是什么?服务器传输有几种常用的协议分别是TCP协议,UDP协议,还有Web使用的Http。TCP协议是可靠的协议,数据传输后必须要经过确认,UPD协议是不可靠的,无需确认,Http协议是主动的去获取,主要用于资源和Web注册的。这三种都会在服务器开发中使用到,必须要要掌握。在这里给读者展示一下各个层包含的协议:
应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
传输层:TCP,UDP
网络层:IP,ICMP,OSPF,EIGRP,IGMP
数据链路层:SLIP,CSLIP,PPP,MTU
通过上面列举的点,我们知道了各个层都有哪些通信协议,当然各个层不是孤立存在的,它们之间是有关系的,在计算件原理中也有这方面的介绍,这里借用网上的图给读者展示如下:
应用层主要是我们自己程序处理的,它可以通过传输层和网络层进行消息的传输,将上图再进一步细分如下所示:
通过上图可以很清晰的看到TCP/IP协议组的组成,具体大家可以查看*课程《计算机原理》。这些基础的通信协议掌握了后,接下来就要掌握Socket套接字了。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
Socket套接字是通信的最基本方式,在游戏中的服务器和客户端之间通信,以游戏登录为例,客户端先创建Socket,然后把玩家的用户和密码以及登录服务器的IP地址,端口号这些数据写入到Socket中传送到服务器端,服务器会做监听,接收到消息后,打开读取Socket信息进行处理比如验证信息的正确性,然后服务器创建Socket,把传送给客户端的消息写入到Socket,发送给客户端,客户端也会做监听操作,客户端接收到消息后,客户端打开Socket,读取消息。客户端和服务器之间的通信方式如下所示:
在TCP/IP协议中有三次握手,通过三次握手可以建立一个可靠连接,效果如下图所示:
三次握手在服务器端程序员面试中,经常被提到,掌握了TCP/IP协议后,接下来进入实兵演练阶段,也看看自己对网络这块掌握程度。以Unity为例,可以学习TNet超轻量级的网络传输,因为它没有数据库,但是可以很好的验证学习的TCP协议以及Socket套接字,自己可以在此基础上再尝试做一些消息传递,*要学习一下服务器存储所需要的数据库MySql。
学习数据库的安装,数据库操作比如新建表,插入数据,删除数据,读去数据等,掌握数据库后,接下来就需要通过游戏服务器编程对它进行操作了,建议先学习网上的,它是使用C#编写的,方便开发者学习,另外它提供了Unity实现的Demo,开发者可以调试连接,从而熟悉Mysql。
以上这些知识也是作为服务器开发者必须掌握的,掌握了这些技术后,继续提升的*方法是去公司跟着项目走,在后面章节还会给读者介绍关于如何架设真正的游戏服务器以及*IT游戏公司的服务器架构设计以及服务器负载均衡的设计,最终会介绍如何搭建全球同服服务器。
JAVA能写大型游戏么?
java能写大型游戏么。首先,这个答案是肯定的,java也能开发大型的桌面端游戏,比如非常出名的沙盒游戏:我的世界。就是使用java语言开发的。
其次,Android就是java开发的,Android环境下有多少游戏就不需要我一一细数了吧。
再次,桌面端的游戏,尤其是大型游戏,最终使用java开发的并不多见,究其原因,一是因为java的内存管理策略,自动化内存管理,在内存效率上并不高,二是其虚拟机机制,对于硬件环境的调用隔了一层。
希望对你有帮助。
上海的IGG游戏公司怎么样?
上海的IGG游戏公司还是挺好的。
IGG成立于2005年,是一家电子互动娱乐媒体公司。从事于网络游戏以及网络娱乐社区服务,通过互联网络为全球网络游戏玩家提供的游戏和服务。IGG在美国、加拿大、*内地和*香港等地均设有公司。
2013年10月18日在港交所成功上市。
2016年12月,被评选为2016年度*海外拓展游戏企业。
2021年,在香港上市公司“港股100强”评选中入选。
2021年,获得Google Play评价“成长最快移动游戏品牌”。
2021年,荣获“新浪游戏”评选的“2021年度*游戏海外发行商”。
2021年,在Apple Annie2021年年度发行商52强中,IGG排名第22位,IGG连续四年进入全球发行商52强。
2021年,荣登“2021年BrandzTM出海品牌50强”榜单,位列第16名。
2021年7月,IGG第二次入选《福布斯》亚洲年度“10亿美元以下*企业”榜单。
要做,网络游戏开发,或服务器端的开发,都要具备哪些知识
北京中科奥科技有限公司————网络游戏岗位职责:
1、负责J2ME/等平台客户端软件开发工作;
2、负责需求分析,需求说明书的编写,确认,开发进度的制定以及确认,负责开发进度执行管理以及交付产品验收协调工作;
3、负责手机端游戏产品线的新增功能/原有能力优化等工作;
4、负责手机端游戏产品线的开发规划以及性能优化计划。
岗位要求:
1、精通java语言,能够熟练运用J2ME进行手机游戏的开发。
2、熟悉主要手机操作系统平台:J2ME、Windows Mobile、Symbian、MTK等。
3、了解常见数据库并能进行一般开发工作,例如Oracle、MySQL、SQL Server。
4、具备优秀的文档习惯,能够严格按照格式要求认真编写软件各类开发文档。
5、具钻研精神,能够快速接受新知识,必要时能够快速学习掌握工作需要的其它程序设计语言与技术。
6、善于沟通和表达自己,乐于向他人传授知识,能够非常融洽的与他人协同工作。
7、品格良好,人生观、价值观正确,工作态度端正,为人积极、正直。
8、具2年以上手机游戏或手机网游开发工作经验者优先。
北京开云互动科技有限公司
岗位要求:
1. 一年以上Java开发经验,熟悉Java核心,集合,网络,多线程。
2. 玩过3款以上网络游戏,有1年以上回合制网络游戏经验;
3. 熟悉面向对象的开发流程,了解MVC熟悉设计模式;
4. 热爱游戏,性格开朗,思维开阔,有极强的团队意识,善于沟通协调,能承受工作压力。
岗位职责:
Java游戏服务器端的开发
1、根据游戏策划需求,独立设计开发相应的游戏模块;
2、了解整个游戏服务器系统,维护相应的模块;
3、完成游戏逻辑方面的开发;
4、保证服务稳定高效的运行。
优先条件:
1、熟悉Project Darkstar Server优先
2、熟悉优先
关于网络游戏的客户端与服务端的开发
客户端负责场景的实现、动作逻辑的处理还有美工等等,服务端负责数据的持久化、网络数据包的转发控制、服务的负载均衡、整体容错性等等总体来看客户端更像在做传统的单机游戏,只不过客户端的数据不像单机游戏那样直接在本地存取,而是通过网络并且有控制的存取;服务端涉及的技术更侧重于网络技术,比如服务器技术和网络底层
实际上客户端做起来不难,真正难的在服务端,100人在线和1000人在线,看的就是服务端的承受能力,好的服务端可以通过服务器集群等技术达到负载均衡,一般的也就普通玩玩吧,上不了大场面的。。
补充一句,LZ你要走游戏开发的话,可以先从网页游戏开始学起,这方面好做得多了,而且网站后台与所谓的游戏服务端在本质上是一致的,你做网页游戏能做得承受住1000人在线并发50连接以上的话,那你转做服务端的开发就不会觉得有障碍
上海盛大网络发展有限公司的公司荣誉
2002年5月,盛大被文化部网络文明工程委员会选为“网络文明工程绿色联盟”理事单位。
2002年6月,盛大建立了用户接待中心,日均接待用户300人。
2002年9月,盛大被文化部网络文明工程委员会评选为“网络文明建设先进单位”。
盛大运营的《传奇》*同时在线人数突破60万人。
2002年12月,盛大运营的《热血传奇》在四川省电信公司与大众网络报社共同举办的“2002年度*网络游戏产业调查”中被评选为“年度*网络游戏”、“*科幻、奇幻类网络游戏”、“*游戏设定网络游戏”、“*画面网络游戏”、“*客服网络游戏”。
2003年2月,盛大收购*性移动应用服务供应商——上海数龙科技有限公司。
2003年3月,盛大投资成立上海盛品网络发展有限公司,致力于网络游戏开发;
盛大与软银亚洲签订战略融资4000万美元协议。
2003年4月,盛大正式推出网络游戏平台一体化的短信增值服务。
2003年5月,盛大正式开通电子支付业务,促进了互动娱乐电子商务的新发展。
2003年6月,盛大与新华控股集团有限共同投资成立上海盛大新华有限公司,开发网络游戏周边产品。
2003年7月,盛大自主研发的*款网络游戏《传奇世界》公开测试。
2003年9月,盛大所有游戏的*同时在线人数突破100万,刷新了自己保持的世界记录。
盛大自主研发的*款大型在线网络游戏《传奇世界》正式收费运营。
盛大收购**的网吧管理软件公司——成都吉胜科技有限责任公司。
2003年10月,盛大投资成立上海盛锦软件开发有限公司,致力于网络游戏开发
2003年12月,盛大在德勤会计事务所公布2003年度“亚太地区高科技高成长500强”企业排名榜上,荣获增幅最迅速企业第二位。
2004年1月,盛大参股*Nokia Symbian OS平台,J2ME平台*的游戏软件供应商——北京数位红软件技术应用有限公司。
在新闻出版总署音像电子和网络出版管理司主办,*出版工作者协会游戏工作委员会CGPA、*电信集团公司、国际数据公司(*)IDC联合承办的2003年度*游戏产业报告发布会上,盛大开发运营的《传奇世界》被评选为“*的民族游戏”*名;《热血传奇》被评选为“*的网络游戏” *名。
盛大收购全球领先网络游戏引擎核心技术开发企业之一美国ZONA公司。
2004年5月,盛大在美国纳斯达克股票市场成功上市...
2004年6月,盛大网络入选“2004年*软件产业*规模0家企业”。
2004年7月,盛大战略投资**的在线对战游戏平台运营商--上海浩方在线信息技术有限公司。
盛大收购*领先的棋牌休闲游戏开发运营商--杭州边锋软件技术有限公司。
盛大收购*领先原创娱乐文学门户网站--起点中文网。
2004年9月,由*税务总局主办,*税务杂志承办的“2003年*纳税百强新闻发布会”在京召开,盛大网络荣登*私营企业纳税百强排行榜第七名。
由信息产业部、文化部支持,*信息产业发展研究院主办,软件世界杂志社等承办的“2004年度(第二届)*网络游戏年会”在京召开。盛大网络当选为“2004年度*网络游戏运营商”;盛大网络推出的国内*账号保护产品“盛大密宝”荣获“2004年度*网络游戏账号安全方案奖”。
2004年10月,盛大运营的《泡泡堂》*同时在线用户突破70万,创造世界大型休闲网游运营新记录
2004年11月,盛大宣布收购韩国Actoz公司控股权。
盛大被*文化部命名为“文化产业示范基地”。
2005年1月,在*届*游戏产业年会上,新闻出版总署公布了2004年度游戏评选结果,在“2004年度**的网络游戏”中,盛大网络运营的《传奇》和《传奇世界》分列*、第三;在“2004年度**的民族网络游戏”中,盛大网络自主研发的《传奇世界》、《英雄年代》、《神迹》分列*、第七和第九。此外,盛大网络还荣膺“2004年度*游戏运营商”和“2004年度*游戏开发商”荣誉称号。
2005年2月,《福布斯》网站以IPO融资金额为主要依据对2004年科技IPO进行了排名,盛大排名第四。
盛大宣布持有新浪(NASDAQ:SINA)19.5%股份。
盛大自主研发并运营的《传奇世界》*同时在线人数突破50万。
2005年3月,盛大网络自主研发并运营的《传奇世界》在由人民日报社联合100多家权威行业协会及《人民网》、《新华网》、《搜狐网》等30多家权威网站共同举办的民意调查大型公益活动中,被消费者推选为2005年“*网络游戏满意品牌”。
2005年4月,《全球财经观察》杂志2004年*企业境外IPO年度奖评选揭晓,盛大网络当选2004年度境外IPO“最受关注IPO奖”。在上海举办的“2005*国际呼叫中心与客户关系管理大会(ICC CHINA 2005)”上,盛大客户服务中心荣获“2005**呼叫中心”。
2005年7月,盛大被上海市信息委评为17家文明单位之一。《传奇世界》荣获2005年“上海市名牌产品100强”称号。
盛大于CES展推出新产品,描绘互动娱乐新生活。
盛大家庭战略内容合作发布会在沪召开。
南京盛大网络发展有限公司正式揭牌成立,打造*专业游戏、软件测评基地。
2005年8月,盛大*自主研发的3D休闲类游戏《三国豪侠传》在京发布。
盛大旗下《梦幻国度》、《三国豪侠传》和《泡泡堂》三款游戏被文化部评为*批适合未成年人的网络游戏产品。
2005年9月,盛大网游特许授权经营授牌仪式暨新闻发布会在京召开。
*税务总局计划统计司与*税务杂志社在京联合推出 2004 年纳税百强排行榜。上海盛大网络发展有限公司以纳税 9177 万元排行第 12 名。
2005年10月,盛大与神达电脑集团共推全球*掌上网络娱乐终端EZ MINI。
2005年12月,盛大家庭战略系列产品之一 盛大易宝(EZ Pod)正式发布。
盛大宣布收购国内领先休闲游戏平台“游戏茶苑”。
盛大召开“盛大易宝”成功上市庆功会。宣布盛大家庭战略的渠道建设已初步完成。
盛大网络与*农业银行结成战略合作伙伴关系。
盛大与海信签署战略合作签约协议。
2006年1月,盛大网络获“ 2005 年度*游戏开发商”、“ 2005 年度*游戏运营商”。浩方游戏平台和边锋网络游戏世界分别获“ 2005 年度*休闲网络游戏运营平台 ( 网站 ) 奖”。《传奇世界》被评为“ 2005 年度*的民族网络游戏”。《传奇世界》、《仙境传说》、《冒险岛 Online 》分别被评为 “ 2005 年度*的网络游戏”。
盛大与 EMI 百代结成战略合作伙伴关系。
盛大与长虹朝华正式结成战略合作伙伴关系,联手进军家庭互动娱乐市场。
2006年2月,盛大宣布将在*大陆地区*代理运营 NHN Games 的游戏《 ArchLord 》。
在 2005 *消费电子市场年会上,盛大易宝( EZ POD )被评为“ 2005 年消费电子年度创新产品”。
2006年4月,盛大网络与 HP 结成战略合作伙伴关系。
2006年5月,盛大与华特迪士尼互联网*合作,共同把迪士尼娱乐内容引入*网游市场。
2006年6月,盛大网络被上海市信息服务行业协会评选为2005年度互联网信息服务优秀品牌。
在*英才网联合北大光华管理、《经济观察报》、新浪财经共同主办的2006**生*雇主颁奖典礼上,盛大网络获“2006*雇主新上榜企业奖”。
2006年7月,纳斯达克股票市场公司推出纳斯达克全球精选市场,盛大网络入选这一*标准市场。
2007年1月,“盛大”商标被**人民法院认定为“*”。
在*电子商务金融与支付行业发展大会暨*电子支付企业用户满意度调查成果发布会上,盛大网络被评选为*优秀电子支付企业(第三方支付类)和*创新影响力电子支付企业,盛大董事长兼CEO陈天桥当选*电子支付领军人物。
2007年3月,盛大网络向旗下起点中文网增资1亿元,打造全球*原创文学平台。
盛大网络客户服务中心被*信息化联盟评选为“2007**呼叫中心”;公司高级副总裁王静颖当选“2007*呼叫中心产业杰出贡献奖”。
2007年5月,盛大网络宣布售完持有的所有新浪公司的股票。
盛大网络被上海市名牌产品推荐委员会推选为“2006年度上海名牌”。
2007年6月,由*英才网发起,主要针对国内*生就业群体心目中的*雇主进行的品牌调查活动中,盛大网络再次当选“**生*雇主”。
2007年7月,盛大网络收购国内网游公司锦天科技。
2007年11月,“盛大”商标被**人民法院认定为“*”。
2007年12月,在信息产业部*软件行业协会游戏软件分会主办的第五届*游戏行业年会上,盛大网络被评为“2007年度*游戏行业优秀企业”、“2007年度行业自律先进单位”、“2007年度*网络游戏服务商”;盛大网络董事长兼CEO陈天桥位列“2007年度*游戏行业优秀企业家”榜首。
2008年1月,在新闻出版总署、信息产业部支持组织,*出版工作者协会主办的“第四届*游戏产业年会”上,盛大集团公司、集团旗下投资公司和游戏产品共获奖项16项,囊括大会各项重量级大奖。
“盛大”商标被上海市工商行政管理局认定为“上海市著名商标”。
2008年4月,盛大被波士顿咨询公司评选为新兴市场500强。
2008年5月,在新闻出版总署组织的第四批“民族网游工程”评选活动中,《乱武天下》和《巨星》荣获“民族网游”称号。
2008年6月,在世界品牌实验室举办的《*500*价值品牌排行榜》评选活动中,基于财务分析、消费者行为分析和品牌强度分析而获得的*品牌*队中,盛大网络以33.07亿元的品牌价值为*入选互联网企业。
2008年7月,盛趣信息技术(上海)有限公司,以及其产品《纵横天下》网页游戏软件V1.0,分别被*软件行业协会评为2008*创新软件企业、2008年*创新软件产品。
2008年10月,在第六届*国际网络文化博览会组织的优秀网络文化企业评选中,盛大网络获全场**奖“社会责任奖”,并摘得“创新突破奖”。
在世界知识产权组织举办的创意金奖评选中,盛大网络获得“世界知识产权组织版权创意金奖”,成为获得此奖项的*互联网代表企业。此奖项是迄今为止世界知识产权组织在*的*奖项。
盛大被上海红十字会评选为“5 12”汶川地震抗震救灾杰出贡献银奖。
2008年11月,在*互联网行业与*投资网联合众多投资机构举办的与SNS社区评选中,盛大及研发的网页游戏获得“与SNS*商业组合”荣誉称号,《纵横天下》获得“2008**运营价值的WEBGAME TOP10”荣誉称号。
2008年12月,在*人民共和国文化部举办的首届优秀网络文化企业评选活动中,盛大网络获“2008年优秀网络文化企业”荣誉称号。
由工信部支持、*软件行业协会游戏软件分会主办的2008年度*游戏行业年会上,盛大网络被评为“2008年度*游戏行业优秀企业”、“2008年度热心社会公益事业先进单位”、“2008年度行业自律先进单位”、“2008年度*网络游戏运营商”;盛大网络董事长兼CEO陈天桥位列“2008年度*游戏行业优秀企业家”榜首;《永恒之塔》和《纵横天下》分别获“2008年度最受期待网络游戏”和“2008年度*网页游戏”奖项;盛大18团队获得“*网页游戏开发商”等3个奖项。
在*版权局主导举办的首届*版权年会上,盛大网络董事长兼CEO陈天桥获得“2008*版权产业风云人物”荣誉称号,盛大文学旗下起点中文网获得“2008年*版权产业*影响力企业”荣誉称号。
2009年1月,由新闻出版署科技与数字出版司、工业和信息化部软件服务业司等*支持,*出版工作者协会游戏出版物工作委员会主办的2008*游戏产业年会上,盛大网络和旗下盛大游戏共获14项大奖,囊括大会各项重量级大奖,成为*赢家。与此同时,盛大18团队喜获6项大奖。
2009年4月在由上海交通**企业发展研究院、《北大商业评论》杂志联合主办的2009年度*管理创新论坛暨第三届“*管理奖”评选中,盛大网络“游戏式管理”荣获“*管理奖”。
在上海市信息服务业行业协会举办的2008年度上海信息服务行业先进评选中,盛大网络获得“上海市信息服务行业杰出贡献奖”;盛大网络总裁兼首席技术官谭群钊、盛大网络首席运营官陈大年获得“上海市信息服务行业领军人物奖”。2009年7月28日 盛大自主研发的热血传奇孪生篇《传奇归来》公开测试,正式商业化运营.因宣传广告“原汁原味”涉嫌欺骗玩家。导致万人堵城门。各大报纸。电视台有报 《传奇》缔造了一个时代!成就了盛大和陈天桥!制造了经典网游问候语录。今天,你堵了吗?
2009年12月 在文化部主办的第七届*国际网络游戏博览会上,盛大获得网博会*奖“*网络文化贡献奖”,盛大旗下盛大游戏获得“二〇〇九*优秀网络文化企业奖”。
2011年,盛大游戏持5亿美金扩大投资领域 关注IT制造者。
2012年5月18日,入选第四届*“文化企业30强”。
请问,游戏开发中,服务器端程序员的主要工作是什么?他与客户端程序员对比薪资与工作压力哪个大?
1。服务器端程序员的主要工作是将服务器端提供来的数据请求进行合理的对数据库进行安全的读写.以及将游戏内相对玩家的信息及时转发给其他玩家2。个人感觉都差不多.客户端工程师的压力主要来自bug的修复。数据库端工程师的压力来自合理的分配系统资源对数据库操,以及对更新的数据进行读写,和日常的技术维护java游戏服务器开发有前途吗
最近刚跳槽,到新公司已经干了有两周时间了,这两周时间是过得比较充实的,因为这家新公司是个小公司,以前以单机开发为主,服务器方面我一个人,做两个游戏的服务器开发工作,当然,一个很简单,另一个就相对复杂点,简单的那个是个弱联网游戏,服务器只需要做好数据存档和登录支付验证就好了,而另一个,则是相对复杂的slg游戏,我感觉这是又一款cok,而公司目前并不打算再招服务器了,所以估计这个项目我会一个人干到明年吧,等*款上线赚钱了,可能会再招服务器。老实说,面试的时候,我就觉得这份工作对我而言是一个挑战,而当我清楚的了解了公司状况之后,我依然决定接受这个挑战。说说我之前的经历吧,大四的时候,学校安排来北京培训java(培训没什么丢脸的,出来找工作我也用的真学历真背景,不像某峰互联),之后我去了培训机构推荐的公司实习,那个时候,工资2k,然而工作也干得很开心,跟着前辈学到了不少东西,当时是做微信公众号开发的,我跟着前辈做微信后台开发,当时使用SpringMVC+MyBatis框架,刚接触的时候,我自己学了挺久才弄明白,后来弄明白之后想想,其实挺简单,对于逻辑开发的程序员来说,你只需要弄懂工作流程就好了,页面怎么跳转,跳转怎么传值,数据怎么处理,这些足够了,当然我是个不满足的人,我会去弄明白,为什么用这个框架、为什么不用别的、用这个有什么好处、如果让我自己来做这个后台、我会怎么搭建?带着这些问题,我会试着自己搭建一下后台框架(虽然前期大部分是复制粘贴)。除了框架部分,微信高级接口也是我研究的重点,我会去官方文档看看微信是怎么接入的,然后研究研究前辈的代码是怎么写的,所谓的干一行爱一行大概就是这样吧,当时我觉得,微信开发,是很有前途的,而我们公司用的框架,也是*进的(后来看来,确实这个框架组合是当前*的框架,而当时,微信公众号也确实是当时互联网行业的一个风口,微信后来把h5带起来了,导致现在一个好的h5前端都是供不应求的,薪资很高)。
说了这么多,为什么后来又转行做游戏了呢?其实是这样的,当时在*家公司,我的上级打算跳槽走了,带走整个下面的技术,而不带实习生,有那么一两个月,实习生就一直闲着没事做,对于我来说,这样过着就太无聊了,我喜欢挑战,于是我投简历,重新找了份实习工作,在一个游戏公司做java服务器开发,公司挺大的,几年前凭借一款slg页游称霸游戏行业(什么游戏我就不说了,说了就知道什么公司了),后来游戏行业往手游发展,这款slg也出了手游版,这一款游戏,几乎支撑了整个公司,再加上后来出的几款手游,公司发展挺好的,我所实习的*做的是一款mmorpg手游,从实习做到了转正,做了近一年了,然而这款rpg手游的数据却不是太好,*次封测次日留存23,第二次26(现在这家公司的游戏能达到80多次日留存),七日就更不用说了,而我也能感觉到,作为一款mmo游戏,玩家之间的交互实在太少,从头玩下来,我觉得这是一款单机,失去了mmo的本质,在项目组准备进行第三次封测的时候,我选择了离开,原因很多,不仅仅因为游戏数据不好,也有一些个人原因吧,不过说实话,是这家公司带我走进了游戏行业,我很感谢,我觉得游戏行业是一个非常有前景的行业,甚至比之前我认为*的微信开发还要好,游戏行业非常暴利,在这家公司工作就能感受到,策划文档中,充满了挖坑预留的计费点,这一块可以正常玩儿,但你如果充钱,你就比别人牛逼。网络游戏,最重要的,就是控制好平民玩家跟普通玩家的占比以及游戏平衡(当意识到公司的游戏如此处心积虑想要坑钱的时候,我突然明白为什么公司的游戏大多被腾讯代理了,为什么腾讯控股,原来如此,没钱玩儿你**,哈哈)。由此也可以看出,游戏的商业化,已经把游戏公司带入了一个固定的模式——无条件坑钱,我觉得已经失去了游戏的本质,我看过一本书,叫《游戏人生》(当时在cocos2014年开发者大会上买的。觉得挺值的),书已经送人了,但内容我看了一大半,从游戏的产生,到玩家的心理,到为什么需要游戏,这本书都诠释的热别好(我觉得游戏策划都应该看看这本书,做良心游戏,拒绝一味坑钱)。啊,突然发现这一段说的有点偏了,说到底,我也只是做游戏服务器开发的,我也改变不了游戏行业,我只要做好我做的。其实大的游戏公司,就应该走这种商业化路线,凭借几款长生命周期的游戏,支撑公司流水。
从转行做游戏之后,我倒是觉得,游戏开发比web开发有趣多了,当然技术上也比web难多了,之前发过一篇讨论,web开发何和游戏开发的区别,
1.从第三方支持来说,web后台有很多成熟的第三方框架,开发者不需要关心底层控制器跳转的实现,只需要一个或几个配置文件,就能完成核心控制器的部分,而开发者只需要关注web自身的业务逻辑,将逻辑与框架融合即可,使用框架一方面简化控制层代码,一方面很好的实现了业务逻辑的分层。而游戏后台开发中,因为各种游戏的需求差异性很大,从网络层,到业务逻辑层,各方面都必须根据自己游戏需求搭建适合自己的框架,因此很难有一些通用的东西能提炼出来一款成熟的框架,游戏后台开发基本上需要自己搭建适合自己的框架。
2.从业务逻辑层面来说,web后台基本上逻辑都是大同小异的,或许这一套系统,稍微改改,另一套系统就能用,而游戏就不同了,每个游戏都有自己的特色,根据策划的不同需求而实现不同的逻辑,不过也会有一些通用的模块,但整体上差异性还是很大的。
3.从数据持久化来说,web的数据基本上是很规整的,表与表之间关系很明确,并且以后也不会有太大的变化,而游戏中的数据多种多样,随着开服之后,数据的变化也是多种多样,甚至传统的关系型数据库根本无法满足游戏数据持久化的需求,游戏中有很多状态和数据是需要服务器来保存的,我个人认为,在游戏开发中,nosql比关系型数据库更实用。
4.从通信层来说,web中的用户都是一个个独立的个体,而游戏中是多人在线的一个游戏世界,在这个游戏世界中,玩家与玩家之间需要进行交互,这就需要服务器实时的向所有在线玩家进行消息广播,这一点很损耗服务器性能的,在这方面,游戏后台要比web做更多的处理,游戏服务器是一个IO密集的服务器类型。
以上便是我当时的答案,或许我的见解尚浅,毕竟我做游戏不到一年,不过对于后台开发这块,我还是有一点话语权的,从实习游戏开发开始,我便经历了一个转换的过程,几乎又是一个从零开始的学习过程,从mina框架到,这些东西,我相信web开发很少接触(mina作为网络通信框架,web中几乎只有http通信,作为通信协议,web最多用json,其实二者形式上差别不大,但数据大小千差万别)。而游戏的逻辑,也是比web复杂得多,不得不说,web后台成熟的第三方框架是做的真的很好。
经历了上家公司的洗礼,我想我对游戏后台开发有了足够的了解,于是我找到了我现在这家公司,这家公司目前只有我一个服务器后台,做两款游戏,一款是塔防类,准备由单机改成弱联网,服务器存档,并做登录支付验证,另一款,是比较庞大的slg手游,是准备带领公司走上巅峰的项目,说一款slg带领一个公司走上巅峰一点儿不为过,我上家公司就是这样的,凭借一款《xxxx》(哈哈,名字不透露),走上人生巅峰。我之所以接受这份工作,是因为我接受挑战,从底层写起,从架构写起,这是作为一年工作经验的我想都不敢想的,不过这是一个挑战自我,证明自我的机会,我愿意接受这个挑战,人生总会有很多爬坑的时候,但爬过了坑,就真的是人生巅峰了。我接受这个工作的另一个原因,就是公司发展确实不错,以前做的单机,都是很火的(虽然我认为我自己一个人也能做,我也是学过cocos的),而现在公司也准确的把握了游戏行业的风口——slg,coc和cok的成功案例就能证明一切,mmorpg也不一定能做起来了,moba倒是有可能,但你要跟lol做不到80%的相似,我估计没人愿意在手机玩儿moba,slg或许是性价比*的了。这么有挑战的工作,还要从架构写起,这样的挑战,我喜欢!
说说互联网业的书吧,我认为这个行业的书,分为两种,理论型的和技术型的,所谓理论型,就是长篇大论互联网发展,行业模式等,而技术型,就是类似技术的工具书,是从技能入手的书,这两种书,我家里都有,但我发现买了之后,我很少有时间看,下班没多少时间,北京上班,大多数时间都浪费在地铁上了,上班时间,看看理论型的吧,觉得啰嗦,浪费时间(后来我发现,做这行,除了会技术,你还是需要去看看牛人眼中的互联网的,你需要透过前辈的眼光看世界,不要做IT民工,要做互联网从业者),看看技术型的吧,让别人看见了感觉你太low,所以我大多数时间还是能在网上down到pdf就在电脑看,down不到百度谷歌我要研究的技术,毕竟从事这行,还是用电脑学技术好点,主要是电脑看久了眼睛会疲惫,偶尔看看纸质的书也不错的。而以前面试的时候,面试官经常问,除了*课本,你还看什么书啊?(如果是你们,恰巧又没看什么书,你们怎么说?),我一般会说,我会自学其他技术,如cocos2dx,然后买一些技术指南之类的书看。我觉得这已经算*夸张化了,因为*我真的很少看书,我记忆中就看过一本C++技术类的,一本C#的,一本Android,还有其他几本是什么都不大记得了,*毕竟十几层的图书馆,除了英语四六级的时候进去复习,其他时间感觉都浪费了这十几层的图书馆。
说说成长过程中遇到的问题吧,如果遇到我解决不了的,以前是先自己百度谷歌,看看有没有办法解决,不行就问老大,而现在,先百度谷歌,看有没有办法解决,没办法在百度谷歌,实在不行还要看框架源码如何实现,上国外论坛看外国友人如何解决,问题总能解决的,总会有办法的。当我开始学习写架构的时候,我会开始关心游戏的网络层使用什么框架,mina还是netty,数据怎么存储mysql还是mongo,是否需要缓存redis存什么,memcached存什么,缓存什么数据,数据传输用什么协议,json还是,怎么写效率高,*支持多少并发等等,我想这些都是我现在需要考虑的问题,当然这些都需要根据游戏具体的需求来决定的,最终服务器能否高效稳定的运行,都是取决于我的架构是否高效稳定,所以这个过程我要不断学习,不断吸取别人的经验。刚到新公司的时候,我才体会到,自己写代码其实也是一种挑战,整个后端我自己一个人实现,代码是否规范,数据如何存储,都是我说了算,我想我的代码不仅要高效,还要让别人看得懂,后来的人能接着我的代码继续写下去。
*说说Java的题外话,语言之争,从未停过,为什么有人拥护Java,有人拥护PHP,有人喜欢C#,有人喜欢C++,各个语言各有各的优势,业余时间,我也了解了不少其他语言,go,node.js我都有了解,我觉得go的语言层面支持协程并发以及node.js的异步,都是很适合游戏服务器的,我特别看好node.js,异步io真的是对游戏服务器很好的特性,并且加入对原声js支持的mongo模块也是很方便的(上面我有说到,我相信nosql是很适合存储游戏数据的)。说到游戏行业,我认为h5游戏的发展也是越来越快了,上次白鹭的h5开发者生态大会我去了,白鹭的一整套工作流程,以及web vr,真的很令人兴奋(*轮抽奖我还抽了一个暴风魔镜,哈哈!),另外,大会的模特挺漂亮,哈哈!2015年,互联网行业也略呈下降趋势了,不少创业公司面临倒闭,泡沫经济破灭,因为很多老板抓不住当前经济形势,以为不管是啥,有个app就是创业了,其实全然不知一款app后面有多少运营模式、盈利模式,就像一句讽刺的话,“我有个绝壁好的idea,可以颠覆bat,什么都不缺,就缺个程序员了,等等,千万别告诉马云!”,哈哈,听到这句话,当时我就笑了,估计好多倒闭的创业公司老板都这么想的吧,他们并不能抓住用户真正的需求,只有抓住用户真正的需求,才会抓住用户的心,真正活下来的,才是用户真正需要的,然而,相对来说,游戏行业更是复杂多变,或许今天玩家喜欢这种游戏,明天玩家就喜欢另一种游戏了,就像我们永远也想不到,flappy bird、围住神经病猫这类的游戏竟然能活起来,愚公移山竟然也能让h5游戏变为付费的可能。就像一句话,“只要站在风口上,猪也能飞起来!”,只要抓住了玩家此时此刻真正想要的,产品就一定能做起来。