游戏中产生全局对象惟一ID的方法

最近闲来无事,一直在各大网站上瞎看,在http://www.gameres.com/上看到了许多关于游戏设计的心得,收益良多。总结一下关于游戏中产生全局对象惟一ID的生成方法。希望以后有所用。。。。

1.来自:http://blog.csdn.net/herm_lib/article/details/6398373

网游中,角色ID、公会ID和道具ID等一般设计成全局唯一。这样做,一个便于跟踪这些对象的生存状态;另外一个是合区不会产生冲突。

用大区ID+大区内服务器ID+时间+生成序列生成一个64bits的数字作为全局ID,其中0表示非法的ID。

 

    globalID = clusterID(8) + zoneID(8) + time(30) + seq(18)

time(30)以秒为单位,可以表示34年。

seq(18)是262144,也就说1毫秒内可以生成262个ID,5us一个,应该足够了。进一步讲,如果1s内,seq重复了,就生成0,表示生成失败,下一秒重试就行了。


2:boost的uuid也是不错的选择,这里就不一一列出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值