English 中文(简体)
数据库设计——2d英尺的电网
原标题:Database Design - 2d tile grid
  • 时间:2009-10-21 10:57:55
  •  标签:

我玩了一个网游戏,而后又称作种族争斗。 它采用了2文本制。 我感兴趣的是地图。 该地图在X方向为255个断层,在Y方向为255个。 这些地图共有5个。 但令人惊讶的是,每个数据都包含这么多。 每个岛屿都有自己的王国,每个王国将大约50个变量。 之后,每个政党都包含有健康条码和数据,而这些数据是人们所铭记的。

如何设计这样的东西。 我怀疑每一个徒劳无益。 我假定,你会有一张地图,1 列出任何内容,但我并不肯定。 我正在处理这样一种情况,即我需要类似的设计,但不知道何时开始。

感谢!

最佳回答

Click here for plan file

我建议将以下结构与我的计划结合起来:

  • tiles saves the amount of tiles in general, each tile has ONE id, the size of a tile is hard-coded: 5*5 px for example.

  • tiles_meta saves the name, and a short "tooltip" description. META is self-explainary ;)

  • tiles_content_low contains a minority of the the tile. Here you should include the things a user will access many times, but keep it minimal.

  • tiles_content_medium contains such things as "here item xy can be found with a chance of 12%". Create an addition "loot_table" with items. The "item_hash" is a hash of all item ids of the items which may drop.

  • tiles_content_large is the biggest table. Here you store on which coordinate inside of the tile the player is located, where he looted item number 1234 etc.

table: tiles
id

table: tiles_meta
id
tile_id
name
desc

table: tiles_content_low
id
tile_id
owner_id
go_id

table: tiles_content_medium
id
tile_id
mob_hash
item_hash

table: tiles_content_large
id
tile_id
savegame

If you want to build a tile_set or "map" use JavaScript, do not generate a whole map on your server, just pass the tile date to the JavaScript. This will save much performance.

问题回答

首先,我要确定这样的地图。

MAPS
Id  
Name  
Xmax  
Ymax

这里,你可以通过给地图一个名称和最大尺寸来界定地图。 你们可以把最大层面用来限制这些tile。

TILES
Id
MapId
X
Y

然后,建造一个无能的地产表,以拥有与无能相关的所有财产。

TILEPROPERTIES
Id
TileId
Name
Value

这将是我的执行,并不意味着应该为你们工作,但希望你们能够开始工作。





相关问题
热门标签