标题: 曹操传引擎开发
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-5-27 22:37 资料 主页 文集 短消息 只看该作者 QQ
曹操传引擎开发

大家好,我第一次在这里发帖,希望大家支持!
我是一个业余游戏开发人员,从三月底开始在试图以曹操传为蓝本的开发战棋游戏引擎。
遇到很多问题,在这个论坛上得到了很多的信息.非常感激.
到现在回头看看好像已经做了非常多的事情,
但是与目标一比,发现还只完成了九牛之一毛.
记得以前好像看到一位大侠说完成这个工作至少需要一年半的业余时间.却是不错.
之前一直是一个人在暗地里蛮干,走到现在觉得有点倦怠.这两天都一直没有进展.
所以今天趁着有时间上网的机会把我的一些工作贴出来,希望得到大家的支持和鼓励.
现在基本完成的模块有:图形显示,脚本解析,大部分的控件,一个基本的AI,数据库编辑器等.
由于我上网的时间很有限,所以不能经常到论坛上来.还是希望各位大侠多多支持,多多关照.

今天来不及了,下次再来请教大家问题.
比如如何直接从e5文件里面读图片数据.我现在都是用van大侠的工具导出来的.







顶部
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-5-27 23:06 资料 个人空间 短消息 只看该作者
e5文件是一种资源文件,图片那些是采用LS压缩的。做游戏的,一般都要了解一种所谓的图片打包的方法吧。

写代码的确可以用LoadImgae之类的函数去读一张图片,但是一般游戏都不会用独立的一个文件夹里打无数张BMP来做的。一般都会打包滴。打包自然就有压缩。Van的工具是一种解压。

另外,象曹操传里面,还有一种资源文件,是DLL的。一般DLL的图都比较小,运行的时候直接采用LoadLibrary的方法把DLL加载进程序,然后进行些操作。


附件里是曹操传里面CmdIcon.dll的VC源代码工程。

其他的曹操传的资源DLL文件也差不多都是这样Build出来的,都没什么代码的

[ 本帖最后由 岱瀛 于 2007-5-27 23:08 编辑 ]


附件: CmdIconResource.zip (2007-5-27 23:08, 160.27 K)
该附件被下载次数 317


顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-5-28 09:20 资料 主页 文集 短消息 只看该作者 QQ
回复 #2 岱瀛 的帖子

噢,原来我找不到的那些图片都在DLL里面,上次都是在游戏里面自己切出来用PhotoShop处理出来的。

还有,我刚刚找到了LS压缩算法的帖子了,要拿回去好好学习研究一下,多谢指点,多谢指点。
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-5-29 11:18 资料 主页 文集 短消息 只看该作者 QQ
昨天研究了一天LS算法。现在压缩和解压缩都已经看明白了。

恬恬得再问一下:图片的宽高度,调色板信息怎么去找?

我找了一晚上加一早上也没有找到。
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-5-29 13:34 资料 主页 文集 短消息 只看该作者 QQ
调色板找到了。图片的宽度和高度还是无从得知。哪位大侠指点我一下啊?
顶部
性别:男-离线 nonsensor

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 10
帖子 1000
编号 1719
注册 2003-10-28
来自 WZ-XA-SH-SE-...


发表于 2007-5-29 15:11 资料 个人空间 短消息 只看该作者
LZ有意开源吗
在下很想拜读下 您已经完成的模块。
如果涉及到商业机密和个人版权
那不好意思了
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-5-30 09:19 资料 主页 文集 短消息 只看该作者 QQ
回复 #6 nonsensor 的帖子

倒是没有什么商业机密或者版权的问题。只是代码的成熟度太低,不敢开放出来吓唬人。引用岱瀛大大的话叫做:“唯恐一招之失引来无数飞转,头破血流,死无葬身之地也。”

兄台如果对某些方面感兴趣可以我们针对性得进行讨论,我也很愿意把我所做的相关工作共享出来。
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5799
编号 622
注册 2004-7-7


发表于 2007-6-1 11:47 资料 文集 短消息 只看该作者
已经做了这么多部分,应该是很大的成果了,比我这空想的好多了。
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-6-1 15:28 资料 主页 文集 短消息 只看该作者 QQ
我原先坚定了目标想先作出跟曹操传一模一样的,然后再在扩展其他功能。

但是现在做着做着发现慢慢得有点偏离了,比如说data数据,存档结构,
一些界面控件他是基于windows控件的,不同系统会不一样,我是完全自己画的,所以也做不到完全一模一样。
还有AI也写不到完全一样,怎么写总是觉得跑起来有些差别。
还有游戏速度,总是觉得调不到和原来一样的节奏。
慢慢觉得大家玩惯了原来的曹操传,再玩我这个完全mod的引擎是不是会觉得怪怪的?

这几天我一直在考虑是不是脱离曹操传,自己开创一个风格反而比较容易被大家接受?
但是那样的话,我对我自己的想像力又不是很有自信。

还有我一直想加入的网络对战功能,是在现在客户端demo基础上开始做服务器端呢,还是先把客户端调到稳定,功能完全后再做服务器端。

矛盾中,矛盾中。。。
顶部
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-6-4 11:11 资料 个人空间 短消息 只看该作者
这几天挺忙的,米来看版面。

发现楼主在研究那个调色版的,我个人建议还是不要调色版好吧

256色的才会用调色版,既然自己写了,于现在的机器配置,为什么还要用256色呢

---------------------------------------------
网络战棋对战,最终其实可以是两个Client端的对抗。Server端其实只是解决一些全局信息,比如 多少人在线这些,不然都服务器端转压力太大而且速度 速度慢。(如果两个Client连不上,打洞,打不通,那就最后也就只好Server转了

--------------------------------------------------

先把单机做好吧,改转网络版只要你之前的代码结构,设计框架做得好,那是绝对没有问题的且相当简单的。

以曹操传的引擎改网络版都不难,何况自己写?

大致的接口可以这样。

参数一: 当前人物战场信息对象(战场坐标值,攻击力到士气的五围值,属于哪一方等等)

参数一:当前全局战场信息对象(当前天气,战场地图的整型二维数组,上面没人用0标记,有人用HPCurrent值标记其中敌人用负数,我军和友军用正数)

当这些信息传入本地函数,那么是单机版,传入服务器,由服务器返回素和服务器的单人版。

当这些信息传入远方客户端,在远方客户端机器上重画,由远方机器用户操作后,返回这些参数,又本地重画,变成了循环反复了。

所以,联机和单机相比,只是多了下网络传输部分的代码,砖可以一块一块加,楼一层一层建,慢慢来不麻烦。
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-6-4 12:52 资料 主页 文集 短消息 只看该作者 QQ
回复 #10 岱瀛 的帖子

哈哈,真是太好了.这么多天想的被您一下子全说出来了.

图片我已经采用真彩色表示了,存档结构也尽量缩小以适应以后网络传输.

已经决定先把客户端写完整.
昨天和今天着手搭建道具系统.发现曹操传的道具系统还是蛮好的.
总共有76种道具属性,每个道具可以有两个不同的属性.
三个道具加在一起,还是有很多的变化的.
总结了一下道具属性的编码,不知道会不会对其他作设计的同仁有参考价值.
0 普通剑 加攻击力
1 特殊剑 加攻击力
2 普通枪 加攻击力
3 特殊枪 加攻击力
4 普通弓 加攻击力
5 特殊弓 加攻击力
6 普通棍 加攻击力
7 特殊棍 加攻击力
8 普通投石机 加攻击力
9 特殊投石机 加攻击力
10 普通扇 加精神力
11 特殊扇 加精神力
12 普通宝剑 加精神力
13 特殊宝剑 加精神力
14 普通铠甲 加防御力
15 特殊铠甲 加防御力
16 普通衣服 加防御力
17 特殊衣服 加防御力
18 每回合恢复HP(百分数)
19 每回合恢复MP(百分数)
20 每回合恢复状态
21 每回合获得Exp(整数)
22 每回合获得武器Exp(整数)
23 每回合获得道具Exp(整数)
24 辅助攻击力(整数)
25 辅助精神力(整数)
26 辅助防御力(整数)
27 辅助爆发力(整数)
28 辅助运气(整数)
29 辅助HP增加(整数)
30 辅助MP增加(整数)
31 辅助获得Exp(十分数)
32 辅助移动力(整数)
33 突击移动
34 恶路移动
35 混乱攻击
36 中毒攻击
37 麻痹攻击
38 封杀策略
39 辅助攻击命中(百分数)
40 反击后反击
41 致命一击攻击
42 远距离攻击(没羽箭)
43 穿透效果
44 无反击攻击
45 骑马攻击(百分数)
46 引导攻击
47 辅助火类策略(百分数)
48 辅助风类策略(百分数)
49 节约MP(百分数)
50 召唤策略
51 策略模仿
52 辅助策略命中(百分数)
53 辅助攻击防御(百分数)
54 辅助策略防御(百分数)
55 辅助全防御
56 防御远程攻击
57 防止致命一击
58 防止二次攻击
59 减轻策略损伤(百分数)
60 mp辅助防御
61 减轻远距离损伤(百分数)
62 自动使用道具
63 消耗获取HP(整数)
64 消耗获取MP(整数)
65 消耗治疗混乱
66 消耗治疗中毒
67 消耗治疗麻痹
68 消耗治疗禁咒
69 消耗治疗一切异常
70 武力上升(整数)
71 智力上升(整数)
72 统帅上升(整数)
73 敏捷上升(整数)
74 士气上升(整数)
75 等级上升
76 兵种上升

[ 本帖最后由 softgenie 于 2007-6-4 14:16 编辑 ]
顶部
性别:未知-离线 游戏之家

Rank: 2Rank: 2
组别 士兵
级别 在野武将
好贴 1
功绩 5
帖子 4
编号 171462
注册 2007-6-5


发表于 2007-6-5 16:36 资料 短消息 只看该作者
支持!
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-6-8 17:38 资料 主页 文集 短消息 只看该作者 QQ
用C语言写的

[ 本帖最后由 softgenie 于 2007-6-8 17:53 编辑 ]
顶部
性别:男-离线 softgenie

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2007-6-8 17:51 资料 主页 文集 短消息 只看该作者 QQ
我是用纯C写的.自己搭了一个带继承的窗口控件系统.除了主程序有一个windows程序的框架用于接收系统的按键消息以外其他代码跟系统没有任何关系.字库也是自己的.这样做的工作量无疑比使用VB或者MFC要大很多.但是我都不会这些工具,只学过C语言.所以只好用笨办法啦.

不过我觉得这样做有一个好处是有利于不同系统的移植.如果将来Linux发达了.我的程序稍微改改照样可以跑.当然这只是我自我安慰的想法.

目前道具系统已经完成了.大体上就剩下法术系统啦.完成法术系统以后就是漫长的测试...测试路漫漫啊.到时候还希望大家能帮忙.
顶部
性别:未知-离线 JLQSheenero

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 9
编号 179423
注册 2007-6-21


发表于 2007-7-31 09:43 资料 短消息 只看该作者
我也在自己开发引擎,但是最后发现图像镂空处理的时候竟然把图像内部的黑色也镂
了。请问应怎样用Bitblt,才不会挖掉内部的黑色。(还是个初中生,弱弱……)
顶部
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-7-31 11:42 资料 个人空间 短消息 只看该作者


QUOTE:
原帖由 JLQSheenero 于 2007-7-31 09:43 发表
我也在自己开发引擎,但是最后发现图像镂空处理的时候竟然把图像内部的黑色也镂
了。请问应怎样用Bitblt,才不会挖掉内部的黑色。(还是个初中生,弱弱……)

一般这种镂空都会牺牲掉一种颜色来处理的。比如你用纯黑色RGB(255,255,255)做底,你图片内部的黑,你用(255,255,254)之类的,肉眼是分辨不出来的,但是程序是能判断出来的,这样就可以达到你要的镂空效果了。
其实画镂空也不必要自己用Bitblt来做了,挺麻烦的。  Windows提供有下面这个函数可以用。
(传说win 2000以下的不太能用,2000以上的OS就无所谓了)

函数的信息如下:

TransparentBlt


The TransparentBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

BOOL TransparentBlt(
  HDC hdcDest,
  int nXOriginDest,
  int nYOriginDest,
  int nWidthDest,
  int hHeightDest,
  HDC hdcSrc,
  int nXOriginSrc,
  int nYOriginSrc,
  int nWidthSrc,
  int nHeightSrc,
  UINT crTransparent
);

Parameters
hdcDest
Handle to the destination device context.
nXOriginDest
Specifies the x-coordinate, in logical units, of the upper-left corner of the destination rectangle.
nYOriginDest
Specifies the y-coordinate, in logical units, of the upper-left corner of the destination rectangle.
nWidthDest
Specifies the width, in logical units, of the destination rectangle.
hHeightDest
Handle to the height, in logical units, of the destination rectangle.
hdcSrc
Handle to the source device context.
nXOriginSrc
Specifies the x-coordinate, in logical units, of the source rectangle.
nYOriginSrc
Specifies the y-coordinate, in logical units, of the source rectangle.
nWidthSrc
Specifies the width, in logical units, of the source rectangle.
nHeightSrc
Specifies the height, in logical units, of the source rectangle.
crTransparent
The RGB color in the source bitmap to treat as transparent.
Return Values
If the function succeeds, the return value is TRUE.

If the function fails, the return value is FALSE.

Windows NT: To get extended error information, callGetLastError.

Remarks
The TransparentBlt function is supported for source bitmaps of 4 bits per pixel and 8 bits per pixel. Use AlphaBlend to specify 32-bit per pixel bitmaps with transparency.

If the source and destination rectangles are not the same size, the source bitmap is stretched to match the destination rectangle. When the SetStretchBltMode function is used, the iStretchMode modes of BLACKONWHITE and WHITEONBLACK are converted to COLORONCOLOR for the TransparentBlt function.

The destination device context specifies the transformation type for the destination coordinates. The source device context specifies the transformation type for the source coordinates.

TransparentBlt does not mirror a bitmap if either the width or height, of either the source or destination, is negative.
顶部
性别:未知-离线 JLQSheenero

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 9
编号 179423
注册 2007-6-21


发表于 2007-8-1 18:32 资料 短消息 只看该作者
谢谢
不过为什么构建时会出错
BitmapBasic.obj : error LNK2001: unresolved external symbol __imp__TransparentBlt@44
顶部
性别:未知-离线 xinghao81

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 15
编号 182055
注册 2007-6-27


发表于 2007-8-2 10:06 资料 短消息 只看该作者
好,支持.
顶部
性别:男-离线 岱瀛
(deving)

长平侯
川峡东路经略使
监管使

Rank: 19Rank: 19Rank: 19Rank: 19
组别 经略使
级别 左将军
好贴 1
功绩 2293
帖子 1370
编号 55810
注册 2005-12-22
来自 人间
家族 慕容世家


发表于 2007-8-2 11:38 资料 个人空间 短消息 只看该作者


QUOTE:
原帖由 JLQSheenero 于 2007-8-1 18:32 发表
谢谢
不过为什么构建时会出错
BitmapBasic.obj : error LNK2001: unresolved external symbol __imp__TransparentBlt@44

把msimg32.lib这个文件连接进去,如果用VC的话,在项目编译选项里面有可以设置的(#pragma comment 的方法也可以)。
这个文件在VC安装目录下应该是能找到的。
顶部
性别:未知-离线 段景住

Rank: 1
组别 发配沧州
级别 忠义校尉
功绩 3
帖子 266
编号 177059
注册 2007-6-15


发表于 2007-8-2 16:56 资料 短消息 只看该作者
开发固然是件好事
希望楼主能有成果`
还有
不要卖自己的成果
否则
侵权会死的很惨的
顶部
性别:男-离线 北岭怪侠
(北岭怪侠)

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 74
编号 119842
注册 2007-3-11
来自 青岛


发表于 2007-8-3 21:11 资料 短消息 只看该作者 QQ
不太明白
顶部
性别:男-离线 李明

汉王

Rank: 20Rank: 20
组别 诸侯
级别 破贼校尉
功绩 1
帖子 79
编号 125108
注册 2007-3-21
来自 上海


发表于 2015-3-17 17:45 资料 主页 文集 短消息 只看该作者 QQ
回复 #20 段景住 的帖子

好吧,兄弟的语言成真了。
顶部
性别:未知-离线 lf13cs
(风·十三狼)

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 4
编号 295080
注册 2008-10-17


发表于 2015-3-17 23:32 资料 短消息 只看该作者
支持
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-10-3 03:26
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.015588 second(s), 11 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP