游客:
注册
|
登录
|
会员
|
论坛设施
菠菜堂
CW马场
宠物中心
社区银行
社区婚姻
勋章中心
|
帮助
中国网页游戏论坛
»
webgame研究所
» 讨论一个关键点的问题,把多少用户信息放在服务器端才好?
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
支持: 0 | 反对: 0 |
打印
|
推荐
|
订阅
|
收藏
标题: 讨论一个关键点的问题,把多少用户信息放在服务器端才好?
本主题由 蕾歌薇儿 于 2007-8-11 00:53 提升
flymagic
游戏官方特派
UID 22434
精华
2
积分 2720
帖子 189
威望 3
现金 4209 银币
金币 50 金币
阅读权限 100
注册 2007-4-20
状态 离线
#1
使用道具
发表于 2007-7-19 15:53
讨论一个关键点的问题,把多少用户信息放在服务器端才好?
OK,我也是一个Webgame程序员,这个问题一直得不到什么好的参考。
我现在在制作一个类似于《OGAME》的战略游戏,关于这个问题我做了几次调整,在以前,我只保存用户的一些简单信息,比如城市的ID什么的。等到使用时再进行查询。可是我觉得那样很没有必要,所以我现在的做法是把玩家整个城市的信息都载入到服务器端。我在做一些判定的时候,比如说造一个兵种需要哪些设施的时候,就不用去查询数据库了。
不知道各位是怎么做的?
还有,怎么样防止一个账号在两地同时登陆呢?我现在还没有解决这个问题,所以在Session里面的数据我是不以为准的。比如说花费金钱等的时候,我每次都要到数据库验证。
PS:我使用的是ASP.NET。
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
andyllr
骑士
UID 4116
精华 0
积分 1004
帖子 108
威望 0
现金 2992 银币
金币 0 金币
阅读权限 50
注册 2006-11-1
状态 离线
#2
使用道具
发表于 2007-7-19 16:04
.net我不懂,但开发原理是一样的。
造兵需要哪些设施这很明显是逻辑层的东西,是后台控制的,跟库什么关系?数据库是不做逻辑判断的,只负责存储数据。
花费金钱的验证不需要访问库,可以先根据session的信息去判断是否可以显示“建造”按钮“,但提交数据时肯定要访问库的,并且在服务端要对提交数据做判断的。因为增,删,改等操作不能只在Session里执行。session里只能是对一些get方法使用时提高速度。
[广告]
论坛投票锁帖系统(主题帖投票)启用,会员可以控制帖子的关闭与否
flymagic
游戏官方特派
UID 22434
精华
2
积分 2720
帖子 189
威望 3
现金 4209 银币
金币 50 金币
阅读权限 100
注册 2007-4-20
状态 离线
#3
使用道具
发表于 2007-7-19 16:22
你没明白我的意思。造兵需要某些设施,设施的建造得怎么样,当然每个玩家都不同。如果只保存玩家ID,那么在建造的时候就要查询一次数据库,获取玩家目前的设施状态。如果把玩家建造的设施在第一次登陆时就载入到SESSION中,那么就省去一次查询了。
对了。还有个问题。你们是怎么样设置建造设施的?
我的方法是玩家建造了一个设施之后,就向数据库中插入一条数据(放在专门的表中),然后每个回合(我的游戏是按天算的)查询一次这张表,得到目前完成的建筑,再修改数据。不过,这样做的话,建筑状态无法在SESSION中显示出来。
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
andyllr
骑士
UID 4116
精华 0
积分 1004
帖子 108
威望 0
现金 2992 银币
金币 0 金币
阅读权限 50
注册 2006-11-1
状态 离线
#4
使用道具
发表于 2007-7-20 09:03
你最开始问的是“造一个兵种需要哪些设施”,我当然理解为一个写死的逻辑了
,不过你这么做没有错,最开始就把状态写入SESSION是好习惯
。不过记得每次状态变化要和表同步啊。
我没写过游戏,而且我不清楚你的表结构如何设计。
你是建一个用户表,建筑表和一个用户建筑关系表呢。还是不用关系表,直接建一个用户建筑状态表呢?
[广告]
论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
flymagic
游戏官方特派
UID 22434
精华
2
积分 2720
帖子 189
威望 3
现金 4209 银币
金币 50 金币
阅读权限 100
注册 2007-4-20
状态 离线
#5
使用道具
发表于 2007-7-20 10:47
用户表只是一个账号表。
不过城市表包含了城市的几乎所有信息。包括建筑、物资等。
因为这个游戏生产系统比较复杂,资源和工厂用另外的表。每个一条记录。
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
flymagic
游戏官方特派
UID 22434
精华
2
积分 2720
帖子 189
威望 3
现金 4209 银币
金币 50 金币
阅读权限 100
注册 2007-4-20
状态 离线
#6
使用道具
发表于 2007-7-20 10:48
因为我没有开发过其它类型的WEB应用,一开始就做游戏了。所以也不清楚其它人是怎么做的。
SESSION存放大量的信息不会出问题吗?会不会引起服务端不稳定之类的?
[广告]
web棋牌市 6.16内测开启
fieldwind
版主
UID 34106
精华
3
积分 9720
帖子 1014
威望 10
现金 6996 银币
金币 0 金币
阅读权限 120
注册 2007-6-28
状态 离线
#7
使用道具
发表于 2007-7-20 10:49
如果把玩家建造的设施在第一次登陆时就载入到SESSION中
你想过没session占用服务器内存的问题?减少一两次查询, 换来一堆内存占用,你认为值得??
[广告]
《英雄之门》,了解怪胎美女、非人待遇的经历
wymsbqwq
骑士
UID 21275
精华 0
积分 1284
帖子 642
威望 -1
现金 2824 银币
金币 0 金币
阅读权限 50
注册 2007-4-12
状态 离线
#8
使用道具
发表于 2007-7-20 11:00
不懂,等专家解答
[广告]
论坛投票锁帖系统(主题帖投票)启用,会员可以控制帖子的关闭与否
flymagic
游戏官方特派
UID 22434
精华
2
积分 2720
帖子 189
威望 3
现金 4209 银币
金币 50 金币
阅读权限 100
注册 2007-4-20
状态 离线
#9
使用道具
发表于 2007-7-20 11:48
这就是难题了。时间换空间,空间换时间是程序中永恒不变的话题。
我城市信息大约为10K,如果1000用户的话,需要100M内存?这样想一下似乎也很小。
[广告]
论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
fieldwind
版主
UID 34106
精华
3
积分 9720
帖子 1014
威望 10
现金 6996 银币
金币 0 金币
阅读权限 120
注册 2007-6-28
状态 离线
#10
使用道具
发表于 2007-7-20 11:55
…………
你以为你放个网站上去,就SEESION占内存的?
你不如去写个可逆的简单点的加密算法,COOKIES保存在客户端,读取的时候,再破译回
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
andyllr
骑士
UID 4116
精华 0
积分 1004
帖子 108
威望 0
现金 2992 银币
金币 0 金币
阅读权限 50
注册 2006-11-1
状态 离线
#11
使用道具
发表于 2007-7-23 09:13
QUOTE:
原帖由
fieldwind
于 2007-7-20 11:55 发表
…………
你以为你放个网站上去,就SEESION占内存的?
你不如去写个可逆的简单点的加密算法,COOKIES保存在客户端,读取的时候,再破译回
这个看开发人员习惯了,不过呢,我很同意你之前的说法,一般数据量和连表少的话,算法写的好一些,就算多几次库查询也不会差很多。
BTW,我一个同志的名言:IDE用多人,SESSION这个单词肯定会拼错
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
risingnox
老兵
UID 36542
精华 0
积分 124
帖子 34
威望 0
现金 2548 银币
金币 0 金币
阅读权限 30
注册 2007-7-14
状态 离线
#12
使用道具
发表于 2007-8-10 10:31
session要考虑的就是服务器文件系统的压力!
当很多session的话,还是把session保存在数据库里比较实在一些。
1000个1k的session文件会拖慢服务器速度了。而且查询起来也费时间。
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
有只河马
新进市民
UID 21010
精华 0
积分 46
帖子 4
威望 0
现金 2477 银币
金币 0 金币
阅读权限 10
注册 2007-4-10
状态 离线
#13
使用道具
发表于 2007-8-10 16:02
QUOTE:
原帖由
flymagic
于 2007-7-20 10:48 发表
因为我没有开发过其它类型的WEB应用,一开始就做游戏了。所以也不清楚其它人是怎么做的。
SESSION存放大量的信息不会出问题吗?会不会引起服务端不稳定之类的?
会!
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
dogvane
勋爵
UID 22711
精华
6
积分 7234
帖子 139
威望 13
现金 7737 银币
金币 2 金币
阅读权限 60
注册 2007-4-22
状态 离线
#14
使用道具
发表于 2007-8-10 20:56
对于楼主的问题我想问题不大。
1.Session里能放多少数据,我认为全部放上去是可以的。不要怕,现在内存是白菜价。
不过需要注意的时,Session里的东西仅用于读取,不可用于写入,即任何操作后,如果数据发生改变都应将数据写入数据库,防止当应用程序崩溃后,数据丢失。
2.关于同一用户在两个地方同时登录的处理方案:
a)在登录时判断Application里是否有同一个用户,如果有,强制退出前一个用户的Session,这个有点像Travian
b)用户数据不保存到Session,而是保存在Application,Session只保留一个用户ID,要用到用户数据的时候,根据Session的用户ID去Application里找。Session过期后,再从Application里删除。当然如果两个Session都访问,则小心Session过期后删除顺序的问题,第一个退出的并不从Application里删除,只有最后一个Session退出时才删除Application里的数据。
[广告]
论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
darkdawn
新进市民
UID 54079
精华 0
积分 22
帖子 3
威望 0
现金 2486 银币
金币 0 金币
阅读权限 10
注册 2007-8-19
状态 离线
#15
使用道具
发表于 2007-9-2 15:59
处女帖。我这里也还有一个问题,放到这里一起问吧
关于如何精确计算战斗结果,比如部队是混合的情况,是首先计算出谁先损失第一个兵再扣取双方伤害,然后移除掉死亡的兵的战斗力,再开始重新计算,直到全部计算完成,这样理论上是很精确的,但是我担心有性能上的问题。
我认为这是个基础问题,如果实现的话,这样可以让部队更加合理,可以根据武器防御自定义部队,增加可玩性。
[广告]
多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
sizlan
骑士
UID 103043
精华 0
积分 1560
帖子 498
威望 0
现金 1932 银币
金币 0 金币
阅读权限 50
注册 2007-9-30
状态 离线
#16
使用道具
发表于 2007-10-1 09:41
目前没开发过要求那么多人在线的东西过,我都是全部使用数据库,session也就是id用吧。所有的判断都在php里。
问题二 是否可以使用ip数据库?我们认为不同的ip是允许的,但是同时间ip的物理地址不同就是有错误了,不是代理就是多人用一个帐号。
[广告]
web棋牌市 6.16内测开启
投票
交易
悬赏
活动
当前时区 GMT+8, 现在时间是 2008-7-24 19:54
沪ICP备06036464号
Powered by
Discuz!
5.5.0
Licensed
© 2001-2007
Comsenz Inc.
Processed in 0.101626 second(s), 11 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
Chinese Webgame BBS 中国网页游戏论坛
-
Archiver
-
WAP
界面风格
----------
Discuz! 5 Default
-VC-Mirage-矢车菊
cvbbs
似水流年
cwebgame
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
菠菜堂
CW马场
宠物中心
社区银行
社区婚姻
勋章中心