手机网游 任务系统的软件设计

[复制链接]
查看11 | 回复5 | 2010-11-26 12:12:44 | 显示全部楼层 |阅读模式
我公司要做一款android上的网络游戏,我做里面的服务器端软件,使用JAVA。这是我第一次写游戏软件。其中任务系统难住我了。如何设计才能更有效?
比如,最简单的打怪的任务,我不能每消灭一个怪,就去任务表里看看是不是任务怪吧,是就加一,不是就跳过。。。 这样总觉得效率很低。
还有,比如护送任务。总不能他每进一个场景我就判断一下吧
其他还有探索,对话(和N个人对话),采集等等的任务,晕菜了。
这个任务系统的软件架构应该是怎么样的?现在是一头雾水。各位大侠给我出出招吧。
我们在服务器端没有使用脚本,都需要写在程序里。接完任务后,这个用户的任务如何触发,如何处理,真是想破脑袋了。。。。。
大家的回答对我很有启发,但是,还是没解决任务中我如何统计的问题,看了看,是我没问清楚。
比如,用户接了一个打怪的任务,然后他每次打完怪,我都查看一遍任务列表,看看是不是任务怪??
也就是,如何触发任务进程的修改?
推荐的答案不能解决我的问题啊。 哪位大侠知道这个???

回复

使用道具 举报

千问 | 2010-11-26 12:12:44 | 显示全部楼层
没做过游戏,但是我感觉是这样的你将你的任务流水号和当前遇到的怪ID发送给服务端,服务端接受后给出结论(表结构应该不算复杂),但是这个过程应该单独建立线程,不要干扰进场景的过程,其实这个怪是不是任务怪用户只在两个情况下关心,一个是可视怪的情况下,将鼠标移到怪身上,二是杀完怪以后要求捡东西,在进入场景时,所遇怪是不是任务怪对用户来说是无关紧要的,你完全可以利用这段时间单独开个线程得到你要的结论,代价应该不是很大
回复

使用道具 举报

千问 | 2010-11-26 12:12:44 | 显示全部楼层
任务系统分为很多种,常见的任务的触发一般简单分为用户行为激活和事件激活两种,简单的说,前者依靠用户的行为来决定任务状态(激活或完成或结束),后者依靠游戏内部的场景事件来触发;以你提到的打怪任务来举例,“消灭一个npc怪”为一个任务事件,从而通过该事件激活对应的任务,而你的任务数据结构的设计,一般为:task_id task_event...等,这种关
回复

使用道具 举报

千问 | 2010-11-26 12:12:44 | 显示全部楼层
像你说的,不仅仅游戏,支持黑莓的软件,相比有着开放式SYMBIAN系统的NOKIA机器,太少太少了,我以前用的是N70,机器里装了各种五花八门的软件,而且有些软件属于相当实用的了,比如区号秀和公交查询,游戏嘛,网络的单机的,下了20多个,有些甚至还可以让你上瘾,如果你偏重娱乐,劝你还是继续N72吧.说到娱乐,我现在的BB8300基本上也就个电子书,MP3
回复

使用道具 举报

千问 | 2010-11-26 12:12:44 | 显示全部楼层
这种东西还要你们公司重新设计,你的老板也真是头大。自己开发 维护游戏引擎的成本太高了,还不如直接购买省事。最容易的就是购买棒子的东西回来做汉化。----------------------------------------------------------接受任务的时候 就把任务所需要的场景和条件分发给用户(表,字段),即使是返回服务器查询,
回复

使用道具 举报

千问 | 2010-11-26 12:12:44 | 显示全部楼层
多线程.建立线程池.根据任务事件开启线程.android系统并发控制不好,所以控制并发数也很重要.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行