初春引擎的 alpha 版发布与反馈(欢迎参加测试)

花园地址

原标题:初春引擎的 alpha 版发布&反馈(欢迎参加测试),因为“&”字符无法被百度sitemap插件处理写入 XML,所以改动了标题。


大家不要只是评论,谁来做一下小白鼠啊谢谢……
已经取消了文件分享区的文件分享,请转到百度网盘。链接:http://pan.baidu.com/s/1jGwvEAU(521 MB)密码:vcmg


初次制作,若有大神看上的话,劳烦指导,谢谢……

文件较大,为了节省大家的外网流量(虽说今天好像不限制流量,但是考虑一下以后吧),就放在文件分享区了。在几乎没人的十一假期发布,我也拼了。比预定的时间晚接近一天……

历史上的帖子:http://buaabt.cn/showtopic-370825.aspx

欢迎反馈……反馈的时候建议附上错误说明(一般会输出,如果不是 .NET 的问题的话)。

内容取自 StrawberryNauts(©2011 HOOKSOFT)。

请先阅读“运行需求”(见下文),配置好之后直接启动 StrawberryNauts.exe 开始游戏。

运行需求

操作系统:Windows Vista SP2 或以上

DirectX:版本 9、10 和 11(注意是3个版本都需要;Windows Vista 预置 DX10,Windows 7 预置 DX10 和 DX11,;DX9 基本上不用愁)

其他组件(如果不清楚自己的机子上是否已安装,推荐安装一下):

1、Microsoft .NET Framework 4

http://www.microsoft.com/zh-cn/download/details.aspx?id=17718(大约 48 MB)

文件:http://download.microsoft.com/do … 40_Full_x86_x64.exe

2、Visual C++ Redistributable for Visual Studio 2013

http://www.microsoft.com/zh-cn/download/details.aspx?id=40784(大约 7 MB)

选择 vcredist_x86.exe。没错,即使是64位的系统,也请选择32位的运行时。(2014-10-03 补充)

文件:http://download.microsoft.com/do … 6F/vcredist_x86.exe

3、OpenAL

http://openal.org/creative-installers/oalinst.zip(大约 600 KB)

正常运行的时候应该是这个样子:

StrawberryNauts in EarlySpring Engine

软件说明

  • 错误反馈会输出至根目录下的 debug.txt。(会有比较详细的错误信息。)
  • 当前为 alpha 测试所用,使用默认的 Release 方案编译。任何模块的代码都仍然可能被修改。
  • 为了演示简便起见,省略了部分特效(如文字渐入、对话框晃动等),仅编写了淡入淡出特效。请参考 EarlySping.UI.AnimatedEffect 类实现自己的特效类。
  • 为了演示简便起见,省略了许多错误捕获代码。因此如果想测试自己的实例,请严格按照示例(在 script 目录下,test.sns 和 details.txt)编写脚本。
  • 为了演示简便起见,省略了部分游戏功能(如存档/读取、设置、CG 等),仅制作了普通游戏流程。当然,其实 alpha 的代码验证了的话,做这些并不难。
  • 所有文件的默认编码为 UTF-8,注意输入的文本文件的编码。
  • 文件按照原版游戏放置。
  • font 目录下有三种字体选择:微软雅黑(msyh.ttf)、宋体(simsun.ttf)、黑体(simhei.ttf)。游戏中使用的是黑体,因此想改变字体的话可以将所需的 TrueType 字体文件重命名为 simhei.ttf,替换原文件。
  • 版本号懒得改了,目前那些 1.0.0.0 之类的其实都是默认的,没有意义……
  • 还原的两条线(两条?)分别为共通04的穗海EV2,以及日和橙子01的后半部分。
  • 有福利。嗯,其实要发现是很简单的,玩了就知道。(那也叫福利?!)

此次参与的模块:

  • 基于事件的 GUI
  • 声音
  • 带变量和流程控制的脚本系统(目前仅支持数字和布尔值)
  • 简单的状态保存

该版本中关闭了一些功能,可以自行编译解决。注意,如果需要编译代码,您需要 MonoGame 3.2。

1、外置调试器。调试器已经编译,若需要游戏支持调试器,请加上 ES_DEBUG 常量进行编译。该调试器目前不是很稳定(尤其是主进程崩溃的时候),请谨慎使用。

2、视频播放。此部分已经编译,只需要将 FFMpeg 的二进制文件置于根目录下即可。

1
2
3
4
5
6
avcodec-53.dll
avdevice-53.dll
avfilter-2.dll
avformat-53.dll
avutil-51.dll
swscale-2.dll

3、各种代码说明。好吧,XML 代码文档我是没用到(因为名字就可以反映大多数信息),少部分有普通注释。

当前最大的问题:

1、

目前的界面元素添加代码有缺陷,建议界面元素尽量静态初始化。本次普通窗口的控件是静态初始化的,选项窗口的是动态生成的。

描述:每次改变集合内容都会使得迭代器失效;而用户的操作实际上都是处在 Update() 中,即是遍历更新中,必须要用到迭代器。

目前解决方案:每次循环时判断元素是否变动,如果变动则中止本次循环。

推荐解决方案:考察 Windows 的窗口消息机制,特别是新建/销毁窗口后事件到达情况的改变。

2、

窗口失去焦点时重绘会导致窗口卡顿,原因不明(可能与自动坐标系中的缓冲区更新有关)。

有帖子(2013年,地址忘了)报告说 MonoGame 中仍然存在一些 trick,例如并不是“不显示鼠标”而是将鼠标移动至屏幕外等。怀疑在特殊情况下渲染不正常的原因和其在窗口大小变动时使用的 trick 有关。

目前解决方案:失去焦点时不再重绘(表现为黑屏)。

推荐解决方案:未知。

开源软件使用(按照惯例需要指出):

  • MonoGame 3.2(Microsoft Public License)
  • SharpFont(MIT License)
  • FreeType 2.5.3(FreeType License)
  • OpenTK 1.1(MIT/X11 License)
  • NVorbis 0.8.3(Microsoft Public License)

此次未使用:

  • FFMpeg(LGPL v2.1/GPL v2)

好了上面是一堆的正式文本……现在开始吐槽。

Gatekeeper(Goalkeeper?) 受我一拜

Gatekeeper

Q: 为什么这么大?

A: 主要是资源大……看程序本体并不大啊……

Q: 为什么不照顾 XP 党?

A: 采用的程序集的问题。MonoGame 采用的 SharpDX 自带了 DirectX 11 的封装,而且还强制使用 DirectX 11,因此与 Windows XP 无缘了。我在论坛上问过是否能提供仅 DirectX 9 的版本,不过还没人解答这个事,估计我到时要自己做。此外,libfreetype 是写 SharpFont 的蛋疼的家伙用 Visual Studio 2013 自行编译的(估计选的还是 vc120 而不是 vc120_xp),这个把我坑了一个小时。到时我也要自己编译 libfreetype,取消这个限制。

Q: 说好的跨平台特性呢?

A: 现在先在 Windows 上测试一下……编译的时候强制检查 CLS 兼容性嘛,然后就可以开其他平台的解决方案(代码不变)了。其实主要原因是,我就一台安装了 Windows 的小破机子。另外,昨天写 WPF 的 Storyboard 的时候,发现有了 Storyboard,应该在 WPF 上做这种小型软件更好;但是 Mono 的开发团队已经声明不会去支持 WPF(而将精力转向 WCF 的支持),我只好打消了这个念头。感觉总是在发明轮子啊。

Q: 你要测试什么?

A: 我要测试的是引擎;为了测试引擎,需要基于其制作一个游戏。我们在运行阶段直接测试的其实是游戏,但是如果发生了异常,可以反映出引擎中的问题。

Q: 为什么名字那么土里土气的?

A: 土么……好吧,如果真这么认为,那就算了。名字的来源是初春饰利(Uiharu Kazari),但是直接用罗马字的话,发布到论坛上看起来就像日本人做的一样。但是要将其姓“初春”翻译成一个可以作为软件名字的名字很难(现在用的是 Early Spring,并不是很准确)……想了想,至少有中文名……囧。

来源是这里(左上角,超炮S第17话;话说初中生自制防火墙啊)

Firewall Early Spring

没事,国内还有一个叫“天火引擎”(Fire from Heaven,名字来源为某蛋疼电视剧)的,做了一堆外设但是目前似乎还没有一个测试品……

Q: 接下来打算做什么?

A: 最近几天么?做了作业之后就可以编索引&玩 GalGame 啦~对这个的代码也会持续改进,先要积蓄内力,现在快累坏了……

这里是游戏本体的代码。注意不是全部代码,请和框架搭配使用。由于原工程引用了同解决方案中的其他工程,懒得改了,因此请自己建立工程、引用,再编译……

SN_MainGame_Src.rar


刚刚发现 MPC-HC 升级到 1.7.6.253(随着2014年9月23日的 K-Lite Codec Pack Mega)之后,启用了 DirectVobSub,截图机制与以前也不一样了,字幕也能被截进去……(有一种被坑的感觉)

分享到 评论