一、游戏服务器编程言语的挑选
所谓的游戏服务器编程言语其实有许多,根本上任何一种言语都能够作为游戏服务器的编程言语。这需求依据自己游戏的类型和要求加以挑选。比方C++,Java ,Erlang,go等等。现在我用过的只要C++和Java.可是以Java为主。所以接下来就以自己的经历,谈谈以Java为中心的游戏服务器开发技能体系。
Java现在作为游戏服务器开发言语现已很是遍及。可是大多数是作为页游或手游的服务器,而端游戏一般挑选C++,由于端游对服务器的功能要求相对比较高一些。两种言语各有利弊。C++效率高,可是把握度难些。没有Java易于把握。而现在关于寻求快速上线率的页游和手游来说,Java成了一个不错的挑选。
二、Java的技能体系
需求学习的技能:
(1)Java基础常识
(2)JavaNIO编程
(3)Netty,Mina网络结构通晓一种,其它作为了解。
(4)一种缓存结构:Redis;memcache了解运用一个。
(5)SQL言语,用于数据库:mysql
(6)springmvc首要用于http协议的服务器
(7)多线程编程,理解线程安全的重要性。
(8)Java并发调集的把握。
(9)Linux常用的根本指令及shell脚本。
(10)数据库操作,比方mybaTIs。
以Java为服务器编程言语来说,把握Java的根本常识就不用说了,是必不可少的。能够参阅《Java编程思维》,《Java中心技能》等书。依据游戏通信协议的不同,大致有两种完结办法:Socket和http。先说简略些的http协议,这个协议现已很老练的使用到了网站上。而Java言语也能够用于网站开发,所以适当就简略些。现在有许多开源的服务器软件,比方:tomcat ,resin等。游戏前端不管是页游flash,仍是手游的Android,IOS都支撑http协议,只要把游戏的逻辑数据按post办法向服务器宣布恳求即可了。
而关于socket来说,就需求把握一些深化的网络通信常识。关于Java来说,一般挑选NIO(非堵塞)开发办法。能够参阅Java NIO编程相关材料。为了习惯这个需求,现在有许多网络通信结构,比方Netty,mina。现在现已老练的使用到了游戏开发傍边。这些都是开源的,有爱好能够阅览它们的源码。
游戏服务器开发过程中,会触及到许多多线程的使用。这样能够进步服务器的功能和完结某些特定的操作。比方组队打怪,竞技场的现实排名。这些触及到了并发对同享数据的操作。为了避免数据的过错,一定要做好数据的同步。这儿引荐一本书《Java并发编程实战手册》。
三、学习流程
当然了,学习这些东西并不是一蹴即至的。需求依据实践循环渐进,这儿引荐一个学习流程:
(1)关于初学Java的人来说,假如自学能力好些,能够买些书自己操练,而现在又更的多挑选参与训练组织的训练,以快速的把握Java的常识。
(2)把握了Java常识之后,要多写代码实践。这个时分能够结合mysql学习SQL言语,把握数据库的操作。比方用springmvc写一个小网站,用mybaTIs完结网站数据的增,删,改,查等功能。
(3)完结上步之后,能够在服务器程序和数据库之间加一个缓存,学习redis或memcache。
(4)把程序布置到linux服务器上,操练linux的根本指令及shell脚