一,游戏服务器编程语言的选择

所谓的游戏服务器编程语言其实有很多,基本上任何一种语言都可以作为游戏服务器的编程语言。这需要根据自己游戏的类型和要求加以选择。比如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脚

java游戏服务器开发需要学习的技术相关推荐

  1. 学习JAVA游戏服务器开发需要了解的情况

    一,游戏服务器开发的工作介绍 近来遇到有很多人想从其它开发领域转到游戏服务器开发行业上来,他们或许觉得游戏服务器开发工资高,或许觉得做游戏服务器需要掌握的技术更高级,可以锻炼自己,或许觉得想换个环境等 ...

  2. java游戏服务器的开发和维护,java游戏服务器开发

    java游戏服务器开发 内容精选 换一换 开发者基于Atlas 200 DK进行AI应用开发前,需要在制作SD卡时准备的Ubuntu服务器中部署开发环境,有以下两种场景:部署MindStudio,基于 ...

  3. Java游戏服务器开发之概念扫盲

    入行缘由 在2017年我正式的从web转Java游戏服务器开发.那个时候机缘巧合的投了一家使用Java语言开发游戏服务器的企业,当时的老板还问我为什么从web转游戏开发.当时我的回答还是历历在目:我喜 ...

  4. java游戏服务器开发之四--通讯框架netty

    前言, 说明 引入netty的pom <!-- netty --><dependency><groupId>io.netty</groupId>< ...

  5. java游戏服务器开发之八--网络事件监听器

    java游戏服务器开发之八-网络事件监听器 网络事件监听器,将网络变化交由NetworkListener处理 可以看到,我们现在所有的逻辑都是写在TcpMessageStringHandler里面, ...

  6. Java游戏服务器开发之十二--数据库连接整合mybatis

    应该比较让人关心的还有一个就是数据存储的问题了.   下面将会介绍连接数据库的相关内容   使用的是mysql数据库,框架中将使用mybatis   这里介绍时假设各位都使用或者了解过mysql. 1 ...

  7. Java游戏服务器开发之二--导航帖

    Java游戏服务器开发之三--日志         Java游戏服务器开发之四--通讯框架netty Java游戏服务器开发之五--使用工厂模式生成netty Java游戏服务器开发之六--整合spr ...

  8. 《深度解析Java游戏服务器开发》源码

    不知什么原因,出售的<深度解析Java游戏服务器开发>一书中,没有给出源码,这里补上,源码已经上传至github: https://github.com/hjcenry/JavaServe ...

  9. Java游戏服务器开发之二十--xml配置文件

    Java游戏服务器开发之二十--xml配置文件     游戏中使用的配置文件很多     像游戏中的关卡,英雄等级,装备之类都是使用配置文件(xml等)     比如有一个装备,配置表中有一条记录,数 ...

  10. 如何学习java游戏服务器开发?

    为什么游戏服务器很多都用Java开发 Java 做游戏服务器开发的优势还是很多的,<我的世界>的服务器就是Java开发的.Java技术比较成熟,大数据,云计算,网站App后台,基本都采用J ...

最新文章

  1. 2.MyBatis 动态SQL
  2. Teams数据统计 - 用户在线离线状态
  3. 音频光端机的必备要素有哪些?
  4. C语言中.和->区别
  5. UML图入门学习笔记
  6. 日本老年人开始送外卖了 锻炼赚钱两不误 网友:饿死了么外卖?
  7. 蓝桥杯题目——平方回文数
  8. Redis下载部署并加入idea应用(详细笔记)
  9. linux使用客户端连接redis,使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题...
  10. java视频文件格式转换,视频文件格式转换器-视频文件格式转换器 2018 官方版
  11. NTFS权限和文件详解
  12. 错排公式——n封信放入n个信封,要求全部放错,共有多少种放法
  13. 闲鱼双11全链路营销体系初体验
  14. 【UVA1723】Intervals
  15. mcgs odbc mysql_MCGS构建实时数据库.doc
  16. Gsensor驱动概述
  17. Dedecms QQ一键登录插件
  18. 北斗由“高大上”转为“接地气” 芯片成国内智能手机标配
  19. 中国银河证券公募基金分类体系的理论依据与规则基础
  20. android 微信缩小通话界面_Android仿微信多人音视频通话界面

热门文章

  1. 单片机简易开发板怎么设计,我来告诉你
  2. 防火墙基础之华为防火墙分支与分支IPSec 对接
  3. 模糊层次综合分析法Python实践及相关优缺点分析
  4. 将Excel列转为字符串存到数据库表中
  5. VM虚拟机 Liunx修改ip地址
  6. ap mt7260a 华硕_带你入坑,用MT7620A带USB口的路由器搭建一个私有网盘
  7. 字节跳动实习面经(已拿offer附攻略)
  8. 一个免费ss网站的数据爬取过程
  9. 离散数学自反,对称,传递闭包
  10. python 爬虫获取商家信息_Python爬取商家联系电话以及各种数据的方法