标题: 希望有高人能够做出的引擎设想
性别:未知-离线 《苍狼白鹿传》

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 571
编号 321756
注册 2009-5-10


发表于 2010-8-8 22:33 资料 短消息 只看该作者 QQ
希望有高人能够做出的引擎设想

主窗体
有最小化按钮,关闭按钮,除此以外都是显示区
避免了对话框中间的按钮(难看)

指令
这个才是最重要的,既然是引擎,很自然就要遵照引擎+剧本的模式

实际上引擎可以看成是子函数,剧本在调用这些子函数,而指令就是调用的关键

必须指令
1 存储读取 文件调用
文件操作是最基本的,不能存储的游戏除非是像超级玛丽一样
对于存档(这里称作文件)用一个专门的文件指针,然后从文件指针中打开文件数据
写入数据也根据需要写入
用文件指针的话,还可以指定一下写入文件的数据地址(称之为选择性存储)

2 绘图
这个实际上可以归结到第一类
但是不一样的在于直接打开图画
比方一张BMP图像,文件除了中间部分是图像信息,开头结尾都是用于WINDOWS显示图片的

补充2 贴图
绘图前增加计算的问题
首先将背景文件导入作为模板,然后将贴图对应坐标对应覆盖
比方背景
00 01 03 12 41
12 11 51 61 31
16 13 34 14 51
21 51 35 65 34
每个数字代表一个颜色(可以使256色,也可以是真彩色等,大概理解这个意思即可)
贴图从(1,1)开始,注:左上角(0,0)
贴图
12 22
00 14
遇到贴图中00(也就是镂空色,不替换背景)
00    01    03 12 41
12 ★12 ★22 61 31
16    13 ★14 14 51
21    51    35 65 34
结果变成这样,作为一个整体图像文件的话,那么这个图像实际上就是考虑上面图层镂空以后帖在背景上生成的新图
这一段可以作为单独指令,也可以通过计算指令(接下来就是这个很重要的指令)来像子函数一样写到剧本中
不过恐怕真正对编程有兴趣的朋友会选择不要这个指令来自己写

3 计算
游戏有了图像 ,能够存储,那么大量的数据从哪儿来呢?
这就少不了导入(如曹操传DATA文件)和计算(没有计算就没有变量,游戏不称之游戏)
计算包括整形(浮点、DOUBLE等等)的计算。
最基本的数学计算必须的加减,因为通过加减配合上测试(下面马上要说这也是很重要的)可以做出乘法,除法,取余,还可以求绝对值,求平方根。当然啦,自加自减一定要加入,对于计数什么的很有用。(也是最基本的)

补充3 计算
在加减前提下
1>计算A×B
C=0   D=B  当D!=0 每C+A,D--
2>计算A÷B
C=A  D=0 当C>B C-=B  D++
最后得出的D
3>计算取余
上步中 C 最后的值就是余数
当然自己写就是这样,也可以把运算都写入指令,但是计算指令必不能少的是加减

除了整形 浮点等等计算,最重要的还是指针的计算
毕竟开辟一大段存储空间,不能计算指针的话,怎么控制这么庞大的变量系统呢

这个说得直观点就是新引擎的变量计算那指令

4 测试
从原则上来讲测试只有两个值 0 1
也就是所谓的 TRUE和 FALSE 这是最基本的
当然,说得广一点可以有 大于 等于这些测试
测试是否为0是很关键的

比方说要测试 A>B 是否成立,现在只能测试 A?=0 B?=0
那么 A-- B-- 测试 A,0  B,0 循环 那么最先减到0的就是小的

这条指令没太多说的,复杂的测试可以在编剧本的时候组合起来

打个比方做武将相邻测试(曹操传中有的)
先取出二者的坐标,计算横坐标X 纵坐标Y 的差值
差值的绝对值等于 1 那就是相邻 可以通过 || 和 && 的区别判断是十字相邻还是九宫相邻
就是说 横纵坐标差都小于1 这就是9宫的范围 横坐标或者纵坐标差1就是十字相邻

知道了这一点那么曹操传中间那么多测试就可以做出来了

有没有想过弓兵单挑呢?弓兵范围是
    X
  X   X
X  O   X
  X   X
    X
只要把 横坐标 X 差和纵坐标 Y 的差的绝对值相加,等于2 就说明在射程范围
毕竟弓兵与弓兵单挑弄个相邻触发还是挺怪异的

5 剧本调用
这个有点像子函数调用的概念
用两个跳转,跳转到另一个剧本,然后完成后回来
这个相对于前面四个属于高级的指令了,也是以指针为基础

就好像武将相邻测试,这个写入一个专门的剧本
那么每次执行这个测试,只需要调用另一个剧本就可以了

[ 本帖最后由 《苍狼白鹿传》 于 2010-8-8 23:57 编辑 ]


顶部
性别:未知-离线 《苍狼白鹿传》

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 571
编号 321756
注册 2009-5-10


发表于 2010-8-8 23:24 资料 短消息 只看该作者 QQ
变成的时候最忌讳的就是一大段大段的写,见得最多的就是从子函数中调用
而我们可以吧剧本分下类,一类是叙述剧情,或者展现游戏流程的,这叫游戏剧本
在四种最基本的指令构成更高级指令(例如相邻测试)这个可以叫做指令剧本

四种基本指令可以构成更复杂的指令,但是还有些指令应该也要归入高级指令的范畴

5 鼠标坐标获取
这个在 C语言的程序中很常见 ,就是两个整形INT 来保存
这个坐标用处就多了,比方按钮

补充5 鼠标坐标获取
在获取坐标之后还应该有左右键点击获取,毕竟鼠标真正的作用取决于点

6 键盘指令获取
这个有点像 GETCHAR
从键盘获取一个字符,那么某些特殊字符就有意义了
比如 W A S D 可以控制上下左右

本来打了一大段的,因为网页错误结果······只能泪奔

在重新打这一段之前忽然想到另外一个指令 武将点击测试
因为可以获取鼠标坐标,那么可以测试鼠标是否在贴图坐标区域范围之内,这又回归了指令4
曹操传中点击R形象就是这样

7 文字信息
没有文字的游戏可以说是不堪想象的。
如果有像PPT那样的文字输入,能够决定大小,颜色,文字信息出现的坐标位置的话
我对文字信息这里不太了解,行不行也只能这么想了

说到文字信息我就想起曹操传的人物对话
人物对话首先要出现个框框,这个算在贴图范畴,然后再贴图区内显示文字,姓名,这个就需要分别调用两个子剧本了(这名字是学了子函数的)

8 信息添加
或者说得通俗点就是标注
就像书签,在书中做笔记,这些记录信息没有什么实际意义,但是方便了大家看懂剧本
比方说曹操传的 内部信息 这个指令
这条指令相对来讲意义并不大,但是在某些时候也能够起到帮助

还有哪些指令我一时也想不到了(感觉现有这些够强大了),等到想到再补充。

[ 本帖最后由 《苍狼白鹿传》 于 2010-8-9 00:05 编辑 ]


顶部
性别:未知-离线 《苍狼白鹿传》

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 571
编号 321756
注册 2009-5-10


发表于 2010-8-9 00:15 资料 短消息 只看该作者 QQ
这样的引擎跟汇编还有多大的差别呢?

其实照我的看法,本来也就相差不远了。

引擎的模式就是来自于编程中子函数的调用。

剧本中的内容完全可以都写入引擎(比方许子将教学那一段)

但是这样做的结果就是引擎特别繁琐。

这样的引擎实际上可以说是款翻译工具,将剧本翻译成低级语言。

而剧本相当于是可视化编程的一种(局限性大于VB VC ,简便性小于VB VC)

特别是对于特别业余级的游戏制作者,这样的引擎将实现你的梦想。

便于大规模分工合作。不同的人可以分别担任编剧,程序员,美工等等。(感觉跟没说一样,至少同一引擎可以同时为编剧和编程服务)

调用剧本加上测试,那就构成了更高级的指令。

比方菜单处理 TRUE FALSE
根据0 1 两个不同值调用子剧本中不同段或者不同子剧本。

要说这样跟写引擎有多大区别?

最大区别就是,写引擎不再是某几个高手的专利。大家可以集思广益,想到更多算法,来完善程序(不受到编程语法限制)。

[ 本帖最后由 《苍狼白鹿传》 于 2010-8-9 00:18 编辑 ]
顶部
性别:未知-离线 northwind_x


Rank: 4
组别 校尉
级别 破贼校尉
功绩 11
帖子 59
编号 362090
注册 2010-2-22


发表于 2010-8-10 18:04 资料 文集 短消息 只看该作者
你的需求是完全可以满足的。

我是学计算机的,准备写一个这样的引擎,支持可视化的脚本编辑,让做游戏不再是技术人员的特权,只要有好的剧本,经过简单的配置就可以制作出自己的游戏。

相信群众的力量是伟大的,量变终归会引起质变
顶部
性别:未知-离线 陈珺

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
好贴 5
功绩 26
帖子 927
编号 3820
注册 2003-12-27
来自 福建福州


发表于 2010-8-11 00:52 资料 个人空间 短消息 只看该作者
为什么要做成汇编形式
顶部
性别:未知-离线 《苍狼白鹿传》

Rank: 4
组别 士兵
级别 牙门将军
功绩 6
帖子 571
编号 321756
注册 2009-5-10


发表于 2010-8-12 18:09 资料 短消息 只看该作者 QQ
可以不用汇编,我尝试过搜索VC函数库,可是有些地方不知道怎么实现
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-11-5 12:15
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.013328 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP