找回密码
 立即注册
楼主: Baste

c++游戏服务器方向需要多少功底?

[复制链接]
发表于 2021-8-17 10:39 | 显示全部楼层
这也要功底?就是特殊的网络编程而已!
1.socket,多线程服务器端,各线程间同步,共享内容!现成框架一大堆,都是基本的socket知识
2.游戏逻辑。就是你接收到每个线程发过来的玩家数据后怎么处理,怎么和其他线程的数据混合处理,怎么和后台统一数据库交互,最后发什么给回用户。这些都叫业务逻辑,更多的叫设计创意,每个游戏各异,好像都叫不上技术。就像,做网站,每个网站后端逻辑都不一样,称不上技术,最多只能叫创意。
一个游戏服务器,不止c++的,都是以上两点,何来技术功底!?
发表于 2021-8-17 10:45 | 显示全部楼层
个人觉得主要还是服务器状态机难处理。
网络部分有很多优秀的网络框架和沉淀。
脚本部分可以选择lua,这个干净。
但是状态机需要做好顶层架构设计和内存管理等等,需要多实践
最后,加油
发表于 2021-8-17 10:50 | 显示全部楼层
看你想到什么程度吧,随便写写
入门级:语言和算法基础即可
熟练级:对底层系统有一定理解,对语言有一定深入
核心级:服务器架构,多线程多进程,网络基础,调试调优手段,工具开发,数据库使用,运维.......
编写级:硬件平台,各技术优缺点选型,各语言机制,架构设计,底层运行机制,cpu高缓和多线程机制,网络机理,数据库设计,日志设计(包括统计).......。这一层级,不要轻易相信自己,一定要严谨
发表于 2021-8-17 10:59 | 显示全部楼层
您好
鄙人不是程序员,无法从程序员角度回答您的问题
就帮您找点学习的东西,您先看看
鄙人的倾向是根据鄙人的交流,游戏向的程序员需要的知识面还是不少的
不是说是游戏资深玩家,但是了解很多游戏还是需要的
从事游戏开发,需要什么技能?安柏霖:面试官谈游戏开发入行--技术准备如何在游戏开发领域深入发展?游戏引擎想做游戏服务器端开发,大神能指条路线么?游戏服务端技术/人员整体水平是不是已经落后于互联网服务端?有那些比较成熟的开源游戏服务器引擎/框架(编程语言不限)?张小方:C++ 游戏服务器开发有什么推荐的学习资料或者书籍?您慢慢看,衍生开来学习


仅供参考
发表于 2021-8-17 11:03 | 显示全部楼层
我觉得游戏的逻辑开发不论是服务器还是客户端 C++ 都会慢慢的退出主流。因为逻辑与需求是密切相关的,而游戏开发的需求变化之频繁是你无法想像的,而在频繁变更调整的情况下,C++ 的不足被放大,比如编译速度慢,不能方便的热修复(经过精心设计的架构是可以的),出错就程序崩溃退出等等,所以我觉得游戏的逻辑开发会逐渐被脚本语言所替代,虽然 C++ 的性能优势明显,但是抵不住硬件越来越便宜,CPU,内存开销都不是事,更何况脚本语言出错了,程序一般不会直接退出,可以通过热修复抢救一下,可以抢救这个优势可是太大了,想想游戏上线了,砸了 N 多广告费,结果因为 BUG 导致程序崩溃,玩家体验不好,广告费可全打水漂了,如果可以通过热修复抢救一下,结果就不一样了。
上面说的跟题目关系不大,接下来说 C++ 部分。因为逻辑用脚本来实现,核心框架还是用 C++ 实现,所以这就要求 C++ 部分的代码极其可靠,CPU和内存使用上都尽可能的高效。其实一款游戏的代码绝大部分都是逻辑,基础部分主要是服务器的结构划分,进程/线程模型,网络,持久化,定时器,以及提供便于使用的接口给脚本使用。
下面根据自己玩游戏的经历去思考游戏后面的逻辑:
    登陆
      最简单的情况,输入帐号密码,进入游戏。如何实现?如果游戏支持一个帐号下多个角色,要怎么处理如果一个账号可以登陆多个分区,又要添加些什么处理支持第三方帐号(如微信)登陆,又要添加些什么可以同时处理多少玩家登陆,太多了怎么处理实名认证怎么处理
    进入游戏(以MMO为例)
      登陆成功,加载玩家数据,涉及到玩家数据的初始化和持久化怎么让一个角色可以看到其它角色(AOI)万人同屏会有什么问题
    ……
游戏开发使用的技术并不先锋,也不神奇,相反可能比较落后,因为都是陈年代码,只要能运行谁都不想惹事。所以游戏服务器 C++ 开发其实没什么神秘的,能写 C++ 就行,关键在于对需求的理解和把握上,实际项目中还要深入了解已有代码的特点,避免踩坑。平时多看看游戏开发方面的书,不是实现细节,而游戏骨架方面的,玩游戏的时候思考一下开发人员可能的实现方式,然后看看能不能验证自己的想法,自己实现试试看(不需要UI的)。
《游戏引擎架构》这本书主要讲的是客户端的东西,也有部分服务器相关的原理。
<a data-draft-node="block" data-draft-type="mcn-link-card" data-mcn-id="1402068062821023744">《网络多人游戏》这本书网络方面的知识讲的非常好,游戏开发中遇到的各种网络问题都有提到,也有相应的解决方案,非常棒!同时介绍了一些游戏开发中的其它问题。
看看《代码大全》《重构》,学习怎么设计和编写易于阅读和维护的代码。
发表于 2021-8-17 11:11 | 显示全部楼层
上面已经有朋友推荐《网络多人游戏架构与编程》,那我个人推荐《多人在线游戏架构实战:基于C++的分布式游戏编程》这本
多人在线游戏架构实战:基于C++的分布式游戏编程 (豆瓣)
发表于 2021-8-17 11:12 | 显示全部楼层
所有的东西都离不开一个东西 操作系统,把它啃烂
发表于 2021-8-17 11:18 | 显示全部楼层
没前途,改行吧
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 12:04 , Processed in 0.066468 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表