首页 > 编程知识 正文

游戏开发实训心得,自学游戏开发需要多久

时间:2023-05-03 11:59:09 阅读:54281 作者:4431

游戏开发基本功:

数学基础:根据你做的内容决定。 一般来说,高层逻辑很少考虑积分等高内容。 但是,想做图形学、矩阵线性代数,高的数必须有一定的基础

算法:常见的排序、搜索需要理解和掌握,更常见的是分治、贪婪、动态修订,有时也可以学习当前的销售。 另外,除了这些基本算法以外,还有很多在游戏领域很少使用的算法,如八叉树搜索、碰撞检测、A*等。 此外,还有一些特殊情况需要开发人员自己寻找合适的算法。

c(c# ) :基本语法、代理、命名空间、const、继承、内存结构、虚拟表、引用、断言、宏定义等

数据结构:首先了解链表、数组、队列、堆、堆栈、映射、树等数据结构,然后了解各种排序、搜索、遍历等算法。 掌握了这些之后,就可以马上习惯stl和类似的基本库,使用时可以更正确地选择适当的数据结构

设计模式:通常需要设计模式来快速构建游戏的逻辑框架,例如上面提到的各种逻辑系统。 另外,需要以设计模式理解发动机各模块的设计思路。 当然,如果你想设计游戏引擎,设计模式是必不可少的。

在一定程度上深入了解引擎的各个模块:这当然是一次看看游戏引擎体系结构。 如果不理解编写的代码,往往会出现各种问题(例如同步问题),编辑器的各种功能也无法正常使用。

内存管理:许多引擎和语言可能尽可能地处理内存,但在特殊情况下不可避免地需要自己处理。 必须能够使用内存池技术、使用各种C的new。

熟悉开发工具:这里不仅是熟悉某个引擎的使用方法,也意味着了解与不同引擎相关的内容,可以很快绕过。

编译原理、链接和第三方库:经常遇到各种链接错误、编译错误和软件包错误。 解决这些问题需要一定程度的知识和经验。

性能分析和性能优化:主要包括三个方面——内存、CPU、GPU。 着手点包括负载资源优化(包集成)、裁剪、声音文件加载、加载,如渲染批处理、渲染实例、面料优化、网络同步数据量、物理开销等可以使用引擎内置工具进行调试,更详细地说,可以使用Intel的VTune工具(如果有时间,可以写相关的使用文档)。

了解游戏:不玩游戏也同样可以参与游戏开发,但玩游戏的人有好处。 最明显的是,玩过游戏的人对游戏有更多的想法和意见,习惯于积极学习其他游戏的技术和优点。 (项目就是这样,企划更是如此) )。

开发经验:这个比较广泛,很难用只言片语说清楚。 例如,你的游戏中奇怪的是发生了错误。 初学者根本无从下手,但有经验的人会使用各种手段调试解决。 经验丰富的老手有时真的相当于n个初学者,这需要大家不断的学习和实践。

游戏模块总结:

游戏逻辑模块系统:游戏游戏核心,包括各种武器、状态、技能、背包、战斗等逻辑系统

动画模块系统:状态机、Montage、动画融合、IK等

物理模块)为需要交互表示的对象提供物理特性(包括刚体、流体、粒子、布料等)、重力大小等各种参数,调整交互中力大小,调整物理约束

AI模块: AI导航、玩家交互等,玩家的很多功能系统也需要AI使用,在更深的层次上可以考虑引入机器学习相关的内容

UI模块:构建各种接口框架(背包、危机脸、地图等)非常耗时费力,后期需要不断调整

渲染模块:客户端表现核心,不言而喻,内容非常多、深刻

网络模块:基础架构、同步、网络连接

场景模块:包括地形、水平、植被、角色管理和优化等

输入和输入处理模块:将玩家的输入处理转换为逻辑。 需要注意的是组合键、输入法的切换等

注册和更新游戏:这通常在专用工具组中完成。 例如,我们常见的各种游戏录像机、在线更新等。

这里面的东西不仅需要互联网,基本上还需要美术、企划、项目的共同参与和合作。

技术要点:

存储和序列化(protobuf )

如何实现单机玩家的游戏存档? 基于串行化套接字的基本TCP/UDP通信系统的构建

插件

保证游戏的公平性,在一般服务器上做各种检查措施。 这真的很难。 而且很麻烦。 我想请伟大的人告诉我。 周围真的没有很多人

多线程

它通常用于渲染、物理、网络同步等,以减少开销并提高cpu利用率

封装管线、封装尺寸优化、封装多层递归参照优化等

数据库

哪些数据驻留在数据库中,哪些驻留在本地? 我应该选择哪个数据库? 之后,不会发生游戏合服数据库的整合吗? 合并后的Key怎么办?

CDN /服务器的部署和运行等

这也很复杂,考虑到成本,希望容纳更多的玩家。 在某些情况下,可能需要使用CDN技术优化网络同步。 另外,还需要考虑成本等因素来决定是否租用云服务

网络贯通

玩家要想自己玩类似房间的游戏,就必须提供贯穿网络的手段,让两个内部网的玩家可以链接通信。 在一些情况下,提供了网络穿透技术平台,不需要自己制造车轮。

其他:

版本控制

一般使用git或svn

性能分析工具

我们已经讨论了性能优化,但是在优化之前,我们需要一些有助于确定影响游戏效率的瓶颈的工具,如VTune

构成

需要大量计划配置的数据存储在哪里? 配置文件? XML? 这需要建立一个小系统(或由发动机提供)。

语音数据处理

典型的引擎提供基本的音乐和声音处理,但一些引擎提供了更深的音频处理

,效果更好
平台对接
游戏需要发布到不同的平台,这个平台不仅仅指硬件平台(Android,iOS,PS4,PC,XBOX)还包括各种软件平台(各种应用商店,如PC上的Steam,WeGame。安卓上的应用宝,各种软件管家等)该过程其实也相当繁琐,有一些平台的审核非常严格,需要积累一定的经验才能快速的处理相关内容
国际化与本地化
简单来说,就是不同国家的语言版本不同。如果你的游戏不是只卖给英国美国,你就不得不面对本地化,坑很多
日志系统
开发与运营 游戏上线一定很多bug,你又没办法去玩家电脑上调试,如何快速定位bug,日志系统很有效
调试与维护
开发期 断点调试(最有效)、日志调试、dump调试 、控制台调试,可视化调试(在场景内绘制特定的几何体),截图录屏调试(一般用于调试渲染,动画等)
上线期 日志调试、服务器可以用dump调试,也可以想办法把客户端的dump传送到服务器(做一个内置的自动收集客户端dump程序) 、管理员GM调试(非常重要,可以避免重启服务器)
bug处理
严重损失的bug:有时候已经发生的造成玩家严重损失的bug(如玩家投入大量时间、金钱获取的)无法改变,又不能及时修复,想要弥补玩家,可以通过GM来给予玩家补偿。
游戏崩溃性bug:需要在游戏上线的前两天,把发生概率高的所有Bug通过Dump调试后尽快修复并更新
脚本
简单逻辑代码,热更新
工具开发
针对特殊需求开发特定的工具来提高程序、美术、策划的开发效率

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。