我试图在Unity(我是Unity新手)中开发TCG(交易卡游戏),目前仍然坚持项目架构和卡片效果。来自Web开发背景对我来说所有的逻辑和卡片效果应该在服务器上,但是经过Unity的一些教程我觉得逻辑应该在客户端上,我应该使用一个简单的基于房间的服务器来通知玩家的动作。这是对的吗?
总结一下 - 游戏逻辑应该在哪里(例如卡片效果,回合等)?在客户端或服务器上?
答案 0 :(得分:4)
我实际上已经为iOS / droid开发了一个主要的TCG,所以这来自经验。您肯定希望所有游戏逻辑和规则都在服务器上。不要相信您的客户是任何游戏结果等的真相来源。人们将能够通过篡改发送回服务器的数据来破解它。他们不必反编译游戏来做到这一点,只需通过嗅探网络流量即可完成。
也就是说,您可能最终在客户端和服务器上都有一些重复的逻辑,只有这样您才能执行游戏规则并显示结果,而不必总是点击服务器。但是,您的服务器始终是真实的来源,客户只是接受输入和显示结果。
一般流程是客户端向服务器发送请求新游戏的消息。服务器将响应每一方的牌和第一位玩家的开场动作。然后客户端将简单地解析每个移动并显示结果。在卡片对象上,我们有许多动作的方法,例如DrainHealth()和BuffAttack()。调用时,这些方法会触发附加到卡片脚本的粒子效果和声音fx等内容。
答案 1 :(得分:0)
是的,效果应该在客户端上,我认为你的游戏将基于回合?你可能想看看光子然后:
https://doc.photonengine.com/en-us/realtime/current/getting-started/realtime-intro
他们有很多关于他们的API的好教程,并且有很好的文档:) 希望能帮到你, 祝你好运