
Java游戏开发要学什么?所谓的游戏开发编程语言其实有很多,基本上任何一种语言都可以作为游戏服务器的编程语言。这需要根据自己游戏的类型和要求加以选择。比如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主要用于>
(7)多线程编程,明白线程安全的重要性。
(8)Java并发集合的掌握。
(9)Linux常用的基本命令及shell脚本。
(10)数据库 *** 作,比如mybatis。
以Java为服务器编程语言来说,掌握Java的基本知识就不必说了,是必不可少的。可以参考《Java编程思想》,《Java核心技术》等书。根据游戏通信协议的不同,大致有两种实现方式:Socket和>
二、学习流程
当然了,学习这些东西并不是一蹴而就的。需要根据实践循环渐进,这里推荐一个学习流程:
(1)对于初学Java的人来说,如果自学能力好些,可以买些书自己练习,而现在又更的多选择参加Java培训机构,以快速的掌握Java的知识。
(2)掌握了Java知识之后,要多写代码实践。这个时候可以结合mysql学习SQL语言,掌握数据库的 *** 作。比如用springmvc写一个小网站,用mybatis实现网站数据的增,删,改,查等功能。
(3)完成上步之后,可以在服务器程序和数据库之间加一个缓存,学习redis或memcache。
(4)把程序部署到linux服务器上,练习linux的基本命令及shell脚
免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!
市面上的云服务器产品主要用于开发用途,所以你可以用云主机来搭建游戏平台。不过由于游戏行业的特殊性,用户在选择服务器开发产品时,最好选择高防云服务器。一个完整的游戏服务商应具有web服务器、游戏服务器、游戏数据库服务及备用数据库服务,而这些服务器的台数则有游戏玩家的人数决定。
简介:
云服务器的业内名称其实叫做计算单元。所谓计算单元,就是说这个服务器只能算是一个人的大脑,相当于普通电脑的CPU,里面的资源都是有限的。
你要获得更好的性能,解决办法一是升级云服务器,二是将其它耗费计算单元资源的软件部署在对应的云服务上。例如数据库有专门的云数据库服务、静态网页和有专门的文件存储服务。
而且云服务器不是说就便宜了,相反会比一般的VPS都贵。为什么因为它相对于来说,扩展比较方便。云服务器是网站做大了、有很高收入的时候一个不错的选择。
云服务器是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。
从2013年起,经朋友推荐开始用Golang编写游戏登陆服务器, 配合C++做第三方平台验证 到编写独立工具导表工具GitHub - davyxu/tabtoy: 跨平台的高性能便捷电子表格导出器 以及网络库GitHub - davyxu/cellnet: 简单,方便,高效的Go语言的游戏服务器底层 最终使用这些工具及库编写整个游戏服务器框架, 我的感受是很不错的细节看来, 有如下的几个点:
语言, 库
Golang语言特性和C很像, 简单, 一张A4纸就能写完所有特性 你想想看, C++到了领悟阶段, 也只用那几个简单特性, 剩下的都是一大堆解决各种内存问题的技巧 而Golang一开始就简单, 何必浪费生命去研究那一大堆的奇技*巧呢
Golang的坑只有2个:1 interface{}和nil配合使用, 2 for循环时, 将循环变量引入闭包(Golang, Lua, C#闭包变量捕获差异) 完全不影响正常使用, 复合语言概念, 只是看官方后面怎么有效的避免
用Golang就忘记继承那套东西, 用组合+接口
用Golang服务器如何保证解决游戏服务器存盘一致性问题 stop the world是肯定的, 但是Golang可以从语言层并发序列化玩家数据, 再通过后台存盘
channel是goroutine虽然是Golang的语言特性 但是在编写服务器时, 其实只有底层用的比较多
Golang的第三方库简直多如牛毛, 好的也很多
不要说模板了, C#的也不好用, 官方在纠结也不要加, 使用中, 没模板确实有点不方便 用interface{}/反射做泛型对于Golang这种强类型语言来说,还是有点打脸
运行期
Golang和C++比性能的话, 这是C++的优势, Golang因为没虚拟机, 只有薄薄的一层调度层 因此性能是非常高的, 用一点性能牺牲换开发效率, 妥妥的
16版后的GC优化的已经很好了, 如果你不是高性能,高并发Web应用, 非要找出一堆的优化技巧的话 只用Golang写点游戏服务器, 那点GC损耗可以忽略不计
和其他现代语言一样, 崩溃捕捉是标配功能, 我用Golang的服务器线上跑, 基本没碰到过崩溃情况
热更新: 官方已经有plugin系统的提交, 跨平台的 估计很快就可以告别手动cgo做so热更新
开发, 调试, 部署, 优化
LiteIDE是我首选的Golang的IDE, 虽然有童鞋说B格不高 但这估计实在是找不到缺点说了, 别跟我说Visual Studio, 那是宇宙级的
曾经听说有人不看好Golang, 我问为啥: 说这么新的语言, 不好招人,后面打听到他是个策划 好吧
真实情况是这样的: Golang对于有点编程基础的新人来说, 1周左右可以开始贡献代码 老司机2~3天
开发效率还是不错的, 一般大的游戏功能, 22人一周3~4个整完 这换C++时代, 大概也就1~2个还写不完 对接服务器sdk的话, 大概1天接个10多个没问题
Golang自带性能调优工具, 从内存, CPU, 阻塞点等几个方面直接出图进行分析, 非常直观, 可以参考我博客几年前的分析: 使用Golang进行性能分析(Profiling)
Golang支持交叉编译, 跨平台部署, 什么概念 linux是吧 不问你什么版本, 直接windows上编译输出一个elf, 甩到服务器上开跑不超过1分钟时间
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)