博文

CS才是王道(fps游戏Demo)说明及D3D总结(2009-01-08 12:19:00)

摘要: CS才是王道(fps游戏Demo)说明及D3D总结 作者:   insky(李文耀)
主页:gamecoding.cn
下载
ps: 做了半个学期的东西,总想写篇文章,不过现在考试十分繁忙,慢慢写吧,当年终总结了。
  
  CS才是王道是一款模仿CS的游戏Demo,这是我写的第一个3D游戏作品。拖拖拉拉的写了2个多月吧,最终的效果跟CS自然是天壤之别,不过作为学习娱乐,提高对整个D3D流水线的认识,以及整个引擎结构的搭建,却也是收获颇多。游戏里的资源均来自互联网一起其他网友的游戏Demo,进供学习参考,请勿用于商业用途o(∩_∩)o...。

一,程序最终效果及实现的功能
  效果图如下:
  实现的功能与技术如下:
1,地形系统
2,粒子系统(雨雪)
3,角色动画系统(梦卡皮动画,骨骼动画),纹理动画
4,引擎对动静态角色都有很好的支持,可以很方便的导入新模型
5,碰撞处理与简单物理引擎
6,天空盒
7,另外还有一些琐碎的技巧,alpha test, 二维,广告板,多级纹理阶段等等。

二,D3D9.0固定流水线的学习总结
三,引擎整体框架
四,地形子系统 + 天空盒
五,粒子子系统
六,动画子系统
七,角色子系统 + 物理引擎

我想以后慢慢补上吧,今天开个头好了(2009-01-08)。 ......

阅读全文(3500) | 评论:1

一个简单的软件渲染引擎(2009-01-08 12:17:00)

摘要: 软件渲染引擎实现说明
作者: insky(李文耀)
主页:gamecoding.cn
下载
  本程序实现了一整套3D渲染流水线,首先抽象出一个画点函数DrawPoint( int x, int y, DWORD color ),后继模型的所有绘制操作都是通过调用DrawPoint来完成的。实现功能及流程可由下图表示:





1  软件效果及速度


       算法实现的最终效果如上图所示,在扫描线Z缓冲算法基础上增加了T&L,背面剔除,屏幕空间裁剪,颜色插值,全屏反走样等一整套3D渲染流水线。最终效果跟D3D9固定流水线的渲染效果已经相当接近,除了一些少数的黑点无法剔除,主要原因是顶点浮点坐标跟屏幕整型坐标的转换带来的锯齿。另外在速度上,对于有92856个面片的兔子模型,软件渲染依然有6.16 fps. 测试电脑配置如下:
      CPU             显卡      内存
Intel Core 2 E7300(双核,2.66GHz)  NVIDIA GeForce 9600 GT  2G

2 编程环境,操作说明
         ①编程环境为
    vs 2005 + Directx 9.0(c) + DXUT(跟glut类似,DX框架)。
  ②用户界面使用说明
    中间是当前查看的OBJ文件模型,可以通过鼠标左键旋转模型,也可通过右键水平移动模型以及通过滚轮前后  移动模型。
    右边是功能按钮,单击 打开文件 按钮会跳出文件选择对话框,用于加载新的OBJ模型。也可通过 下拉框 直  接选择程序默认的4个OBJ模型。
    选择按钮允许用户选择使用D3D9渲染还是使用软件渲染。下面是一堆渲染选项开关:自动旋转,使用光照模   型,全屏反走样,背面剔除,深度测试。

3 软件渲染过程中使用的数据结构与算法说明
  所有的操作都封装在类ZLBuffer中,代码1000行左右,其接口只有......

阅读全文(3656) | 评论:1

CS才是王道(添加雨雪效果.12-28)(2008-11-09 10:15:00)

摘要: 查看博主的其他项目 DEMO下载(右键目标另存为): 作者:  insky 项目主页: http://www.gamecoding.cn email: yjandlwy@163.com   ************************************************************************
//、、、、、、、、、、、、、12月28 、、、、、、、、、、、
  增加了下雨和下雪两个粒子效果。forgive。。。 //、、、、、、、、、、、、、12月05 、、、、、、、、、、、      通过2周的努力,终于学会用milkshape导出cs里面的.mdl模型。有些模型导出会有问题,大部分是行的通的。此次导出飞机与匪徒guerilla,以后会逐步增加,改进了骨骼动画系统,可以设置播放模式,once or loop,动画结束时的事件处理,声音播放等等系统都预留了完善的接口。下面是几张新的截图       //、、、、、、、、、、、、、11月23、、、、、、、、、、、、、 新增加了简单的物理引擎,不但冲突碰撞更加和谐了,而且主角可以二连跳,稍微练下就可以跳到房顶了。如下图: 另外,可以通过左右键来切换跟踪对象,按回车回到主角。 //、、、、、、、、、、、、、11月16 、、、、、、、、、、、、、 我过了一周非人类在生活,除了吃喝拉沙,不出房门半步,不为别的,只想着尽快在把手头在DEMO做完,做的漂亮,也许这就叫作修真。 好了,进入主题吧,先看几张DEMO在截图,如果你感觉JUST SO SO,那么就没有必要再看下去浪费时间。当然这个是一周内做在粗超无比在DEMO。以后我会逐步完善,
@!##$$%$$$$#@¥%¥%¥…………%&…… ………………………………####### 现在我们把这只烦人的insky赶走。。。   1, AK47   2, AWP     全部代码都是用D3D9.0 固定流水线做的,没有涉及SHADER。使用了很多小技术: 如: 纹理动画......

阅读全文(3476) | 评论:0

俄罗斯方块,AI五子棋(大二项目)(2008-06-03 00:33:00)

摘要:项目:AI五子棋(点击图片下载) 查看博主的其他项目 AI五子棋   这是大二写的,年代久远,有点生疏了。关键就是ROBOT类,一个简单的人工智能,当时还没学搜索算法。所以只写了个估值函数,相当于是只搜一层了,完全贪心了。棋力教差,基本都是防守的,但是不仔细下也会让你吃不了兜着走。   项目:俄罗斯方块(点击图片下载) 查看博主的其他项目 俄罗斯方块   这也是大二写的,我很喜欢这个游戏,感觉软件还是具有一定的可玩性的。为了让软件富有神秘感,我还特别加了个隐藏模式,具体嘛就不透露了,自己摸索吧。 项目主页: http://insky.5tf.net/......

阅读全文(3017) | 评论:1

我的项目索引(2008-06-02 22:23:00)

摘要:我的项目主页:http://insky.5tf.net/   研究生项目的索引   名称(点击进入该项目) 开发时间 开发人员 1,CS才是王道(模仿CS) 研一上 李文耀   本科项目的索引 名称(点击进入该项目) 开发时间 开发人员 1,梦幻泡泡——泡泡堂单机版 大三下(07) 李文耀 林铠 2,梦幻游戏大厅——QQ游戏大厅 大四上(07) 李文耀 林铠 郁亚男 3,出棋制胜(中国象棋,毕业设计) 大四下 李文耀 陈胜 4,AI五子棋 大二下 李文耀 5,俄罗斯方块 大二下 李文耀 他人的项目: 命令行QQ(用命令行就能聊QQ)......

阅读全文(2696) | 评论:2

出棋制胜中国象棋(毕业设计项目)(2008-06-02 22:15:00)

摘要:项目三:出棋制胜中国象棋(点击图片下载) 查看博主的其他项目 “出棋制胜”中国象棋软件   这是我的毕业设计软件,也是本科的最后一份作业,虽然以前经常不交作业,然而这份却不同。不是因为他能决定我的毕业成绩,或是能否拿到优秀论文奖,而是因为题目是我自己选的,也是我自己开的。别误会,我不是狂而的象棋迷,更不是高手,只是小有兴趣吧。但一直以来我很想写个人工智能的中国象棋游戏,希望写出来的游戏能代替我打败我的兄弟猪皮(一直以象棋高手自居的家伙),打败QQ游戏众高手。于是乎,去图书馆借了n本中国象棋实现的书,也去网上找了许多论文。考研复试一结束,便全身心的投入到软件开发的行动去。 大概写了一个月左右吧,软件已经大致成型,在QQ里的未逢敌手,一时春风得意,意气风发,羡煞旁人(过头了。。。)。   软件分三层:界面,协议,象棋引擎。引擎是最为关键的,下面对各个模块做个简单的介绍: 1,协议(使用ucci3.0协议)
   中国象棋通用引擎协议(Universal Chinese Chess Protocol,简称UCCI),是一种象棋界面和象棋引擎之间的基于文本的通讯协议。设立中国象棋通用引擎协议的目的有:
   (1) 使一个“可视化象棋软件”可以使用不同的“核心智能部件”,这些核心智能部件称为“引擎”,凡是遵循UCCI的引擎,都可以被该可视化象棋软件(也称为“界面”)所调用;
   (2) 针对所有遵循UCCI的引擎,都可以开发不同的界面,使其具有不同的功能。
   这样,“可视化象棋软件”和“核心智能部件”实现了分离,使得一部分程序设计师能专注于前者(界面)的开发,而另一部分程序设计师能专注于后者(引擎)的开发,让中国象棋软件的设计工作系统化、分工化,提高软件设计效率。
UCCI自诞生以来不断在发展和更新,但保持了对早期版本的兼容。
  本文使用的是UCCI 3.0版,UCCI还在不断更新,并继续保持对早期版本的兼容。UCCI界面和引擎设计者可访问以下资源,来获得最新的UCCI版本:
     http://www.elephantbase.net/protocol/cchess_ucci.htm 。 2,引擎(用vc++6.0开发)
   计算机象棋对弈是一种双人完备信......

阅读全文(3225) | 评论:2

梦幻游戏大厅——QQ游戏大厅(大四项目)(2008-06-02 22:11:00)

摘要: 梦幻游戏大厅(点击图片下载) 查看博主的其他项目     这是我和林凯开发的第二个游戏,跟梦幻泡泡不同的是,他是C/S架构的,编程的难度体现在1服务器和n个客户端之间的通信和状态的维护。 最终产品并不完善,有很多不稳定的因素,软件是在网络正常的假象前提下开发的,没有任何不正常情况的处理。必须先装jre1.5+,否则无法执行。   《梦幻游戏大厅》是一个基于J2SE实现的游戏平台,其大体功能类似于现在流行的休闲游戏--《QQ游戏大厅》。 一,运行说明
1, 请先运行服务端(server\server.jar),否则客户端(client\client.jar)无法正常启动,I am sorry,时间匆忙,没有优化 当然正常情况下也是 先关闭客户端 后关闭服务端!! 2, 服务端只能运行一个,但客户端可以运行任意个 3, 更多信息请查看 "客户端\ReadMe.txt" 和 "服务端\ReadMe.txt"
hava fun:)
梦幻小组 二,小组成员
email: yjandlwy@163.com
1,李文耀
1,服务端的核心模快(数据存储部分由"郁亚男"完善)
2,通信协议
3,客户端核心模块
4,房间和下棋界面
2,林铠
1,客户端界面设计
2,登录模块与大厅模块的界面功能实现
3,实现界面与客户端通信协议接口
4,实现界面与本地存储信息接口
5,修改客户端通信(mhdt.client包)中的一些信息存储
5,修改本地存储信息的一些操作
6,查找与修改所需图片
3,郁亚男
1,服务端UI设计与实现
2,服务端UI与服务端核心模块的连接
3,服务端核心模块中数据存储部分 三,项目与开发工具
项目编号:J18
项目名称:梦幻游戏大厅
项目开发语言:JAVA
项目开发工具:Eclipse SDK 3.20 & JDK 1.5 四,插件
Eclipse SDK 3.20插件
Designer_v6.2.0_for_Eclipse3.2 作用:可视化界面操作
NLpack1-eclipse-SDK-3.2.1-win32 作用:......

阅读全文(3181) | 评论:0

梦幻泡泡——泡泡堂单机版(大三项目)(2008-06-01 11:45:00)

摘要:梦幻泡泡——泡泡堂单机版(点击图片下载) 查看博主的其他项目   梦幻泡泡是一款模仿盛大泡泡堂的游戏作品,这是我和宿舍好友铠哥心血来潮之作,也是我们的游戏处女作。该作品为模仿盛大泡泡堂游戏,经过内部8个版本的测试,大体上接近官方单机版本了。所有的图片都来自bnb.sdo.com,仅供学习参考,请勿用于商业用途。 <梦幻泡泡项目说明>
************************************************************************
1.游戏声明
本游戏为模仿盛大泡泡堂游戏,请勿用于商业用途。
您的系统必须装有jre1.5以上才能运行此游戏
版本还在不断更新中,最新版本请到
http://www.xmuarts.cn/mhpp/下载 梦幻泡泡是一款模仿盛大泡泡堂的游戏,在游戏
的基础上我们增加了:地图编辑、壁纸欣赏、高
手视频等模块. 联系方式:
QQ:380533638
Email:yjandlwy@163.com
08-03-18
************************************************************************
2.作品和作者信息
这是我和宿舍好友铠哥心血来潮之作,也是我们的游戏处女作。
该作品为模仿盛大泡泡堂游戏,经过内部8个
版本的测试,大体上接近官方单机版本了。
所有的图片都来自bnb.sdo.com,仅供学习参考,请勿用于商业用途。 组员分工:
李文耀:负责游戏主体部分,
包括引擎设计,主游戏编码,接口设计和绝大部分的音效处理
林铠 :负责地图编辑器部分,包括绝大部分的图片处理 开发平台:
jdk1.5+JCreator,还有一些图片音乐的处理软件,如GoldWave(很不错的音乐处理软件) Allrights open,唯一的要求就是当您更改了软件
并打算重新发布的时候请附上您的源代码
*************************************************************************
3.文件内容说明 res : ......

阅读全文(3431) | 评论:0

命令行QQ——用命令行就能聊QQ(2008-06-01 10:47:00)

摘要:命令行QQ——用命令行就能聊QQ 查看博主的其他项目 这是个命令行版本的QQ,用命令行输入命令就可以聊天,牛叉吧。   功能:
 普通用户聊天
 群聊天
 聊天日志
 隐身登陆
 代理服务器
 消息即时显示模式和延迟显示模式
 查看在线用户
 查看好友
 查看加入的群
 设置聊天对象
 
1,首先确认机器上安装了jre1.5:
      在命令行下键入:java -version
      如果已经安装了jre或jdk,就会显示版本号,请确认版本号大于1.5 如果机器上还没安装jre1.5,可以到这里下载安装:
 http://java.sun.com/j2se/1.5.0/download.jsp
 点击页面上的Download JRE 5.0 Update 5链接 2,下载TextQQ,http://www.xmuarts.cn/cmdqq/命令行QQ.rar 解压到某处 配置,打开config.ini:
  qqno:你的qq号
 qqpass:你的qq密码
完成配置后,就可以运行了。运行其中的tq.bat(windows平台)
TextQQ启动后会根据配置自动登录。如果没有发生错误,在登录成功和初始化之后,就会
看到>提示符。在提示符下就可以键入指令了。指令都是以/开头的。
 /who 查看在线用户
 /friends 查看所有好友
 /clusters 查看所有群
要开始聊天,首先要设定聊天对象,使用/cd指令:
 /cd <qq号或群号>
指令执行后会看到提示符>左边显示着当前聊天对象。接下来输入任何不是以/开头的文字,
都会被发送到该聊天对象。要与其他人交谈,只要重新设定聊天对象即可。
要给某人发送消息却又不想改变当前设定的聊天对......

阅读全文(6053) | 评论:2