自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shallway

个人主页shallway.net,欢迎来访

  • 博客(39)
  • 资源 (14)
  • 收藏
  • 关注

原创 2.5D开源ARPG-时之深渊发布

一个业余项目,断断续续做了很久,总算做成一个RPG了,可惜本人是一个只会敲代码的理工男,加之个人精力有限,所以这个游戏几乎没有可玩性。现在放出源码,希望能帮助到需要帮助的人吧。 关于源码: 除了界面库使用了CEGUI,其他游戏模块都是自己写的。 素材破解取自网友们的研究成果,自己只做了很小一部分,素材提取代码全部独立在ROInterface.lib里。 有关源码的编译及其他信息请阅读readme.txt。 还有RO素材格式请参阅:http://bbs.rohome.net/viewthread.p

2011-05-03 15:41:00 7201 3

原创 [SheRO]Lua框架搭建的一点思路

脚本的搭建真的是件非常具有创造性的事情,也是游戏开发里最核心的技术活,因为它是整个游戏的发动机,粘合剂,涉及整个游戏的方方面面。一般还集成在地图编辑器里,比如War3,RPGMaker这些。总之,把脚本框架搭好,我个人认为是一个好游戏必备的核心要求。 今天刚把SheRO的Lua框架搭完,觉得用来创作自己的小游戏完全够用了。还是记一些思路吧,仅供参考,不涉及源码及Lua与C++集成这些,因为我觉得这些开源后就能看明白的,而且我用的是LuaPlus。实在没啥讲的。 我在SheRO里暴露给Lua的函数有这些,

2011-04-23 23:05:00 5283 1

原创 [DEBUG]记一次野指针调试

<br />关于野指针,我觉得最可怕的情况就是,它在程序大部分时候都不会出错,当你项目越来越大的时候,可能就会出现各种随机性诡异错误了,而这时你压根就不会想到是自己很久前的一次疏忽。<br />我在shero里用的实体框架是这样的,逻辑对象为Entity,视觉对象为Visual,Visual根据Entity来渲染自己,所以它保存了一个Entity指针m_pEntity。<br />更新流程是:<br />Entity->Update();<br />Visual->Update();<br />当Entit

2011-04-18 11:58:00 4392

原创 [DEBUG]做项目切忌编译器版本混乱

<br />蛋疼。今天装了XP双系统,重新装了VS2005,没有打SP1补丁。<br /> <br />以为都是2005嘛,运行不会有问题,哪晓得出现了一个非常诡异的运行错误,类似heap corruption的这种诡异,源头在第三方库CEGUI里,很难调试。<br /> <br />最后才恍然大悟我用的CEGUI是用打了SP1补丁的VS2005编译的,也许是这个问题,重新编译后就没问题了。<br /> <br /> 那么关于第三方库的问题,总结一下就是一定要保证编译环境相同。编译环境涉及很多方面,

2011-04-16 21:33:00 2263

原创 [DEBUG]内存泄露调试

呼。。又是一次痛苦的调试经历,赶紧记点心得吧。虽然是一个很傻X的失误,但是经历的过程还是收获蛮多的。开始之前,顺便透露一下,关于shero,我已经决定做一个单机开源RPG了,最迟在5月发布吧,最终效果相信不会令大家失望。。:) 好了,起因是这样的,因为集成了CEGUI,界面基本搭好时,却发现有严重的内存泄露,至少当时我是这样认为的,然后便开始尝试各种办法,没有结果。其实最后才发现,原因很简单,我自己的项目里加入了这个设置: _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _C

2011-04-07 11:54:00 3251

原创 [SheRO]RO文件格式整理

网上关于RO文件格式的资料很多,在此整理下,其中.str技能特效文件是我自己破解的,我直接把SheRO里面读取.str文件的源码贴在里面了,仅供大家参考。我在其他文件格式里都注明了破解的出处,非常感谢作者们的分享精神。 首先还是说明下各个文件的用处吧: ACT(Action File):包含了人物,怪物,以及个别特效的动画帧数据 SPR(Sprite File):包含了一组2D图像的数据 RSW(Resource World File):包含了在一个地图里面的所有物件:地形,建筑模型,特效,光源,地

2011-03-22 20:52:00 5498 1

原创 [SheRO].rsm模型文件完美渲染

关于.rsm文件的解析网上有很多资料,本身数据没有错,但是,大家应该知道,素材数据破解只是第一步,还有更重要的一步是如何使用这些数据。.rsm文件令人头疼的是,它自身带有一些变换矩阵,而且其自身模型原点也未知,要想把它渲染到我们3D引擎的坐标系下,必须把这些变换矩阵的用途及顺序搞清楚,还要把它的模型原点猜准。本文主要就是讨论这2点。 在往下之前,我想特别感谢下Borf(http://www.borf.info/),关注RO客户端破解的肯定知道他吧,他发布了首个RO地图编辑器BrowEdit,很强大的东西,

2011-03-15 16:31:00 4236 1

原创 shero needs help

<br />As you may know, I am having a problem with rendering the ro map, I tried to fix it, but only to find it getting worse. since i'm not familar with the rsm's file format, so i don't want to waste much my time on it any more(the rsm's transform m

2011-03-09 22:41:00 2045

原创 [SheRO]用D3D绘制2D图像

我在GameRes发布SheRO后,收到了几封热心朋友的来信,都希望我坚持把SheRO做下去,还意外的发现有一个志同道合者theshine以前也做过模拟RO的客户端,不过中途太监了。。他给我提供了很多有用的资料和意见,再次表示感谢:) 不管坚持不坚持做下去,现在首要任务是开源,所以有了关于SheRO的第一篇开发资料《用D3D绘制2D图像》。因为从图书馆借的资料快到期了,加之最近改正了一个2D渲染的性能问题,所以先从这个题目讲解了。 在D3D之前,绘制2D图像都用的是DirectDraw的API,可是

2011-03-07 13:55:00 3413 1

原创 以前的文章全部移除了。

从搜索引擎过来查找资料的可以到http://blog.csdn.net/shallwake搜索备份。因为我觉得这里的文章太乱了。。。。 以后都写游戏开发相关的文章了,打算是围绕自己写的一个游戏shero(原OPenRO)写一系列文章了,放2张图,近期发布Demo,毕业前发布成品。。

2011-02-16 22:09:00 2131 2

原创 我晕,一个低级错误导致我DEBUG两天(std::string c_str()的问题)

起因是这样的,为了方便读取RO里的素材,我在OPenRO里加入了一个第三方库,他的作用主要就是负责提取RO素材数据,并把他们放在heap里,程序退出他会自动释放。 但是莫名其妙的问题随之而来了:每次程序退出都会弹窗提示:“******,其原因可能是堆被损坏,这也说明****加载的Dll可能有问题”。看见这个,我第一反应是Dll里分配的内存在程序里释放时,Dll与exe使用了不同的C运行时库。但是我使用的这个第三方库根本就是一个静态lib啊,而且使用的C运行时库版本绝对是一样的。 我就郁闷了,剩下只有一种

2011-01-20 23:01:00 8067 3

原创 游戏开发中预防内存泄露的一些措施

在OpenRO项目过程中,遇到了一些Memory Leak的问题,采取了一些预防措施后,发现有利也有弊,在此总结一下。 关于内存泄露,最共性的就是new一个内存块后忘记delete了,对此,我介绍2个措施,shared_ptr 与 DEBUG_NEW。 一,shared_ptr: 这是boost库里的引用计数指针,它的好处是,把资源的释放交给shared_ptr管理,只要内存中存在指针的引用,该指针就不会被释放。通常shared_ptr在程序中是随处复制,拷贝的,之后引用计数增加。每个shared_p

2011-01-15 22:03:00 3180 1

原创 Test

test windows live writer….  

2010-11-27 17:33:00 1790 2

原创 Francis 0.01 发布(一个可扩展的监控程序)

前段时间受到Apache的启发,原来模块化可以这么方便,加上以前曾许诺过要做一个山寨病毒,所以就有了这个idea,开发目的主要是实践下Apache的模块化思想,还有锻炼下windows开发技巧,当然,实用性也还是不错,毕竟以后还会不断扩展。 功能简介: 主模块是一个引擎,每隔一定时间(用户自己设置)就遍历所有其他插件模块,执行指定功能,然后将插件模块记录的信息发往指定邮箱。目前只提供了2个插件

2010-04-06 19:35:00 2327

原创 Linux TCP/IP协议栈剖析【体系结构篇】

最近在看linux内核代码,学习之余记点笔记。但是,目前整个linux源码文件大小是360M,相当于100个哈利波特全集-_-,看完的都是神仙了。所以我只准备粗略地看下它的TCP/IP协议栈,然后记点心得。 嗯,我研究的内核版本是目前最新的,linux-2.6.33.1,其实应该都大同小异。学习源码时,首先应该把它的整体脉络理清楚,然后再局部细看,这是最简捷的。本文也是简洁的归纳一下。 在li

2010-03-31 20:55:00 4172 1

原创 Libevent2.0.3(新版)VS2005整合版下载

Libevent2.0系列有很大的改进,具体可见项目包里的what’s new.txt,然后今天逛官方主页,发现3月1号更新了一个比较官方的manual,http://www.wangafu.net/~nickm/libevent-book/,感觉很有帮助:) 我觉得2.0最大的改进就是支持IOCP与多线程了吧,很强大,evbuffer也改进效率了,改成复杂的链表机制了,类似复杂的内存管理算法。

2010-03-19 16:14:00 158

原创 各种小巧的Hello World

在Reddit看到这篇文章:Hello from a libc-free world!,觉得挺有趣,然后又想起以前看过的各种相关资料,在此做一个整理。注意所有实验环境都为Linux。版本一:实际上是用汇编重写_start入口,具体说明请看文章开头提供的连接,汇编代码如下,命名为stubstart.S _start: call main movl $1, %eax

2010-03-17 19:28:00 3197

原创 记一道C笔试题,各种猥琐解法。

声明:此文的各种猥琐解法转自电子科大内网论坛,对,就是最近因”许愿门“而上各大新闻网站的学校。 题目如下:#include "stdio.h"void print(){ *}void main(){}要求在*号处添加语句,程序输出hello,world!  好了,我直接贴答案了,相信大家都看得懂,有些实在是猥琐。。。也欢迎大家

2010-03-13 15:02:00 2939 5

原创 用Vim模仿IDE的一些常用功能

首先,确定你的系统装了vim与ctags,没装的话请输入以下两个命令安装(注意系统自带vi不是vim) sudo apt-get install vim sudo apt-get install ctags ============================================================ 在使用IDE时,最大的方便就是我们不用编写makefile,本

2010-02-25 20:49:00 15146

原创 Java招谁惹谁了?

记得一年前,正是自己对java爱不释手的时候,而网上也是一波又一波的java嘲讽热,我愤怒了,就像人人都会捍卫自己喜欢的东西一样。我在内网一次又一次的发帖发泄,可能碍于我是版主,java批判者们也没有回帖。直到后来,大家认识我,都说路飞很擅长java,java很厉害。其实我只对J2SE略懂皮毛。我喜欢java的原因是,对于一个项目,我可以查资料,并在最短的时间内找到解决方案。也即是说,java很简

2010-02-16 19:53:00 1407 3

原创 发一个C++写的跨平台的BlockingQueue

BlockingQueue大家都不陌生吧,它简化了多线程的开发,常用于生产者-消费者模式。可惜只有java这些高级语言才提供。我参考了网上的跨平台线程类,写了个跨平台的BlockingQueue,希望对大家有帮助。 下载地址:http://download.csdn.net/source/2052785 使用方法: Linux下请切换到目录,make即可。(Makefile还不太熟悉,凑合着能用就

2010-02-07 14:19:00 3375 6

原创 理解套接字recv(),send()

记得以前发过一篇类似的博文(原博客被和谐了,连接找不到了)。新手最容易混淆的就是这2个函数了,今天看UNP时,找到了个很不错的图示,觉得理解清楚后就基本没什么问题了,在这里做个简单整理,注意此图示是假设从stdin接受输入,然后send给套接字发送;从套接字recv后,传给stdout输出。send: tooptr:指向下一个将传送给socket的字节toiptr

2010-01-30 23:28:00 2951

原创 赏心悦目的宏代码

常常看到一些优秀的宏代码,惊叹之余也就不了了之,今天在这做一个整理,也许不够完善,以后会继续补充。   补充一个用于模块化开发:刚写完去逛云风GG Blog就发现了。。http://blog.codingnow.com/2010/01/c_modularization.html#mor 索引:1.1  避免重复包含头文件 1.2  ACM刷题用的宏1.

2010-01-29 02:58:00 2459 4

原创 再谈select, iocp, epoll,kqueue及各种I/O复用机制

上篇文章太过幼稚,一派胡言,希望没有误导大家。。我也是菜鸟,学习本身就是一个不断追求真理的过程,希望能谅解:)首先感谢kasicass GG指出错误(已经指导我很多次了,非常感谢~~),然后我又查阅了一些资料,再次整理,more seriously and detailedly~ 首先,介绍几种常见的I/O模型及其区别,如下: blocking I/O n

2010-01-28 14:33:00 55057 32

原创 TCP连接关闭总结

由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。以一个简单的echo服务器为例,客户端从标准输入读入字符,发送给服务器,服务器收到后再原样返回,客户端收到后打印到标准输出。那么,关于套接字的关闭有以下几种情形:

2010-01-24 11:23:00 11158 2

原创 fork()理解及简单并发服务器应用

首先,我觉得有两个容易混淆的地方:1,fork()函数并不是创建新进程,而是复制当前进程。2,fork()函数被共享执行,有2种返回值。========================分割线===================================对于第一点:父进程fork()后,子进程完全与父进程相等,包括数据段与代码段。可以理解成,数据段有2份相

2010-01-23 13:54:00 2742 1

原创 扩展C++STL制作Socket Stream

主页备案2个月了,还没成功,继续在这发点水言。 以前就有此想法,想想C++的iostream,那是多么滴方便,我感觉是比java I/O库还好用。内置缓冲机制,安全性与方便性都很优秀,那么可不可以扩展它做一个SocketStream出来,从而告别臃肿复杂的Berkly套接字呢? 我没实践过,但是答案是肯定滴,而且强人早已实现,我在此提供两个资料,其余后文都是废话,迫切找资料者可以略过。 So

2010-01-11 20:57:00 3657

原创 C/S模型安全登录解决方案

身为信息安全专业的,还是写点与专业相关的博文吧。。嗯。 一般在C/S软件中,登录流程都设计的很复杂,比如QQ。一方面为了防止伪造客户端,而另一方面更重要的则是对信息加密,防止明文被截取。 下面介绍一种比较好的解决方案。 首先,加密算法首当其中选RSA了(因为每门专业课都要考它。。),先简单介绍下RSA原理: RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数( 大于 100个十进制位)

2009-12-22 22:37:00 2919

原创 多线程非阻塞服务器设计

接着上篇日志写。。一般在设计服务器时,都是非阻塞的,且为了简单,通常都设计为一个线程来操作。 但是这样设计的缺点也很明显,倘若服务器有很多连接,那么每次循环都会处理很多套接字,除了CPU使用率不高外,如果某个套接字的数据传输速度很慢,那么他的调用也会很慢(个人猜测,因为TCP传输速度是双向均衡的),从而势必会影响其他套接字的数据传输。 所以非阻塞+多线程是大型服务器必备的解决方案。 多线程操

2009-12-17 20:00:00 4056 1

原创 关于socket的多线程操作。

无意间想到的问题,随便记下,免得以后忘了。。 就是一般多线程操作socket是线程安全的,但是很显然,会导致数据包错乱。 悲剧的是,我的netway虽然是用线程池操作消息队列。但是我在消息里指定发送端套接字,如果某2个消息包含同样的目的套接字,而恰好这2个消息又同时被处理,那肯定就数据错误了。。 现在想想,如果非要多线程处理同一个套接字: 对于recv,可以对接收的数据块编号,最后按序排列

2009-12-15 21:08:00 4189 2

原创 递归问题整理

不敢说是总结,就是把自己看到的一些递归相关题目整理一下,并按照自己的理解归下类~ 单路递归(一个递归过程中只有一个递归入口) 多路递归(一个递归过程中有多个入口) 间接递归(函数可通过其他函数间接调用自己) 迭代递归(每次递归调用都包含一次循环递归) 下面一一整理,注意许多题目都有更优解法,如DP,但是暂不讨论。 先说说解递归的一般思路吧,把原

2009-12-14 15:34:00 1968

原创 转,WINSOCK编程细节。

无意间发现的一个超好的资源,详细介绍了网络编程的各种细节,强烈推荐给大家,相信你读完后肯定会对socket编程有更深层次的了解~~http://tangentsoft.net/wskfaq/ 我随便摘录了几个自己觉得比较好的~ Is Winsock thread-safe? On modern Windows stacks, yes, it is, within limits. It is

2009-12-13 20:29:00 1145

原创 NetWay简要开发文档0.1

NetWay 项目主页:http://code.google.com/p/netway 使用效果:http://blog.csdn.net/shallwake/archive/2009/12/04/4942099.aspx 一,结构概览: 首先看一下主要功能模块之间的关系,方框表示主要的类,椭圆表示该类完成的功能。 服务端 客户端 可以看出,服务端的逻辑模块为C

2009-12-10 21:19:00 1078

原创 娱乐,C语言模拟C++虚函数多态性。

看有感,原来C语言可以这样玩。。仔细想想,C++不也是在汇编层面上的封装么。膜拜这些语言设计者,深谙计算机科学的精髓,真是长见识了。本文只是简单模拟下多态,大体上就是C++的虚函数表机制,并没有考虑类域与继承机制,真要讨论起来那就麻烦多了,推荐大家可以看看PY源码解析,里面有简单介绍。我拿传统的圆与正方形问题为例子,基类是Shape,每个类定义虚函数showShape(),从而体现多态。

2009-12-05 00:25:00 3895 1

原创 NetShield防火墙可执行程序及源码

前身是LANShield,放在了天空软件城,刚发布时,还算比较受好评,但是由于我的不断改进,功能杂七杂八,体积臃肿,BUG不断。现在基本等于一个废物了,却还一直挂在各大网站。其间还不断有热心网友的回馈,这点还是很欣慰的。大部分朋友都说最初的LANShield1.0好用,界面简洁,特色突出。可是俺也一直没保存副本,网上搜索貌似也没了,这点很囧。。这个程序我是不准备更新的了,自己再看源码脑袋都疼,

2009-12-04 19:05:00 2090 3

原创 一个Http多线程下载与断点续传的DLL

由于做东西需要,所以写了这个小工具,喜欢的朋友就收下吧。此Dll就是导出一个下载函数,支持多线程与断点续传。纯socket实现,参考了很多代码。还是比较有学习价值。 没有经过严格测试,应该会有 BUG,里面有一个多线程操作downloaded+=nLen的代码段应该加锁的,但是考虑到downloaded只是用于统计下载速度,不影响整体核 心。所以没加锁。貌似也没啥错误。。经测试一般开

2009-12-04 18:54:00 2659 1

原创 发布NetWay网络编程引擎测试版。

呵呵,之所以称作引擎只是觉得这名字比较酷而已。断断续续写了好久了,由于自己是面向对象编程新手,所以只是做了一点浅浅的封装,将网络编程的数据传输模块与逻辑模块隔离,并提供接口供客户端使用。 下面先简单介绍下特点吧。 1,简化了网络编程,使客户只需定制自己的协议与逻辑就可实现各种网络软件。 2, 服务端用Java实现,客户端用C++与Socket实现(有几个线程操作用了W

2009-12-04 18:36:00 1544 1

原创 Win32下线程池实现

 关于线程池的原理及java实现,我在http://shallway.net/?p=109 有写过。我现在只是讨论下Win32下的线程池,道理一个样。当然,除了自己实现线程池,更建议使用官方的线程池库,比如java的Executors,Windows下的ThreadPoll API(具体可查阅windows核心编程第11章),但是Windows下的线程池API只支持VISTA以上版本。

2009-12-04 18:34:00 1872

原创 蚂蚁过杆问题整理

貌似这问题比较火,陆陆续续看到不下于三次了,而且变种也比较多。。。直到昨天刷咱学校的UOJ,才反应过来真正的解题思路。可能火星了,但还是自己记录下吧:) 先转一下UOJ(UESTC ONLINE JUDGE)原题:偏僻的小路 Description 在电子科大清水河校区的某个偏僻角落里,有一条东西方向的小路,长L米(由西向东位置为0到L),小路上有N个人从t=0秒开始以相同的恒定速率V

2009-12-04 18:33:00 1500

Francis0.01

可扩展的监控程序,每隔一定时间记录机器信息并发往指定邮箱,可以添加插件增加功能。附源码,该版为测试版,可访问http://shallway.net了解详情。

2010-04-06

libevent2.0.3 VS2005整合包

官方的libevent只支持VC6,而且测试项目不足,所以整合了下,支持所有regress测试,而且为Libevent2.0系列的最新版

2010-03-19

C++写的跨平台BlockingQueue

类似java BlockingQueue,C++写的,支持Windows与Linux。

2010-02-07

NetWay网络编程引擎测试版

相关内容可关注:shallway.net。

2009-11-13

Http多线程与断点续传的Dll+源码

Http多线程与断点续传一个Dll函数搞定,具体使用可参考:http://shallway.net。测试程序也打包上传了

2009-11-01

桌面监控程序,select模型,简单易懂

桌面监控程序,select模型,简单易懂,具体可参考:http://shallway.net/?p=98

2009-10-19

berkly socket的封装,类似java

适合学习面向对象与socket编程,具体可访问http://shallway.net

2009-10-09

基于服务器的DDos系统

采用UDP模型 客户端发送数据包采用Winpcap 可参见;http://shallway.net/?p=83

2009-09-20

游戏人工智能编程书籍加代码

经典书籍,英文版,配VC6代码 http://shallway.net

2009-09-19

结构良好的聊天室系统,VC纯socket实现

《windows环境下32位汇编语言程序设计》网络通信部分聊天室汇编代码的VC版本。

2009-09-15

NetShield多功能防火墙

内附可执行程序与源码,还有Winpcap库,具体使用可参考作者主页http://shallway.net 功能丰富,对作项目很有参考价值

2009-08-06

简单的blog,适合初学者

具体使用可参考: http://shallway.net

2009-08-02

LANShield防火墙源码

LANShield2.0源码,附程序效果。 软件功能: 1.有效拦截局域网内的ARP攻击,并具有保护网关功能 2.可配合服务器端,更有效管理局域网网络 3.自带应用层过滤模块,有效控制本机进程的网络访问 4.自带攻击模块,用于反击,包含所有ARP攻击方法 天空下载: http://www.skycn.com/soft/47437.html

2009-02-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除