为了能记录开发各种中想到的各种思路和遇到的各种问题,同时也为了在开发过程中结交更多志同道合的友人,我决定在贴吧书写自己的开发笔记。所以此文是本人开发过程中的个人思路记录,而并非教程。
因为目前传统PC MUD游戏已经有很多现成的版本可以玩了,也没有必要在去搞。而且,考虑到便捷性肯定要做手机版的,手机版来说最简单的也就是做WAP网页版了。而且在下以前也做过很长时间的B/S架构的项目开发,故我们决定制作手机网页文字游戏。
因为之后主要是自己和朋友们玩,对承载没有太大要求,我们决定使用我们擅长的php做后端开发,以目前php的运算能力来说其实是足够的。考虑到游戏的速度,我们会配合memcache尽量避免I/O操作。另外,考虑到之后可能会继续开发APP所以我们使用MVC的开发模式,方便以后配套C/S架构的二次开发。
这个问题,我按照以前做APP项目的经验,在每个角色登陆的时候在服务端给他生成一个随机数。用户每次完成重要的动作前先检查SESSION中的随机数,动作后就重新生成一个随机数同时存在服务端和SESSION中。这样如果角色二次登陆,系统就会在新连接的SESSION中和服务端的memcache中生成新的随机数,这样老连接SESSION的随机数就过期了。这个办法不知道算不算聪明,毕竟看了现在几款在做的wap游戏都没有这样做。
现在主要记录的开场剧情程序本身的开发笔记,并非讨论开场剧情的故事情节,目前还没有到剧情设计的阶段。为了便于以后加入剧情也为了方便日后这套程序可以方便的改版各款新游戏,所以从开场剧情开始,我就会尽力把所有的内容做成数据库可控制的版本。开场动画我是这样设计的,用户登陆后判断他时候已经有设定名字,如果设定了没有设定名字就进入开场白程序。
开场白的数据库栏位结构为:ID、内容、图片。启动开场白函数后我们会把所有的数据全部读取到SESSION中,每个页面会显示一条开场剧情,然后给出下一段的链接。当到最后一个段落后,就会给出设置玩家名字的链接。
暂时写这些,之后的开发过程中有需要记录的地方我都会开帖记录。就像开篇所言,发文的目的之一是结交同好,因为即便是简单的WAP文字MUD游戏,也不单单是一个程序就可以搞定的,还要涉及到剧情,属性设置等各种非技术性的问题,如果您擅长这些可以留个联系方式或者私信在下,我定会诚心请教。
另外,特别说明:在下开发这个游戏绝对只是兴趣驱动,本人有一份丰厚的收入,绝对不会考虑要用这游戏去赚钱,所以即便以后开放运行,也只是邀请同好一起游戏,绝对不会收取一分钱。
地图在下是用一个专门的数据表来存放,每个场景一行数据。会记录这个场景的名字、图片、简介,最重要是会记录这个地图各个方向的出口所关联的场景编号和名字。比如北方关联的是ID为「3」的场景「张府大院」,这样每个图的每个出口都需要专门去设置,虽然以后做内容的时候可能会麻烦点,但是逼近比让程序去解析各个地图的关系会降低运算量。每个地图我会有一个栏位来记录这个地图所对应的特殊功能的脚本,这样方便二次开发,当这个地图有特殊功能就会加载对应的脚本。
另外,我会单独做两个表来关联每个地图的NPC和掉落(如果掉落在地上的话)。
另外,如果有朋友要联系我一起开发,可以把联系方式发贴吧私信给我,我都会看到的。
「武功看起来登峰造极。」是显示等级,这里重点说下,我数据库中不会记录玩家的等级,只记录经验点数,经验的叫法也可以自己定义,系统获取玩家经验点后会换算成等级。
「健康状况非常好。」是用最大血量减去当前血量的差来判断的,差越来大状况约差。而最大血量也是用经验计算出来的,公式可以任意修改。
「江湖称号」和「官家爵位」的名称都可以在数据库中进行自定义,方便以后设定和修改。不同的是,同一时间一个玩家只有一个爵位,但是可以有多个称号备用。
「内功」和「身法」都是附加属性,目前的核心框架可以无限添加其他的附件属性。我目前附件属性是通过玩家的经验按照一定公式算出一个基本值,然后在加上数据库中玩家该属性的修正值(天赋?)进行计算。之后写完装备系统(ITEM SYSTEM)后,还会计算装备的修正值。