游戏开发是个“坑”,而且是个“天坑”
本文首发于CSDN公众号
作者 | 开发游戏的老王 责编 | 梦依丹
出品 | CSDN(ID:CSDNnews)
各位游戏开发者大家好,我是开发游戏的老王,一名游戏开发者同时也是一名高校游戏方向的主讲教师,从事游戏开发及相关教学已经十余年。如果让我站在自己的角度用一句话概括这个游戏开发这个专业,我必须要说:游戏开发是个“坑”,而且是个“天坑”。
在从事游戏开发之前,我已经有了十年的码龄,回想自己第一脚迈入游戏开发大门时的心态,真可以说是“无知者无畏”,我以为凭借自己当时已经具备的编程技能,再简单熟悉一下游戏引擎的工作界面,把模型资源导入引擎,让它们动一动,一个游戏就完成了。
真的,就是这么离谱!
为什么说游戏开发专业是个“天坑”?
我就是抱着这样的心态(再加上做出游戏一夜暴富的幻想:D)一步一步开启我的游戏之旅的。然而随着学习和实践的深入,我遇到了一个又一个隐藏在“游戏开发”这个名词下的“知识点”,而且几乎每个“知识点”都足以在大学开设一门专业课供大学生学习一年:编程、算法、图形学、建模、绑定、动画(指动画资源制作)、特效、服务器端开发、数据库、数据加密…以及各种游戏引擎和引擎中的各个模块:游戏逻辑模块、游戏物理模块、游戏UI模块、人工智能模块、动画逻辑模块、插件开发、热更新…可以列举的知识点远远不止这些。
再往大了说,开发一个游戏还需要美术设计、游戏系统策划、游戏文本策划。这还仅仅是游戏开发的必要条件,要想游戏取得成功,市场营销、心理学等等学科跨度更大的“知识点”也要学习。我还没有提游戏开发技术在巨大的商业利润驱使下总是以惊人的速度在不断的更新迭代,常常我正在学习一项技术时,取代它的技术就已经诞生。
而我上述所说仅仅是游戏开发的学习成本,在实际的开发中,一些游戏内容的开发成本也是大得惊人。要知道很多三A级游戏即使是由一个几十人甚至上百人组成的成熟团队开发也需要若干年的时间(From Software开发《只狼》花了4年时间,而 RockStar 花了 8.5 年才完成了《荒野大镖客2》的开发);时间就是金钱,GTA5 的开发成本是 2.65 亿美元,而 GTA6 的开发预算更达到了 20 亿美元!
综上所述,无论是学习成本还是开发成本,我说游戏开发是个“天坑”,绝不为过吧?当然作为对这个行业充满热爱(也依然抱有幻想:D)的游戏开发者,我也必须诚实地说:之所以人们愿意投入如此之大的成本开发游戏,是因为游戏产品可能带来数倍于成本的经济回报,当然也有精神上的回报。
最近国外知名技术社区 Reddit 上有了一个非常热门的关于“游戏开发小白”的讨论,游戏开发者们纷纷吐槽自己遇到过的来自小白们的最奇葩的“创意”。老王在阅读的时候不时被老外们的吐槽逗笑,同时也仿佛回到了自己刚进入行游戏领域的那个青涩的时光。
接下来,咱们就一起看看国外的小白们,对游戏开发都有什么样的误解。
声明:我从讨论中筛选了一些高赞且有趣的讨论进行了翻译,以下节选的讨论并不含有对游戏新手的讽刺和蔑视,仅仅是一些游戏开发者站在“过来人”的角度,用调侃的方式感慨一下游戏开发这扇大门,门里人和门外人想法上的巨大反差。请大家以轻松的心态阅读以下内容。
游戏小白们的离谱“创意”
热议:请问各位游戏开发者,从游戏小白哪里,你们听说过哪些的最离谱的“创意”?——By SketchyPlayer123
我是一名独立游戏开发者,同时也接一些私活,帮助那些没有游戏开发技术的客户开发一些小型项目。然而,一次又一次地,客户们来找我的时候总是带着非常糟糕的游戏策划,却又同时抱着不切实际的期待。他们认为自己的游戏一定会成为爆款,所以我不得不给他们泼泼冷水,让他们起码了解一些游戏工业运作的基本常识。
一次,有位客户来找我,说要做一个爆款手机游戏,他害怕我把他的点子“偷走”,所以只肯向我透露该游戏会通过内付费项目和广告赚一大笔钱。这种情况对我已经见怪不怪了,所以我让他降低一下预期并询问他开发预算是多少。他告诉我他没有钱,但不会让我免费干活,等游戏上线了他会给我一些“游戏内”货币和很牛的武器装备。最开始我以为他是在开玩笑,几番交流以后,我发现他是贼认真的。
长话短说:客户想让我免费给他开发个游戏。
下面是这个帖子的高赞回贴:
SinomodStudios: 初次开发游戏的小白经常扬言要开发一个开放世界的 MMO(Massive Multiplayer Online Game 即大型多人在线游戏)
Super_Banjo: 我正在做一个简单的 2D 平台跳跃游戏,已经 3 年了,依然处于前期阶段。当然,这不怨别人,如果不是我自己废弃了很多已完成的内容,现在可能已经完成一两个关卡了 LOL。
BoarsLair: 在我看来,(小白们)好像在说:“嘿,我已经开始在自己的车库里学习木工活了,我打算做一个摩天大楼作为自己的第一个作品。”
Udon259: 以前我上过一个游戏设计课(大约三个月课时),老师要求我们每人提出一个游戏策划,有个哥们说“我打算做一个比《上古卷轴》还牛的游戏,并且还是多人游戏”。我的老师被逗笑了,说"OK,3 年以后见",然后那哥们就退课了。
TheFlamingLemon: 我想做一个城市构建、开放世界、生存、MMO、程序化生成、Roguelike…打算用 Unity 做,但我不会C#,谁愿意帮我写程序,可以得到 3% 的版税。
tpelham42: 回顾当年 MMO 游戏更加盛行的日子,我在游戏论坛经常看到诸如:“我要做一个独一无二的 MMO ”或者“类似 X 游戏,但又增加很多新功能”。
Patorama: 我一哥们儿的哥们儿打算做一个 CoD(Call of Duty 即使命召唤)毁灭者游戏。这家伙以前是个海员,非常喜欢现代战争游戏同时也非常恼怒于这类游戏并非 100% 真实。他发的 90% 的邮件都是在抱怨 CoD 中的军事行为如何错误。所以他打算和我(以及我的团队)制作一款有史以来最真实的军事射击游戏!我和我的团队负责实现游戏,然后这个家伙负责指出我们哪里出错了。真是一个难以置信的买卖!我们将赚几百万!(自嘲的语气)
chaoticsquid: 耶。当大家说“超级真实”的时候,他们一般没有意识到,游戏中绝大多数的趣味性,其实来源于它的非真实部分。我花了很多的时间在 r/gameideas 板块,不知多少次我都无语了,很多人就想做一个完全模拟人生的游戏(最近我还看到一个想让游戏在玩家死后自动卸载)。
tpelham42: 几年前有个客户,他是做药剂师的,他有个“牛叉”的手游点子,第一人称射击游戏,玩家站在药店的柜台后面射杀破门而入的僵尸…他不打算在游戏里加广告,而是采取付费下载的模式。这哥们没有任何游戏营销经验,他坚信药剂师有庞大的人群一定会为游戏买单。尽管我反复提醒他,结果可能不如预期,他还是依然坚持。最终的结果不言而喻,游戏上架到 Android/iOS 市场以后,可能一份都没卖出去。万幸的是,开工前他预付了我的报酬。
ghostwilliz: 总有些人不愿意学习实际的(游戏开发)技术,却坚信自己能够指导别人实现一个超大场景的 MMO 游戏。
总结
看完外国开发者们的吐槽,您的感想如何?老王觉得:门外的人对游戏开发充满着无数的误解,却又无比的向往,就好像飞蛾扑火一般,这恰恰说明游戏以及游戏开发充满着“神秘的魅力”。
被称为第九艺术的“游戏”是人类最原始的欲望“玩”和人类最先进的技术“计算机”的完美结合,它的诞生不足半个世纪。我相信随着时光的流逝,这个领域会更加成熟同时也会更加被大众所了解。
相关文章:

游戏开发是个“坑”,而且是个“天坑”
本文首发于CSDN公众号 作者 | 开发游戏的老王 责编 | 梦依丹 出品 | CSDN(ID:CSDNnews) 各位游戏开发者大家好,我是开发游戏的老王,一名游戏开发者同时也是一名高校游戏方向的主讲教师,从事游戏开发及相关教…...
剑指 Offer 64. 求 1 + 2 + … + n(java解题)
剑指 Offer 64. 求 1 2 … n(java解题)1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码1. 题目 求 12…n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例…...

2022 年度_职业项目总结_Java技术点归纳
Java技术点归纳目录概述需求:设计思路实现思路分析1.Structs 元工程改造2.个贷子系统开发3.架构的迭代开发,升级,部署,参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,fu…...

【项目实战】32G的电脑启动IDEA一个后端服务要2min,谁忍的了?
一、背景 本人电脑性能一般,但是拥有着一台高性能的VDI(虚拟桌面基础架构),以下是具体的配置 二、问题描述 但是,即便是拥有这么高的性能,每次运行基于Dubbo微服务架构下的微服务都贼久,以下…...
接口自动化面试题汇总(持续更新)
在自动化测试过程中,你如何处理测试数据?你会使用哪些方法来生成测试数据? 在自动化测试过程中,测试数据对于测试的准确性和覆盖率至关重要,常见方法有: 1、使用真实的生产数据:使用真实的生产…...

SpringBoot实现静态资源映射,登录功能以及访问拦截验证——以黑马瑞吉外卖为例
目录 一、项目简介 二、设置静态资源访问路径 三、实现登录功能 四、拦截访问请求 本篇文章以黑马瑞吉外卖为例 一、项目简介 瑞吉外卖项目分为后台和前台系统,后台提供给管理人员使用,前台则是用户订餐使用 资源我们放在resources下 二、设置静态…...

PythonWeb Django PostgreSQL创建Web项目(三)
了解Django框架下如何配置数据库链接与创建模型和应用 使用Django创建web项目,首先需要了解生成的项目文件结构,以及对应文件功能用途方可开始web项目页面创建,下方先介绍文件功能,之后再配置数据库连接以及管理创建模型与应用&a…...

【Visual Studio】git提交代码时使用GPG
前言 下载安装GPG的过程省略,直接开始进行配置 0.visual studio 版本说明 其余版本未测试,但是应该也是可以的 1 获取GPG的密钥ID 1.1 window下可以打开Kleopatra查看生成好的密钥的密钥ID 1.2 也可以从命令行中获取 gpg --list-keys 红框位置,后16位就是密钥ID 2 配置.git…...

【反序列化漏洞-02】PHP反序列化漏洞实验详解
为什么要序列化百度百科上关于序列化的定义是,将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis,与数组类似)。以后,可以通过…...

Gateway网关的使用
Gateway服务网关Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。1…...

【LeetCode】背包问题总结
文章目录一、背包能否装满?416. 分割等和子集1049. 最后一块石头的重量 II二、装满背包有几种方法?494. 目标和518.零钱兑换II377. 组合总和 Ⅳ70. 爬楼梯三、背包装满的最大价值474.一和零四、装满背包最小物品数322. 零钱兑换279.完全平方数一、背包能…...

Java的开发工具有哪些?这十款工具大厂都在用!
工欲善其事必先利其器,各位同学大家好,我是小源~本期文章,给大家推荐十款Java的开发工具。一、 文本编辑器主要推荐三款:notepad、editplus、sublime text。这三款编辑工具,在我们的开发工作中几乎是相差无几ÿ…...

web学习-Node.js入门学习
web学习-Node.js入门学习1.回顾与思考2. 初识Node.js2.1 Node.js的简介2.2Node.js的环境安装2.3. fs文件系统模块2.3.1 fs.readFile()2.3.2 fs.writeFile()2.3.3 练习-整理考试成绩2.3.4 fs模块-路径动态拼接的问题2.4 path路径模块2.5 http模块2.5.1 服务器相关的概念2.5.2 创…...
100 eeeee
全部 答对 答错 敏捷综合训练3 1.看板中的精益生产概念是如何减少工作在瓶颈时期的影响? A它不会减少瓶颈,因为瓶颈是任何生产系统不可避免的副产品 B通过运用 5Y 分析根本原因 C通过成为一个及时的进度系统 D通过每周完善活动 答错了 收藏 学员得…...

物盾安全汤晓冬:工业互联网企业如何应对高发的供应链安全风险?
编者按:物盾安全是一家专注于物联网安全的产品厂商,其核心产品“物安盾”在能源、制造、交通等多个领域落地,为这些行业企业提供覆盖物联网云、管、边、端的安全整体解决方案。“物安盾”集成了腾讯安全制品扫描(BSCA)…...

微纳制造技术——基础知识
1.什么是直接带隙半导体和间接带隙半导体 导带底和价带顶处以同一K值,称为直接带隙半导体 导带底和价带顶不处在同一K值,称为间接带隙半导体 2.扩散和漂移的公式 3.三五族半导体的性质 1.high mobility 2.wide bandgap 3.direct bandgap 4.三五族…...

Makefile的使用
Makefile的使用 自动化编译脚本,这个东西就是,进行简单的设置,然后实现原码编成为相应程序,简单化自己进行相关操作的过程。不需要一个个自己进行全部进行输入。而且还有许多的简化书写方法。 这个Makefile的本质为一种脚本语言…...

RealBasicVSR模型转成ONNX以及用c++推理
文章目录安装RealBasicVSR的环境1. 新建一个conda环境2. 安装pytorch(官网上选择合适的版本)版本太低会有问题3. 安装 mim 和 mmcv-full4. 安装 mmedit下载RealBasicVSR源码下载模型文件写一个模型转换的脚步测试生成的模型安装RealBasicVSR的环境 1. 新建一个conda环境 cond…...
C语言作用域(变量生存的空间)学习
C 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 在所有函数外部的全局变量 在形式参数的函数参数定义中 让我们来看看什么是局…...

Spark性能优化一 概念篇
(一)宽依赖和窄依赖 窄依赖(Narrow Dependency):指父RDD的每个分区只被子RDD的一个分区所使用,例如map、filter等 这些算子一个RDD,对它的父RDD只有简单的一对一的关系,也就是说,RDD的每个part…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...