铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2159|回复: 1

[pascal复刻] 近期重看了一些pascal部分的代码

[复制链接]
发表于 2017-10-3 17:39 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
发现里面大量垃圾写法,非常有感觉。

原版水浒苍水
kys_battle.pas
4246
9368
14017
kys_draw.pas
1713
1516
1661
kys_engine.pas
2408
4536
4628
kys_event.pas
2992
6833
7245
kys_main.pas
6220
8818
12048
kys_script.pas
1749
2294
2332
kys_type.pas
490
630
657
total
19818
33995
42588


上面是3个版本的行数对比,可以看到水浒和苍水增加了大量设定,但是特别的是绘图部分居然减少了,这是因为不再支持RLE8的缘故。改变较少的是script项。

在这里谈一下当年做这个版本的想法。

基本上就是为了在Windows和其他桌面系统上重现游戏和主要的MOD制作。之前有两个复刻版,一个做的接近完美,作者可能拿到了dos版的代码。另一个是游泳的鱼用VB做的,速度不高,且有一些重大bug。

至于当时为什么用pascal版本做这个,原因一个是本科学的多以pascal为主,c的代码看的不太懂,还不适应指针的写法,另一个是无法搞定动态链接sdl的dll。当时似乎是同时在看c和pascal,结果pascal先成功弄出了显示文字,后来就以pascal为基础继续做下去了。

如果用纯c,写法比pascal有很多不便,例如外部变量的链接,必须重新用extern声明,以及不作类型检查等等。从这一点来看,用c++比较合适。前几天重看部分代码,以当时的水准来看,是无法用好c++的,代码可能更为混乱。
pascal版中为了降低计算量,有大量比较复杂,近于手动优化的写法,实际上目前的cpu中已经不需要刻意做这个优化。
pascal在其他平台的编译要靠Code Typhon,基本只有这一家。

不久之后lua版发布,一开始速度是远远比不上pascal版的,这也是脚本语言和编译语言天生的重大差异。但是对于这个游戏来说,一秒能完成30次绘图计算就够了,多了也没用,而且lua版并不用安装开发工具链,改起来更容易,所以后来发展的趋势更好。特别是后来出现了一批用手机改代码的。但是一直以修改战斗为主,剧情基本不变这个比较蛋疼,每个版本的区别并不是太明显。

另外pascal的编译速度简直飞一样,debug和release的执行速度几乎没有区别。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-3 20:11 | 显示全部楼层
。。。请勿灌水
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-4 01:45

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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