怎么创造游戏(如何自己创造软件游戏)
关于游戏开发,你需要了解一个游戏从开始到结束开发的大致流程。一般不是一步一步完整指令的结果。你还需要自己找出相当多的东西来进行游戏。
第一步:选择游戏库。
游戏库的功能:
一种加载和呈现图像的方法一种加载和播放音频的方法基本图像处理(旋转等)原始绘图功能(圆、线、矩形、点等)渲染文本的能力跟踪时间和等待的能力创建和控制线程的能力(但不是必需的)第二步:定义概念——创造力
所有的游戏都从这里开始,只是一个人头脑中的想法。
首先,想出一个游戏创意。一旦你有了一个简单的想法,扩展它。
比如,如果是桌游,目标是什么/怎么赢?规则会是什么样的?等等,如果你的游戏里有角色或者故事,那就去创造。确保你对游戏结束时你的游戏会是什么有一个相当清楚的想法。越复杂的游戏,越应该从一开始就规划好,这样在编码的时候就不用担心游戏本身了。记住,你的游戏会随着你的创造而进化。
第三步:规划你的引擎。
如果你正在制作一个桌游或者基础街机游戏,你可以完全跳过游戏,只需要给你的游戏编程。但是对于更复杂的游戏,可能需要考虑使用预制的引擎,或者自己编写“引擎”。
游戏引擎是什么?虽然在结构和整体功能上差别很大,但都是提供更高级功能的超级函数库,比如物理、资源处理、游戏实体管理等。
选择是使用现有引擎还是创建自己的引擎,这取决于您实际想要做多少编程。使用预制的引擎会简化你作为程序员的工作,写游戏/事件脚本比什么都简单。
为什么我要说计划而不是选择?嗯,很有可能你不会制作下一个老卷轴,因此,你可以创造自己的“引擎”。记住,你不会创造下一个“虚幻引擎”,你写的、打算复用的大部分代码(就像引擎的关键点一样)最终都会和你的游戏逻辑交织在一起,所以不可能轻易复用。考虑到这一点,不要担心,如果你的“引擎”部分依赖于游戏的特定代码,这种情况就会发生。不要专注于构建一个完全可重用和超级健壮的框架,但要确保代码是可读的、有组织的和功能性的。先专注做游戏,再尝试打造便携模块。如果您必须编写一些有用的和可重用的东西,那么资源管理器和其他实用程序类是一个很好的起点。
第四步:编写引擎(如果你自己做的话)
现在是开始编写引擎的时候了,前提是这是您选择的路线。这不一定指游戏本身,而是核心渲染、物理和文件处理;本质上,它是用来构建游戏的函数和类。
简单的游戏不需要太多帧数,直接用游戏库编程即可。大型游戏中最重要也是最容易被忽视的组件之一就是资源管理器。资源管理器是一个类,负责加载资源(考虑图形和声音),确保资源只加载一次,当不再需要资源时卸载资源。
引擎/框架的另一个重要方面是接口。当你写游戏本身的逻辑时,写游戏主循环不用4个小时,因为你搜索了上百个更新的函数,试图找出你实际需要的函数。保持简单。如果你能用一两个函数更新所有游戏逻辑,然后用一两个函数渲染场景,那么你就走对了。使用面向对象的原则,比如继承和纯虚拟基类(imagination interface),是创建一个结构良好的框架的好方法。
第五步:媒体(音频和图形)
到现在为止,你至少考虑过你希望这个游戏是什么样子,你有一套媒体可以使用。大量免费的图形和音效只是谷歌搜索的地方。Audacity和GIMP是编辑您获得或创建的任何内容的不可或缺的工具。
第六步:写一个游戏。
一旦你选择了一个引擎或者使用了自己的框架,你实际上就可以自己编写游戏逻辑了。理想情况下,在花费无数个小时之前,你已经完整地阅读了至少一篇文章,你将永远不会回到创建一个“引擎”的过程。这个“引擎”超出了它的作用,几乎无法使用,但还不足以独立运行。你的框架应该为构建对象交互提供一个基础(但不一定要定义它),并处理所有的渲染和其他底层细节,比如物理。逻辑本身会定义对象交互(比如通过定义GameObject的子类),游戏规则(比如什么构成输赢),游戏初始状态(先加载哪个地图,从哪个物品开始等等。),并包含游戏主循环。
游戏的主电路是什么?简单来说:这是一个循环,主循环。想想看,玩游戏的时候,会不断重复什么。这些都是这个神秘循环中包含的东西。比如每次迭代游戏都要更新所有的对象,然后全部画在屏幕上。除了更新和绘制,主循环可能还负责计时。对于用户来说,更新太多游戏看起来非常快,可能太难了。以光速思考乒乓球。理想情况下,这个循环将使用您之前创建的框架,并且非常简单。
第七步:从中取出一些东西。
创建一个独立于游戏逻辑的框架,主要是为了让你学会写可重用的代码。
新手放弃项目的一个主要原因是,他们花费大量的时间和精力试图为自己的游戏“编写一个引擎”,但他们仍然不知道一个好的引擎甚至包括什么,或者一个结构/接口是否真的可以工作。浪费了所有的时间后,他们没有什么可展示的,然后他们泄气了,放弃了。
通过先写游戏,再写可复用代码,理想情况下,你会得到你能看到的东西。这是对你努力的真正回报,也是继续努力的理由。
考虑在游戏中加入这些:
尝试用游戏代码做便携模块。
编写一个伟大的资源管理器或优秀的类来处理键盘输入,并使它们完全可移植。第八步:包装和分发
将所有需要的文件打包到一个压缩文件、压缩存档或可执行安装程序中,并发送给每个人!
- 1bat的大数据(BAT的大数据来源)
- 2三星s8屏幕上端2(三星s8屏幕上端2个按键)
- 3三星屏幕坏了如何导出(三星屏幕摔坏了如何导出数据么)
- 4红米3x怎么关闭自动更新(红米k40s怎么关闭自动更新)
- 5微信上防止app自动下载软件怎么办(微信上防止app自动下载软件怎么办啊)
- 6押镖多少钱(押镖一个月有多少储备金)
- 7瑞星个人防火墙胡功能(瑞星个人防火墙协议类型有哪些)
- 8cf现在等级是多少(cf等级2020最新)
- 9老滑头多少条鱼(钓鱼老滑头有什么用)
- 10WPS自动调整语法(wps如何修改语法)
- 11dell控制面板防火墙(dell的防火墙怎么关闭)
- 12丑女技能升多少(丑女技能需要满级吗)
- 13智能家居系统怎么样(智能家居系统好吗)
- 14戴尔屏幕(戴尔屏幕闪烁)
- 15y85屏幕信息(vivoy85息屏显示时间怎么设置)
- 16魅蓝note3屏幕出现方格(魅蓝note屏幕竖条纹)
- 17v8手指按屏幕(触屏手指)
- 18金为液晶广告机(液晶广告机lb420)
- 19三星显示器怎么校色(三星显示器 调色)
- 20hkc显示器dvi音频(hkc显示器有音响么)
- 21康佳液晶智能电视机(康佳液晶智能电视机怎么样)
- 22做液晶画板电脑(做液晶画板电脑怎么操作)
- 23液晶屏极化现象原理(液晶屏极化现象原理是什么)
- 24企业网络安全防火墙(企业网络防护)
- 256splus黑屏屏幕不亮(苹果6s plus屏幕突然黑屏)
- 26充电导致屏幕失灵(充电导致屏幕失灵怎么办)
- 27超极本屏幕旋转(笔记本电脑屏幕旋转,怎么转过来?)
- 28igmp防火墙(防火墙配置ipv6)
- 29荣耀王者多少经验(王者荣耀经验多少一级)
- 30lol老将还剩多少(qg老将)