Profilo di 耘芃不凡之星辰FotoBlogElenchiAltro Strumenti Guida

Blog


07/11/2009

《还没有决定名字的网络游戏》召募程序员

先就《还没有决定名字的网络游戏》的开发现状发一点牢骚。
第一次会议七人参加,第二次会议二人参加,第三次会议三人参加。没来参加会议的人到底是什么原因,怒气值不够放不出必杀了么?
像这样同学朋友通过网络聚集起来一起做一件事不可能有什么强制性的制约措施来让每个人都开足马力全力以赴,大家都是在靠热度做事。热度这东西很好,可以让人在干活儿的同时获得生理上的快感,唯一的问题是热度不持久,而且这个问题不是你每天灌两三瓶蓝色小药水就能解决的。
我不想说热度用完了就要用责任心来继续做下去什么的,这么说了就好像在说大家做事没有责任心一样。大家每个人都不容易,都有自己的事要忙。我只是觉得要找到一个稳定的团队,能够始终保持某种程度的效率把一件事做完实在是太难。

谢为然说你再去写篇日志找点程序员吧,随着会议讨论的深入,大家都发现有不少问题需要在程序上进行试验和尝试,而我现在还在测试网络连接方面的东西(比如用户验证)。于是我说,是啊,再来点程序员就好了,就要烤箱用200度预热15分钟之后再用180度烤30分钟加上奶酪胡椒粉的那种好了。
但是我真的不知道这篇日志该怎么写。

我很想把要求写得很详细,比如像这样:
一 共通要求:
1 C#语言
2 知道如何利用msdn网站或VC#附带的帮助文档查找函数及类定义
二 分类要求:
1 网络编程:socket编程经验 (主要任务是编写关于网络连接方面的代码,尝试实现各种游戏需要的功能)
2 游戏系统:对算法与数据结构掌握较好 (主要任务是编写游戏的主要逻辑代码,使用合适的算法与数据结构)
3 图形编程:2D图形API编程经验 (主要任务是尝试使用slimDX编写2D图形引擎)

但是根据以往的经验,这样的日志后面只会发现诸如“牛B”,“看不懂”一类的回复,所以日志不能这样写。

那么如果按照上次召募游戏策划那样的风格去写会怎样呢?
什么大家“一起燃烧青春热血”,“一起做有趣的事”,或者“只要有兴趣就行了”。结果就是大家刚来的时候热度满点,战斗力比超级赛亚人还要高几千万,一个星期以后热度耗尽,战斗力就算用上显微镜还要滴点苏丹红染染色才能找得到。

好吧,这其实还是一篇召募文。只不过就像命题作文题目明明是“一件难忘的事”,整片文章却在讨论什么样的事才能算是难忘的事,老师没有觉得你在无理取闹给你0分而是判你走题给你50分已经算相当客气。如果没有这样的觉悟的话,还是老老实实写点小明在公共汽车上给老人让座云云。

31/10/2009

《还没有决定名字的网络游戏》开发记录

今天把多人聊天的demo完成了,运行服务器端的程序之后,用户就可以使用客户端程序连接服务器,并和其他连接到服务器的客户端进行通信。
服务器接收客户端发来的消息,对其进行一些处理后再发送给其他客户端;客户端接受用户键盘输入的消息,将它发送给服务器,再从服务器接收来自其他客户端的消息,并把它显示在屏幕上。

到这里,关于网络连接、通信这些基础技术的尝试已经完成。接下来要做的是针对如何实现某些特殊的功能,进行进一步尝试。
下一个demo,我想重点考虑如何实现让多个玩家在同一个场景中互动。demo可以做成一个“玩家们在迷宫中探险”这样的小游戏。

对于多线程,我仍然有不少地方不明白。这次的问题是CPU的占用率。
我在服务器端的主线程中使用了一个while循环,在每一次循环中程序遍历所有与服务器相连的客户端,从这些客户端接收消息,再将服务器处理过的消息发送给客户端。消息的接收和发送都是以多线程的方式异步完成的。然后我运行这个服务器端程序,CPU占用率直接升到50%。
接着我换了一种代码的写法。我把刚才的整个while循环剪切粘贴到一个叫Update的函数中,然后新建一个线程,让这个线程去执行Update函数。而在主线程中,我还是写了一个while循环,但在这个while循环里,我放的是类似这样的代码:
String str = Console.ReadLine();
if (str.Equals("quit"))
{
    break;
}
ReadLine是一个同步函数,他在读取到用户输入之前会阻塞当前线程。程序用这个函数读取用户输入后判断这个输入是否是字符串quit,如果是则退出循环,中止程序。然后我再次运行程序,奇怪的是,这一次CPU占用率完全没有明显的提升,和平时一样在5%以下波动。

第二种代码的写法和第一种相比,不但没有减少程序的工作量,甚至还增加了一点东西,但是CPU占用率反而变低了。这到底是何解?
我不记得是下学期还是明年,我们会有Concurrency这门课(我也不知道这个词该怎么翻译,大概就是“并行”之类的意思),也许到时候我能对多线程有更好的了解。

29/10/2009

怎么说也要对得起一个多GB的容量啊

又不是开心农场。
我在想如果把这一个多GB的图形资源丢掉,那么美工的成本就可以省出来用在系统设计上(不过好像3D模型一个也要好几个MB,所以估计也省不出多少成本来)。但是好的系统和好的画面哪个更能吸引玩家这个问题不容易得出结论。

程序方面这一个星期以来进展不大,又是在多线程的问题上遇到了困难。
异步函数本身不难理解,就是用线程池里面的一个空闲线程去做一件事情。但是这个异步函数还可以拥有一个回调函数,这就让人产生不少疑惑的地方。
网上找到的关于回调函数的说明大概有这么几点:
1 它和异步函数使用同一个线程,并在异步函数执行完毕后被调用;
2 它从异步函数那里接收一个实现了IAsyncResult接口的对象作为参数,这个对象有AsyncState和IsCompleted属性。AsyncState属性用来获取一开始传递给异步函数的那个Object对象,相当于起到给回调函数传递任意类型参数的作用。IsCompleted属性表示异步函数是否完成,由于回调函数必然在异步函数执行完毕后调用,所以在回调函数中这个属性肯定为true,这个属性的作用是当不使用回调函数时,可以在主线程里利用它判断异步函数是否执行完毕(不使用回调函数时,这个IAsyncResult对象可以通过异步函数的返回值得到)。
比如像这样(iar是一个IAsyncResult对象):
iar = xx.BeginXXX();
while (! iar.IsCompleted)
{
//更新UI并响应用户操作
}

现在仍然不太理解的是和开始异步的BeginXXX相对应的EndXXX的作用。msdn上查到的解释是等待异步调用的完成。
如果把这个函数放到主线程调用,那么它会在异步调用完成前阻塞主线程。问题是把这个函数放到回调函数里到底是什么意思?
如果说NetworkStream的EndRead函数还能返回读取到的byte数的话,像TcpClient的EndConnect这样什么都不返回的函数是怎么回事?

这次的demo估计还要过一段时间,我打算等完成多人聊天功能之后再让大家测试(之前试着写的一个demo线程之间的关系被我弄得乱七八糟,一运行就CPU占用率百分之百直接挂掉)。
另外就是希望这周的会议能在建筑的问题上取得进展吧。

17/10/2009

《还没有决定名字的网络游戏》开发记录

第一次开会难免手忙脚乱,出各种状况,但总体来说今天的会议还算比较有成果。
下面是会议的内容提要:(如果需要完整的会议发言记录,请联系郭跃尘

一 一个格子有多大 => 一个玩家占一格 => 玩家移动时重复输入指令很麻烦 => 玩家可以普通移动或在区域间传送 => 玩家可以事先设定好移动路线
二 说话声音可以传多远 => 大喊,普通,小声分别对应三种声音传播距离
三 可以隔离外界声音判定的会议室 => 没有特殊建筑,建筑的用途由玩家自行决定 => 建筑的大小由玩家自行决定 => 将建筑抽象成墙,柱子,顶,和门 => 如何判断玩家位于建筑内部还是外部 => 如何判断地图上的墙,柱子,顶,和门是否构成一个建筑
四 物品私有还是公有 => 由玩家自行决定部落的所有制=> 玩家只能使用被玩家带在身上的物品,玩家可以捡起任何不在其他玩家身上的物品  => 建筑物是否也有所有权  => 任何人都可以进入门没有上锁的建筑 => 部落可以指定对于偷窃行为的处罚措施 => 游戏中没有系统级别的私有财产设定,玩家只能尝试采用各种行动来保护自己的私有财产
五 如何防止游戏外交流 => 没有地名,部落名,和玩家名 => 玩家之间如何互相识别 => 玩家脸部特征,身材,衣着,装饰品

之前的一篇日志里提到了“命令行模式下如何能够在玩家输入信息的同时显示新接收到的消息”这样一个问题。这个问题现在已经解决,具体方法是这样:
在主线程中使用Console.ReadLine以阻塞的方式接收用户输入,在从线程中接收网络中的消息,然后配合Console.MoveBufferArea函数进行消息的显示。
解决这一问题后,就可以在命令行模式下实现一些简单的图形化。比如用各种符号来表示不同的物体,从而显示玩家周围的情况。

关于内网主机做服务器的问题,今天从高手处问到的结论是,目前没有什么比较简便的软件实现方式。要实现的话,都要对接入公网的那台机器做改动,也就是说首先就需要一个做改动的权限。
那么等到以后demo完成,进行测试的时候,我尽量每天开机,但是开机时间不能保证,一般是在GMT+1的下午和晚上,国内的话应该已经半夜了。

12/10/2009

《还没有决定名字的网络游戏》召募共同制作人

没办法,本来这些东西都准备作为保留节目,在《关于大型多人在线火箭推动式榴弹程序现状之分析及新可能性之探讨》中呈现给大家的,但现在为了这一篇召募贴的需要,就让我提前拉开幕布吧(坚定的眼神望向远方)!!

我想要做一个网络游戏,所以在这里发一篇共同制作人召募贴。我会先说明召募的条件,然后再介绍一下这个我想要做的网游,最后讲一讲加入共同制作的人需要做的工作。

那么以下就是召募条件。
1 你不需要会编程。真的真的,哪怕从没听说过编程二字都没有问题。
2 你不需要是那种什么游戏都能立刻理解系统,轻松掌握诀窍的骨灰玩家。你可能会问,那我要不要写一篇500字的关于游戏产业现状或者对某个游戏的关卡设计进行分析的小论文?答案当然是不用
那么说了这么多不用不需要,唯一一点必须满足的条件是什么呢?那就是:
3 在看完了下面对于这个游戏的介绍后,你要觉得“嗯,好像还挺有意思的”或者“哎呀,这样的游戏我真想早点试试看哪”。
如果以上三点都没有什么问题的话,那么欢迎和我联系。

下面就来说说这个游戏的大致情况。
我之所以想做这么一个游戏,主要是觉得现在的网游已经陷入了一种单调的套路中,大家都在做同样的东西。
网络游戏玩的到底是什么?我的看法是,网络游戏提供给玩家一个向别人炫耀的平台,玩家在这个平台上向其他人炫耀自己的等级,自己的装备,然后就是什么声望,荣誉之类的东西。玩家在网络游戏中做着和单机游戏同样的事情——用时间换取自己角色的能力提升,唯一的不同就是现在你可以让其他人都知道自己的角色能力提升了,或者获得好装备了。
以上几点,难道就应该是网络游戏的定义吗?我觉得这里面还是有可以改一改的地方的。
首先就是让网络游戏拥有和单机游戏截然不同的玩法,玩家要做的不再是打怪练级或者刷各种东西,和其他玩家一起去完成某件事情才是能体现网络特性的玩法。其次是改一改可以炫耀的东西,不管是等级、装备或者声望,这些都是可以通过时间换取的,等级只要杀怪做任务就行,装备只要刷副本杀Boss就行,这样一来各位玩家炫耀的其实只是自己的耐心和毅力而已。如果我们让玩家的角色会真正死亡,然后把可以炫耀的东西改成角色在游戏中的经历怎么样?角色脸上有一道很长的刀疤,那么这位角色大概是经历过恶战的勇士;角色的胸口挂着一段罕见的骨质饰物,估计这位角色应该是位打倒过各种奇虫异兽的出色猎手。
也就是说玩家不再用游戏时间来炫耀自己的耐心,而是和其他玩家一起,用角色仅有一次的生命,去体验游戏中的各种事情。这就是我想要在将要制作的游戏中体现的要素。

而游戏的具体内容大概是这个样子。
游戏发生在远古时代,原始人类组成了一个个部落艰苦地生活着。玩家需要扮演某一个部落中的某一个原始人,和自己的族人一起战胜由其他玩家组成的部落,最终在这场生存的竞争中存活下来。
游戏中没有任何由系统制定的社会管理系统,玩家在部落中担任何种分工,部落中的资源要怎么分配,以及部落成员采用何种管理制度,这些都要由玩家之间自行讨论决定。
游戏中也没有任何npc角色。玩家的任何行动都将改变这个世界。玩家可以探索世界,发现新的资源,发现其他部落。玩家可以制作工具武器,发现新的科技。玩家可以在世界的任何一个地点建造房屋,围墙,或是为自己的族人们提供一个安全的避风港,或是为采集距离较远的资源建立一个中转站,或是为了进攻其他部落建立一个临时营地。每一个角色在世界中都是微不足道的一份子,同时又在为改变这个世界默默地贡献着力量。

目前需要做的工作主要是游戏系统的设计。这个游戏目前还只是一个如同草稿纸上的涂鸦一般的初步构思,我有了一些想法,但是具体要怎么把这些想法实现出来,还需要大家的热情和力量。
游戏中要有哪些猛兽,有哪些可利用的资源,又有什么科技可以研究,有什么建筑可以建造,这些都需要进行设计。还有就是怎么样提供一种机制,让玩家可以自行产生属于自己部落的社会管理系统,比如说要怎么样让玩家从公有制发展到私有制,或者玩家愿意始终保持公有制的形式。需要设计的东西还有很多,这里只是举几个例子。

那么差不多就是这样。

二零零九年十月十二日
《还没有决定名字的网络游戏》制作委员会

11/10/2009

《石头剪刀布OL》开发记录

今天终于下定决心开始写代码了,可以说这是五月病症状有所缓解的好兆头么?
考虑到十一月初有期中考,虽然不是决定性的一击,但也影响到期末的bonus,所以这次的《石头剪刀布OL》还是慢慢来。

今天主要尝试了建立简单的TCP连接,并在两台主机之间发送信息。写完demo找几位同学测试了一下,发现凡是内网用户都不能作为TCP连接的服务器端,但是他们可以作为客户端去连接一个拥有外网ip的用户(我在宿舍用无线上网居然还能分到一个外网ip,全世界总共2^32个ip地址就被我占掉一个,在这一点上不得不承认瑞士很牛叉)。
(在写这篇日志的时候突然想到,如果两个内网用户和同一个外网用户分别建立连接之后,外网用户可以把内网用户建立连接时使用的外网ip地址和端口号分别发回给内网用户,然后这两个内网用户是不是就可以使用这个ip地址和端口号来直接建立连接了呢?在计算机网络的书里面写了,NAT其实是利用端口号来进行ip地址的扩展的,主机的内网地址和管理内网的服务器的外网地址以及这个服务器的一个端口号有一一对应的关系,那么有了这个端口号是不是就可以实现连接呢?)

接下来的一段时间仍然是进行未掌握技术的尝试,大概有以下这么两点:
1 实现多客户端对单一服务器的连接
  *服务器如何检测客户端是否已经断开连接(网上的结论是用C#的话没有直接的函数能够实现这项功能,解决的方法是服务器端定时向客户端发送确认信息,如果收到客户端回应就表示客户端仍然连接,否则表示连接已经断开)
  *各个客户端之间如何通信(也就是说服务器端需要提供一种标记客户端的机制,等于是给每个客户端一个名字。这一套标记要能让连接到服务器的每一个客户端知道,而且还要根据客户端的连接情况时刻保持更新)
2 实现命令行环境下的多线程消息收发机制
  如何在用户输入信息的同时显示新接收到的消息(把程序图形化就不会有这方面的问题了,但是和C#搭配的图形API我只会用XNA,而用XNA的话就要先安装一大堆微软的补丁才能运行程序)

完成以上尝试之后,就要对代码进行整理,重写,并封装,做成一个可以重用的如dll之类的东西。

再往后才是设计游戏,写游戏本身的代码。这部分工作其实是有可能和上面的那些尝试工作一起进行的,比如你是个双头巨人,然后某个法师好心给你用了个奇迹术让你不再弱智,同时你全身挂满各种+1、+2直到+5智力的斗篷或是戒指项链护身符。但是在现实世界里,这些都不可能发生,唯一可能的只有去绑架一个会写程序的游戏策划来,然后再骑马滴XX灌XX地调教他,让他死心塌地地从了你,从此两人就一直幸福地生活下去,不对,是从此他就帮你毫无怨言地做策划,写试玩demo。

明天要看数学了,还有vhdl的作业(要做一个ALU和一个内存),还有Scala的编程项目,还有……
不能再列举下去了,一项一项列举出来只会发现时间完全不够用,一件接一件地去做才是把事情全部做完的正确方法。

12/06/2009

“战斗系统”再一次

这个星期下载到的几部动画好像清晰度都不是很高,难道又发生什么片源危机了么?

这两天在复习之余,还在做一个新的战斗系统。之前尝试了一下叫作《洛奇》的网游,这个游戏的战斗系统与其说是ARPG,不如说是动作更贴切一点。从这个游戏的战斗系统获得灵感后,就有了下面这个有点模仿性质的构思:

这是一个类似半即时RPG游戏的战斗系统。

动作:
轻攻击 准备时间 100 + 0-20 命中硬直 50 - 0-20
重攻击 准备时间 300 + 0-30 命中硬直 50 - 0-10
防御(格挡) 准备时间 50 + 0-20 有效时间 200 - 0-30
反击 准备时间 250 + 0-20 有效时间 200 - 0-30 命中硬直 50 - 0-20
等待 准备时间 0 有效时间 10 + 0-20

当角色不处于任何一种状态时,角色必须选择一个动作进入它的准备状态。
当角色状态持续时间结束后角色将进入无状态。
角色状态也可能因为自己取消而直接停止。
角色的状态可能因为受到攻击而转到另一种状态。
每一次玩家需要选择动作或者决定是否取消当前动作时,有百分之三十几率得知对手当前的状态。

如果玩家使用单一武器,那么当连续使用轻攻击时,每多使用一次轻攻击,轻攻击的准备时间就会有5-20延长。延长出来的准备时间会在玩家进入非轻攻击准备状态的其他状态时恢复到原始值。
如果玩家使用双武器,那么玩家的重攻击动作将始终由主手武器完成。
如果玩家使用双武器,那么当连续使用轻攻击时,连续轻攻击的第一击必定由主手武器完成,之后的连续轻攻击将由主手与副手交替完成。与使用单一武器的情况不同,在玩家使用双武器的情况下,轻攻击的准备时间延长发生在一次主手攻击加一次副手攻击之后。也就是说副手攻击与前一次的主手攻击拥有同样的准备时间。
如果玩家使用双武器,所有副手攻击命中后不会使对手产生硬直,并且所有副手攻击只会造成正常武器伤害的一半。

只有角色准备了盾牌或类似的装备后才可以使用防御动作。防御动作可以确实地降低对手轻攻击的破坏力至百分之五十,并且自己不会产生硬直。
如果角色没有装备盾牌一类的装备,那么角色只能够使用格挡动作。格挡动作有百分之五十几率产生与防御相同的效果。
在格挡动作未产生与防御动作相同效果的情况下,角色视作被对手直接命中。

重攻击动作命中对手时,可造成1.5倍武器伤害。

防御(格挡)通常来说对重攻击无效,但是反击对轻攻击和重攻击都有效。

角色的最大轻攻击承受计数为二,最大轻攻击防御计数为三。
角色在准备状态被对手的轻攻击命中时,轻攻击承受计数加一,如果该计数大于角色的最大轻攻击承受计数,则角色当前准备的动作被取消,角色进入硬直状态。
如果该计数小于等于角色的最大轻攻击承受计数,则角色准备时间将被延长。
角色在防御持续状态被对手的轻攻击命中时,轻攻击防御计数加一,如果该计数大于角色的最大轻攻击防御计数,则角色结束防御持续状态。
如果该计数小于等于角色的最大轻攻击防御计数,则角色保持防御持续状态。

技能:
A 减少动作准备时间及准备时间的不稳定性
B 获得动作准备中或发动中取消的能力
C 增加动作命中后的硬直时间及动作发动后的持续时间,减少硬直时间及持续时间的不稳定性
D 强化某一个或某几个特定的动作
E 强化使用某一类武器的能力,当角色使用该类武器时,可以获得能力上的提升
F 其他技能

A
轻攻击掌握 等级一 准备时间 95 + 0-10
轻攻击掌握 等级二 准备时间 90 + 0-5
轻攻击掌握 等级三 准备时间 85 - 0-5
重攻击掌握 等级一 准备时间 290 + 0-20
重攻击掌握 等级二 准备时间 285 + 0-10
重攻击掌握 等级三 准备时间 275 + 0-5
防御(格挡)掌握 等级一 准备时间 45 + 0-10
防御(格挡)掌握 等级二 准备时间 40 + 0-5
防御(格挡)掌握 等级三 准备时间 35 - 0-5
反击掌握 等级一 准备时间 240 + 0-10
反击掌握 等级二 准备时间 225 + 0-5
反击掌握 等级三 准备时间 210 - 0-5

B
轻攻击娴熟 等级一 每经过50可取消一次
轻攻击娴熟 等级二 每经过40可取消一次
轻攻击娴熟 等级三 每经过25可取消一次
重攻击娴熟 等级一 每经过150可取消一次
重攻击娴熟 等级二 每经过120可取消一次
重攻击娴熟 等级三 每经过85可取消一次
防御(格挡)娴熟 等级一 准备每经过25可取消一次 持续每经过100可取消一次
防御(格挡)娴熟 等级二 准备每经过20可取消一次 持续每经过80可取消一次
防御(格挡)娴熟 等级三 准备每经过15可取消一次 持续每经过50可取消一次
反击娴熟 等级一 准备每经过125可取消一次 持续每经过100可取消一次
反击娴熟 等级二 准备每经过100可取消一次 持续每经过80可取消一次
反击娴熟 等级三 准备每经过70可取消一次 持续每经过50可取消一次

C
强效轻攻击 等级一 命中硬直 55 - 0-10
强效轻攻击 等级二 命中硬直 60 + 0-10
强效轻攻击 等级三 命中硬直 70 + 0-20
强效重攻击 等级一 命中硬直 60 - 0-5
强效重攻击 等级二 命中硬直 70 + 0-10
强效重攻击 等级三 命中硬直 80 + 0-20
强效防御(格挡) 等级一 持续时间 250 最大连击数 4
强效防御(格挡) 等级二 持续时间 320 最大连击数 5
强效防御(格挡) 等级三 持续时间 400 最大连击数 6
强效反击 等级一 持续时间 270 命中硬直 55 - 0-10
强效反击 等级二 持续时间 350 命中硬直 60 + 0-10
强效反击 等级三 持续时间 450 命中硬直 70 + 0-20

D
精通格挡 等级一 百分之六十成功率
精通格挡 等级二 百分之七十五成功率
精通格挡 等级三 百分之九十五成功率
致命一击 等级一 百分之三十几率造成百分之一百五十的伤害
致命一击 等级二 百分之四十几率造成百分之一百七十的伤害
致命一击 等级三 百分之五十几率造成百分之二百的伤害

E
精通双手武器 等级一 攻击伤害增加1-6 命中硬直增加0-10
精通双手武器 等级二 攻击伤害增加2-12 命中硬直增加0-20
精通双手武器 等级三 攻击伤害增加3-18 命中硬直增加0-30
精通双武器 等级一 副手攻击造成百分之七十五的伤害 副手命中硬直25 - 0-20
精通双武器 等级二 副手攻击造成正常伤害 副手的命中硬直50 - 0-10
精通双武器 等级三 主副手攻击造成百分之一百二十的伤害 副手命中硬直60 + 0-10

F
战斗惯性 每一次玩家需要选择动作或者决定是否取消当前动作时,有百分之五十几率得知对手当前的状态。在成功得知对手当前状态的情况下,还有百分之三十几率几率估计对手的动作还要多久才会发动
坚壁 当玩家使用防御动作时,有百分之五十几率连重攻击也能够挡住。此技能对于格挡动作无效
攻守同调 当玩家使用防御(格挡)动作成功抵挡住对手的攻击时,能够使对手产生60 + 0-10的硬直
先机 在战斗开始时有百分之四十几率使除自己以外的其他角色产生50 + 0-20的硬直
灵活步调 使等待的持续时间确实地变为10
连续攻击 减少连续轻攻击时的准备时间惩罚至0-5
专注 增加角色的最大轻攻击承受计数至四

武器
武器持用手分类:A单手武器 B双手武器
武器硬直分类:a均衡的武器 b快速的武器 c沉重的武器 (准备时间与硬直时间的交换)
武器伤害分类:1均衡的武器 2快速的武器 3沉重的武器 (准备时间与武器伤害的交换)

A单手武器
Aa1钉头槌 3-10 准备时间 + 0-5 硬直时间 + 0
Aa2长剑 2-8 准备时间 + 0 硬直时间 + 0
Aa3弯刀 4-12 准备时间 + 0-10 硬直时间 + 0
Ab1短剑 1-6 准备时间 - 0-5 硬直时间 + 0
Ab2匕首 1-4 准备时间 - 0-10 硬直时间 - 0-15
Ab3手斧 1-8 准备时间 - 0-5 硬直时间 - 0-5
Ac1战锤 2-12 准备时间 + 0-10 硬直时间 + 0-10
Ac2重剑 1-10 准备时间 + 0-5 硬直时间 + 0-10
Ac3战斧 3-15 准备时间 + 0-20 硬直时间 + 0-25

B双手武器
Ba1戟 8-18 准备时间 + 0-10 硬直时间 + 0-10
Ba2弯刃大刀 6-15 准备时间 + 0-5 硬直时间 + 0-10
Ba3巨镰 10-20 准备时间 + 0-15 硬直时间 + 0-10
Bb1长枪 4-12 准备时间 + 0 硬直时间 + 0-10
Bb2矛 4-10 准备时间 + 0 硬直时间 + 0
Bb3大砍刀 4-15 准备时间 + 0 硬直时间 + 0-5
Bc1重型战锤 6-20 准备时间 + 0-15 硬直时间 + 0-20
Bc2巨剑 4-18 准备时间 + 0-10 硬直时间 + 0-20
Bc3巨斧 4-25 准备时间 + 0-30 硬直时间 + 0-40

盾牌
小盾牌 提供防御动作 延长0-10攻击准备时间
大盾牌 提供防御动作 提供3点伤害减免 延长0-20攻击准备时间
塔盾 提供防御动作 提供5伤害减免 延长0-40攻击准备时间
×伤害减免应用于所有受到伤害的情况,包括被对手直接命中时

考完试的一个星期内,我会完成一个实现战斗规则的demo。下学期我们会学习网络方面的相关课程,在那之后我打算尝试用这套系统制作一个多人联机的合作冒险式RPG。

13/12/2008

工作室会议记录

/******************
/*    目前进度    *
/******************
周耘芃 很好,那么会议开始
       嗯,大家好,今天我们要讨论一下怎么玩嗲宝咯。不对,是在今后的两个月中如何安排项目的进度
       首先我来介绍一下目前项目的进度情况
       目前项目的程序部分已经基本完成,而关卡设计,美术设计以及音乐这些部分还没有开始做
李楠 嗯
周耘芃 可以说目前整个游戏的开发已经进入到最实质性的阶段,也就是完成游戏的内容

/******************
/*    工作重点    *
/******************
周耘芃 然后再来说一下目前工作的重点
       1 要把重心转移到还有没有开始的部分上来,对于代码只做必要的改动
       2 游戏的系统不再进行结构性的改动,只对具体数值进行调整
       3 只制作一个关卡,长度约3分钟
李楠 恩,同意

/******************
/*    任务清单    *
/******************
周耘芃 那么下面就把之后的任务列一个清单
       1 关卡设计 -> 编写关卡脚本 敌机脚本 子弹脚本中关于行为的部分
       2 美术设计 -> 画图 -> 编写背景脚本 粒子脚本 以及 各种活动物体(敌机子弹道具等等)脚本中关于画面表现的部分
       3 音乐 -> 测试音乐播放部分 调整音乐
      主要的工作大概就是这些了,大家看一下,确认一下
李楠 主要就是这三部分了。任务应该就是这些

/******************
/*    空闲时间    *
/******************
周耘芃 嗯,那么下面,我想了解一下大家放假期间确实有空的时间。从什么时候开始有空,有多久。
李楠 我在假期,也就是1月15-2月份以前可以一周至少4天,就是一共有10天左右的时间。这之前每周最多有2天,2月份开始每周也只有2天,不过可以全天。
周耘芃 谢为然呢?
谢为然 1月10号之前没有空,2月1号之前不确定,2月整个月都几乎全天
周耘芃 好
       我是从1月20号开始到2月中旬有三个星期的时间
李楠 我是按最好的情况来说的。我大概会在2月初做一次GMAT的模拟题,然后根据成绩看~ 如果成绩不错那就仍然可以保持一周4天以上的。
周耘芃 嗯,好的

/******************
/*    任务分配    *
/******************
周耘芃 那么现在讨论一下具体任务的分配吧

/******************
/*    击杀小强    *
/******************
李楠 等下……抽屉里发现一只小强……
周耘芃 ...赶紧解决,记得用拖鞋
李楠 继续吧……用稿纸搞定了……我整理下,你继续。

/******************
/*  任务分配(续)  *
/******************
/**********
/*  李楠  *
/**********
周耘芃 嗯
       我又把姜楠喊来了,来帮我们来写脚本
       李楠能不能在1月20号之前完成关卡的设计,然后向姜楠解释如何写作脚本,之后开始写作脚本,我想整个关卡的运行部分就交给你们负责
李楠 3分钟是吗?
周耘芃 嗯,三分钟的关卡
李楠 1月20……我尽力吧,我有点担心可能完不成
周耘芃 离现在还有一个多月吧
李楠 雏形应该没有问题,就怕到时候又要修改很多,因为数值化的东西很困难
周耘芃 记住一点,不要做任何系统的修改,只改数值
李楠 知道
李楠 子弹的速度加速度,敌人飞行路径这些。在设计关卡的时候都要确定了吗?
周耘芃 嗯,这些凭感觉,去看东方录像,用变速齿轮
李楠 好的,那我尽力,1月20号之前吧
周耘芃 对
李楠 好,变速齿轮暂时使用不能,我可以凭感觉做一些看看
周耘芃 我希望你们能够完成的是所有关卡敌人子弹的脚本,在2月底前。等姜楠来了,你可以和他分一下工,每人写一部分,但总的设计由你来完成。
李楠 关卡的顺序也要决定吗?就是每个敌人出来的数量这些
周耘芃 嗯,都要做好,等于就是完成一个关卡
李楠 恩

/**********
/* 周耘芃 *
/**********
周耘芃 在谢为然考试的这段时间里,我会完成音乐播放的测试工作,确保音乐播放的正确,然后我会和谢为然进行所有美工部分的工作
李楠 OK

/**********
/* 谢为然 *
/**********
周耘芃 谢为然,你现在先专心搞定考试,有空的时候也可以在脑子里考虑一下游戏整体风格的问题
       游戏的画面表现细节,比如图片的逐渐透明什么的,这些我来设计,我希望你能在2月中旬之前完成所有图片素材

/**********
/*  李楠  *
/**********
周耘芃 嗯,李楠,记得写脚本的时候按照我昨天给你的格式来写
李楠 恩,好

/**********
/* 谢为然 *
/**********
周耘芃 谢为然是否清楚自己的任务?
谢为然 清楚
周耘芃 嗯,你要做的是,设计+画图的部分,这个设计包括了游戏的菜单界面,以及游戏运行时画面
       然后如果可以的话,最好每个星期交流一下工作成果
谢为然 好的
周耘芃 李楠在1月20号完成了关卡设计的话,就可以把整个关卡的构成告诉谢为然,比如里面有些什么样的敌人,然后每种弹幕的特点是什么样的
谢为然 en
       还有界面里要显示些什么
周耘芃 你是指哪一个界面?
谢为然 游戏中
周耘芃 嗯
       需要显示玩家剩余多少条命,玩家的得分,玩家的火力信息
       我看看还有什么
       然后因为玩家有两种不同的攻击方式,如果有空间不知道填什么好的话,可以显示玩家目前的攻击方式
       嗯,还有关卡的进行时间也行
       但是这些不是必要的东西,是用来填补画面空白的
谢为然 恩 ..好
周耘芃 界面设计完成之后,最好能画一个简图出来,就是界面大概的样子
李楠 总之觉得有点像东方右侧的那个东西吧
周耘芃 嗯,对,但是也不一定要完全按照东方里的样式
李楠 不过风格不太一样,也可以不是纯粹的界面而是仪表盘那样的
周耘芃 谢为然玩过东方了没有?
谢为然 恩,你给过我
周耘芃 好的,那么,记得一定要去玩,玩了之后保存录象
谢为然 玩不过去 .. = = 太难了 ..
周耘芃 不一定要玩过去,你直接在网上找个录像来也行
谢为然 保存录像干什么?
周耘芃 然后去找变速齿轮,放慢了看录像
谢为然 为了..?
周耘芃 为了了解里面的渲染细节
谢为然 明白了
周耘芃 你把变速齿轮拖到原速的六十四分之一,然后看里面敌人、角色的动画是怎么构成的,粒子是在什么时候发射的,敌人子弹死亡的时候会有什么样的画面效果,这些都是需要在观看录像的时候注意的地方

/******************
/*    会议结束    *
/******************
周耘芃 嗯,今天要说的差不多就是这些吧,大家还有什么要提问的么?或者还有什么要补充的?
       如果没有的话,那么大家努力加油吧!
       嗯,散会散会

14/11/2008

XNA学习笔记

1 xna使用3D的方式来渲染2D,当渲染一张矩形2D图片时,xna会绘制两个三角形然后做材质映射。2D渲染时不可以使用vertex shader的原因是xna使用了一个特殊的vertex shader来使采用3D形式渲染的2D图形正确地投影到屏幕上。

2 当SpriteBatch的渲染模式设置为None时,RenderState的AlphaBlendEnable为false,其余两种渲染模式下,AlphaBlendEnable均为true。AlphaBlend模式使用的公式为dest = source * sourceAlpha + dest * (1 - sourceAlpha),Additive模式使用的公式为dest = source * 1 + dest * 1。
只有当排序模式设置为Immediate时,RenderState的DepthBufferEnable为false,当设置为其余各种排序模式时,DepthBufferEnable均为true。
在SpriteSortMode.Immediate模式下,用户可以在调用Draw函数之前修改RenderState以及SampleState,但是由于在Immediate模式下,渲染指令只有在更换材质的时候才会发出,所以在两个连续的使用相同材质的Draw函数之间修改RenderState或者SampleState并不能使两次Draw使用不同的渲染状态。

3 xna将颜色与色彩键相符的区域之颜色设置为(0, 0, 0, 0)。对于有色彩键的图片,在进行alpha blend时,不要设置destinationBlend为sourceAlpha或者sourceColor,否则必定会得到黑色的结果。
在开启了DepthBuffer的情况下,alpha blend往往不能得到正确的结果,所以在进行2D以及3D贴图渲染时尽量避免使用DepthBuffer,如果可能的话,手动调整各个物体的渲染顺序。
使用SpriteFont渲染文字时,需要打开AlphaBlendEnable,否则文字无法正常渲染,屏幕上会产生与文字大小相同的黑色方块。

现在的VibrisLite引擎已经用了快一年了,当时对xna的了解还不够深入,有不少地方写得并不十分正确,我打算重新编写引擎的渲染部分。仍然以2D渲染为主,并提供3D贴图的功能,我还是不会做光照。重写过之后,引擎的渲染速度理论上应该会变快吧。

12/10/2008

工作室讨论记录三

今天下午又讨论了两个小时左右,从暑假开始到现在,游戏终于渐渐有点眉目。
请期待即将在十月底推出的demo吧,因为,因为,这可是几个奇怪男人的青春热血呀。

李楠
没什么好东西,有牛肉的本子,据说开始5分钟就被抢光了

周耘芃
哈哈,5分钟!! 这个展会叫什么名字?

李楠
YACA,广州的一个同人原创协会举办的

周耘芃
哦,很好

李楠
然后脚本有一个地方不明白

周耘芃

李楠
#状态1
bcs();
set(1,101);
crt(s1);
beq(10);
jpz(0);
do(2,0,-1);
do(3,2);
lbl();
bce();
这个当中crt(s1); beq(10); jpz(0);这三句的含义是?

周耘芃
set(1,101);是获取物体进入当前状态后经过的时间,然后把值存放在rtSlot[1]当中
rtSlot[0]是用来存放计算结果的

李楠
是问那三句啊
crt(s1); beq(10); jpz ;就是这三句。

周耘芃
嗯,我想整个解释一遍比较好

李楠

周耘芃
crt(s1);表示把rtSlot[1]的值作为当前值
beq(10);表示把当前值与10比较

李楠
我理解SET就是将值存入池中

周耘芃
如果当前值大于等于10
那么就把真假位置为真,否则置为假
这里当前值就是由crt(s1);设定的rtSlot[1]的值
也就是物体进入状态1后经过的时间
jpz();指令的意思是
如果当前真假位为假,则跳转到指定的lbl();指令处
如果真假位为真,则继续执行下面的指令
这里是jpz(0 );
表示跳转到此状态中的第一个lbl();处
lbl();指令是在一个bcs()bce()块中从0开始排列的
在另一个块中就会重新从0开始排列
也就是说jpz指令只能在一个块内进行跳转

李楠
恩了解

周耘芃
另外就是
//敌机行动脚本运行方法
public static void RunEmScript(uint scriptNum)
{
    switch (scriptNum)
    {
        case 0:
            EmOne();
            break;
    }
}
这里我觉得可以把这个switch去掉

李楠
我也觉得

李楠
为什么运动状态这么奇怪 

周耘芃
什么地方奇怪?

李楠
哪里会造成有的是斜向运动???
哦 等下,我有点理解了
稍等,我改个地方

周耘芃
因为有Y方向的加速度 ,连续加速10帧的话还是挺快的

李楠
Y有加速度? 

周耘芃
1.一架敌机从(0,300)以(4,0)的速度(0,1)的加速度进入画面,持续10帧
2.以(0,-1)的加速度移动10帧

李楠
哦 确实 恩
那为什么有一些没有这样的运动呢?

周耘芃
如果说碰巧一个物体,先向下加速十帧
然后十帧之后正好在y=350的地方反弹
改为向上运动
这样就又是十帧的正向加速运动
这样物体的y轴速度就会变得很快

有些物体没有产生那种大范围的振荡运动是因为
在加速的过程中就碰到了y=350的边界
y轴速度反向
运动变成了减速运动
如果把y轴的加速度改小一些,各个物体间的运动差别应该就不那么明显了

李楠
为什么Y上振幅会这么大……只有10帧,最大才10……
哦 也是

周耘芃
10帧就够把速度加到10了呀

李楠
差不多

周耘芃
如果正好反向之后还是加速的话,速度就可以达到20
你把两个状态的y轴加速度都改成0.5试试,这样就不会出现大幅度的震荡了

李楠
我再改其他一些东西试试看

周耘芃
刚才说想把switch去掉是因为,不管是什么样的脚本

李楠
因为其实所有指令都可以写一起,我知道
呵呵

周耘芃
嗯,对

李楠
没问题的
我先再试试看,还有一些指令没修改过

周耘芃
好的

周耘芃
今天还要讨论什么么

李楠
恩,也就是说所有的脚本就是这几个指令

周耘芃
嗯,就是那几个txt文件里面列出来的
如果要让物体做复杂的运动的话,比如圆周,利用那些向量运算的接口就可以实现
我去吃一个苹果

李楠
好,我试试看
mov(c,n); 是一个赋值语句还是?

周耘芃
不是赋值语句,怎么说呢
它的作用是把一个值复制到指定rtSlot里面
c的范围是1到n
n等于init();指令的参数
啊,这个n不是mov指令里面的参数n
是另外一个整数
mov指令里面的n用来指定要复制的值
你可以用s0-sX来指定一个rtSlot
也可以直接输入一个数值

比如
mov(1,s2); 表示把rtSlot[2]中的值复制到rtSlot[1]中
再比如
mov(3,-0.56);表示把-0.56存放到rtSlot[3]中
mov指令是由脚本类script自动完成的

这个指令的作用一般是用来存储计算的中间结果
上一步计算的结果存放在rtSlot[0]中
进行下一步计算后,这个槽中的值会被下一步计算的结果覆盖掉
如果要保留上一步计算的结果,就要使用mov指令将它复制到其他地方去
大概就是这样

李楠
恩 理解了  

周耘芃
哎呀,我忘了在指令列表里写注释了
我去写一下每个指令的说明,然后重新给你发一份

李楠
恩,好的。

周耘芃
先说一下,列表里面参数c和n的区别
c表示只能接受一个非负整数参数
n表示可以接受任意有理数参数或者以s开头的表示rtSlot的参数
以s开头的参数表示取得相应rtSlot内的数值,作为这个指令的参数值

李楠

周耘芃
args:n表示参数数量任意,之间用逗号隔开

李楠
如何进行向量的运算?
106:向量顺时针旋转九十度 args:X,Y,rX,rY
rX和rY是怎么使用的?

周耘芃
rX,rY表示计算的结果存储的位置,这些参数虽然是n类型,但是在使用这些接口的时候要当作c类型来处理因为它们指示的是rtSlot的编号
X和Y可以仍然使用n类型,就是说你可以使用一个rtSlot来表示计算参数,也可以使用立即数

李楠
那么圆周该怎么写呢?怎么获得当前的加速度和速度?

周耘芃
我看一下
好像还没有加入这个接口
要进行圆周运动的话还需要加入获取物体当前加速度的接口
你可以加在set(c,106)后面,从107开始往后排

李楠

周耘芃
注意的是set指令一次只能获得一个数值,所以可能要把加速度分成x轴和y轴两个值

李楠
就是X,Y要用两个 

周耘芃

李楠
恩,好,我去试试看

周耘芃
目前接口我只写了set(c,101/103/104)还有do(1/2/3,args:n)这么几个

李楠
是的,其余我来完成吧

周耘芃
好的

李楠
你现在可以开始想一个简单的场景了,弹幕先不考虑,只需要发射一枚子弹,但是敌机移动完整
然后在stage那里,会加一个记录帧数的,用于计算该什么时候出现

周耘芃
好的,stage我希望采用和敌机一样的计时机制

李楠
想怎么样?
采用绝对时间还是相对时间?

周耘芃
一个timecount从0开始往上加,每换一个状态就把这个timecount清零

李楠
恩,好的

周耘芃
嗯,最好能够也有一个用来计绝对时间的变量,这样在做关卡的时候可能更方便一点

李楠
恩,行,你开始设计吧
想想还有什么可能需要的

周耘芃
嗯,我先写好指令的注释

李楠

周耘芃
你大概什么时候要,这个关卡设计

李楠
大后天吧,大后天完成这个除了弹幕都可以的版本
大后天之前都可以
然后余下的整个星期用于设计弹幕

周耘芃
好的

周耘芃 发送 C:\Documents and Settings\zyp\桌面\工作\代码\脚本设计\脚本指令代码2.0.txt

周耘芃
来了

周耘芃 发送 C:\Documents and Settings\zyp\桌面\工作\生活\BT种子\动画\名侦探柯南剧场版12.torrent

周耘芃
要不要?
种子

李楠
啊……其实都不想看了……

周耘芃
哈哈

李楠
恩,要了

周耘芃
那么我先去写一段latex代码,然后开始做关卡设计

李楠
latex?

周耘芃
是一个用来排版的语言
我在和同学一起整理线性代数的笔记

李楠
哦,恩

周耘芃
用起来就像html语言一样,都是标签
主要是里面有很多用来写数学符号的东西

李楠
啊,还有,我还要具体说说下面两年我的安排

周耘芃
好的,你说

李楠
是这样,春节前一定要完成这个项目,然后后期有些工作要交给你

周耘芃
好的

李楠
我要准备GMAT,基本是在3月20日左右考试

周耘芃
我一月份有一个考试,考完之后大概还有半个月的假期,到2月上旬开学

李楠
恩,行,足够了,按我们现在的效率

周耘芃
好的

李楠
然后GMAT考完了后,我也要为就业准备一些考试
不过因为课程不多,所以还是再做一个我们自己有爱的项目,直到暑假

周耘芃

李楠
那期间我会去考一个商务英语考试

周耘芃
这期间如果我们进了第二轮怎么办?

李楠
哈哈,那么当然是投入,进了第二轮当然情愿累一些

周耘芃
呵呵,好的

李楠
而且如果进了第二轮,尽力拉到牛肉

周耘芃
哈哈,嗯,对

李楠
然后我还要准备考微软的SQL SERVER的考试,这都是暑假前的事情
暑假要实习,暑假结束大四我也暂时退出工作室了

周耘芃

李楠
我会多去考一些证书,计算机的看当时的时间和水平
可能是计算机三级:信息管理技术,或者是信息系统工程师

周耘芃
嗯,不错

李楠
然后,还要过口译,肯定要拿个证,为了就业没办法

周耘芃
呵呵

李楠
其实我不喜欢……
然后就是申请工作啦,尽力游戏相关

周耘芃
去2K Game么?上次看到的那个?

李楠
有机会当然

周耘芃
呵呵,很好

李楠
呵呵,最近我对一个东西产生了非常浓厚的兴趣……我看了介绍觉得很有意思,大四的业余活动就是它了

周耘芃
是啥?

李楠
单片机

周耘芃
哈哈,可以用来做游戏机哦!!

李楠
是啊,可以做逻辑游戏

周耘芃
我在南航小试过一把,有那种彩色屏幕的,接上就是游戏机了
nds里面其实就是一块arm5和一块arm7

李楠
恩,网上卖的学习级别的,只要300多,其他的卡和显示屏稍微贵一些……

周耘芃
哦,很好很好

李楠
然后就来玩玩,用那个学汇编也快很多我想,毕竟在WINDOWS学汇编……比较囧……

周耘芃
对对,我在南航弄的时候还是用C写代码的,没有用汇编

李楠
反正其实是一样的

周耘芃
那么你是打算工作一段时间之后再出国去读研究生么? 

李楠
是的,两年,中间也要考个TOFEL……

周耘芃
嗯,那么我想想

李楠
其实你比我早读研究生……早一年

周耘芃
对头,哈
我研究生是两年

李楠
MBA也是两年

周耘芃
中间我尽力争取到出国交换的机会,到美国或者北欧去看看,但这东西要求本科期间的成绩

李楠
恩,加油

周耘芃

周耘芃
对了
如果要在下学期在做一个项目的话,大概做什么类型的游戏?

李楠
我想有两种选择:做一个比较复杂的,但是不用写太多,只一个场景。作为学习用。还有一种,做一个简单的

周耘芃
我想先开始写一点基础代码,这些基础代码如果不先写好的话,到真正开始做的时候会发现时间不够用,这样就麻烦了

李楠
其实有爱的还是想做东方同人游戏

周耘芃
嗯,那么等于是还是做STG?

李楠
或者是一个MMORPG

周耘芃
网络游戏?

李楠
恩,其实应该是联机游戏

周耘芃
嗯,那么我要先尝试一下联网方面的东西了
还是用xna么?xna的话应该可以用浩方之类的连局域网

李楠
恩,是啊,就用XNA的网络部分

周耘芃
嗯,那么游戏本身的类型呢?

李楠
可以是比较及时性的,比如做一个可联机东方同人游戏,也可以是纸牌游戏

周耘芃
即时战略?纸牌?

李楠
你去查查,最近新出了一个,模仿万智,是魔兽世界的
现在正在快速积攒人气

周耘芃
哦?叫什么名字?
模仿万智的魔兽世界的东方同人?

李楠
不是……
东方同人是一个选择

周耘芃

李楠
魔兽世界是另一个,就是做一个比较实用的
那个纸牌的,就像万智网络对战系统一样

周耘芃
那么就是做纸牌游戏么?
嗯,可以
那么设计部分的重点就是牌的规则么?

李楠
呵呵,不用,那个是现成的,所以可以集中精力在程序的设计上

周耘芃
用什么规则?万智?  

李楠
不是,那个是一个成品来着,现在像万智一样在销售

周耘芃
有没有什么链接,我去看看

李楠
稍等,我在找

周耘芃
好的

李楠
上次在穗港澳ACG漫展上看到的,在推广

周耘芃
哦?没有买么?

李楠
和万智一个价啊……………………买不起……

周耘芃
哈哈

周耘芃
也是集换式的?要收集卡牌?

李楠

李楠
http://ngacn.cc/main_php%5Efunc%5E2%5Etarget_id%5E2092.html
这里有链接
现在很火,因为知名度高,比万智发展潜力大

周耘芃
哦,这东西我看到过,瑞士这里有卖的,好贵

周耘芃
我在想我们可以就做一个局域网的桌游系统

李楠
桌游?

周耘芃
可以用来打牌下棋跑团,其实就是一个包装过的及时聊天系统
里面附带了各种常用的功能,比如掷骰子,画地图

李楠
恩,我理解,就像你给过我的那个跑团系统

周耘芃
对对

李楠
不妨,可以列入考虑

周耘芃
嗯,我觉得做集换式卡牌比较困难的地方在于需要收集大量的卡牌数据

李楠
确实
下面我要觉得工作学习不紧的话,我想我们俩建立一个比较好的游戏制作论坛,我觉得现在国内没有一个非常好的
我们只是创始人,文档规章

周耘芃
呵呵,这个要有时间才行啊,论坛管理不好弄
先搞一个博客吧? 然后不定期在上面写点文章?

李楠
我认识非常懂得的人

周耘芃
哦?

李楠
博客的话,因为我们水平真的不咋的,呵呵,其实还是很想请教人的,这个得慢慢想

周耘芃
嗯,是的

李楠
需要考虑清楚论坛到底要做成什么样,什么程度,怎么样吸引人,特别是有水平的人来回答问题
其实想制作游戏的人很多,但是有问题很难找到地方去问

周耘芃
我觉得现在国内网上肯细心钻研的人不多,好多都是在网上乱喊乱叫,结果什么都不做

李楠
确实,CSDN算是个好地方

周耘芃
我觉得渔场的氛围挺好的,CSDN里面有高手,但气氛不好

李楠
CSDN很多高手,可是他们太高了,跟其他人水平差距太大,而一些水平不行的,又喜欢乱嚷嚷

周耘芃

李楠
渔场鉴于我实在打开它太慢……很少上- -

周耘芃
哈哈
嗯,还有一个网站,你试试
http://www.doujinstg.cn/叫同人STG ,里面也有一个板块是讨论stg游戏制作的
但是现在人气不是很旺,大多数人还是习惯去渔场

看同人弹幕test3版,里面有一些东西了,但和渔场比还是差很多

我比较喜欢那种一个人提问,很多人都来提出自己的看法,最后得到一个比较合理的解答,这样一种论坛气氛
或者说一个人做了什么东西,在论坛上展示给大家看,然后很多人来评论

李楠
是这样,渔场的人性格比较一致
但是论坛大了就不行了
渔场发展下去,总有乱的一天,如果一直壮大

周耘芃
是的,在水区也有骂战了

李楠
我见到过这样的例子,中国仙剑联盟
这么4年,就是这样

周耘芃
嗯,这东西难道说只有小规模一条路可以走么?几个同好躲在一起讨论研究?

李楠
只要人多了,总有争吵,这时候就是看管理员水平的时候了

周耘芃
嗯,是的

李楠
中国仙剑联盟有一个叫雨影纷飘的管理员,非常的厉害,他处理的事情没有一个人不服的

周耘芃
呵呵,这人多大了?有40了么?

李楠
厄……其实他刚刚本科毕业而已……

周耘芃

李楠
同好论坛的发展确实很难说……
特别是在水区,毕竟不可能只看这一个东西,哪天看动漫了,大家在水区讨论的多了,就会要求设立板块,那么本身论坛的定位就模糊了

周耘芃
没错,如果说从一开始就不要设水区呢?只有专门的开发方面的板块呢?

李楠
如果我们的目标是游戏设计专门的论坛那,那么就要坚持,也就是说水区大家可以随便谈些什么
但是绝对不会因为大家谈写什么去设一个板块,可能做不大,但是会很专,也会少水

周耘芃
就是死不开新区?哈哈
其实如果是小规模的话,不如就在msn或者qq上建一个群
还有就是因为游戏开发这东西,周期很长,很可能很长时间论坛都没有什么更新,等于是一个如何保持论坛人气的问题

李楠
是这样子,我有想过这个问题的,首先,是要靠老手带动,靠一群肚子里没什么东西的真的是不行的

周耘芃
是的

李楠
然后可以作为一个游戏制作团队组建,交流的平台,除了各种类型游戏的策划制作这些较具体的外,还有关于团队合作

周耘芃
嗯,或者说论坛基于项目来驱动?让论坛会员直接参与到一个个项目制作中来

李楠
游戏制作采用软件工程这些比较抽象的东西的分享,先以有爱的人为核心,完成1-2个高质量的工程,然后以这些工程作为宣传品

周耘芃
嗯 

李楠
对了,今天在会场,看到了两个贩卖同人游戏的摊位,是自己制作的,一个是CLANNAD那样的

周耘芃
哦?有没有跟他们留下联系方式?

李楠
没有……我再去的时候已经收摊了……………………卖光了

周耘芃
啊啊啊啊啊

周耘芃
如果下次再遇到,可以问问他们是怎么做游戏的,用什么工具还是直接用编程写

李楠
他们应该是用制作工具的,他们的重点是策划

周耘芃
哦,是一个团队么?还是就一个人?

李楠
有几个人,不过是一个学校的看起来

周耘芃

周耘芃
对了,上次看Linux的时候,看到了关于linux开发过程的故事
linux是在一个论坛上开发完成的,但是它不是直接采用一个成品作为宣传,而是采用一个半成品作为宣传,然后让论坛上的人加入到修改的行列中来

李楠
其实是有很多值得学习的,但是最大的问题就是,要存在linus这样一个人 

周耘芃
linus本人每天做的是从所有投递来的代码中选择比较好的,更新到项目中

李楠
是的,当然有几个“中尉”负责各个部分

周耘芃

李楠
我也看过LINUX的发展史

周耘芃
我看的那篇文章说,采用这种方法的话,很可能在一开始会遇到很多人说对这个项目感兴趣
但是真正值得收为队员的是那些直接寄来一段代码,说这里也许改成这样比较好的人
我不知道在国内同样采用Linux的方式来做是否可行

李楠
不知这样的方法在中国行的通行不同

周耘芃
嗯,是的

李楠
呵呵,说不定一上来就很BS的开始训斥人了

周耘芃
哈哈
嗯,那么我去干活了

李楠
好,我也去,我等下还要看日语

周耘芃
嗯,好的,下线前互相汇报一下进度吧

李楠

88~

周耘芃
8

01/07/2008

关于功夫熊猫中华元素之研究

场景方面:
彩云图样 莲花 弯月 不相连的高耸山峰(在高处有云雾缭绕) 石林及怪石
木板铺成的栈道 石狮子 登山的长石阶 牌坊 盘龙柱 雕花石栏 沿山修建的石阶栈道 吊桥 竹林

细节方面:
灯笼 竹窗帘 中式家具、厨具(及其在室内的陈设方式) 筷子 麻将 蜡烛 鞭炮 舞龙、狮 纸风车 武功秘籍 玉 传统乐器(锣鼓 笛 二胡等) 动物(龟 鹤 蛇 猪等) 弩弓 桃花 松 针灸 穴位及点穴 胡须 竹杖
面点 豆腐
圆寂 天命 太极 作揖

动作方面:
水上漂 盘腿而坐 使用随手拿到的物品作武器 察觉到敌人从背后偷袭 超高或超远距跳跃

服装方面:
斗笠 马褂 长衫 布鞋

除了电影中出现的,我还添加了几个在整理时自己想到的。电影最后百分之二十的打斗部分因为画面速度快,镜头转换频繁,所以没有仔细弄。

02/06/2008

D&D4E PHB 种族

==========龙人 Drangonborn==========

骄傲、荣耀的战士,
诞生自一位古老龙神之血


平均身高 六英尺二英寸至六英尺八英寸
平均体重 二百二十至三百二十磅
属性修正 +2力量 +2魅力
体型 中型
速度 六格
视野 普通

语言 通用语 龙语(Draconic)
技能修正 +2历史 +2威吓
龙人狂暴 当你受伤时,你的攻击检定获得+1种族修正。
龙族血统 你的医疗波值(Healing surge value)为最大生命值的四分之一加体质修正值。
龙之吐息 你可以使用龙之吐息作为一个遭遇能力。

龙之吐息 龙人种族能力
每当你张口咆哮,龙族的致命力量就会喷涌出来,吞噬你的敌人。
遭遇能力 *
微小动作(Minor action) 近程喷射(close blast) 3
目标 所有区域内的生物
攻击 力量+2对抗反射、敏捷+2对抗反射或体质+2对抗反射
伤害 1D6+体质修正值
    在11级时,攻击加值将增加为+4,伤害将增加为2D6+体质修正值
    在21级时,攻击加值将增加为+6,伤害将增加为3D6+体质修正值
特殊 当你创建角色时,需要选择力量,敏捷或者体质作为此能力在攻击检定时使用的属性。同时,你还需要决定此能力的伤害类型:酸、冷、火、电或毒。这两项选择将伴随你的角色一生,并且不会对此能力的其他效果产生影响。

==========人类 Human==========

野心、逐利、现实——这既是产生英雄的种族,
也是诞生恶棍的种族


平均身高 五英尺六英寸至六英尺二英寸
平均体重 一百三十五至二百二十磅
属性修正 任选一项属性+2
体型 中型
速度 六格
视野 普通

语言 通用语 另外任选一门语言
随意能力(At-will power)奖励 你获得一个额外的职业随意能力
专长奖励 你在1级时获得一个奖励专长,你必须满足此专长的所有要求
技能奖励 你从本职技能列表中获得一个额外技能
人类防御奖励 你的强韧、反射及意志豁免获得+1修正

16/03/2008

贪吃蛇:真三国大战

厄,本来说是连字母,现在又变成这样的东西了。这篇系统设定的作者是李楠,关于游戏背景的两个Option,我们最后决定使用Option2。
如果你仔细阅读这篇设定,你就会发现,游戏的侧重点在于限时迷宫解谜以及资源分配。在设计关卡的时候,需要认真考虑这一点。

贪吃蛇
游戏背景设定:
Option 1:
设定在古罗马时期,具体在第二次布匿战争时期。
在罗马诸统帅与迦太基传奇人物汉尼拔的战斗中,我们传说中的蛇怪许德拉以大蛇(玩家设定名字)的样子出现在了人间他可以选择帮助迦太基人或者是罗马人,以达到欧洲的统一。

Option 2:
设定在中国的三国时期。具体为刘备自称汉中王的时候。
在曹操,孙权,刘备为了王权纷争不断的时候,上古斗神腾蛇现身于人世,它以自己本来的形态,以(玩家设定的名字)的名义,可以选择帮助三方中的任何一方,以达到中国的统一。

基础系统设计:
屏幕为800×600分辨率,分为40×30=1200个格子
初始的蛇有5节,占5个格子。
蛇身有4种:头,粮食,黄金,军队。
玩家只能看到以蛇头为中心5×5格的“障碍”及“食物”的情况。
行动和增加方式同普通贪吃蛇游戏。
移动出了屏幕范围为失败。

地图属性:
地图具有地形的属性,在不同的地形上,蛇的行动速度是不同的。
地形有:
平原,草原:正常行驶速度;
丘陵,沼泽:1/2行驶速度;
湖泊,丛林:1/4行驶速度;
海洋:1/8行驶速度;
高山为障碍。

障碍及食物属性:
障碍分为两种:军队障碍及地形障碍。
食物分为五种:粮食,黄金,征兵处,城镇(可获得前三者),情报点。

在蛇遇到粮食,黄金,征兵的时候,蛇身增加一节,表示增加了粮食,黄金,军队,分别用绿色,金色,蓝色的蛇身表示。
在蛇遇到城镇的时候,会获得指定的粮食,黄金,军队。

在蛇遇到军队障碍的时候,如果拥有军队,则军队的蛇身数量减一,敌军障碍消失。若没有军队,则失败了。
在蛇遇到地形障碍的时候,如果拥有军队,且拥有粮食、黄金,则此三者数量各减一。若没有粮食或黄金中的一个,则军队数量需要减二,拥有的那个资源数量减一;如果只有一个军队,则失败。如果没有军队,则失败。

关卡设计:
玩家遇到的关卡任务有五种情况:
1.绕过所有的敌方封锁,获得一定数量的粮食和黄金。拥有一定的时间限制。
2.绕过所有的敌方封锁,到达某个城镇,获得一定数量的黄金,粮食,及军队,这时敌方封锁线会有改变,而玩家要按照关卡的描述到特定的地点。拥有一定的时间限制。
3.玩家拥有一定的粮食、黄金、军队,而这些资源会随着时间递减。玩家的任务就是在资源全部耗尽前搜集齐地图上所有的情报点
4.玩家得到一个提示,去地图上的某个地方找到一个特定的物品,然后将它带到提示的另一个地方。有严格的时间限制。
5.初始时,绕过所有的地方封锁,搜集一定的粮食,黄金,军队,然后消灭地图上所有的敌军。有一定的时间限制。

进阶系统:(暂定)
1.深化军队系统。将军队细化。不同的军队类型战斗力不同。
2.增加简单的道具系统,比如若装备有船则能在湖泊仍然行动迅速。
3.丰富关卡的任务模式。

可能在细节上还是有逻辑问题的,发现了立刻提出。

另外,我还在写一个叫做Planet Crash的游戏,游戏的主程序已经基本完成,下面要对游戏中的数据和关卡的进程进行调整,然后看看牛肉能不能抽出时间来帮我点几幅象素图。
ScreenSnap
游戏运行时截图,目前从图上看来,只是一堆丑陋的三角形而已。

这是我第三次认真地制作一款游戏。第一次是在高二暑假,当时做了一个命令提示符环境下的解谜游戏,第二次是在南航,那是我第一次接触图形编程,做了一个俯视角的2D射击。这次游戏的类型仍然是俯视角2D射击,游戏的设计只用了一天,但代码却断断续续地写了一个多月。

11/01/2008

[RubyHackingGuide][Ruby源代码完全解读]公开电子版

该书的公式Site
作者 青木峰郎 2002年出版 2004年全书公开 基于Ruby1.7版
本书首先介绍了Ruby的基础,然后从编译原理的角度分析了Ruby语言的实现方式。

电子版
在线阅读
zip格式下载

目次 目录

  • まえがき 前言
  • 序章 序章
第 1 部「オブジェクト」 第一部 [对象]
  • 第 1 章「Ruby言語ミニマム」 第一章 [Ruby语言基础]
  • 第 2 章「オブジェクト」 第二章 [对象]
  • 第 3 章「名前と名前表」 第三章 [名字与名字表]
  • 第 4 章「クラス」 第四章 [类]
  • 第 5 章「ガーベージコレクション」 第五章 [垃圾回收]
  • 第 6 章「変数と定数」 第六章 [变量和常量]
  • 第 7 章「セキュリティ」 第七章 [安全性]
第 2 部「構文解析」[第二部 文法解析]
  • 第 8 章「Ruby言語の詳細」 第八章 [Ruby语言详细]
  • 第 9 章「速習yacc」 第九章 [快速学习yacc]
  • 第 10 章「パーサ」 第十章 [Parser]
  • 第 11 章「状態付きスキャナ」 第十一章 [状态机式的Scanner]
  • 第 12 章「構文木の構築」 第十二章 [语法树的构筑]
第 3 部「評価」 第三部 [评价]
  • 第 13 章「評価器の構造」 第十三章 [评价器的构造]
  • 第 14 章「コンテキスト」 第十四章 [contest]
  • 第 15 章「メソッド」 第十五章 [方法]
  • 第 16 章「ブロック」 第十六章 [块]
  • 第 17 章「動的評価」 第十七章 [动态评价]
第 4 部「評価器の周辺」 第四部 [评价器的周边]
  • 第 18 章「ロード」 第十八章 [读取]
  • 第 19 章「スレッド」 第十九章 [线程]
  • 終章 终章
10/01/2008

Silver Knight 有图有真相

45级白热加狂热的圣骑士,每击伤害490-900,五连击,10%吸取生命。
Silver Knight

目前在噩梦难度第三场景,打都瑞尔一个血瓶没喝就这么对着砍,命中率是67%。

火焰抗性是因为一件暗金的盔甲,增加了最大值。现在毒抗性比较低有点头疼,一中毒血就刷刷地往下掉,但又找不到什么既加抗毒又兼顾其他的装备。好在雇佣兵抗毒75%,还穿了一件物理伤害减16,魔法伤害减14的盔甲。蛆虫洞穴里最后老怪所在的那个小房间,就是靠雇佣兵一个人清掉的,我就在外面给雇佣兵喂了两个血瓶。

21/11/2007

STG 二发

近战状态(改):

斩击:
玩家按下Z键后,角色将使用近战武器进行斩击攻击。斩击的攻击范围会随着时间变化。玩家刚按下Z键时,攻击范围为角色前方120度的扇形,如果玩家按住Z键,则攻击范围将不断缩小,最终将固定为角色前方30度的扇形。
当斩击的攻击范围达到最小时,斩击拥有破坏某些子弹的能力,这要求子弹的体积小于某个值。
当斩击的攻击范围达到最小时,玩家可以按下X键,使用必杀攻击。
如果玩家松开Z键后又按下,整个过程将重新开始。

当角色使用斩击时,其移动速度为未使用斩击时的4/3倍。

必杀:
当斩击的攻击范围达到最小时,角色的背景音乐将响起,屏幕上同时会出现按键提示。玩家需要根据按键提示不断按下X键,每一次按键成功角色都将使出一次必杀攻击。
如果直到角色的背景音乐结束,玩家的按键全部成功,则角色将使出终极必杀。
必杀攻击的威力比普通斩击稍高一些,攻击范围比普通斩击有较大提高。
终极必杀的威力比普通攻击有大幅度提高,攻击范围为全屏幕。
当玩家出现失误或者成功完成整段背景音乐时,斩击的攻击范围回复至最大。
失误的定义是,玩家在某个按键判定范围内未按下X键,或在按键判定范围外按下X键。
如果玩家在背景音乐播放的过程中松开Z键,当玩家再次按下Z键时,整个过程将从斩击范围缩小重新开始。

变量表:
+通常:
{
*生命值
*生命值回复速度
*判定半径
*移动时判定半径
}

+移动:
{
*移动速度
*精准射击时移动速度
*近战形态时移动速度
}

+射击:
{
*射击威力
*射击间隔
*弹幕形状等级一
*弹幕形状等级二
*弹幕形状等级三
*最小狙击体积
*最远狙击距离
*准星移动速度一
*准星移动速度二
*准星移动速度三
*移动时准星移动速度一
*移动时准星移动速度二
*移动时准星移动速度三
*保留时间长度
*连续狙击搜索半径
*连续狙击准星移动速度一
*连续狙击准星移动速度二
*连续狙击准星移动速度三
*移动时连续狙击准星移动速度一
*移动时连续狙击准星移动速度二
*移动时连续狙击准星移动速度三
}

+近战:
{
*斩击威力等级一
*斩击威力等级二
*斩击威力等级三
*移动时斩击威力
*移动时斩击威力等级一
*移动时斩击威力等级二
*移动时斩击威力等级三
*攻击范围(长度)
*攻击范围(广度)
*攻击范围收缩速度(角度每帧)
*最小攻击范围(广度)等级一
*最小攻击范围(广度)等级二
*最小攻击范围(广度)等级三
*最大斩弹体积
}

+必杀:
{
*必杀威力
*必杀攻击范围(长度)
*必杀攻击范围(广度)
*终极必杀威力
}

16/11/2007

STG

作战形态:
a 射击
b 近战

动作:
a  方向键:   移动
    Z键:        普通射击
    X键:        精准射击(按住X键)
    Shift键:   切换为近战形态(按住Shift键)

b  方向键:   移动
    Z键:        斩击
    X键:        必杀

移动:
a 竖直或水平移动:
当玩家按下单个方向键时,角色作竖直或水平移动,每一帧改变单个坐标值。
b 斜向移动:
当玩家按下两个相邻的方向键时,角色作斜向移动,每一帧同时改变两个坐标值,改变量为角色速度的1/1.4。
c 非法操作
当玩家同时按下两个非相邻方向键、同时按下三个或以上的方向键时,为非法操作,角色不作任何移动。

当角色移动时,其判定范围为静止状态的2/3倍。
当角色移动时,其瞄准时间为静止状态的4/3倍。
当角色移动时,其斩击威力为静止状态的4/3倍。
当角色斜向移动或水平移动时,其射出的子弹将向相应方向偏斜。

射击状态:

射击:
玩家按下Z键后,角色开始射击。角色每射出一波子弹后,都有一定的等待时间。在这段时间里,程序忽视玩家按下Z键这一事件。
玩家按住Z键与连续按键将获得同样的射击速度。
玩家的子弹将按照固定的形状飞行。
玩家可通过拾取道具,使每一波射出的子弹数增加以及使等待时间缩短。

精准射击:
玩家按住X键后,角色进入精准射击模式。
a 寻找目标
程序将首先寻找合法的目标。合法的目标必须满足以下条件:1 目标体积需要达到角色最小狙击体积;2 角色与目标的距离要小于等于角色的狙击范围。
当这样的目标存在时,选取离角色最近的一个作为角色当前目标并进入瞄准阶段。
如果这样的目标不存在,角色按下Z键时仍为普通攻击,但程序会持续寻找符合条件的目标,直到玩家松开X键或找到一个目标。
这一阶段是不占用实际游戏帧数的,所有的搜索动作都由程序在一帧内完成。
b 瞄准
当玩家确定了目标后,将对目标进行瞄准锁定。一个十字形准星将从角色身体射出,向目标高速移动,其速度与其离目标的距离成正比。当准星触碰到目标时,目标视作被锁定,射击阶段开始。
当玩家进入瞄准阶段后,程序将停止目标的寻找。即当玩家在瞄准阶段时,当另一个符合条件的敌方出现在离玩家更近的地方,玩家仍会继续对当前目标的瞄准。
在瞄准阶段如果玩家松开X键,玩家将回到普通状态。当玩家再次按下X键时,仍需要从寻找目标开始进行整个过程。
如果在准星向目标移动的过程中,目标不再符合条件(例如目标远离玩家),此时瞄准自动终止,程序重新开始寻找目标。
瞄准阶段所需的时间与角色的瞄准能力值相关。角色的瞄准能力值越高,则准星移动的速度越快。
在瞄准阶段中,玩家即使按下Z键也无法射击,程序忽略玩家按下Z键的事件。
c 射击
当目标被成功锁定后,玩家可以按下Z键进行射击。
玩家的子弹将强制变为沿直线飞行,且拥有指向敌方的初速度。
如果在射击阶段中,玩家松开X键,玩家将回到普通状态。但此时玩家拥有一定的保留时间,只要在这段时间内再次按下X键,且刚才的目标仍然符合条件,那么玩家能够继续对目标进行精准射击。保留时间的长度与角色的能力有关。
如果在射击阶段中,目标不再符合条件,此时射击自动终止,程序重新开始寻找目标。
如果在射击阶段中,目标被玩家打到,程序将重新开始寻找目标。但此时程序将以刚被击倒的敌方为中心展开搜索,此时搜索半径将远小于正常情况的搜索半径。一旦寻找到目标,瞄准目标的准星将从刚被击倒的敌方所处的位置射出,准星移动的速度将有少许提升。在这一特殊的过程中,如果玩家松开X键,则回到普通阶段。

当角色进行精准射击时,其移动速度为普通状态的2/3。

近战状态:

斩击:
玩家按下Z键后,角色将使用近战武器进行斩击攻击。斩击的攻击范围会随着时间变化。玩家刚按下Z键时,攻击范围为角色前方120度的扇形,如果玩家按住Z键,则攻击范围将不断缩小,最终将固定为角色前方30度的扇形。
当斩击的攻击范围达到最小时,斩击拥有破坏某些子弹的能力,这要求子弹的体积小于某个值。
当斩击的攻击范围达到最小时,玩家可以按下X键,使用必杀攻击。

当角色使用斩击时,其移动速度为为使用斩击时的4/3倍。

必杀:
当斩击的共计范围达到最小时,玩家按下X键即可放出必杀。
必杀为全屏攻击,可破坏大部分子弹,并对敌人造成伤害。视角色不同,必杀还可附带某些特殊效果。
当玩家使用必杀后,斩击的攻击范围将回复至最大。


关于近战模式还有可以调整的地方,感觉目前的设定有些单调,并没有突出什么特点。是不是可以加入像格斗游戏那样的“搓招”?

精准射击时移动速度降低是为了使敌方更容易逃离角色的瞄准范围,这时就需要玩家利用保留时间的设定才能继续射击敌方。

23/10/2007

关于东方萌神录的初步研究 二

关于东方萌神录的初步研究 一

我仍然深信这个世界是物质且理性的,人脑的结构不过是神经节点的组合,两个节点之间可以传递不同强度的电流刺激,仅此而已。所以这一切必然可以用严谨的算法表示出来,所谓的创建规则与选择规则,不过都是些较复杂算法的产物。

一 信息在大脑中以图的形式存放,每一个节点只存放两种信息:刺激与印象。
二 刺激是指大脑能够发出的指令,而印象是指大脑对执行这条指令后得到结果的评价。
三 刺激可以是一个具体的动作,比如活动某一块肌肉。也可以是将电流向某一个相邻的节点传递。
三 大脑会选择“喜欢的”刺激,而避免“讨厌的”刺激。
四 只有相邻的节点可以互相传递信息,两个相隔较远的节点只能通过中间节点的过渡实现通信。这也就可以解释为什么脑褶皱多的动物记忆力更好,因为它们的记忆关联能力更强。
五 但是节点间的边可以记录通向“喜欢的”与“讨厌的”两种刺激的路径,从而实现选择与躲避。

一 多个节点组合在一起形成一个记忆单元,记忆单元是大脑储存知识的最小单位。
二 记忆单元的功能是通过节点中存储的信息创造临时的规则。
三 创造规则的过程则是大脑选择“喜欢的”刺激,避开“讨厌的”刺激的过程。
四 这一选择过程并不是简单的权值比较,大脑针对某一个节点展开深度搜索,试图找到当前指令的后续印象。这一部分需要通过更多的观察与实验才能得到进一步的结论。

例子:电击实验中的老鼠。
     遭到电击对于老鼠来说是“相当讨厌的刺激”,当它第一次遭到电击时,大脑并不能立刻将电击与某种特定的行为联系起来,而只是将受到电击这一印象存储下来,而这一节点的指令位则以未知指令表示。当老鼠遭到更多次的电击后,它会渐渐将遭到电击与自己的行动方式联系起来,最终建立一条从“向左转”到“遭到电击”的路径。这之后,当老鼠在选择向左转还是向右转时,这一条路径会让老鼠更多地选择向右转。除非老鼠能够再建立一条从“遭到电击”到某种“极为喜欢的刺激”的路径,即老鼠可能学会“先苦后甜”这一道理。

总结:生物学习能力的高低体现在大脑建立节点信息的速度上,大脑越快生成和受到刺激相关的节点,这一生物就能越快建立选择刺激的路径。生物间智能的高低由大脑在选择节点走向建立路径时的深度搜索能力而决定,大脑的深度搜索能力越强,则生物能够进行更复杂的刺激比较,从而作出此生物个体认为的最佳选择。这一最佳选择确实是建立在生物个体自身的属性上的,即不同生物体对于不同刺激的反应也是不同的,某些生物体的“喜欢的刺激”可能是其他生物体的“一般般的刺激”。

21/09/2007

isolated

I haven't thought things could get so bad.

The life here has nothing to complain. I live in an apartment really well equipped. It has a big kitchen in the basement, when I finished my biscuits that I have brought there I can make some chinese food.

The school is pretty kind. Although when the teacher speaks fast, it becomes a big disaster. I have hamburgers of 6.5CHF(about 40 yuan) and a cola of 2CHF(about 12 yuan) for lunch. If I choose the water in bottle, it cost more expensive(2.3CHF 13.8 yuan). The hamburger tastes not very good but it's the cheapest food I can find here.

The really problem is I can't use my own laptop to go on the internet. What I can use is just three shared computer. Cause I can just login as a student user, I can't install any software or modify any system settings. And the worst, the computer can't display Chinese. Of course, I can't input Chinese either.

01/08/2007

Argo-f 3in1 version

连日了三天,终于搞定了。
下载请点这里,或者这里

创建新人物 
创建新人物

属性分配完成
属性点分配完成

选择初始职业
选择初始职业

明天开始到下周一都要学车,拖了一个多月,目前到电子路考,就快结束了。
战斗部分估计要到下下周完成。