游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1869|回复: 0

游戏物品ID分配器的设计

[复制链接]

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2011-3-2 14:17:00 | 显示全部楼层 |阅读模式
RT,由于是初学者,对这个ID分配器不是很了解,在设计的时候遇到了很多问题。
最先想到的就是设置一个ID分配池,然后对其进行操作,当需要id时从中提取,反之让他进行回收:
class IdAlloc{
    TypeT pool_;
    unsigned int low_;
    unsigned int high_;
    unsigned int allocId(){
        // get id from pool_
        ...
    }
    bool recyId(const unsigned int& ){
        // put id into pool_
        ...
    }
};
假如pool_利用栈实现,经过不断的分配/回收后,可能这个pool_会变得越来越臃肿,随着游戏时间增长,内存也会变得紧张,因为被回收的id要远远多余被利用的id,而这些id都是在pool_中的,在id连续的情况下,也许利用low_,high_来限制id分配的范围能够缓解这个问题,但是当分配/回收后的id不是连续的,那么low_,high_就相当于多余了,请问该如何去更好的实现这个id分配器。或者怎样去改进优化整个游戏的id分配系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-6 14:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表