在开发网页游戏服务端方面?c++erlangjava或者其它语言,优劣分别是什么呢?

在开发网页游戏服务端方面?c++erlangjava或者其它语言,优劣分别是什么呢?,第1张

erlang是面向过程的语言,函数式编程,入手不难,难在怎么充分利用erlang的语言特性。
C++是传统的服务端开发语言,端游都用它,erlang最早诞生于电信领域,高并发,安全性高,容易上手,只是效率不比C++,在页游手游正火爆的当下,许多公司急于扩张,网游人才难招IT行业是出了名的,所以大多选择了门槛较低的erlang。也有游戏开发用java的,现在相当还比较少吧,其实这些语言都是一通百通的,学好一门,吃遍端页手。做页游那学erlang去吧。

《王者荣耀》的开发语言是C#,是基于Unity3d (NET C#)引擎开发的跨平台游戏,服务器用的语言是C#,编程软件属于技术核心是不会对外公开的。

《王者荣耀》是由腾讯游戏开发并运行的一款运营在Android、IOS平台上的MOBA类手游,于2015年11月26日在Android、IOS平台上正式公测,游戏前期使用名称有《英雄战迹》、《王者联盟》。

游戏是类moba手游,游戏中的玩法以竞技对战为主,玩家之间进行1V1、3V3、5V5等多种方式的PVP对战,还可以参加游戏的冒险模式,进行PVE的闯关模式,在满足拥有五个英雄的条件后可以参加游戏的季度排位赛等。

2016年11月,《王者荣耀》荣登2016中国泛娱乐指数盛典“中国IP价值榜-游戏榜top10”。

2017年7月2日,腾讯方面发出游戏“限时令”:7月4日起《王者荣耀》12周岁以下(含12周岁)未成年人每天限玩1小时,并计划上线晚上9时以后禁止登陆功能;12周岁以上未成年人每天限玩2小时。超出时间的玩家,在对局结束后下线,当天将无法登陆,成年人在连续进行3小时游戏后会被强制要求下线休息15分钟。

从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分钟时间


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10267595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存