“星海传奇”目录存档

无限地图实现,无限大的地图实现原理

2010年07月5日,星期一

终于,在前天把地图做出来了。

它是一个无限大的可自动扩充的地图。理论上它可以管理的区域为2^63 * 2^63 格。格这个单位可以是像素,格子,或者其他。

实现原理是树,使用树形结构从根一路扩展到树叶,自动搜索,自动添加节点。

每个地图区域的获得需要17个节点的搜索,效率上看似乎有些地方浪费了,不过可以从缓存方向解决这个不足。

地图的存储使用nosql数据库,所以它支撑这种存储方式。

星海传奇,世界模拟器

2010年06月2日,星期三

如果抛弃玩家的操作接口,星海传奇就是一个自然发展的世界,当然需要给里面每一个功能单位添加AI。

世界的主体是星系,星系内有各种对象,主要的对象是移动要塞,次要的是NPC,再其次的是星系物体。

模拟要素一,地图:

星系很大,需要保存的东西虽然不多,但为了可能存在的无限扩展地图,需要定义一种高可扩展的地图。我在之前的博客有介绍过。

模拟要素二,时间:

既然是一个世界,那么我们需要处理世界中的大大小小的对象行为,时间控制以任务的形式,由任务调度来执行。

模拟要素三,事件:

世界中对象的状态改变由监听器来交互,感兴趣则监听状态否则不管。

模拟要素四,对象:

世界基本对象构成,星海传奇中,数据存储以对象为基本单位,基本处理单位也是对象。

该改一改不切实际的想法了

2010年05月20日,星期四

忽然发现,我对项目的要求太宽太泛了,好像不一次开发出承载100W同时在线就不能活似的,搞到现在,结果就是阻碍重重却无法看到产品。

我该检讨,该改变做事方法,由小到大,积少成多。

星海传奇在我的脑海中是个奇大的世界,可是它需要解决的技术问题不是几天就能解决的。好吧,我会做个规划,将可替换的东西使用简单的实现或者开源项目来解决。到了该为星海传奇添加roadmap的时候了。

星海传奇——星系动态分区管理设计概要——动态地图

2009年12月13日,星期天

一个星系理论上可以容纳无限玩家,那么星系内的管理将是个挑战。

普通webgame,大多采取的是分场景的做法来避免广播的浪费。

在得到解决方案之前,本人也做过分场景的设计,在否决后有做了以玩家为分区的中心的设计,仍然否决,最后决定以坐标段为一个基本管理区的设计来实现动态地图。

描述:

将用户的当前区域坐标(x,y)进行处理,得到用户所在的管理区。uint a=x/z , uint b=y/z。将a,b连接,得到用户所在的管理区键,将用户存储到管理区。当用户发生动作的时候,只需要取得所在管理区和相邻的管理区广播消息即可。

星海传奇——服务端工作内容。

2009年12月13日,星期天

服务端的总体设计工作基本完成,剩下的内容将不断的在实现中完善。

部署:

1.网关:gateway

2.登录:login

3.管理:manager

4.运行:runner

5.数据:data

(全文…)

星海传奇-UML-进入星系

2009年11月28日,星期六

做设计,做架构,流程逻辑是最烦琐的。本功能的活动图花了整整一个下午,不停歇的思考与完善。有兴趣的朋友点进去看看。

(全文…)

星海传奇-(逻辑结构)

2009年11月19日,星期四

逻辑结构

星海传奇-(游戏对象)

2009年11月19日,星期四

对象层次

星海传奇-(游戏描述)

2009年11月19日,星期四

这是一个养成+战争的游戏。

玩家拥有自己的要塞,要塞可移动,而且它是最基本的可发展的可扩张的单位,能装备战斗模组进行战斗,可装备能源收集模组进行能源采集,有食物生产模组,进行食物的生产,还有战机模组,能生产战斗单位进行攻击和守卫。

战斗攻击方式有激光,火炮,导弹,无人机四种。

要塞的模组建造需要有程控蓝图。而蓝图需要购买或者从npc获取。

星海传奇

2009年11月18日,星期三

源于半年前的一个策划:星海纪事。

其实,星海传奇只是星海传奇的改进版。

目的是要写一个策略加时时的网页游戏,这个目的和星海传奇一样。玩家没空就上线看看,分派任务啥的。有空就上线打打怪,pkpk。

联网游戏,它的核心玩法就是pk。星海传奇的核心玩法是战争。而战争的根本原因是资源的缺乏,玩家要发展,需要资源,那么在有限的资源情况下,唯有战争能让玩家发展。

星海传奇玩的就是玩家战争与发展。