一、题记

2020年11月21日,由于自己笔记本电脑充电,自动断电重启,想买一台二手电脑,学习编程,敲敲代码。公司的电脑不怎么样,IDEA打开需要1分钟左右,可能插件安装很多导致的吧。然后在咸鱼上找找有没有二手电脑,可能机缘巧合,遇到一位游戏后端开发,在上大学的时候就想做一名后端游戏开发,然后问那位大佬,游戏后端开发用什么框架,直接说底层基于netty,手写框架。此时震惊了。目前了解游戏开发大部分使用C++、少部分使用go、但是使用java开发第一次了解。我所了解java开发做web的服务端很多。但是对于游戏开发,肯定使用对服务器资源处理性能最好的C、C++、目前很火的go、那位大佬说:“mmo都可以用java做,主要是fps不行”。
注意:
mmo: 表示 手游
fps:所谓的FPS其实就是指游戏画面刷新帧频(游戏画面刷新频率),也就是说游戏中每秒钟能够绘制多少次图像,如果FPS控制不精确那么游戏界面的动画会出现时快时慢,有一定的游戏开发基础,知道其实控制每秒的刷新帧数可以通过线程对象的sleep(long time)方法来控制每次绘制完图像的休眠时间,从而达到FPS的控制。

二、后端游戏开发基础使用技术与框架

1、netty做游戏底层框架
netty是一个java开源框架。netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。netty 是一个基于nio的客户、服务器端编程框架。
2、数据存储用mysql、mongodb、tidb
存储数据
3、缓存用redis、或者jvm、服务器内存中
临时存储数据,缓解mysql与mongodb压力
4、数据传输protobuf
protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。

三、后端游戏开发怎么入门学习

1、系统初始化
2、游戏逻辑
3、数据库系统
4、缓存系统
5、游戏日志
6、游戏管理工具
7、公共服务组件

四、推荐学习2个开源项目增长知识与后端游戏开发理解

https://gitee.com/xiaoe/noark3

Noark是一个游戏服务器端框架,可快速开发出一个易维护、易扩展且稳定高能的游戏服务器,让开发者专注于业务功能的开发
实现了配置注入,协议映射,模板加载,数据存储,异步事件,延迟任务,内部指令等功能模块
从而达到了松散耦合的效果,提高了系统的可重用性、可维护性以及可扩展性
精心设计过的它大大简化了网络编程和多线程编程,众多的工具类库就是为了解决开发中那些重复劳动而产生的框架

注意:

此项目主要学习netty和network怎么使用

https://gitee.com/noah1100/laiwan-game

工作之余练手项目。可用于局制游戏服务端,其他游戏类型也可以支持,实现了集群部署应付压力。

注意:

此项目基于vertex3做的框架,vertex3封装了nettty,线程处理上比较6,但社区不活跃,建议了解就行了

更多推荐