游戏开发(理论章)
关于游戏开发当中的理论知识
ProMer_Wang
一名热衷于电脑游戏、编程的程序猿
展开
-
学习笔记(一):游戏开发概述
1.游戏机发展史20世纪70年代开始 首款主机magnavox odysse80年代 红白机80-90年代 各类非FC主机(PS,NDS等) PC单机游戏90年代-2000年 局域网对战游戏2000年后 大型多人游戏 页游 手游现在 VR,AR …2.游戏是如何开发出来的,开发流程是什么?原始的游戏比较粗糙,内容也很少,一般就一个人开发,美术与策划都由自己完成(建议看看《doom启示录》)。随着游戏逐渐变得复杂,需要多人去合作完成,分工也变得明显。简单的流程如下:**a.**首先讨原创 2020-09-29 23:00:08 · 793 阅读 · 0 评论 -
学习笔记(二):游戏中的设计模式
游戏开发入门(二)游戏中的设计模式1.有必要深刻的认识到设计模式的意义游戏开发是一个软件工程,他的特点是需求极易变化。对于任何一个软件工程,我们要从代码的组织方式上来提高其可读性(别人也很容易理解),安全性(不能经常出bug),易用性(逻辑复杂,思路太偏,使用上各种麻烦),健壮性(要能良好的处理意外情况),可维护性(是否容易修复与修改),可拓展性(是否容易添加功能),封装和复用性(一段代码不要到处拷贝粘贴)2.游戏项目的特点对于游戏项目来说,除了上面的问题,我们更要注意其可拓展性,因为游戏的需求每天原创 2020-10-04 18:17:06 · 370 阅读 · 0 评论 -
学习笔记(三):图形渲染
图形渲染笔记:渲染一般分为离线渲染与实时渲染,游戏中我们用的都是实时渲染。1.实时渲染又可以分为2D渲染与3D渲染。早期的2D渲染,是通过把一块内存(图片像素数据)往另一块(显示缓冲区)上搬运的方式,实现图片绘制的。不过现在很多2D渲染的渲染方式已经采用3D渲染了。原因是当前显卡从架构上就利于并行处理,绘制速度更快,可以很方便提供各种3D效果,还节省图片资源内存。3D的渲染简单概括一下,就是把一个空间中的模型所有点的数据取出来,经过空间转换到2维屏幕上,然后根据各项参数与数据在绘制到屏幕上。现在原创 2020-10-05 01:12:20 · 1284 阅读 · 4 评论 -
学习笔记(四):逻辑与脚本开发
笔记与总结(请先学习视频内容):1.逻辑系统目的实现策划的设计文档构建游戏玩法实现程序与玩家交互2.逻辑系统看起来是一个技术含量没那么高的部分但是其中涉及到的技术内容却是相当多的。逻辑系统是作为一个游戏项目里面最为复杂的系统之一,需要编写者在一开始的时候就尽可能的通过经验来构建一个比较完善扩展性强的逻辑架构,然后随后不断的 进行迭代改进。**3.逻辑系统特点:**其实逻辑系统的特点是与游戏本身的特点想对应的,一款游戏需要对性能有很严格的要求,需求变更极为频繁,注重开发效率。那么对应的逻辑原创 2020-10-05 13:02:00 · 323 阅读 · 0 评论 -
学习笔记(五):游戏动画系统
1.游戏的发展史也是游戏动画的发展史最初的2D动画是通过序列帧图片来完成的,和动画电影原理一样,将多张图片连到一起就形成了动画,表现力比较差。如今的3D动画其实原理相同,但是在各个细节的处理已经大大不同了,需要多个动画完美的衔接融合,与外界环境有着很好的交互。2.动画是关于时间的函数:逐帧动画:随着时间的变化,去改变图片内容,常用于2D角色动画刚体动画:随着时间变化,改变某个刚体的位移(或旋转,缩放),常用于游戏动画录制等顶点动画:随着时间变化,改变模型顶点的位置,可用于简单的模型变换,捏脸,自原创 2020-10-06 01:09:09 · 724 阅读 · 0 评论 -
学习笔记(六):游戏物理引擎
1.游戏应用物理的目的就是为了真实2.物理引擎:可以认为属于游戏引擎的一个构成部分,但是可以独立剥离开来。游戏中的物理模拟的计算都是通过物理引擎根据真实世界物理定律来计算与实现的。市面上主流的物理引擎现在有两款,Havok与PhysX,其他的还有Open Dynamics Engine,Newton Game Dynamics,Tokamak Game Physics3.物理引擎带来的表现上的优势a.增加动画表现的丰富性,减少美术的工作量(柔体物理)b.增加游戏的真实性c.快速模拟各种现实中常原创 2020-10-06 09:18:32 · 954 阅读 · 0 评论 -
学习笔记(七):特效系统
游戏开发入门(七)特效系统1.什么是特效?在我工作的环境内,特效基本上就是指粒子特效。但更通用的定义应该是指为了体现出游戏中的某些特殊效果增加一些在现实中不常见的表现。这些表现包括但不限制于场景光影特效,UI表现特效,技能特效,雨水,沙尘等等。2.特效在项目使用中的问题没有一个完善,通用的特效系统,导致每个项目在运行时都需要手动重新搭建一个适合自己项目的类似系统,或者完全不构建系统,进而造成开发效率的降低。然而对于当前市面上的大部分游戏,特效的应用极为广泛,构建一个特效系统确实是有意义的。特效系统的原创 2020-10-07 10:03:49 · 736 阅读 · 0 评论 -
学习笔记(八):游戏中的场景管理
1.什么是场景物体?什么是游戏场景?游戏中所有具有空间属性的物体都是场景物体。所有场景物体构成的集合成为游戏场景。2.一般情况下哪些内容属于场景物体,哪些不属于场景物体?**场景物体:**玩家,NPC,场景建筑,地形,粒子特效,场景中的道具(武器等),还有一些看不到的对象如volume、摄像机等非场景物体: UI,UI上的道具,玩家(NPC)技能,玩家(NPC)状态,碰撞盒,物体的材质个人觉得,非场景物体并没有什么严格意义的概念,刨除所有场景物体,其他的都是非场景物体。或者严格来说,他们并不是我原创 2020-10-08 09:21:43 · 1282 阅读 · 0 评论 -
学习笔记(九):游戏同步技术
1.网络同步的概念与意义**概念:**任何一款网络游戏,为了尽可能的让不同玩家在同一时刻体验相同的内容,就必须要让不同的客户端看起来“同步”。**意义:**早期的单机游戏,所有的游戏内容都是在玩家自己的机器上运行,不需要给其他的玩家看,也就不存在同步的概念。 但是在网络游戏中,你必须要保证A玩家走到B玩家面前的时候,B玩家在自己客户端上也能看到A玩家走来,A玩家攻击的时候,B玩家能即使看到并躲闪。但是我们知道,网络延迟是不能消除的,我们只能尽可能的减小延迟。对于局域网游戏由于玩家在物理环境下很近,网络原创 2020-10-08 22:02:06 · 489 阅读 · 0 评论 -
学习笔记(十):游戏中的网络模块
上一节主要针对网络同步的细节与手段进行分析与讲解,这一节除了对一些常见的同步应用场景作解释外更多的会针对偏底层一些的网络内容进行分析。游戏中的网络与其它软件系统基本原理并无差异,基本上就是解决如何把网络消息快速安全的发送到其他端,然后其他端及时地处理该消息并做出对应的游戏表现。1.服务器在整个游戏过程中是一直运行的一旦服务器宕,所有的玩家都会掉线,一旦服务器出现卡顿,所有的玩家也会出现卡顿,所以服务器的性能与表现必须非常严格。很多情况下,有一些并非非常重要的逻辑最好放到客户端执行,可以减小服务器压力,原创 2020-10-09 09:26:40 · 451 阅读 · 0 评论 -
学习笔记(十一):游戏引擎架构
通过原文博主的课程,这个系列是对游戏引擎内容的一个概括总结,同时也是对游戏开发技术的一个相当全面的总结。正如学习笔记在开篇所提到的,游戏引擎架构的学习有助于我们建立一个对游戏全局性的认识。下面是按照视频的顺序自底向上的简单讲解各个概念,参考文中最后的架构图(英文版与中文版可以对照着看)。1.游戏引擎就如汉字最开始是由图案构成的一样,游戏引擎一开始也只是一个单独的游戏。当人们不断的制作新的游戏的时候,发现很多功能是通用的,没有必要做重复的内容。所以,人们开始对游戏里面的功能进行抽象总结,这样在开发新的原创 2020-10-11 20:07:53 · 1707 阅读 · 5 评论 -
学习笔记(十二):游戏开发全总结
游戏模块总结:**游戏逻辑模块系统:**各种武器,状态,技能,背包,战斗等逻辑系统**动画模块系统:**状态机,Montage,动画融合,IK等**物理模块:**给需要交互表现的对象赋予物理特性(包括刚体,流体,粒子,布料等),调整重力大小等各种参数,调整交互中力的大小,调整物理约束AI模块: AI导航,与玩家交互等,玩家的很多功能系统也需要给AI来使用,更深层次的可以考虑将机器学习相关的内容融入**UI模块:**搭建各种界面框架(背包,捏脸,地图等),非常耗时间与精力,后期需要不断调整**渲原创 2020-10-12 00:19:16 · 694 阅读 · 0 评论