国际象棋游戏架构

问题描述 投票:0回答:1

我计划使用 Angular、.NET 和 SignalR 来开发国际象棋游戏以进行实时通信。我的游戏需要具有以下功能:多人游戏、分析模式、在同一个浏览器中与朋友一起玩、观看较旧的游戏,所以我想我需要在前端和后端都实现国际象棋逻辑(或者我错过了一些东西)。

c# .net angular signalr
1个回答
0
投票

您的计划听起来很可靠,并且您对于这些功能需要在前端和后端实现国际象棋逻辑是正确的。原因如下: 国际象棋逻辑实现:

前端:

交互式游戏:UI 需要在本地验证动作以实现流畅的用户交互,例如在将动作发送到服务器之前突出显示合法动作并防止非法动作。 分析模式:玩家可能想要探索潜在的动作并查看实时反馈。 单浏览器游戏:对于共享设备的两个玩家,前端无需后端交互即可处理视角之间的切换。 后端: 验证:后端应重新验证动作以确保公平并防止作弊。 游戏状态管理:它存储游戏的当前状态以进行持久化并实时更新所有玩家。 观看较旧的游戏:后端逻辑将获取游戏历史记录以实现重播功能。 多人同步: SignalR 确保所有玩家和观众实时更新游戏状态。

建议:

  • 共享逻辑:

为了避免冗余,请考虑在前端和后端之间共享国际象棋逻辑。例如,使用共享库或模块作为核心国际象棋逻辑。

  • 数据同步:

使用 SignalR 在多个客户端之间高效同步游戏状态。

  • 游戏存储:

实施数据库来存储游戏历史、玩家统计数据和保存的游戏以供分析。

  • 人工智能/分析工具:

如果您计划添加人工智能或更深入的分析,您可以在后端集成像 Stockfish 这样的国际象棋引擎。

© www.soinside.com 2019 - 2024. All rights reserved.