Re: [请益] 大家会研究电影吗?(+问个小问题)

楼主: YoshiCasa (Yoshi Casa)   2022-01-17 19:54:26
※ 引述《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)
作者: LayerZ (無法如願)   2022-01-18 09:55:00
client-server传递延迟虽然只有20ms~200ms,但是对有些玩法会有影响了,不过这边简化的关系应该没差
作者: sargent (Conditional)   2022-01-31 04:42:00
噢,不是的,我不是问工具。如你所说,这样就是代表资料互相蒐集传送的方式...嗯,我也没写过服务器所以不是很懂但基本上我想问的就是比较抽象层面的技术手法,就是这样
作者: LayerZ (無法如願)   2022-02-09 18:55:00
原则上是你自己的机器,除了你自己的行为之外都是模拟出来的,当5个人同时前进,每个人都会看到自己走在最前面

Links booklink

Contact Us: admin [ a t ] ucptt.com