Unity - 集换式卡牌游戏架构

Unity - trading card game architecture

我正在尝试在 Unity 中开发一个 TCG(集换式纸牌游戏)(我是 Unity 新手),目前停留在项目的架构上,尤其是纸牌效果。来自网络开发背景的我所有的逻辑和卡片效果都应该在服务器上,但是通过一些 Unity 教程我认为逻辑应该在客户端上,我应该使用一个简单的基于房间的服务器来通知玩家操作。对吗?

总而言之 - 游戏逻辑应该放在哪里(例如卡牌效果、回合等)?在客户端还是在服务器上?

是的,效果应该在客户端上,我猜你的游戏会是回合制吧?那么你可能想看看光子:

https://doc.photonengine.com/en-us/realtime/current/getting-started/realtime-intro

他们有很多关于 API 的好教程,而且有据可查 :) 希望对你有帮助 祝你好运

我实际上为 iOS/droid 开发了一个主要的 TCG,所以这是我的经验。您绝对希望所有游戏逻辑和规则都在服务器上。不要相信您的客户端是任何游戏结果等的真实来源。人们将能够通过篡改发送回服务器的数据来破解它。他们不必为此反编译游戏,只需嗅探网络流量即可。

也就是说,您最终可能会在客户端和服务器上出现一些重复的逻辑,只是为了执行游戏规则并显示结果而不必总是访问服务器。但是,您的服务器始终是真相的来源,客户端只是在那里接受输入并显示结果。

一般流程是客户端向服务器发送请求新游戏的消息。服务器将响应每一方的牌和第一位玩家的开局动作。然后客户端将简单地解析每一步并显示结果。在卡片对象上,我们有许多操作的方法,例如 DrainHealth() 和 BuffAttack()。调用时,这些方法会触发附加到卡片脚本的粒子效果和声音效果。