golang游戏开发杂谈

入行PHP,第一个项目做了商城1年多点时间黄了,第二个项目K12教育系统做了三年碰上疫情加减负政策凉凉了,第三个项目开始用go做房间类游戏了。

个人使用技术

应用型项目:

  • 语言 PHP Golang
  • 数据库 Mysql
  • 缓存 Redis
  • 其它框架和工具:rabbitmq(消息队列)、gin(golang框架)、lavavel(PHP框架)、Elasticsearch(搜索引擎)

游戏型项目:

  • 语言 Golang
  • 数据库 MongoDB、Mysql
  • 缓存 Redis 内存
  • 其它框架和工具:rabbitmq(消息队列)、gin(golang框架)、zinx(TCP框架)、gonet(TCP框架),protobuf(结构化数据存储方式)、etcd(分布式存储)、nats(消息系统)

两个领域项目开发项目用到技术都是差不多的,就看怎么用,在不同项目稳定不崩永远是第一要素,其次才是性能,游戏项目对性能和稳定性要求肯定是高于应用型项目,

作为初级游戏后端对内存认知也是很低了处于能用就行不死锁就烧高香那一种了,什么高大上利用L3、L2是完全不懂的。GC卡顿都碰不到,不辛碰到就是找网上各种解决方案。

数据存内存中,服务就是不能崩什么异常都捕获掉,定时持久化数据,一崩用户骂娘老板骂爹,身为初级游戏后端我也没什么好办法,有游戏后端大佬给指点一下怎么处理。

游戏开发定时器也会用的比较的

其它什么状态机的也得研究一下用一下,行为树也可以研究一下,设计模式什么的看着研究用。高阶大佬分层任务网络可以研究一下身为初级完全不懂。

游戏业务上开发复杂度是不高的,难点在优化性能稳定性上。

网络传输这块TCP/UDP居多 少量有人用WebSocket 还用有KCP 身为初级后端用TCP

用户断线,网络不好TCP断开了都是操蛋的事情,web业务就没有这种烦恼。

结构化数据存储方式是用protobuf 网络传输性能效率都高于json

做游戏项目棋牌类捕鱼类什么的是最刺激的黑白两道都盯着你,黑道动不动就攻击你白道等养肥了宰杀,要不是找不到工作千万别碰,一不小心就掉坑里了。

做游戏项目服务治理要搞 但游戏服什么docker K8s身为初级游戏后端是不会用的坚决不用,etcd consul分布式存储会能跑起来就行 nats消息系统 部署起来能跑就行

总结还是做应用型项目轻松。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 2

楼主是自己创业吗

2周前 评论
耳东 (楼主) 2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!