开始我的第一个游戏引擎制作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq493453700/article/details/72833924

从零开始的引擎开发。当然不会很高端。想要入门的同学可以看看。

首先平台我选择PC平台。语言选用初中就瞎几把乱学的c++。想做一个2d游戏。网上找几个库就开始做了。之后当然,就碰到了瓶颈。所以为了不走弯路。一开始就要学习很多基本知识。那么首先:

游戏基本原理是什么?

我自己理解就是,当然简单的来讲,清空画面→遍历元素队列(更新数据)→渲染(遍历图片队列重新描画),这样一个过程,每秒循环60次。也就是60fps游戏。这就是一个简单的游戏。

打个比方。用伪代码演示一下就是:

vector<object*> objects;//弄一个vector数组

objects.push_back(new object);//添加元素
objects.push_back(new object);
objects.push_back(new object);

while(1)
{
	clear();//清空画面
	for(unsigned int i = 0; i < objects.size(); i++)
	{
		objects[i]->render();//更新数据并绘图
	}
}

当然更新数据和绘图可以分开来演算,比较好。
 

那么一个简单的引擎需要什么?

  1. 建立窗口
  2. 基本的绘图功能
  3. 刷新和图片队列
  4. 键盘鼠标和引擎的交互
  5. 文字显示
  6. 声音播放

可以看到一个简单的引擎是不包括object和object的数据更新的。因为一个简单的引擎基本功能就是能显示图片。至于这个图片的大小,位置等等,是由object来提供。这样才能展现出一个生动的游戏画面。

比如一个苹果,他在(0,0)的位置,那么每次更新数据,就将一个苹果的贴图贴在这个位置。当苹果往下掉的时候,比如掉到了(0,-1),也就是位置更新了,那贴图的位置也发生了改变,以此类推。我们就能看到一个苹果往下掉落的过程。也就是说,游戏世界分里世界和表世界。里世界全部由数据构成。而让我们能看到这个世界,就需要图片组成的表世界。当然没有图片,这个世界也是存在的,这个苹果依然是往下掉的。只是我们看不到而已。当然这后面就要扯到物理引擎的知识了,这里先不说。

我自己写引擎碰到瓶颈了以后,就去找教程。但网上的教程很零散,完整的很少,就算有也是收费的。

后来我找到了这个(需要翻墙):Sparky Engine (How To Make a Game Engine)系列

和我一样使用c++和opengl开发。以后会不定期更新。

完。

地方

挖槽,看了几百年前自己写的这个文章,也太蠢了8,很明显坑了,不过留下了些代码
在这里:https://github.com/r5r6ty/type1engine

猜你喜欢

转载自blog.csdn.net/qq493453700/article/details/72833924