作者YoshiCasa (Yoshi Casa)
看板GameDesign
标题Re: [请益] 大家会研究电影吗?(+问个小问题)
时间Mon Jan 17 19:54:26 2022
※ 引述《sargent (心里治疗)》之铭言:
: 另外,想问的小问题是:
: 假如想做一个小游戏,玩法大致如下
: 4到12人可以连线登入的打架游戏,
: 每个玩家都有个身体可以在里面用来打架(分两群人马或是大逃杀)
: (可能是第一人视角或者同时看到全场的画面)
: 随便一个场地就可以了
: 大概制作流程...
: (不好意思我有点模糊)大概是怎麽样的呢?是不是要用伺服器之类的技术?
流程一开始当然是先写出和画出游戏的画面与游玩的方法啦。
连详细的游戏方法都写/画不出来的,
就不用搞下一步了。
接着 "我" 会决定 server-client 架构
也就是
"哪些程式要放玩家 (client) 那,哪些程式要放伺服器 (server) 那"
为了简化问题,
先假设只是个2D的战车游戏,
玩家只有前、左转、右转、发射四个指令。
分法一:
client 只传上面四个指令给 server,
server 会回传场上所有玩家位置、
场上所有炮弹位置、被击中的玩家与击中他的炮弹ID这三个数据。
这样做的话,所有的计算都会保存在 server,
战车的位置,战车的角度,
炮弹的位置、炮弹的角动量,
每个 tick 更新上面所有资料,然後回传给使用者。
(更猛的做法是,直接回传每一 frame 的画面给使用者,那就连
client 程式都不用写了,不过那不是小资开发者做的到的)
这样分的好处是不容易被人写外挂、
坏处是要租 server 做大量运算很花钱。
分法二:
client 移动时传自己的座标,
发射炮弹的当下会传 "一次" 炮弹的角动量,
击中时会传讯号给 server。
server 会将 client 的资讯分送给其他玩家。
击中讯号同时出现时就当 double kill。
好处是资料传输少,server loading 小。
坏处是外挂超好写,可以写个外挂开场就秒杀所有玩家。
(就是直接送11个击中的讯号给 server 就好)
以程式设计的流程来说,
思考哪些要放 client 哪些要放 server,
这关系到钱、骇客防范和开发要花多久时间的问题。
这算第二阶段吧。
接下来就开始写程式,
然後写完就开卖收钱了。
就这麽简单! (误XD)
----
不过刚刚重看了一下文章,
文章想问的好像只是要学什麽 "软体" 或 "工具" 才写得出来?
这问题真的太难回答了,
有简单的路、有难的路、
有热门的工具或语言、有冷门的工具或语言、
大家看法都不一样,还有可能会吵起来...
去 google 一下吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.105.109 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1642420468.A.73B.html
※ 编辑: YoshiCasa (61.228.105.109 台湾), 01/17/2022 20:13:49
※ 编辑: YoshiCasa (61.228.105.109 台湾), 01/17/2022 20:17:31
1F:推 LayerZ: client-server传递延迟虽然只有20ms~200ms,但是对有些玩 01/18 09:55
2F:→ LayerZ: 法会有影响了,不过这边简化的关系应该没差 01/18 11:00
3F:推 sargent: 噢,不是的,我不是问工具。如你所说,这样就是代表资料 01/31 04:42
4F:→ sargent: 互相蒐集传送的方式...嗯,我也没写过伺服器所以不是很懂 01/31 04:44
5F:→ sargent: 但基本上我想问的就是比较抽象层面的技术手法,就是这样 01/31 04:44
6F:→ LayerZ: 原则上是你自己的机器,除了你自己的行为之外都是模拟出 02/09 18:55
7F:→ LayerZ: 来的,当5个人同时前进,每个人都会看到自己走在最前面 02/09 18:55