当前位置:首页 > 每日看点 > 正文内容

不用游戏引擎做游戏有多难?

卡卷网1年前 (2024-12-22)每日看点226

取决于几个问题。

一个是你从哪开始,同样是不用引擎。从OpenGL+平台窗口api,和从SDL,和从ogre,和从MonoGame。完全不是一个概念。

一个是你到底要做什么规模的游戏。这也完全不是一个概念。

比如你从MonoGame这个档开始,做一个小规模的2D平台游戏。对比游戏引擎,其实就多了自己把碰撞系统,关卡瓦片系统,动画系统,简单物理系统,实体管理系统,如果想让画面和玩法更丰富些,可以再写个粒子系统和路径搜索,这些附加功能写完就可以开始了。没比从Unity/Unreal开始难太多太多。这一层叫做游戏框架,一般不称为游戏引擎,因为只提供给开发者游戏循环和非常简单的显示,资源,音频部分,其余的支持很少。

如果你从ogre这一档开始,你仅仅拥有你的场景,你可以添加你的灯光相机,添加你的地形天空,你拥有网格,拥有阴影,作为一个图形引擎,你方便的拥有了渲染部分。但是额外的你一无所有,你得考虑音频如何播放的方案,各种游戏设备输入检测的方案,物理碰撞检测的方案。另外还有游戏的专属类,例如游戏循环,组件模式,更新方法。这一层叫做图形库或者叫渲染引擎,一般提供对象图和3D渲染部分,其余的关于游戏的部分不会提供。

如果你从SDL这一档开始,你连你的世界都不存在了,你要考虑一切显示的东西,例如图像如何显示,纹理如何加载,GUI如何显示。游戏类,游戏循环,游戏对象类,场景图等依然要编写。这一层的叫法有很多,比如窗口库,多媒体库,游戏库,通常是OpenGL的携带库,自带上下文环境,便于直接使用OpenGL。这一层和游戏框架的显著区别是,游戏框架是框架调用你的代码,而库是你调用库的代码。

如果你从OpenGL这一档开始,你甚至连你的程序窗口都没有了,你要考虑你的平台窗口API,你要从你的GPU驱动中检索OpenGL函数,在这个级别,你相当于一个孤单的画家,你只有你的画笔,其余什么都没有。OpenGL甚至不会记住你画的是什么,你要自己记住它,自己更新它,不断的做绘制,擦除的循环。这一切包括,顶点缓冲区,正交透视相机,材质系统,纹理渲染,帧缓冲区等等等等。这一层叫做图形api规范,一般由GPU厂商开发者编写,根据委员会规范提供api供开发者使用。

如果你连GPU都不想用,可以直接考虑 Ray casting+ASCII 在控制台应用程序中渲染游戏画面,就像《Doom》那样。或者借鉴任天堂早期的SNES的Model7,用 Affine transformation 来伪造3D,就算没有图形卡也能跑的起来的伪3D世界。

就好比你把提问换成了,不去火锅店的话,吃一顿重庆火锅有多难。

你可以买一盒自热火锅,只需倒上水即可。(Construct)

你可以买一包火锅底料回家自己煮。(Unity/Unreal)

你可以买牛油和干辣椒回家自己炒火锅料。(MonoGame,经典案例有:《蔚蓝》《星露谷物语》《泰拉瑞亚》《盗贼遗产》)

你可以买牛肉和辣椒回家自己熬制牛油自己晾制干辣椒。(ogre,经典案例有:《火炬之光》《废品机械师》《Kenshi》《Roblox》)

你可以买个牛犊子和辣椒种子,自己养牛自己种植辣椒开始。(SDL,经典案例有:《神界原罪》《消逝的光芒》《博德之门3》《群星》《哈迪斯》《矮人要塞》)

你可以自己培育牛的品种和辣椒的品种,从牛的配种和辣椒的嫁接开始。(OpenGL)

你可以完全抛弃人类社会的购买途径,去自然界追寻牛和辣椒是如何进化演化的,是如何演变成我们如今吃到的品种的。到这层的时候我想已经不是为了单纯做游戏产品了,已经是在品味历史了,因为游戏从2D到伪3D到真3D就是这么过来的。(Ray casting / 仿射变换 + ASCII)

不用游戏引擎做游戏有多难?  第1张

1982年登录Atari8bit的《Wayout》,是世界上最早的利用Ray casting的FPS游戏,比《Doom》要早11年。

不用游戏引擎做游戏有多难?  第2张

超级任天堂中用仿射变换伪造的3D视觉效果,在视觉上是3D的,技术上依然是2D的。在官方手册中被称为Model7背景模式。

射线投射的初步原理可以看我另外一篇文章:

用最直观的gif解释毁灭战士(Doom)的渲染原理

所以说,越到底层,你的自由度越大,就像你可以养出油脂更高的牛,培育出更辣的辣椒。直接买火锅料的话,什么口味你都得依从火锅料了。比如人家给你用了劣质的原材料(源代码)造成你吃完了拉稀(游戏卡顿),也得忍着。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/5153.html

分享给朋友:

相关文章

马云也搞不明白:为什么现在用户偏爱微信支付,而不是支付宝?

这题我会,我教马云一招。你直接把你那破比支付宝的代码全删了,重新写一个。打开支付宝直接就是一个大大的支付码,然后右上角按一下就是扫一扫。你要是还想保留你的其他那些乱七八糟的功能,麻烦将他们全部做到下拉菜单里。你这么设计我不说你能干死微信,但...

为什么说不懂电脑的不要碰AMD?

作为一个资深垃圾佬,说缺点前,先说优点吧AMD CPU(后续简称AU)的优点:处理器对比Intel,三级缓存更大,最明显的感知就是,网游帧数更高(5900X,7900X之类高端型号都是双CCX共享大缓存,反而不如次一点的CPU帧数更高);相...

如何进行 Elasticsearch 调优实践?

如何进行 Elasticsearch 调优实践?

面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s ,坑爹了。第一次搜索的...

为什么神经网络可以解偏微分方程,是什么原理?

为什么神经网络可以解偏微分方程,是什么原理?

题主一直比较关心神经网络在其他科学领域的应用,比如数学、物理学还有生物学,比如AlphaFold。本次带来的这篇文章傅里叶神经网络算子解偏微分方程就是一个很有意思的方向,其实我自己去年在给美国一个客户做兼职预测数字货币期权价格的时候就用到过...

你怎么看待软件测试这个工作的?

你怎么看待软件测试这个工作的?

先说一个插曲:上个月我有同学在深圳被裁员了,和我一样都是软件测试,不过他是平安外包,所以整个组都撤了,他工资和我差不多都是14K。现在IT互联网已经比较寒冬,特别是软件测试,裁员先裁测试,这几乎都是定律。我最近看了某音很多应届生以及去年毕业...

面试官问“你的SQL能力怎么样?”时应该如何回答?

面试官问“你的SQL能力怎么样?”时应该如何回答?

如果面试时被问你SQL能力怎么样?要么是考查一下题目,怎么写SQL语句。要么是问SQL优化相关的,更容易问出一个人的水平。sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。