如何从零开始写一个简单的游戏引擎

如题所述

做一个游戏引擎,稍微想想就觉得挺复杂了,先罗列出几个必须要做的模块:资源和文件管理系统,游戏主循环,输入系统,渲染引擎,动画系统,碰撞系统,游戏性系统,若是想的再复杂一点,还得加入游戏相关的调试工具和性能剖析工具。

这样一来,就很容易陷入过度设计的泥沼,在大三上学期时,我们做的XiHad项目(NextRPG/Xihad · GitHub)就遇到了这样的问题,引擎的过度设计导致后续的开发时间被无限缩短,最终却发现引擎中很多的功能实际上游戏中却用不到,真是令人哭笑不得。

由于题目中说的是实现一个简单的游戏引擎,我给出的建议是:先用OpenGL或者DirectX制作一个简单的游戏,再把游戏中可复用的部分剥离出来,这就成了一个简单的游戏引擎。

游戏史上几个最著名的游戏引擎都是这样做出来的,比如:Quake游戏引擎是制作雷神之锤的副产品,虚幻是制作战争机器的副产品,所以,我相信这种将游戏引擎作为游戏的副产品的经验同样适用于大型游戏引擎的开发。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-21
先读好基本代码和基础知识,要不你不可能写出来

新手如何从零开始学习unity?
(一) 首先unity的脚本可以用很多语言来写,比如java,js,c#,我个人比较喜欢C#,因为刚开始的时候我学习的是C++,后来又做C#窗体程序,我们先从脚本说起,脚本我个人推荐用C#,很多人说自己没有C#的基础,其实自己自学也能够学会,在unity中学会简单的游戏逻辑开发,其实不需要太多的C#知识,unity用的...

我一点基础也没有,想学个人游戏开发,该怎么
最好是做几个实例,这样自己学起来的动力高一些。先不要想着怎么原创游戏,我们先模仿别人的游戏,例如FlaapyBird开始 就先仿制一些简单的,等自己弄熟了,掌握了学习的方法就可以有能力自己开发了 以上说的也是局限在程序方面,个人开发,一定要会编程,因为不会这个,基本没戏 美术可以找网上的资源什么...

怎么学习unity3d
第一步首先了解Unity3D的菜单,视图界面。这些事最基本的基础,可以像学word操作一样,大致能明白有几个菜单,几个基本的视图,各自起什么作用的就可以了。第二步理解场景里面的坐标系统,输入系统,简单的向量概念。Unity3D的坐标系统及向量概念如果不理解清楚,不理解世界坐标,局部坐标的关系,即使一个...

游戏开发难上手吗?
一个人开发手机游戏不难?答案在这里:用Unity3D很简单。但是如果想开发比较复杂的游戏就不简单了,格斗类的游戏不建议做,网游不建议做。飞行类,RPG+简单的战斗,休闲小游戏可以做。开发时间取决于你的代码积累。如果是第一个游戏,没有积累,飞行游戏,不包含复杂功能,一个月内一定能出来,具体是1...

学编程多久可以写游戏辅助(c语言自学免费网站)
6、易语言写手游模拟器脚本要学1个小时。官网,看文档,b站,基础的东西用不了1个小时就掌握,但是解决游戏问题的技巧就不是别人能教的了。比如你用那个脚本好用想学,人作者靠这个赚钱肯定也不会教你。学习编程要了解好的知识,学多久才能自己设计软件呢?从零开始学编程一般需要4-6个月。入门编程...

怎么制作游戏
1、通过参考不同的游戏,写出想要制作的游戏的剧情和脚本。游戏的种类有多种,根据自己喜欢的游戏种类,通过参考不同的游戏,写出要制作游戏的剧情。2、根据游戏的剧情和脚本,使用手绘软件绘制游戏人物的图形和背景。3、通过建模的软件把平面图形创建为立体模型效果。有多种建模软件,可以通过建模的软件把...

如何用游戏系统建模语言设计核心玩法
一般如果有游戏引擎(不晓得百度)如:unity。你需要使用对应的编程语言来编写,比如c#写unity。如果无引擎,从零开始(这个比较摆)一般使用c++。设计核心玩法:比如要A到达指定位置,游戏胜利。可以在每帧的更新中写:if A.位置 == 指定位置{ 游戏胜利()} 当然也有更好的实现方法。一般是要逻辑和...

用Unity写小游戏是否比用Python简单?
掌握了“一切皆动画”这个概念后,没有什么是不能实现的,虽然效率和可维护性都很残念。可惜FLASH被弄死后,并没有其他人接手这个“小游戏领域”,Unity都成了低门槛游戏引擎了,真是令人感到可悲。RPGMaker只是提供了一套专门用于特定领域的模板,从零开始做游戏远不及flash。

做游戏一定要游戏引擎吗
客观来说的话,绝大部分的游戏开发者完全没必要从零开始费时费力做一款游戏,而游戏引擎就可以理解成一系列的工具集成,包括渲染、碰撞、物理、动画、音效、网络、脚本等等模块,这是一套解决方案,它能够让你快速地制作并发布一款游戏。所以何乐而不为呢?

VB怎么做3D程序 本人就一VB小白
第一章 熟悉vb和tv3d Vb就是Visualbasic,是一种可视化的基础编程语言。为什么用vb呢?因为它简单嘛,学得快的人几个小时就能学会。有人说我只会C++,没关系,原理都是相通的,你学vb只会更快。有人说,我不会vb怎么办?既然是从零开始的教程,我自然已经考虑到了这个问题。既然只是做游戏,又不...

相似回答