我的团队计划使用Javascript,CodeIgniter和MySQL为后端创建模拟游戏。
它基本上是基于点击的,即:将有按钮用于诸如吃,玩,学习等活动,并且在游戏环境中,一天将包含3个阶段,白天,中午,晚上。对于每个阶段,用户可以在这些活动之间进行选择,这些活动将增加某些角色参数(智力,焦点,乐趣等),然后游戏将进入下一阶段。一旦到了晚上,游戏将进入第二天。
所以我需要有关如何保存游戏进度的反馈。这就是我的想法:
用户(显然)会有一个表格,其中包含用户的数据,包括参数/统计数据,金钱等。您认为统计数据等必须分开到另一个表格,因此会有历史记录统计数据增加了吗?
对于保存,我正在考虑使用Logs表来记录用户的每个活动。因此,如果在第1阶段(阶段日)用户选择Eat,我将或多或少地插入此日志表:user_id = 1,day = 1,phase = 1,activity = eat。因此,例如当用户停止播放并在第1天晚上之后退出游戏时,数据库将具有:
user_id = 1, day = 1, phase = 1, activity = eat
user_id = 1, day = 1, phase = 2, activity = play
user_id = 1, day = 1, phase = 3, activity = sleep
当他们继续游戏时,我将从此表中读取并获取此user_id的最新行,并在检查最新行是第1阶段第3阶段后,游戏界面将显示第2天阶段1.但是,这意味着一天的阶段必须从一开始就固定,所以我不能在这些阶段之外包括随机的额外时间阶段(将其视为增加统计数据的额外机会)。
那你觉得怎么样?我希望解释清楚。
答案 0 :(得分:1)
我认为你走在正确的轨道上。我不明白为什么你不能将钱统计数据存储在用户表中,除非你想跟踪用户的历史或进度......
但作为程序员,你总是想要提前考虑,你将来会使用这些统计数据吗?对于游戏特权等...所以它可能不是有价值的数据......但是MySQL可以处理数十亿条记录......所以我不担心推动MySQL的极限...因为如果你这样做那么你的游戏已经非常成功。
如果是我,我会为游戏动作设置第二张桌子并xref。如果你有特定的东西需要跟踪,你也可能想要使用单独的表......或者你可能不会......这些选择取决于游戏的发挥和/或开发的方式。
对于在线游戏,我也会考虑使用MySQL的存储过程(MySQL 5 +)...这很容易弄清楚...它是一个可以存储逻辑的函数(如果语句等)&将SQL存储在mysql服务器中,并从你的php mysql查询中调用这些函数,就像普通的sql语句一样...这将允许你一次运行多个SQL语句... IE。更新,选择删除...在一个功能......等...我想这将对游戏开发非常有用。
如果您查看此Google Search:它目前是第四份文档,标题为 MySQL存储过程,这是一个非常好的存储过程指南,它帮助我开始。 ..这是一件轻而易举的事。我试图找到MySQL网站上的直接链接,但它已经有一段时间了,所以我不确定它现在的位置。
祝你的项目好运。