当前位置: 首页 > article >正文

黑神话:游戏的诞生

🛰 前言

近期,国产 3A 大作《黑神话:悟空》给我们带来了一波惊喜。相信各位或多或少都有所了解。看见如此激动人心的产品我们除了欣喜,也不禁让我们思考起来游戏是如何实现的?我们能否开发一款属于自己的游戏? 今天我们借此来讨论一下游戏的基本原理以及优质的游戏是如何诞生的。

🛰 神奇的动画

在开始聊游戏之前,不得不跟大家先聊一个核心知识——动画。什么是动画?动画是如何实现的?

动画是一种通过快速连续播放一系列静止图像来产生运动幻觉的艺术形式。每一个静止的图像称为“帧”,当这些帧以一定的速度连续播放时,观众会感受到其中的图像在运动,从而形成动画效果。动画的本质是利用人类视觉暂留效应(视觉持续性),使快速变化的静止图像看起来像是连续的运动。

上面的解释似乎晦涩了一点,我们可以结合以下内容来理解。

其实,我们发现:所谓的动画就是一张张连续播放的图片所形成的视觉效果。

🛰 与动画交互

知道了动画的原理,我们可以借助计算机制作出如同电影、动漫相关的影视作品。但是,想要制作出游戏似乎还差点什么。这其中差的就是交互。其实,电影和动漫也是可以交互的。大家回想一下,在观看电影或动漫等相关影视作品时,有时我们或多或少都会进行一些倍速、快进、后退等操作,这些操作就是在与动画进行交互。只不过这种交互只能局限于控制动画全局的播放速度。

影视作品的动画是由固定数量的关键图片连续播放从而形成的视觉效果。当这些图片按时间序列顺序播放时,如果我们在特定的时间和位置插入一些特定的图片会发生什么呢?

交互效果实现了,我们可以在动画里面通过插入图片的方式改变动画的固有播放效果从而形成控制动画的交互效果。

🛰 游戏引擎

基于游戏的运行原理,具有一定专业知识的人可以利用计算机开发出一些较为常规的小型游戏了。但是想要制作类似《黑神话:悟空》这样级别的游戏光是依靠这一点原理知识远远是不够的。因为,这种大型游戏是需要尽可能的模拟现实世界。这种模拟需要许多数学、物理学上的专业知识,为了减弱这些专业知识对游戏开发时的影响,一般在现代游戏开发中会引入游戏引擎。

游戏引擎主要为游戏开发提供了许多基础功能。例如:图形渲染、物理引擎、音频引擎、人工智能、脚本系统、用户界面、网络功能、开发工具和编辑器等。在这些基础功能之上,开发人员可以专注于游戏的设计和创意而不用花费大量的时间去研究开发游戏所需的基础设施。

🛰 技术中的艺术

一款高质量的游戏不仅需要技术还需要艺术。有了游戏引擎理论上可以有无限可能,但是个人的能力是有限的。一般而言,专业的开发人员拥有开发出游戏的能力,但这并不意味着就能够制作出画质精美的游戏。因为常规的开发人员是无法同时具有极强的技术能力和美术功底的。想要实现一款诸如《黑神话:悟空》这样的游戏,就需要专业的美术工作者才能够制作出如此高质量的动画。

在常规的游戏中,一般而言技术工作者相较于美术工作者的工作时间要长。但是,在某些游戏的研发周期中可能美术工作者所占的时间比重更大。此时的游戏更像是承载艺术的载体,而非单纯的游戏。所以,有时可以看到某些游戏能够形成这么一种现象:讨论游戏内容的人数远大于亲自下场玩游戏的人。

🛰 完美的开篇

高质量的游戏一般是技术和艺术结合的工艺品。《黑神话:悟空》并不只是一款单纯的游戏,其底层反映出的是技术能力和文化底蕴。所以《黑神话:悟空》的成功看似是游戏的成功,其实更多的是反应出我们技术上和文化上所得到的认可。

万事开头难。但是《黑神话:悟空》为大家做了一个好的开头,这是一个完美的开篇,希望未来的我们能够更好。

🛰 结语

本期的分享到此结束了,喜欢的朋友们麻烦点个关注吧!🥤🥤🥤


http://www.kler.cn/a/293695.html

相关文章:

  • 编译ffmpeg动态库时设置RPATH为$ORIGIN
  • LeetCode【0014】最长公共前缀
  • 生成 Django 中文文档 PDF 版
  • 前端Cypress自动化测试全网详解
  • 《AI 使生活更美好》
  • Kettle——CSV文件转换成excel文件输出
  • 【C++ 面试 - 新特性】每日 3 题(五)
  • Mac 数据恢复技巧:恢复 Mac 上已删除的文件
  • 使用 Nacos 来管理微服务
  • 《软件架构基础》读书笔记
  • 【SQL】常见语句合集
  • 何时使用枚举处理前后端的数据传输
  • 深度学习(十一)-PaddlePaddle
  • Java语言程序设计基础篇_编程练习题**17.20 (二进制编辑器)
  • 手撕HashMap源码
  • SVN提交失败Can‘t create directory ‘E:\SVN\Tool\db\transactions\27-v.txn‘:
  • 【Oracle APEX开发小技巧 7】解决初始化数据在动态操作-变更中被识别跳出弹窗的问题
  • 【超详细】windows Docker安装
  • GDB:加载符号表
  • ubuntu22.04 qemu 安装windows on arm虚拟机
  • uniapp+vue3实现小程序和h5解压线上压缩包以及如何访问解压后的视频地址
  • 69-java 接口中可以有构造函数吗
  • 使用 VisionTransformer(VIT) FineTune 训练驾驶员行为状态识别模型
  • setTimeout设置为0和nexttick 谁先执行谁后执行
  • OXC:光交叉连接(optical cross-connect)-介绍
  • 计算机网络-VRRP基础概念