Questions tagged «server»

父计算机负责处理与多个客户端连接的交互,这通常是在线游戏中遇到的。

5
游戏中的演员应该负责吸引自己吗?
我对游戏开发非常陌生,但对编程却不是。 我(再次)使用JavaScript的canvas元素在玩Pong类型的游戏。 我创建了一个Paddle具有以下属性的对象... width height x y colour 我也有一个Pong具有诸如...的属性的对象 width height backgroundColour draw()。 该draw()方法当前正在重置canvas,这就是出现问题的地方。 如果Paddle对象具有draw()负责其绘制的方法,或者draw()该Pong对象的负责负责其演员的绘制(我认为这是正确的术语,如果我不正确,请更正我)。 我发现在Paddle实例化两个对象Player和时,绘制自身会很有利Enemy。如果在没有Pong的draw(),我需要两次写类似的代码。 最佳做法是什么? 谢谢。

6
在MMO中​​谁计算AI?
我正在建立一个MMO,并想添加NPC。问题是我不知道基本设计。计算是什么,客户端还是服务器?我会理解服务器计算事件和反应的能力,但是当涉及到寻路以及玩家的位置和动作时,谁来计算呢? 谁计算服务器或客户端的AI?我无法想象服务器会计算寻路,位置,运动等。请帮助我了解这一点,谢谢,一切都会有所帮助。
30 ai  mmo  server  movement  npc 


4
冲突检测应该在服务器端还是在客户端/服务器之间协同进行?
我正在开发一个在线游戏,该游戏将具有非常重的碰撞检测处理。播放器模型将与仅存在于服务器端(不存储在客户端数据文件中)的其他播放器,生物,建筑物,地形和实体对象发生冲突。 为了安全起见,我应该在服务器端进行所有冲突检测吗?还是应该让客户端进行检测,然后让服务器以某种方式进行跟进?我觉得服务器本身无法完成太多工作(我正在为一台服务器上的数百个播放器设计引擎)。 有谁知道主流MMO如何做到的?我知道目前几乎所有MMO都容易受到物理攻击,并且通常通过检测黑客和禁止人员来对其进行处理。我希望这些技巧根本不起作用,至少对于物理组件而言。

5
C#是否适用于实时游戏服务器?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 5年前关闭。 大部分问题都在标题中。 基本上,我将开始开发2D多人动作游戏。客户端(可能)将使用XNA,我想在这里问一下使用C#进行服务器端开发是否是一个好主意。 我想管理语言是没有问题的,因为Java甚至在MMO游戏服务器中都在使用Java(如果我错了,请纠正我),那么出于这个目的有什么理由避免使用C#?我需要它快速且响应迅速,通过TCP进行通信,与SQL Server聊天。并且如果没有理由避免使用C#,我将如何部署这样的Web服务器,它将是在服务器计算机上运行的.NET EXE吗?
22 c#  server 

7
诸如EVE Online和WOW用来开发MMORPG的语言是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 据我了解,MMORPG是与其他任何普通3d视频游戏一样在您的计算机上运行的游戏,但是随着游戏中发生的每个动作,都会通过对服务器的HTTP调用对Universe进行更改。因此,玩家计算机在渲染图形和动画方面承担了所有繁重的工作,但是Web框架进行了在线交流。 所以我想知道正在使用什么Web框架,Web服务器和数据库来创建MMORPG,例如EVE Online和WOW? 另外,正在使用哪些编程语言和3d游戏引擎来使客户端(3d图形/动画/声音)成为游戏的一部分?
22 mmo  server 

5
mmorpg如何存储数据?
我想在我的server.exe中使用sql数据库。 假设有1000位用户在线。玩家在玩游戏时会更改其数据。服务器需要保存这些更新。 但是如何? 我认为有两种方法: 1)服务器将在运行时保存在ram中,并且有时或每小时服务器将从ram将数据(更新)写入sql数据库。但是,如果断电或服务器关闭,更新将无法保存。当然,我不想丢失更新。 2)服务器将在运行时将更新保存在数据库中。但是速度会怎样?我想到了一种方法。我将在下面显示图片。通过这种方法,我能否为1000名在线玩家获得足够的速度?

6
我有什么托管游戏的选项
免责声明:我知道这个问题开始脱离开发孤岛,但它与游戏开发有关,并且仍然认为这是最佳选择。 我看到了许多免费的MMO /在线桌面客户端游戏。我为这种能力感到困惑。我不介意托管自己,但至少希望有人托管一个婚介服务。如果这些独立开发人员确实在倾注大量资金以减轻服务器负担,那么我会很困惑,但是如果有人可以“向我学习” :)一些替代方案,我将不胜感激。

2
如何使Quake 3等精密网络游戏的服务器-客户端时钟保持同步?
我正在研究2D自上而下的射手,并尽力复制类似Quake 3这样的网络游戏中使用的概念。 我有一个权威服务器。 服务器将快照发送到客户端。 快照包含时间戳和实体位置。 实体插值在快照位置之间,因此移动看起来很流畅。 根据需要,实体插值会稍微“过去”发生,因此我们可以在多个快照之间进行插值。 我面临的问题是“时钟同步”。 为了简单起见,让我们假设一下,在与服务器之间传输数据包时,延迟为零。 如果服务器时钟比客户端时钟早60秒,则快照时间戳将比客户端本地时间戳早60000ms。 因此,在客户端看到任何给定的实体进行移动之前,实体快照将收集并静置约60秒钟,因为客户端时钟要花很长时间才能赶上。 通过设法在每次接收快照时计算服务器时钟和客户端时钟之间的差异,我设法解决了这一问题。 // For simplicity, don't worry about latency for now... client_server_clock_delta = snapshot.server_timestamp - client_timestamp; 确定实体插入插值的距离时,我只需将差值添加到客户的当前时间即可。但是,这样做的问题是,由于快照比其他快照更快或更慢地到达,这两个时钟之间的差异将突然波动,这将导致混乱。 如何才能使时钟足够紧密地同步,以使唯一可感知的延迟是硬编码用于插值的延迟,而该延迟是由普通网络延迟引起的? 换句话说,如何在时钟严重失步时防止插值开始得太晚或太早而又不引起混乱呢? 编辑:根据Wikipedia的说法,NTP可以用于在几毫秒内将互联网上的时钟同步。但是,该协议似乎很复杂,也许在游戏中使用会显得过分杀伤力?

3
如何同时有效地编码客户端和服务器?
我正在使用客户端-服务器模型编写游戏代码。在单人游戏上玩时,游戏会启动本地服务器,并像远程服务器(多人游戏)一样与之交互。我这样做是为了避免编写单独的单人和多人代码。 我刚刚开始编码,遇到了一个主要问题。目前,我正在Eclipse中开发游戏,并将所有游戏类组织到软件包中。然后,在服务器代码中,我只使用客户端软件包中的所有类。 问题是,这些客户端类具有特定于呈现的变量,显然不会在服务器上执行。 是否应该创建客户端类的修改版本以在服务器中使用?或者我应该只使用布尔值修改客户端类,以指示其客户端/服务器是否在使用它。我还有其他选择吗?我只是想过也许将服务器类用作核心类,然后通过渲染内容对其进行扩展?

3
我应该将登录服务器与游戏服务器分开吗?
我正在考虑制造MMO服务器,并且一直在研究其他游戏如何构建其网络。我注意到的一件事是,总是有一个登录服务器,然后是游戏服务器。 我仍在决定是否应该这样做,但是我想先听听一些意见。这样有什么好处,登录服务器如何与游戏服务器通信以处理登录?

4
套接字服务器和游戏服务器是否应该是独立的进程?
假设一个简单的标准客户端/服务器游戏。对于服务器,是否值得拥有一个单独的进程来侦听客户端的连接和消息,并通过本地套接字或stdin将数据发送到运行实际游戏服务器的另一个进程? 另一种选择是使这两项都在一个过程中完成。对传入的消息进行排队并以正确的顺序执行它们,这不会造成停顿问题。 我想知道将两个“活动”分开的额外资源是否真的值得。我应该如何决定?我想听听任何利弊。

1
台式机是否有基于回合的游戏服务(例如iOS上的GKTurnBasedMatch)?
Game Center的GKTurnBasedMatch似乎为处理回合制游戏提供了非常强大的服务,而OpenFeint似乎也有类似的功能。问题是,我想要在桌面上使用类似的东西。我本来打算在Rails上滚动我自己的基于REST的服务,但是在查看了GameKit文档之后,我意识到要花很长的时间才能使它牢固。我不认为在搜索中已经错过了类似的东西吗?

3
是否存在用于编写通过套接字与n个客户端通信的基于回合的服务器的模式?
我正在使用一种通用游戏服务器,该服务器可以为任意数量的TCP套接字网络客户端在玩游戏时管理游戏。我有一个“设计”与管道胶带一起被破解,但它既脆弱又不灵活。对于如何编写健壮而灵活的客户端/服务器通信,是否存在一种完善的模式?(如果没有,您将如何改善下面的内容?) 大概我有这个: 设置游戏时,服务器为每个玩家套接字提供一个线程,以处理来自客户端的同步请求和来自服务器的响应。 然而,一旦游戏开始,除了一个睡眠之外,所有线程都将循环,并且该线程一次循环遍历所有玩家,以传达有关其行动的信息(反向请求响应)。 这是我目前所拥有的图表;单击以获取较大的版本/可读的版本,或单击66kB PDF。 问题: 它要求玩家用正确的信息准确地依次做出回应。(我想我可以让每位球员随机回应,只有在他们给我有效举动后才继续前进。) 除非轮到他们,否则不允许玩家与服务器交谈。(我可以让服务器向他们发送有关其他播放器的更新,但不处理异步请求。) 最终要求: 性能不是最重要的。这将主要用于非实时游戏,并且主要用于使AI相互对抗,而不是抽动的人。 游戏将始终基于回合制(即使分辨率很高)。每个玩家总是在其他所有玩家获得回合之前获得一招。 服务器服务器的实现恰好在Ruby中,如果有所不同的话。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.