※ 引述《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)