如何用C++制作游戏开发概述
1:选择您的游戏库
前言:除非您想为所有精细的图形/声音编程编写自己的库,否则您可能想要获得一个游戏库。 有很多游戏库,但是它们都提供 的相同基本功能。
库具有 :
加载和渲染图像的方法
一种加载和播放音频的方法
基本图像处理(旋转等)
原始绘图功能(圆,线,矩形,点等)
呈现文字的能力
跟踪时间并等待的能力
创建和控制线程的能力(很好,但不是必需的)
一些游戏库包括:
简单快速多媒体库(SFML)
简单DirectMedia层(SDL)
快板
OpenGL
DirectX(仅Windows)
Irrlicht(3D库)
2:定义概念
首先,想出一个游戏的想法。 一旦有了一个简单的想法,请对其进行扩展。 例如,如果是棋盘游戏,那么目标是什么/您如何获胜? 规则是什么样的? 等等。
如果您的游戏中会有人物或故事,请创建它们。 确保您对游戏结束后的状态有一个明确定义的概念。 游戏越复杂,一开始就应该计划得越好,这样您在编写代码时就不必担心游戏本身。 请记住,您的游戏在创建时会不断发展。
3:规划引擎
如果要制作棋盘游戏或等效的基本街机游戏,则可以完全跳过此过程,而只需编写游戏程序即可。 但是,对于更复杂的游戏,您可能需要研究使用预制引擎或编写自己的“引擎”。
您问什么是游戏引擎? 尽管它们在结构和整体功能上千差万别,但您可以将游戏引擎视为提供强大功能(例如物理,资源处理和游戏实体管理)的超级功能库。
可以说,是选择使用存在引擎还是创建自己的引擎,取决于您的实际情况,并且取决于您实际要执行多少编程。 使用预制引擎将大大简化您作为程序员编写游戏/事件脚本的工作。。
首先专注于制作游戏,然后尝试创建可移植的模块。 如果您绝对必须编写有用且可重用的内容,那么资源管理器和其他各种实用程序类都是不错的起点。
4:编写您的引擎 (如果您要自己制作)
现在,是时候开始实际编写您的引擎了,前提是这是您选择的路线。 这并不一定意味着游戏本身,而是核心渲染,物理和文件处理。
本质上是用于构建游戏的函数和类。 简单的游戏实际上并不需要太多的框架,而可以直接使用您的游戏库进行编程。 大型游戏中最重要,也是最被忽略的组件之一就是资源管理器。
如果你在学习C/C++的过程中遇到了问题,关注小编来加入小编的企鹅圈问小编哦~小编很热情的(●’◡’●)
资源管理器(大概)是一个类,负责加载资源(考虑图形和声音),确保仅加载一次资源,并在不再需要时卸载资源。
引擎/框架的另一个重要方面是界面。 当您编写游戏本身的逻辑时,在搜索数百个更新功能以试图找出真正需要的功能时,您无需花费4个小时就可以编写游戏的主循环。
保持简洁明了。 如果您能够通过一个或两个函数调用来更新所有游戏逻辑,并通过一个或两个以上的函数来渲染场景,那么您将走上正确的道路。
以面向对象的原则,例如继承和纯虚基类(认为优点接口 )是制造以良好的结构的框架的好方法。
例如,可以这样定义所有游戏对象的基类:
class GameObject
{public:virtual~GameObject()=0;virtual Vector2f getPosition();virtual bool interact(Object* o);virtual void draw();};
步骤5:媒体(音频和图形)
到目前为止,您希望至少已经考虑过您想要游戏真正的外观,也许您已经有了一套可以使用的媒体。Audacity和GIMP是用于编辑您获得或创建的任何内容的必不可少的工具。
步骤6:编写游戏
一旦选择了引擎或使用了自己的框架,就可以真正编写游戏逻辑。 您的框架应提供一个基础结构,该结构可构造对象交互(但不一定定义对象交互)并处理所有渲染和其他低级细节,例如物理。
游戏逻辑本身将定义对象交互(例如,通过定义GameObject的子类),游戏规则(例如,构成赢或输的内容),游戏的初始状态(首先加载哪个地图,您以什么开始,等),并将包含主游戏循环 。游戏的主要循环到底是什么?
简而言之:这是一个循环,主循环。 想想在玩游戏时不断重复的内容,这些就是这个神秘循环中包含的内容。 例如,游戏的每次迭代都应更新所有对象,然后将它们全部绘制到屏幕上。 除了更新和绘制外,主循环还可能负责计时。
步骤7:打包和分发
完成所有这些工作后, 将所有必需的文件打包为zip文件,压缩档案或可执行安装程序。
如何用C++制作游戏开发概述相关推荐
- 游戏开发之路(一):游戏开发概述
视频连接:游戏开发入门系列(一):游戏开发概述 这是看了视频以及一个博主的笔记,自己总结的笔记留存使用. 视频梗概(提炼了一些有用的问题) 课程的目标是什么? 开始游戏开发之路 游戏是如何开发的,开发 ...
- 游戏开发入门(一)游戏开发概述
视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟) 该视频围绕电子游戏的发展与开发简单介绍了一些基本常识,同时提出并解决了几个问题 笔记与总结(请先学习视频内容): 1.游戏机 ...
- Concepts in Games Development(游戏开发概述) 公开课笔记
Concepts in Games Development是Open2Study平台上的课程,Dr. Clinton Woodward老师任教于Swinburne University of Tech ...
- 游戏开发入门(二)游戏开发概述
这篇文章主要以问题的形式给大家解答下面几个问题: 1.游戏是如何开发出来的,开发流程大概是什么样子的? 2.游戏相关的职位都有哪些? 3.开发游戏需要哪些技术或能力? 4.程序员一般负责的内容有哪些? ...
- python可以制作游戏脚本吗_如何用python制作游戏脚本?
对于游戏编程来说,使用脚本语言可以快速地开发游戏逻辑,节省开发新型自定义语言的时间和开销,并且脚本语言通常要比编程者创造的语言更加的强大.小伙伴们学习python有一段时间了,有没有发现python语 ...
- 游戏开发入门 一游戏开发概述
1.游戏机发展 20世纪70年代开始 首款主机magnavox odysse 80年代 红白机 80-90年代 各类非FC主机(PS,NDS等) PC单机游戏 ...
- 游戏开发入门(二)游戏中的设计模式
视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深 ...
- Flash 联网游戏开发基础课程
最新提示: A 课程 4月3号开始.课程刚刚开始... 课程主要教授AS3面向对象编程知识以及Flex开发环境.[适合的人群]适合那些还没有足够AS3编程经验以及不熟悉面向对象方式编程的开发者,比如: ...
- 【游戏开发干货】往期公众号文章汇总
各位读者好,开工在即,希望我们可以早日战胜疫情,也希望大家都能以一个良好的状态来迎接2020年. 关注我公众号的小伙伴都知道,我的文章基本上都是原创,所以更新频率不是很高.早在2018年5月我就创建了 ...
- 游戏开发入门系列(目录)
更新:清华大学美术学院与腾讯游戏学院合作推出了一个新的游戏开发入门课程,相比原来的内容要更丰富一些,我个人也更推荐这门课程,链接如下. https://next.xuetangx.com/course ...
最新文章
- Windows SDK 7.1 (包含directshow)安装配置
- 与年轻人“玩在一起”的QQ音乐,正抢跑音娱赛道?
- 为了偷吃东西你能有多拼?! | 今日最佳
- 内存淘汰机制 LRU cache
- 偷梁换柱 | 无备份情况下的数据恢复实践(二)
- 纯html网页,如何快速把所有字体的颜色都改成黑色的,原来模板默认的字体是灰色
- 排序算法积累(3)-----快速排序
- C语言练习——判断位数
- 苹果手机运行html游戏,苹果手机如何运行PSP游戏方法
- 微信小程序底部导航栏配置
- excel冻结窗口怎么设置_EXCEL中隐藏、冻结、拆分窗口
- strlen源码分析
- 基于SSH+Html的外汇资产业务交易管理系统设计与实现
- 苹果cms模板_苹果cms收录好的模板有哪些?
- 制作圆形图片,你会以下几种?
- 朴素贝叶斯 二项式 伯努利
- 谭浩强c语言第7章,清华大学C语言谭浩强第7章.ppt
- 虚拟机linux mobaxterm,Mobaxterm使用
- 香港大学计算机专业博士,香港大学计算机博士申请2个重要条件
- 谢尔平斯基三角形分形 - 产生随机性的最简方法
热门文章
- Sql Server2008R2的完全卸载及重新安装
- 使用Magoshare for Mac无法打开恢复的文件或扫描后找不到丢失的文件怎么办?
- 无线充U型超声波电动牙刷方案开发
- xp系统做无盘服务器,锐起无盘网吧系统无盘XP系统特点
- 修复Cydia红字 flAbsPath on /var/lib/dpkg/status failed
- 创客匠人抖音小程序引流转化三步走
- eplan图纸怎么发给别人_如何保护你的EPLAN图纸
- Gliffy Diagrams(在线绘图)
- 2021年电子签名政策汇总 行业研究数据公布
- HDU4282 A very hard mathematic problem 快速幂