Articles of 可扩展性

我可以使用哪些技术在OpenGL中更高效地渲染大量对象?

你可以把我的应用程序想象成一个非常大的球棍图(或图)。 有时候,这个graphics可能变得非常大,元素的数量甚至超过了屏幕上的像素。 目前,我只是将所有纹理(如GL_POINTS )和行传递给使用VBO的graphics卡。 当元素的数量超过了像素的数量,这是做这个最有效的方法吗? 还是应该在将所有内容交给GPU之前在CPU上进行一些计算? 如果重要,我使用GL_DEPTH_TEST和GL_ALPHA_TEST 。 我做了一些alpha混合,但可能不足以造成巨大的性能差异。 我的场景有时可能是静态的,但是用户可以控制一个典型的弧形球照相机,并且可以平移,旋转或缩放。 在这些操作过程中,性能下降是显而易见的。

Minecraft SMP的规模有多好(或很差)?

有没有人testing并收集了一些有关Minecraft SMP规模如何的数据,并且有越来越多的玩家(达到大量玩家)? 即瓶颈是: 大多数在服务器或客户端或两者兼而有之 如果球员都在同一地区,或者他们在不同的地区,或者他们在什么地方都没有关系

2D开放世界MMORPG; 大地图内存问题

我正在开发一个用于学习目的的2D开放式世界MMORPG游戏,并有一个大地图的问题。 一年前,我开发了2D开放式世界单人/合作社游戏。 它以大块的forms保存地图,当指定的地图块加载时,NPC的AI开始“滴答”。 在我的MMORPG游戏中,NPC AI是由服务器处理的,并且它在某个指定的时间间隔内总是“滴答”。 那是我的麻烦开始的地方。 我希望NPC随意走路。 为了这个工作,我必须检查地图碰撞的每一步,所以我的NPC不会在墙上。 问题是当我有大的地图,例如10000×10000,每个瓦片用6个字节表示,这是大约572MB的地图数据,我的服务器必须在内存中保存所有的时间,我不能加载只有几个地图块,就像在我的单人RPG因为NPC的AI需要随时更新,即使玩家不在附近也是如此。 我的目标是存档地图大小为50000×50000的瓷砖。 我知道它是可能的,因为我看到了巨大的开放世界的二维数据,比50000×50000大很多,我怀疑他们的服务器有20GB的RAM在地图上浪费。 如果有人有任何想法,我可以降低内存使用率,我很想听到你。 在此先感谢,并抱歉我的英语不好

有了这个MMOG体系结构,如何避免服务器closures时丢失游戏呢?

我对游戏devise相当陌生,正在deviseMMOG扑克游戏的游戏引擎架构。 我的主要问题是可扩展性。 Python中编写的旧遗留代码在单个进程上运行。 客户端和服务器使用基于xml的协议进行会谈。 以下是老建筑。 admin -> DB (mysql) <-> backend <-> game-engine + login-server <-> client 我遇到了旧的reddit post和特别的评论 。 我觉得,我需要类似的建筑。 所以我打算与管理员和数据库一起实施以下架构。 后端集群(与db交互) 播放器服务器集群(处理播放器身份validation和客户端事件 gamelogic服务器集群(执行游戏逻辑) redis-cluster(用于caching正在进行的表的状态) 目录服务+路由服务器(所有的集群都会和它通信,所有的通信都是通过它来完成的),最初计划单个这样的服务器,然后再分发,类似这样 ,请参见“分布式目录服务”和“分布式经纪人') 我需要使用Twisted构建它,因为客户端约束和遗留代码库。 在这个架构中,我特别困惑于一点。 假设我在一个游戏逻辑服务器上有多个表,并且它closures了。 我怎样才能解决这种情况,而不会失去游戏?

用于保持带宽低的MMO技术,algorithm和资源?

有没有关于当前MMO如何处理从压缩到客户端处理的动作和移动数据的资源和文档? 任何资源的运动预测algorithm? 我特别感兴趣的是那些有移动性,专注于保持低延迟。还有什么是不同types的MMO(networking明智)的数据包速率和大小? 有没有办法缩小数据包的速度,或者彻底禁用一些数据包,如果玩家无法到达或在以后的情况下看到他们?

有没有办法让一个dynamic的世界,如MMORPG横向扩展?

想象一下,拥有500多名玩家的开放式世界,其数据变化速度可以达到20次/秒/秒。 上次我在一个类似的MMORPG工作,它使用SQL,因此它总是不能查询数据库。 相反,它将所有玩家从数据库加载到内存中作为C ++对象并使用它们。 也就是说,它垂直缩放。 是否有可能使该服务器水平可扩展? 是否有一个数据库旨在同时支持这一数量的更新?

MMO服务器的游戏日志格式

整个群集/分片的游戏事件(而不是错误/debugging日志)的日志对于在现场生产环境中的商业MMO是非常有用的,这为客户服务提供了重要的支持,也是历史分析的手段。 我目前正在使用的项目使用关系数据库来存储所有的游戏事件日志,虽然该方法工作正常,但在我看来,日志的只读,按时间顺序性质将允许更有效的存储格式。 不过,我不知道从哪里开始学习构建自定义二进制日志格式。 您有什么创建自定义日志格式的经验,或者有关这个主题的任何推荐论文/文章?

我应该保持login服务器与游戏服务器分开吗?

我正在考虑制作一个MMO服务器,而我一直在研究其他游戏如何构建他们的networking。 我注意到的事情之一是总是有一个login服务器,然后是游戏服务器。 我现在还在决定是否应该这样做,但我首先想听听一些意见。 这有什么好处,login服务器如何与游戏服务器通信来处理login?

在游戏引擎中添加选项不使用高级技术是否有理由?

我一直在开发游戏引擎,一直在发现和阅读各向异性过滤,环境遮挡,抗锯齿等游戏技术。 通常在游戏中,您可以打开和closures这些设置。 但是,如果这些设置只能增加正数,那么是否有理由在开发者的游戏引擎中为这些设置添加切换值? 我知道性能是一个主要因素,但是有什么其他的原因,为什么这些设置总是可以改变?

如何在MMO中​​实现负载均衡?

我相信这是MMO的一个普遍要求,就是可以通过多个服务器来处理单个碎片或领域,以减轻负载。 我很好奇如何做到这一点,同时保持统一的一致的世界,所有的玩家和所有的NPC都可以互动。 我的问题是如何在MMO中​​实现负载均衡? 任何关于如何提高我对这个问题的知识的任何链接,书籍或一般信息,也表示赞赏。