设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
查看: 14696|回复: 37

[编程算法] 【11.22修改】AVG游戏引擎制作

 火.. [复制链接]
发表于 2014-9-7 21:38:57 | 显示全部楼层 |阅读模式
本帖最后由 drzzm32 于 2014-11-22 22:22 编辑

经过论坛成员修订完善,将以此进行引擎开发工作,由技术区人员参与,并作为第一次活动的基础

大赛预备阶段,用自己熟悉的语言

修改过让风格接近汇编了

此引擎名字暂定为ThAVG

————————正文开始————————

ThAVG ~ 引擎设计方案

        从程序生命周期考虑:

启动程序 —(读取脚本)—》启动界面—(这里要按键才可运行过去)—》标题界面——》
——》开始游戏——\
                                 ——》End——》Credit——》标题界面
——》读取存档——/
——》CG收集
——》设置(在游戏外部设置)
——》退出游戏


        其中,启动界面,标题界面,游戏场景,读档界面,存档界面(暂停菜单),End,Credit均可抽象为同一事物,这里称作“场景”,其内容物称作“元素”。


(以下脚本语言均为中文关键字,若不妥可以修改)
当前格式似乎接近汇编?

总体语法:(除指令关键字外其他字符开头均可作注释)
  1. [指令] [数据] [注释,可选]
复制代码

场景定义语法:
  1. 开始定义场景 [场景编号] [场景名,仅作注释,可用于Debug]

  2.         [元素定义]

  3. 结束定义场景
复制代码
        其中,场景编号作为游戏进程控制的核心。


元素定义较为特殊,有三种,且不可混用。


       语法一:
  1. [背景/音乐] [地址]
复制代码

        这里的地址,是以程序所在路径为根目录的路径。如【BGM\01.wav】【Image\233.png】


       语法二:
  1. 开始定义立绘 [立绘编号] [立绘名,仅作注释,可用于Debug]
复制代码

       这里的地址,是以程序所在路径为根目录的路径。如【BGM\01.wav】【Image\233.png】
        这里的位置,是指图片在游戏界面的位置,考虑到游戏Logo也可使用这个定义,现在先不确定这个参数
       的具体形式。


       语法三:
  1. 开始定义文字 [对话/旁白/标题画面/存档画面/读档画面]

  2.         选择 [内容]
复制代码
       这里的场景编号与场景定义的编号一致,这个值仅在标题画面,存档画面,读档画面才有效。
       对话显示多行的可定义多个选择,但要自己测试字数。
        存档画面,读档画面需要自己定义 返回 选择项。

NOTE:
        场景过渡方法:从A到C,中间需要加一个相应元素为空白的B。如BGM切换,对话变换。
        注意BGM连续播放要在所有场景中都要有定义。
        (更多注释,有人(技术人员)无法理解的继续注释)

以下是数据结构

       
                       
       



Nyasama

the WDJ - C, M

Dr.zzm32


发表于 2014-9-7 21:45:35 | 显示全部楼层
给32顶一下,伪代码还是挺精简的呢。游戏引擎开发还是挺难的呢(虽然是AVG),要加油哦。

点评

还有我的游戏啊。。。做Stage了啊。。。还是先做一下综合测试吧  发表于 2014-9-7 22:39
我也是最近比较忙,要和别人做个棋盘游戏,等11月的时候,可能来这边看看。编程序只要能开始动手就快了,虽然容易卡到开始和调试上。。。。。。  发表于 2014-9-7 21:51
分析了一下代码实现难度。。。不太大。。。应该  发表于 2014-9-7 21:47
回复

使用道具 举报

发表于 2014-9-7 22:24:08 | 显示全部楼层
顶一下先,让俺研究一下
回复

使用道具 举报

发表于 2014-9-8 00:03:43 | 显示全部楼层
文字遊戲吶......自身興趣和能力都不大,是解迷遊戲和射雞遊戲就好了
暑假完了,在學校又要忙著搞工程............
回复

使用道具 举报

发表于 2014-9-8 12:07:55 | 显示全部楼层
zzm 博士好强的执行力,赞一个

关于活动的规则 OFz 觉得至少还有下面几个问题需要深入考虑:
1. 这个活动其实是“引擎制作比赛”而不是“游戏制作比赛”吧?要从头制作一个游戏来参赛实在太花时间了呢,我觉得应该由活动方提供脚本(剧本)和素材,参赛者只负责程序就好了
2. 看到上面的场景定义,OFz 觉得最简单的方法是写个程序把 脚本 转化成 幻灯片(ppt) 这样的方式。但是这样子写出来的程序最多算“转换器”而不能算“引擎”。如何规范这种行为?
写完发现我理解错了...请无视上面两点


然后是关于细节的一点建议
1. 中文关键字容易遇到编码问题,而且对用 vi 模式编辑文本的人非常不便
2. 在不同的场景中如果出现同样的立绘,每次都重新定义一次略显繁琐
3. 缺少更多关于细节的定义(如动画效果,持续时间等
4. 想让更多不会写(也不喜欢)代码的人来参与,一个可视化编辑器应该比一个引擎要更有吸引力

回复

使用道具 举报

 楼主| 发表于 2014-9-8 12:36:34 来自手机 | 显示全部楼层
ofz 发表于 2014-9-8 12:07
zzm 博士好强的执行力,赞一个



这个只是初步方案。。。

1.现在也只是伪代码。到时候可以用英文的,考虑到中文可以吸引很多不会编程的人。
2.因为不同场景元素可能不同,相同立绘定义也只是一个标志,不会再次加载。而且我要考虑场景切换嗯处理,因此过渡场景是必要的。
或许可以检测场景元素变化?(但是场景编号是游戏进程的核心)
3.按照上面所述,此引擎没有游戏时间参数,只有场景编号作为进程控制参数,同时存档也依赖于此参数。这个只是初步方案,具体将在后面讨论。
4.我也有做GUISDK的想法,但当前是做出引擎,后面再做GUI。
话说OFz,这个WEB化的难度怎样?我们先把这个讨论完善怎样?
回复

使用道具 举报

发表于 2014-9-8 13:28:11 | 显示全部楼层
drzzm32 发表于 2014-9-8 12:36
这个只是初步方案。。。

1.现在也只是伪代码。到时候可以用英文的,考虑到中文可以吸引很多不会编程的 ...

最基本的实现不难,大概也就几百行代码吧。选择 json 格式的话还能更少些(那样只要一行代码就能把数据导进去了。其实 vb 也有 json 的库的哦

如果要考虑做可视化编辑的话,那可是个不小的坑(具体工作量取决于你想做到多好了
回复

使用道具 举报

 楼主| 发表于 2014-9-8 13:52:32 来自手机 | 显示全部楼层
ofz 发表于 2014-9-8 13:28
最基本的实现不难,大概也就几百行代码吧。选择 json 格式的话还能更少些(那样只要一行代码就能把数据导 ...

可视化。。。这个坑的确不小。。。
AVG故事结构类似树,而每个场景又是一个类,嗯。。。
还是要把方案挂几天,看看还有没有问题,没有的话,我会详细的说明这个。
当前来看,场景跳转必须要按Z键。用一个计时器来控制绘画。程序默认从场景编号0开始处理,但是要考虑编号数据类型,或者可以用十六进制。
回复

使用道具 举报

发表于 2014-9-8 15:22:36 | 显示全部楼层
本帖最后由 lrdcq 于 2014-9-8 15:24 编辑

话说我记得MCBilibili服二周目的时候出现了一个webAVG引擎作为用户入门手册来着,不知道哪个东西怎么样了另外橙光游戏的flash版在线AVG引擎也非常成熟了

点评

我们搞这个是以学习为第一位的。。。而且你见过这么简单的脚本?  发表于 2014-9-8 15:35
回复

使用道具 举报

发表于 2014-9-8 15:46:10 | 显示全部楼层
本帖最后由 lrdcq 于 2014-9-8 16:11 编辑

@drzzm32  AVG引擎我勉强也算接触过(http://lrdcq.com/右下角的伪春菜系统即是一个超级精简的AVG引擎),AVG系统构建确实就是一个简单的PPT系统,图像处理,tween,文字显示,音乐播放,鼠标和键盘监听都是有涉及到的,变化和创新处确实不是手到擒来
另外数据的话,当然是赞成ofz君所说的JSON数据(那个的伪春菜也实际使用的JSON)。当然, 数据的可读性易用性 和 简洁性 也是成反比的.......如果是要推广使用的话,确实得斟酌斟酌了总之,各种语言都尝试做一下总是有好处的

然后对这个方案的一些问题
1.加入使用如LZ所说的中文标签式语言,是否有必要规范为英文的xml作为游戏读取资源使用,以避免ofz君所说的问题(同时规范一下代码)(当然还要写一个转换器)。另外脚本语言也推荐一下lua吧。
2.场景过度场景的控制脚本具体会怎样?
3.LZ列出来的脚本均为资源定义脚本,那么将这些资源按照脚本编写者的逻辑和需求联系在一起呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 07:30

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表