游戏开发1:游戏中的场景

本文仅仅是作者最近几天思考网络游戏是什么,该怎么做的臆测,我本人最近也仅仅看来一点opengl的编程,目前使用opengl画简单图都不会,下面的文字仅记录自己的思考流程,如有不当之处,请指正,谢谢。

场景:地图,地图上的物体等。

在程序中怎么表现一张地图?

在opengl编程中,一开始绘制图像,比如一个三角形、圆或曲线,这个和游戏中的地图有什么关系?

我们画图的时候,调用的是opengl的相关图形api,需要给定一些点坐标,然后就可以画出图形。

联想到游戏中的场景地图,它应该也是一些点坐标,而opengl等图形库只提供绘制基本的图形api,而现实中的地图,基本上都是三围不规则曲面,怎么绘制?

思考1:我们可以给定一些空间点的坐标(随机),连接这些点,则是一些杂乱的线段,如果我们设定这些点的坐标是一些地形的高低点,那么我们从该顶点向上或者向下按照某种随机角度延伸不定长度,那么则会形成很多小的曲面,这些曲面连接起来,就形成随机的空间曲面,空间曲面就是一张地图。

             按照上面的方式,形成的曲面将是不规则并且没有规律的,每次可能都是不同的。

思考2:因为一般的图形库只提供简单基本的图形绘制,比如我们可以画一个圆柱,我们可以在这个图形上用不同的平面进行切割,也可以形成一些复杂的空间形状。

思考3:联系现实游戏中的地图,一个场景,它的地形都是固定的,我们并不能随机生成,否则每次进入游戏将看到不同的场景。


结论:由上述三点推导,游戏世界的地形,应该是一些小型的简单的空间图形拼接而成,而这些小型的空间图形他们是规则的,我们可以绘制出来,我们绘制一部分后,在接着绘制相邻的,然后形成大的空间地图。

            编程怎样实现?我们有很多的图形的坐标的集合,并且他们是有序的,我们按照这种顺序一个一个的绘制图形,就形成的大的地图。按照这样的思想,我们的游戏世界的地形将是无限的向外延伸。因为如果到达了一个边界后,下一个地形和这个地形是联系在一起的,即这些图形都是按照某种顺序连接在一起的,我们只有知道了下一个图形的序号即可。

           如果我们在一台机器上运行这个可以绘制图形的程序,那么我们把这些数据准备好就可以了。如果是网络游戏怎么办?显然,这些图形的数据应该由服务器发给每个连接上的绘图程序,则就形成了网络游戏。

           根据上面描述,编程的时候,要绘制图形,我们把绘制图形的数据和绘制图形的方法独立开,我们把这些数据传递给图形绘制函数,则就会绘制出不同的图形。如果这些数据来源于网络服务器端,则就是网络游戏模型。


由此我们可以得到,游戏的客户端其实就是一个绘图程序,服务端就是存储这些图形坐标的程序。如果我们做到足够的灵活,我们把这些图形的数据存储在本地,然后在界面UI上有一个图标表示,那么这个客户端就变成了图形绘制程序。如果我们独立了对这些图形操作的方法,那么客户端程序将变成一个图形处理软件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值