用Swoole来写个联机对战游戏呀!(一)前言

栏目: PHP · 发布时间: 6年前

内容简介:话不多说,我们先上一个游戏的最终效果图给大家看看:没错,就是紧张刺激的捉迷藏小游戏。本课程的源代码在

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

用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 写一个简单的前端页面,让游戏能够满足两个玩家联机对抗。当然,并不是直接就把服务端全部代码写完,然后再跑去写前端这么粗暴,两个部分的代码都是按照项目的开发流程一点一点往里填。

课程最后只实现了上面写的已实现功能,可扩展功能也列了几项并附注了温馨提示,相信学完后童鞋们自己就能实现可扩展功能啦。

本次课程的主要目的就是好玩,并且还能顺便学习一下 SwooleWebSocketVue 的使用,希望童鞋们看完会有一丝收获。

学习方法

大部分的代码编写我都会预先把功能需求用文字罗列出来,再给出代码实现,像下面这样:

  1. 这个类需要有XXX功能
  2. 这个类需要保存XXX变量
  3. 这个类XXXXX
<?php
class XXXXX
{
    private $xxx;
    
    public function xxx()
    {    
    }
}
复制代码

童鞋们尽量尝试通过赵童鞋给出的需求自己动手编写代码,而不是一上来就整段整段的复制,这样学习效果会好很多,变量命名、方法命名不一样是没关系的,只要能够满足功能,当然,想不出的时候偷瞄一眼也是可以的๑乛◡乛๑。

在Github上代码有两个分支,master分支为赵童鞋开发时的提交分支,teach分支为课程每章结束时提交的代码分支。为什么会区分两个分支呢?就像上面说的,实际项目开发的时候都是往一个大方向走,总有考虑不周的情况,所以代码就会删删减减的,用来教学就会前后代码不一样。但是这样的代码提交却更加真实,有兴趣的童鞋可以试着看看master分支。

下一章节开始正式学习,童鞋们准备好了吗?

用Swoole来写个联机对战游戏呀!(一)前言

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

商战

商战

杰克•特劳特、阿尔•里斯 / 李正栓、李腾 / 机械工业出版社 / 2011-3 / 42.00元

本书重点阐述了商战中的四种常用战略形式,如防御战、进攻战、侧翼战和游击战,针对每一种形式又提出了三条应遵循的原则,以及如何在具体的商战中应用这些原则。本书分析了商战中的实际案例:可口可乐与百事可乐的战役,汉堡王与温迪斯对麦当劳的挑战以及DEC对阵IBM等。这些人们熟知品牌的案例在作者精心的组织下,使读者不仅加深了对本书中心思想的理解,而且学习了如何在实战中具体应用各种营销战略和策略的技巧。 ......一起来看看 《商战》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试