php 游戏开发swoole,《基于 Swoole 的对战游戏实践》开课啦

项目由来

在三月份的时候就开始编写这个项目,原本只是觉得自己对 Swoole 不太熟练,当作练手来写着玩的。写着写着发现还挺好玩的,代码量也不多,捉迷藏游戏的趣味性不错。

如果只写完代码就扔在 Github ,感觉就好像做大学实践作业一样,自己也没什么提高。那就干脆写一个简略的教程吧,把一些开发时的思路写下来,可能会对其他学习 Swoole 的同学有一定的帮助。

原本只是一些零散的篇章,想着三章之内应该就写完的。写出来以后觉得和网上的教程好像又差不多,一点新意都没有。我就想着要不把一些开发思路改成题目,让读者自己去思考和完成,这样学习效果可能会更好。

小册其实在六月份(熬了好多个周末通宵)已经写完了,但是因为掘金的一些原因,现在才正式上架,下面这张就是小册的封面图。

(不要问为什么是粉红色,我也是被安排的那个,可能是我比较帅吧)

6465b438f0c941a0e261a4edb257f238.png

小册介绍

为什么要学习Swoole

根据资料显示,全世界有80%以上的Web网站都是使用PHP进行开发,在编程语言排行榜上虽然不是名列前茅,但在Web领域PHP可以说是数一数二,网上最流行的段子“PHP是世界上最好的语言”看来并不是空穴来风。PHP的环境搭建方便,内置函数齐全,数组结构特别适合Web开发。但PHP也不是万能的,他的动态加载和单进程特性决定了他不适合做密集运算或长连接的项目。

Swoole的出现解决了PHP的诸多问题,常驻内存的Server避免了PHP重复加载造成的性能损耗,协程和异步也使得I/O密集型场景并发处理能力大幅提升,WebSocket应用也较为容易开发。

游戏效果

本小册主要是带领大家完成一个联机小游戏,为了降低项目复杂度,降低初学者的学习成本,并没有使用到Swoole的协程以及其他高级特性,尽可能地用最基础的功能来实现游戏逻辑。

话不多说,我们先上一个游戏的最终效果图给大家看看:

1460000020523834

没错,就是紧张刺激的捉迷藏小游戏。

使用技术

PHP 7.2

Swoole 4.3.0

Swoole WebSocket Server

Swoole Task Worker

Swoole Static Handler

Swoole Timer After

Vuejs

HTML WebSocket

Redis String

Redis List

少量算法逻辑

基础功能开发

捉迷藏游戏逻辑(逻辑) ★★

匹配机制(缓存) ★

联机对战(网络编程、缓存) ★★★★

游戏结束判定(逻辑) ★

可扩展功能

当前在线人数:使用Redis Set保存在线人员(缓存) ★

排行榜:使用Redis SortSet(缓存) ★

观战模式:在游戏管理者Game中增加Watcher数组,订阅游戏消息(逻辑) ★★

邀请对战:往被邀请人发一条消息确认开战(网络编程) ★★

多人模式:参与时不限制人数(网络编程) ★★★

随机地图生成:暂时只想到了多点随机路线拼接(算法) ★★★

优化地图展示:手机适配(前端) ★★★

游戏时间限制:使用定时器制定每局游戏时间(逻辑)★★★

小册的内容

本小册将会分为四个部分。

第一部分占用三章的幅度,主要讲解游戏逻辑的编写,我们会先制作出一个单机版的服务端逻辑,让电脑随机行走进行测试。

第二部分占用六章的幅度,这里将会分为两个主要部分,分别是:接入Swoole作为网络层和使用Vue写一个简单的前端页面,让游戏能够满足两个玩家联机对抗。当然,并不是直接就把服务端全部代码写完,然后再跑去写前端这么粗暴,两个部分的代码都是按照项目的开发流程一点一点往里填。

第三部分占用七章的幅度,将会带领大家实现多个游戏的扩展功能,优化游戏体验,让游戏更有乐趣。

第四部分是附录,为部分没有接触过Swoole和Vue的童鞋介绍两种技术的入门知识。

作者介绍

赵童鞋,西山居后端工程师,专职于游戏专题开发,觉得写游戏是一件很好玩的事情。创造快乐,传递快乐。

公众号「写程序的赵童鞋」作者

你会学到什么?

游戏逻辑的开发思路

Swoole WebSocket Server的使用

Swoole Task机制的使用

Swoole 定时器的使用

Vue的入门知识

WebSocket 的前后端通信

Redis的各种使用方式

少量算法逻辑

...

适宜人群

厌倦了每天编写枯燥的增删改查接口的同学

有PHP开发经验,但还没有接触过Swoole的同学

看过Swoole文档但缺乏项目经验的同学

想写一个游戏但又无从下手的同学

特别鸣谢

架构师 龙哥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值