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

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

本课程的源代码在 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来写个联机对战游戏呀!(一)前言相关推荐

  1. 5V5联机对战游戏源码

    一.专业技术的竞争力比较 1. 大学毕业设计:购物系统.博客系统.论坛系统.聊天室等数据管理系统 2. 期末实训:贪吃蛇,俄罗斯方块,飞机大战 3. 普通期刊论文: 坦克大战 4. 培训机构项目:基本 ...

  2. C++适合游戏开发,那用C++写游戏有什么优缺点?你知道吗?

    我们都知道C/C++编程语言他对于游戏方面的应用非常的强大,像王者荣耀,英雄联盟的游戏后台服务器都和我们的C++密切相关,那么,用这样的编程语言来写游戏代码的话,会有什么样的优点和缺点呢?我们一起来看 ...

  3. 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/340.html   ...

  4. 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】...

    为什么80%的码农都做不了架构师?>>>     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigam ...

  5. 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

  6. 【Visual C 】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  7. [原]【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

  8. 【游戏开发实战】使用Unity 2019制作仿微信小游戏飞机大战(七):主角飞机碰撞与爆炸

    文章目录 零.教程目录 一.前言 二.本篇目标 三.飞机机碰撞组件:BoxCollider2D.Rigidbody2D 四.添加Tag:Enemy 五.主角飞机碰撞处理:OnTriggerEnter2 ...

  9. 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】

    Himi  原创, 欢迎转载,转载请在明显处注明! 谢谢. 原文地址:http://blog.csdn.net/xiaominghimi/archive/2011/01/14/6137136.aspx ...

  10. 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

最新文章

  1. Java学习----到底调用哪一个方法(多态)
  2. ARM架構的Linux內核的空間佈局
  3. Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操
  4. Sharepoint Ribbon Loaction
  5. 标记偏见_分析师的偏见
  6. DreamweaverCS4搭建配置php本地站点(图文教程)- 教程篇
  7. 那些兼职中你不知道的事
  8. mysql insert duplicate key update
  9. 思想交锋:证券业数字化转型实践
  10. 毕业设计——宠物店管理系统
  11. CRM系统之数据库设计
  12. 身份证号码中间某几位数字隐藏
  13. 顽童时代-----钟丽思
  14. 发烧后的咽喉肿痛自我治疗
  15. Proximal Point Algorithm(PPA)
  16. 心里窝火无语的图片_失望无语的图片文字说说心情
  17. TO_DATS() AS ABAP_DATE
  18. 万拓双控存储DS5000
  19. 【Python爬虫】403 Forbidden
  20. 关于影印版与翻译版的对比

热门文章

  1. python翻译爬虫_python 翻译爬虫
  2. python安装成功之后教程_python安装教程 Pycharm安装详细教程
  3. mysql查询忽略字符编码是什么_MySQL 查询不区分大小写的问题以及编码格式问题...
  4. oracle mrp mps mds 的table关联,ORACLE中的计划-Forecast/MDS/MPS/MRP(转)
  5. NTKO word在线文本编辑控件写页眉页脚
  6. Login控件在浏览器中打开时显示英文
  7. Java SVN管理工具的使用
  8. 09、多线程(一) -- 基本概念
  9. 视频直播技术(三):低延时直播经验总结
  10. SQL代码自动生成器