当前课程知识点:游戏与电竞概论 > 第三章 游戏工程与技术 > 3.2 游戏的数学与物理 > 3.2.2 游戏数学与物理的应用
同学们大家好
今天我们非常幸运
请来了广州乐游科技有限公司
资深的游戏设计师
张安潮工程师
张老师
张老师 您好
同学们好
那今天呢
我们请张老师来给我们分享一下
就是说
程序设计
当中的一些数学物理的知识
因为我们都知道
在很多的游戏里面大量地充斥着
类似于数学和物理的知识
那么对于
一个游戏程序设计师来说
是不是一定要具备
这个数学和物理相关的知识呢
这些基础知识都是
需要
具备什么
因为我们在开发
各种游戏的时候
其实都需要使用到这些知识
比如说
举个例子吧 就是
大家都玩过的 愤怒的小鸟
那大家玩这个游戏的时候
可以感觉到就是
它是需要一些
物理上面的一些知识的
比如说你这个小鸟
飞出去的那个轨迹
它是抛物线还是什么
方向的话
落到什么地方
其实这种
它就是一种物理计算的一个过程
包括它这种
弹出去的力度
它有一个弹力
这种的话呢
它其实也是一种
预算了的过程
还有包括它的一些碰撞
它撞到这个箱子
怎么产生一个箱子的
损毁或者掉落这样一个过程
它其实也是需要一个计算
那实际上在这里
假如我要编写像愤怒小鸟这种程序的话
那么
这个程序员是不是要把这个公式
写到代码里面去了
是不是对这个公式要十分熟悉呢
一般来说的话
我们在开发这些游戏的时候
可能你有几种选择吧 一种就是
你可能选用一个
比较成熟的一个商业的引擎
那它肯定会包含一个就是
我们称之为物理引擎
那物理引擎的话呢
它通常会实现这种就是
刚才说的这种运动的轨迹
这种碰撞的检测
这种效果它基本上都会有
那我们可能需要做的就是说对这个
进行一个参数的一个调整
一个怎么样的灵活的运用
这个方面
就类似于通过引擎里面API直接调用
但是在这里调用呢
它可能是提供了不同的接口
对于这个游戏程序员 他必须要
懂得这个接口的使用
其实这样理解
参数要学会调参
对 所以说呢 这些基础的知识其实是
需要具备的
不然的话呢
你其实哪怕一个成熟的引擎给你
你也
不知道怎么入手
或者说你没办法把它
调用到一个
最优的
那个方式
那在这里
我们知道了
像数学物理我们还有到了大学
我们还有那个高等数学
高等物理
虽然有些同学就是说
我数学都比较差 可能
我只能停留在这个高中的水平
但实际上是不是对于
一般的游戏开发来说
其实对于这个游戏
数学跟物理的程度
是不是一定要到达高等数学这样的
还是中学就够用了
当然
我们肯定是建议说你越高越好
但实际上
就是从实际的角度来说的话呢
其实 在日常开发的
一般的程序员的话呢
他并不一定需要用到
非常高级的高等数学
这种概念
其实我们在
学习 像
高中的这种学习
其实高中的物理
很大的
这种基础其实很大的程度上
在游戏里面其实
基本上是够用的
基本够用
就说是一些比较简单的游戏的开发的话
其实
高中里边的这个
数学和物理的知识已经是足以去支撑它
所以如果是出现问题了
翻一翻咱们高中时候的课本
了解一下那些基本公式比如说
三角函数 几何 抛物线 碰撞 这些对吧
但是
我们有一个疑问就是对于一些
像游戏引擎
它虽然提供那么多物理的引擎
假如我是一个游戏引擎
的开发工程师的话
那么可能这个对于他的要求就非常高的
对 这个就非常高 他应该对这个
整个不管是技术上的
就还有刚才说的这种
基础的
数学 基础的物理
他们都要
非常非常的熟悉
因为 其实
整个
游戏引擎还是
非常非常复杂的
它涵盖了
很多很多的内容
很专业的内容
那当然 一个引擎的话呢
一个商业
引擎 它并不是说是一个人
可以开发出来的
大部分来说的话 它还是有
一个团队
对
它可能说不同的人负责
不同的
方面
那比如说有些团队的人
负责
这个图形
渲染这一块
那有些人
他负责这个刚才说的这种物理
甚至这个物理数学中算法的研究法
所以的话呢就是
它是一个非常的
复杂的
综合的
技术的
整合体
那还有现在我们比较热门
像那个 AI的游戏
大量的AI在某种程度上就是
数学的算法吧
那么其实在这里的话
其实也会用到大量的AI
那么AI这块实际上
现在游戏
方面的使用多不多
应该说非常多
因为
比如说做MNO这种角色扮演的游戏
其实它需要有
大量的AI
如果你有
做这种设计游戏
它其实也需要AI
AI的设计
他的技术
好不好
其实他很大程度也会
会影响到游戏的体验
就比如说
你这个角色扮演的NPC 它是很
木纳的角色
那你玩起来就会很无趣
但如果说它可以跟你很
有趣的对话
我们就感觉这个游戏很真实
很好玩 对 所以
数学物理之外
其实我们游戏就是现在我们的网络游戏
非常的火
其实实际上
除了数学物理之外 是不是一些
我们说网络的知识
数据库的就是大数据
现在云计算这些
都要去了解一下
如果你是
做这个网络游戏
然后你做的是
服务端程序
那其实这些都是免不了的了
就
比如说这个网络通信
比如说
数据库
那这两大块的话呢 是非常
重要的
知识学科
比如说
网络通信这一块 它主要就是
服务端和客户端进行一个网络通信
那这方面的话 就直接会
影响到你这个网络的
体验 比如说
游戏卡了
你这方面做得好不好 流不流畅
是非常重要的
另外一块就是数据库
数据库的话
它主要是
需要保存网站的数据
那对服务器来说的话
服务器开发它主要
就是
跟玩家的数据
打交道
对
那你
不能
导致玩家的数据丢失
损坏 这种事
肯定是不可以的
所以我们对这个稳定性
健壮性要求
非常高
所以从
整体来 我们稍微总结一下
其实游戏的
程序设计
充斥的大量的这个数学物理 甚至是
AI网络很综合的
这个
内容在里边
所以对于一个游戏程序员
的要求 可能他都要
面面俱到
面面俱尽
但是这个基本知识
他是必须要掌握的
才能够
更好地编写出更好玩
更高效的游戏程序
-1.1 什么是游戏,什么是电子游戏
--讨论:游戏的意义
--本节测试
-1.2 游戏的平台
--本节测试
-1.3 游戏的类型
--本节测试
-1.4 中国游戏产业的发展现状
--本节测试
-2.1 游戏机制与设计要素
--讨论:游戏的死角
--本节测试
-2.2 游戏策划
--本节测试
-2.3 游戏美术
--讨论:游戏美术
--本节测试
-2.4 游戏程序
--本节测试
-2.5 游戏音乐
--本节测试
-2.6 关卡设计
--实践:关卡设计
--本节测试
-2.7 游戏故事与剧本
--本节测试
-2.8 如何快速撰写游戏文档
--大作业:撰写1页文档和10页文档
-实践作业:Paper Design
-3.1 游戏项目开发流程
--本节测试
-3.2 游戏的数学与物理
--本节测试
-3.3 人工智能在游戏中的应用
--本节测试
-4.1 电子竞技发展沿革
--本节测试
-4.2 电子竞技俱乐部
--本章测试
-4.3 电子竞技赛事
--本节测试
-5.1 电子竞技与媒体
--本节测试
-5.2 电子竞技与其他产业
--讨论:电子竞技+
--本节测试
-5.3 电子竞技产生链
--本节测试
-5.4 电子竞技的主要岗位
--本节测试