发表于: 2016-09-26 11:28:27
1 2126
今天完成的事情:今天杨旭师兄给我们讲了些关于游戏开发的事情
①redis:首先,redis是一个key-value存储系统,mysql是把全部数据存储在硬盘中的,属于持久层,而redis是把常用的部分数据缓存在内存中的,由于寄存器——高速缓存——内存——硬盘,从快到慢,相邻两个的差一个数量级,所以对redis的CRUD操作会比对数据库操作快很多,达到对经常用的道具的快速响应,然后每隔一段时间(通常是1-2min)把redis的数据同步到数据库中。比如2亿条数据,单个数据库的承压是两百万条记录,所以需要分成100个数据库,每个数据库里需要有十个表。
②单机游戏一般用lockstep来强同步,比如CS,十台机器同时在局域网内对战的时候,保证其中某个人打了一枪,其他人的电脑要接收到这颗子弹,也就是服务器只做转发,不做其他处理。单机一般用短链接。
③多人在线的游戏一般用长链接来保持连接的状态。
④OpenID也是存在数据库中,可以根据OpenID的哈希值对1000取值来确定用户的登录信息。
⑤玩家的数据一般 通过Map<key,value>的形式保存在数据库中,这个map又可以作为另一条数据的value,从而形成map嵌套的方式存储数据。
⑥后面杨师兄做了一个总结:首先要知道数据的数量和类型,再用相应的容器来存取,比如map、list再用对应的方法来解析。
明天计划的事情:继续做任务
问题:网上说map嵌套会造成程序的执行效率变低,是这样吗?又是如何解决的呢?
收获:对游戏开发的流程了解了一点。
评论