php 游戏开发swoole,用Swoole来写个联机对战游戏呀!(一)前言
话不多说,我们先上一个游戏的最终效果图给大家看看:
没错,就是紧张刺激的捉迷藏小游戏。
本课程的源代码在 github.com/Zhao-666/Hi… 上面,童鞋们可以提前在自己的机器上运行游戏,体验一下游戏的感受,或者参考一下代码。
技术预备需要有如下几点:
熟悉 PHP 基础语法
使用过 CentOS ,懂得安装 PHP 开发环境
看过 Swoole 文档但缺乏项目经验
了解 VueJs 基础语法或有其他前端框架经验
开发 工具 推荐使用 PHPStorm
项目使用了如下技术:
PHP 7.2
Swoole 4.3.0
Swoole WebSocket Server
Swoole Task Worker
Swoole Static Handler
Vuejs
HTML WebSocket
Redis String
Redis List
少量算法逻辑
实现了:
捉迷藏游戏逻辑(逻辑) ★★
匹配机制(缓存) ★
联机对战(网络编程、缓存) ★★★★
游戏结束判定(逻辑) ★
可扩展功能(比较懒就没做):
当前在线人数:使用Redis Set保存在线人员(缓存) ★
排行榜:使用Redis SortSet(缓存) ★
观战模式:在游戏管理者Game中增加Watcher数组,订阅游戏消息(逻辑) ★★
邀请对战:往被邀请人发一条消息确认开战(网络编程) ★★
多人模式:参与时不限制人数(网络编程) ★★★
随机地图生成:暂时只想到了多点随机路线拼接(算法) ★★★
优化地图展示:手机适配(前端) ★★★★★★★★★★★★(这个真不会。。)
大纲
本次教程将会分为两个部分。
第一部分占用三章的幅度,主要讲解游戏逻辑的编写,我们会先制作出一个单机版的服务端逻辑,让电脑随机行走测试代码有没有问题。
第二部分占用六章的幅度,这里将会分为两个主要功能,分别是:接入 Swoole 作为网络层和使用 Vue 写一个简单的前端页面,让游戏能够满足两个玩家联机对抗。当然,并不是直接就把服务端全部代码写完,然后再跑去写前端这么粗暴,两个部分的代码都是按照项目的开发流程一点一点往里填。
课程最后只实现了上面写的已实现功能,可扩展功能也列了几项并附注了温馨提示,相信学完后童鞋们自己就能实现可扩展功能啦。
本次课程的主要目的就是好玩,并且还能顺便学习一下 Swoole 、 WebSocket 、 Vue 的使用,希望童鞋们看完会有一丝收获。
学习方法
大部分的代码编写我都会预先把功能需求用文字罗列出来,再给出代码实现,像下面这样:
这个类需要有XXX功能
这个类需要保存XXX变量
这个类XXXXX
class XXXXX
{
private $xxx;
public function xxx()
{
}
}
复制代码
童鞋们尽量尝试通过赵童鞋给出的需求自己动手编写代码,而不是一上来就整段整段的复制,这样学习效果会好很多,变量命名、方法命名不一样是没关系的,只要能够满足功能,当然,想不出的时候偷瞄一眼也是可以的๑乛◡乛๑。
在Github上代码有两个分支,master分支为赵童鞋开发时的提交分支,teach分支为课程每章结束时提交的代码分支。为什么会区分两个分支呢?就像上面说的,实际项目开发的时候都是往一个大方向走,总有考虑不周的情况,所以代码就会删删减减的,用来教学就会前后代码不一样。但是这样的代码提交却更加真实,有兴趣的童鞋可以试着看看master分支。
下一章节开始正式学习,童鞋们准备好了吗?
php 游戏开发swoole,用Swoole来写个联机对战游戏呀!(一)前言相关推荐
- 5V5联机对战游戏源码
一.专业技术的竞争力比较 1. 大学毕业设计:购物系统.博客系统.论坛系统.聊天室等数据管理系统 2. 期末实训:贪吃蛇,俄罗斯方块,飞机大战 3. 普通期刊论文: 坦克大战 4. 培训机构项目:基本 ...
- C++适合游戏开发,那用C++写游戏有什么优缺点?你知道吗?
我们都知道C/C++编程语言他对于游戏方面的应用非常的强大,像王者荣耀,英雄联盟的游戏后台服务器都和我们的C++密切相关,那么,用这样的编程语言来写游戏代码的话,会有什么样的优点和缺点呢?我们一起来看 ...
- 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/340.html ...
- 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】...
为什么80%的码农都做不了架构师?>>> 李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接: http://www.himigam ...
- 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo
本系列文章由zhmxy555编写,转载请注明出处. 文章链接 http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云 邮箱: ...
- 【Visual C 】游戏开发笔记十六 讲解一个完整的回合制游戏demo
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...
- [原]【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo
本系列文章由zhmxy555编写,转载请注明出处. 文章链接 http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云 邮箱: ...
- 【游戏开发实战】使用Unity 2019制作仿微信小游戏飞机大战(七):主角飞机碰撞与爆炸
文章目录 零.教程目录 一.前言 二.本篇目标 三.飞机机碰撞组件:BoxCollider2D.Rigidbody2D 四.添加Tag:Enemy 五.主角飞机碰撞处理:OnTriggerEnter2 ...
- 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】
Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢. 原文地址:http://blog.csdn.net/xiaominghimi/archive/2011/01/14/6137136.aspx ...
- 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo
本系列文章由zhmxy555编写,转载请注明出处. 文章链接 http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云 邮箱: ...
最新文章
- Java学习----到底调用哪一个方法(多态)
- ARM架構的Linux內核的空間佈局
- Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操
- Sharepoint Ribbon Loaction
- 标记偏见_分析师的偏见
- DreamweaverCS4搭建配置php本地站点(图文教程)- 教程篇
- 那些兼职中你不知道的事
- mysql insert duplicate key update
- 思想交锋:证券业数字化转型实践
- 毕业设计——宠物店管理系统
- CRM系统之数据库设计
- 身份证号码中间某几位数字隐藏
- 顽童时代-----钟丽思
- 发烧后的咽喉肿痛自我治疗
- Proximal Point Algorithm(PPA)
- 心里窝火无语的图片_失望无语的图片文字说说心情
- TO_DATS() AS ABAP_DATE
- 万拓双控存储DS5000
- 【Python爬虫】403 Forbidden
- 关于影印版与翻译版的对比
热门文章
- python翻译爬虫_python 翻译爬虫
- python安装成功之后教程_python安装教程 Pycharm安装详细教程
- mysql查询忽略字符编码是什么_MySQL 查询不区分大小写的问题以及编码格式问题...
- oracle mrp mps mds 的table关联,ORACLE中的计划-Forecast/MDS/MPS/MRP(转)
- NTKO word在线文本编辑控件写页眉页脚
- Login控件在浏览器中打开时显示英文
- Java SVN管理工具的使用
- 09、多线程(一) -- 基本概念
- 视频直播技术(三):低延时直播经验总结
- SQL代码自动生成器