铁血丹心

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

[其他] 学习过程和思考

[复制链接]
发表于 2012-2-13 16:12 | 显示全部楼层 |阅读模式

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

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

x
年前问过c#代码的问题,答案是可能瓶颈在速度上。

最近又看了一下pascal版的代码,有很多地方不懂,一是我程序水平不高,二是对pascal很多地方不了解。又找了其它版本源码,如c++和 lua的,也不是很容易懂。
另外花了很多时间寻找并学习c#下的sdl库,当最终可以运行一些简单的例程时,我突然感觉到这条路线可能并不合适,于是放弃了。

又回到最简单的gui方式,先从rle图像格式开始,然后是45度角地图绘制原理,翻了很多资料,终于画出了简单的mmap地图。这里就遇到速度问题,gui下画点函数效率不高,600*400的视屏下仅绘制mmap的地球层和表面层就要画1100个贴片,每帧费时超过700毫秒。

为了加速,我当时选了一个最简单但是错误的选择,使用unsafe指针,直接修改图像点阵。这种方法确实快一点,提高到每帧70毫秒左右。

这个时候,我忽然对这种贴片地图本身产生怀疑。600*400的视屏需要1000个以上的贴片,即使一些硬件加速的2d引擎实时绘制这么多图片也不轻松,如果要优化,估计要用一张大图来缓存了,相应的也需要缓存管理,这样,就增加了程序的复杂性。

   照当前进度搞下去,我感觉会绑死在原来的游戏上,从技术层面和数据层面都和原版没什么区别,感觉不到什么意义。从rle到斜45度地图,这些复杂的技术现在还有没有必要使用,能不能用一张大图代替?也许要好好想想。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-13 16:34 | 显示全部楼层
主要看目的是什么
现在有c、pascal、java三种语言的版本,楼主是要实现c#的版本吗

本质上这些版本只是语法上的差异,在技术和数据层面只是一种复刻

最早完成这个复刻的人是伟大的创新,后来者只是一种补充,做完整mod是另一个层面的事情

正如你所言单从语言角度复刻,从技术层面和数据层面都和原版没什么区别,感觉不到什么意义。

创新的想法是最难的,突破了才能一览众山小


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-2-13 16:43 | 显示全部楼层
《原版游戏的结构》

因为源码我只读了一小部分(地图行走和绘制),游戏也玩得不多,所以想请教大家以下我对游戏结构的猜想对不对。

分为以下4大主类:

主场景(mmap): 480*480的棋盘,其中有84个入口点。
内场景(smap): 64*64的棋盘,其中有200个入口点。

入口点:分为3类, 1:对话事件,2:场景跳转事件,3:修改数据事件。

游戏数据:人物、物品等。

*** 战斗场景是否可以归为《修改数据事件》部分?因为战斗的结果只是改变了一些数据。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-13 17:16 | 显示全部楼层
一千多张贴图是很正常, 都是小的贴图,消耗时间不长,再慢0.5秒以内可以读完
最重要的是你没有使用图片缓存,你每一帧都需要全部重新读取,效率自然就低了

用大图的效率比用拼图差很多,需要消耗更长的时间


三楼的观点,文字是沾边,但是意思完全对不上

点评

最重要的是大图极其的消耗内存。  发表于 2012-2-13 17:17
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-14 12:30 | 显示全部楼层
我的观点,
若你想练手玩代码就用rle,贴图确实浪费效率
若你想安心的做一个游戏引擎请用大图pic直接贴,rle早就没用了、
比如我最近想玩玩用vb搭个窗体,dx绘图就用老rle算法了



本帖子中包含更多资源

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

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-2-14 16:26 | 显示全部楼层
用GUI的话无论如何比不过图形引擎的。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-2-15 13:51 | 显示全部楼层
图形方面没有方向,暂时不弄了。
花时间解析了R*,S*,D*数据(c#不能将内存数据直接转为结构类,比较麻烦)。

对于脚本系统倒是有点麻烦,开始了为简单考虑,直接把lua使用的事件代码转成c#格式,结果成为一个1M大小的c#源码文件(高达20000行),vs2008都有点拖慢了。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-5-6 00:06

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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