打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
游戏脚本解释器的制作

游戏脚本解释器的制作 [问题点数:100分,结帖人apogeecsj]

apogeecsj
apogeecsj
等级:
结帖率:100%
楼主 发表于: 2004-03-16 14:57:43
请大家谈谈关于游戏脚本解释器制作方面的经验及设计思路
另外请大家提供点手头上有的那方面的资料,或网上资源,网海茫茫找起来真的费劲,谢谢大家
分享到:
回复次数:9
hell190109
hell190109
等级:
3
3
#1 得分:13 回复于: 2004-03-16 18:12:51
nehe.gamedev.net
www.gametutorials.com
www.gameres.com
www.chinagamedev.net
noslopforever
天堂里的死神
等级:
#2 得分:12 回复于: 2004-03-16 20:08:13
圣剑群英传的代码可以参考
www.gpgame.net

www.gamedev.net里面的Articles里面专门有script系列文章
toymaker
toymaker
等级:
#3 得分:40 回复于: 2004-03-17 12:33:09
谈谈自己看法:

有关脚本命令你可以自己写,也就是自己定义你自己的,当然可以用一些公用的脚本编辑器。
对于公用的我没有什么研究,这里就简单说说如何自己写一些简单脚本:
(以RPG为例)

  一个RPG必备的几个元素就是引擎、地图编辑器、脚本。引擎完成整个游戏的初始化和过程的运转(同时也要保证对地图文件,脚本文件的读取工作)。地图编辑器就不说了,直接说脚本:
  我写过一个小的RPG游戏,可以自己定制自己的脚本并通过解释脚本命令来完成一些控制工作。举一个简单的例子:

Map(地图名);

这就是我自己定义的一个脚本,功能就是选择一个地图文件作为场景。脚本编辑器完成的主要工作就是解释脚本命令,并通过引擎把结果显示出来。我的脚本编辑器大概的工作流程是
ifstream in("脚本文件名");
in.getline(controlcommand,sizeof(controlcommand),'(');
if(controlcommand=="Map")
{
  in.getline(mapname,sizeof(mapname),')');
  MapManageFunction(mapname);//跳转到专门处理map脚本的函数中执行
}
else(controlcommand=="其他的命令")
{
  //其他命令处理;
}
大概的流程就是这样,然后再MapManageFunction()函数中实现调用引擎,读取地图,往屏幕上画图等等工作,这样就解释了Map这个脚本命令。

  当然还要有其他的脚本来控制人物的显示,NPC的对话,屏幕的淡入淡出等等一系列的东西,这样就会有一组命令,通过这样的一组命令就可以实现对游戏中的背景,人物和各种角色的初试化设定和控制,实现整个游戏的剧情控制。也是通过这种方法来完成一个游戏的具体实现,即使相同的引擎,通过不同脚本和地图就可以作出一个完全不同的两个游戏。

具体有关脚本的东西我也是一家愚见,有什么不对的还要大家指教。如果楼主还不了解的话就可以上金点时空down他们的圣剑2游戏源码,看看他们的脚本是怎么定义和运用的,相信会大有裨益的!

maxsuy
maxsuy
等级:
#4 得分:5 回复于: 2004-03-17 22:09:41
lslkm3000
lslkm3000
等级:
#5 得分:5 回复于: 2004-03-19 19:04:10
友情up
apogeecsj
apogeecsj
等级:
#6 得分:0 回复于: 2004-04-05 18:44:24
谢谢楼上各位,我刚完成了一个脚本解释器,支持
int, float double, string类型定义
支持语句指令:
IF 
IFS(if else) 
GOTO 
SET //设置变量值
COMPUTE //计算表达式值
RANDOM 
ADD (+-改变变量值)
WAITTICK
PRINT 
RETURN 
(但还没与具体游戏相结合的指令)
总体来说,现在指令的类型大半都取自圣剑英雄传,我不知道游戏脚本里的指令除了以上几个最基本的逻辑控制指令外,一般还有些什么?

希望大家能在这里具体探讨一下(我初学做游戏,很想做个不错的通用的游戏脚本引擎,希望大家指点)
我的email: 123csj-123@163.com
wlpwind
wlpwind
等级:
#7 得分:5 回复于: 2004-04-05 18:56:57
不错,重要的是能坚持下去。
gofree2
gofree2
等级:
#8 得分:5 回复于: 2004-04-05 21:27:22
干吗不用现成的?LUA 或者PYTHON都不错啊
toymaker
toymaker
等级:
#9 得分:15 回复于: 2004-04-06 09:02:22
需要游戏NPC的控制指令:
Talk(对话)
SetNPC(放置npc)如果可以的话还可以放置一些可以自动移动的NPC
MoveTo(NPC移动命令)
等等
屏幕特效教本:
FOut(淡出)
FIn(淡入)
Black(改彩色为灰度)
地图场景控制教本:
LoadMap(读入地图)
MoveThings(可以具体控制某个物块)
等等其他的一些

上面只是罗列出了自己想到的一些游戏教本控制命令,相信各位大侠肯定还有补充!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
赚钱新职业:魔兽RPG地图作者
AUTOIT教程
关于RPG 游戏的地图编辑器的一些想法-游戏开发
游戏策划中的地图编辑器
游戏编辑器究竟是什么?从中先后诞生了MOBA和自走棋玩法
只和吴世春坐了趟出租车 就拿到上千万融资:前11对战平台CEO再创业
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服