关于游戏开发,需要对从一开始到最后开发一款游戏的一般过程有所了解。一般不是一个完整的,一步一步的指导完成的结果。你还需要自己找出相当多的东西才能有一个游戏。

第一步:选择游戏库

游戏库具有的功能:

  • 一种加载和呈现图像的方法
  • 一种加载和播放音频的方法
  • 基本图像处理(旋转等)
  • 原始绘图功能(圆、线、矩形、点等)
  • 渲染文本的能力
  • 跟踪时间和等待的能力
  • 创建和控制线程的能力(但不是必需的)

第2步:定义概念——创意

所有的游戏都从这里开始,只是一个人头脑中的想法。

首先,想出一个游戏的主意。一旦你有一个简单的想法,扩展它。

例如,如果它是一个棋盘游戏,目标是什么/你如何赢?规则会是什么样子?等等,如果你的游戏中会有人物或故事,那就创造他们吧。确保你有一个相当明确的概念,你的游戏将是什么,当它结束。游戏越复杂,你就越应该在一开始就计划好,这样你就不用在编码的时候担心游戏本身了。记住,你的游戏会随着你的创造而进化。

第三步:规划你的引擎

如果你正在制作一个棋盘游戏或者基本的街机游戏,你可以完全跳过这个游戏,只需对你的游戏进行编程。然而,对于更复杂的游戏,您可能需要考虑使用预先制作的引擎,或者编写自己的“引擎”。

游戏引擎到底是什么?虽然它们在结构和整体功能上差异很大,是提供更高级别功能(如物理、资源处理和游戏实体管理)的超级功能库。

选择使用存在引擎还是创建自己的引擎,这取决于您实际想要做多少编程。使用预先制作的引擎将简化您作为程序员的工作,编写游戏/事件脚本比其他任何事情都要简单。

为什么我要说计划而不是选择?嗯,很有可能你不会做下一个老卷轴,并因此,可以创造你自己的“引擎”的种类。请记住,您将不会创建下一个“虚幻引擎”,您编写并打算重用的大部分代码(正如引擎的要点一样)最终将与您的游戏逻辑交织在一起,因此不可能很容易地重用。考虑到这一点,不要担心如果你的“引擎”部分依赖于游戏的特定代码,这就会发生。不要专注于构建一个完全可重用、超级健壮的框架,而是要确保代码具有可读性、组织性和功能性。首先专注于制作游戏,然后尝试创建可移植模块。如果您一定要编写有用的、可重用的东西,那么资源管理器和其他各种实用程序类就是很好的起点。

步骤4:编写引擎(如果你是自己做的话)

现在是开始编写引擎的时候了,前提是这是您选择的路线。这不一定意味着游戏本身,而是核心渲染、物理和文件处理;本质上是用来构建游戏的函数和类。

简单的游戏并不需要太多的框架,只需直接使用游戏库编程即可。大型游戏中最重要、最被忽视的组件之一是资源管理器。资源管理器是一个类,它负责加载资源(考虑图形和声音),确保只加载一次资源,并在不再需要资源时卸载资源。

引擎/框架的另一个重要方面是接口。当您编写游戏本身的逻辑时,编写主游戏循环不需要花4个小时,因为您搜索了数百个更新函数,试图找出您实际需要的函数。保持简洁。如果你能够用一个或两个函数调用来更新所有的游戏逻辑,然后再用一两个函数来渲染场景,那么你就在正确的轨道上了。利用面向对象的原则,例如继承和纯虚拟基类(想想接口)是创建具有良好结构的框架的好方法。

步骤5:媒体(音频和图形)

到现在为止,你至少已经考虑过你想让这个游戏看起来像什么样子,有了一套媒体可以使用。大量的免费图形和声音效果仅仅是谷歌搜索的地方。Audacity和GIMP是编辑您所获得或创建的任何内容的不可缺少的工具。

第六步:写游戏

一旦您选择了一个引擎或使用您自己的框架,您就可以实际编写游戏逻辑本身。理想情况下,在花费无数个小时之前,您至少已经完整地阅读了一篇文章,您将永远不会回到创建一个“引擎”的过程中,这个“引擎”超越了它的角色,几乎无法使用,但不足以独立运行。您的框架应该提供一个基础,用于构造对象交互(但不一定定义它),并处理所有渲染和其他低级细节,如物理。游戏逻辑本身将定义对象交互(例如,通过定义GameObject的子类)、游戏规则(例如什么构成输赢)、游戏的初始状态(首先加载哪个地图、您从哪个项目开始,等等),并包含主游戏回路。

游戏的主回路到底是什么?简单地说:这是一个循环,主循环。想想看,在玩游戏的时候,什么东西会被不断重复,这些就是这个神秘的循环中包含的东西。例如,每次迭代游戏都应该更新所有的对象,然后将它们全部绘制到屏幕上。除了更新和绘图之外,主循环还可能负责计时。对用户来说,更新太多的游戏看起来非常快,而且很可能太难了。以光速思考乒乓球。理想情况下,这个循环将使用您先前创建的框架,并且非常简单。

第七步:从里面取点东西

创建一个独立于游戏逻辑的框架的主要原因是为了让您学会编写可重用的代码。

初学者放弃项目的主要原因之一是他们花费了大量的时间和精力试图为他们的游戏“编写一个引擎”,但是他们还不知道一个好的引擎甚至包括了什么,或者一个结构/界面是否真的能工作。在浪费了所有的时间之后,他们没有什么可展示的,然后灰心丧气并因此退出。

通过首先编写游戏,然后编写可重用的代码,理想情况下,您将得到一些您可以看到的东西。这是对你的努力的一个实实在在的奖励,也是一个继续努力工作的理由。

在游戏中考虑加入这些:

可以尝试用游戏代码制作可移植模块。

编写了一个非常棒的资源管理器或出色的类来处理键盘输入,让它们完全可移植。

步骤8:打包和分发

将所有所需文件打包到一个压缩文件、压缩存档或可执行安装程序中,并发送给每个人!

编程游戏开发:如何开发制作一款游戏?你需要做哪些准备?相关推荐

  1. 从零开始制作一款游戏

    从零开始制作一款游戏 1.开发环境 一个编辑器(Visual Studio Code),Powershell和Python. 我花了一些时间来纠结使用C++还是Python,最后我选择了Python, ...

  2. 自由度比较高的java游戏_自由度超高的五款游戏,虽然是单机,但是玩家依旧很多!...

    原标题:自由度超高的五款游戏,虽然是单机,但是玩家依旧很多! <合金配备5:幻痛>,玩法比比拟特殊,作为一名玩家的你将成为游戏中的一个角色.在游戏中你首先需求做的就是"埋伏&qu ...

  3. php拼图游戏开发,原生javascript制作的拼图游戏实现方法详解

    本文实例讲述了原生javascript制作的拼图游戏实现方法.分享给大家供大家参考,具体如下: 实现方法 //1.让所有的li(在ul里)可以拖拽 //2.交换li的位置  计算背景图位置 //1.让 ...

  4. scratch跳一跳游戏脚本_cocos creator制作微信小游戏「跳一跳」

    一.游戏的分析(之前没有接触过小游戏,制作的思维还停留在大型ARPG游戏大家共同协作的想法里,但是小游戏讲究小而全,大部分时间是一个人独立开发,所以需要迫使自己养成看到小游戏先拆分细化的思想) 二.一 ...

  5. html5坦克游戏ppt说明,HTML5制作的坦克游戏

    HTML5制作的坦克游戏 本游戏是基于HTML5开发的 网页游戏,js,css辅助开发 源码如下: 坦克大战 坦克大战(请使用IE浏览器) style="background-color:b ...

  6. c语言改u3d游戏,使用Unity3D怎么制作一个五子棋游戏

    使用Unity3D怎么制作一个五子棋游戏 发布时间:2021-04-17 17:56:36 来源:亿速云 阅读:106 作者:Leah 本篇文章为大家展示了使用Unity3D怎么制作一个五子棋游戏,内 ...

  7. python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  8. 计算机游戏155,MAME0.155经典1430款游戏合集

    MAME0.155经典1430款游戏合集本合集收录了MAME自1984至2008年间已模拟的几乎所有经典游戏,共1430款,而且基本只收录了游戏的一个版本,也就是剔除了克隆,以达到最大的精简(当然一些 ...

  9. 接水果游戏代码 c语言,制作接水果游戏

    今天是儿童节,让老师教同学们做个接水果的小游戏吧. 我们新建一个项目,把小猫角色删除,然后选择一个碗的角色来接水果: 把碗移动到白色画布的下半部分,让它可以随着鼠标的移动而左右移动,但是不需要上下移动 ...

  10. c++游戏开发案例源代码_1人开发千万下载,爆款游戏TENKYU调优案例

    随着全球休闲游戏市场的爆发,越来越多的研发发行转向休闲游戏赛道.当入局的厂商越来越多,买量能力不再是决定产品成败的关键因素,未来产品品质将更为重要,所以产品调优的能力将成为重中之重.今天给大家分享一个 ...

最新文章

  1. Latex ! Missing $ inserted error 解决方法
  2. golang 判断 数组 切片 是否为空
  3. Android开发中如何设置不显示标题和设置全屏
  4. IT项目的面向对象分析设计、开发及管理
  5. 公共子串 字符串哈希
  6. JAVA构造对象的几种方式(构建器、构造器)
  7. Pytorch torchvision完成Faster-rcnn目标检测demo及源码详解
  8. zlib-1.2.11手册
  9. Python学习教程:Python3内置模块之base64编解码方法小结
  10. 「三分钟系列03」3分钟看懂什么是三次握手/四次挥手
  11. 大学计算机知识竞赛幽默主持词,知识竞赛幽默主持词.docx
  12. 中文TTS文字转语言合成模块
  13. cad隐藏图层命令快捷键_CAD中,有没有快速隐藏其他图层的快捷键啊? 新上
  14. 在ThinkAdmin中增加显示数据表格汇总金额
  15. FastDFS V6.06 阿里云集群安装配置双IP(踩坑)
  16. 锐龙R5 4500 怎么样 相当于什么水平
  17. vanilla_包装Vanilla JavaScript软件包以在React中使用
  18. Android tint颜色渲染
  19. 前端Vue+ElementUI的Pagination分页组件实现分页展示 后端Spring Boot +Mybatis Plus实现分页接口
  20. 工具 - 在线作图工具ProcessOn

热门文章

  1. 电脑终端仿真程序(crt中文免费版) 附使用说明
  2. 单片机音频谱曲软件_基于51单片机音乐播放仿真 乐谱制作软件 音乐资料
  3. 大海捞针 - Everthing的实现思路
  4. python Pytesseract 动态验证码图片识别
  5. 《暗时间》读书笔记及读后感
  6. 一个div在另一个div里垂直居中显示
  7. 安卓手机模拟路由器 测试WIFI信道遍历
  8. 【Baby Maniacs】mmd动作+镜头下载
  9. 【relations】MMD镜头+动作打包下载.zip
  10. python读取rtf文件_richtextbox怎样读取txt文件或rtf文件