目录:

游戏王联机卡牌对战 1 - 前言
游戏王联机卡牌对战 2 - 联机模式
游戏王联机卡牌对战 3 - 界面布局
游戏王联机卡牌对战 4 - 卡组系统
游戏王联机卡牌对战 5 - 卡片选中系统
游戏王联机卡牌对战 6 - 卡片放置,战场更新
游戏王联机卡牌对战 7 - 墓地,副控制面板
游戏王联机卡牌对战 8 - 返回手卡,牌组
游戏王联机卡牌对战 9 - 实现简单websocket通信
游戏王联机卡牌对战10 - 搭建游戏服务端
游戏王联机卡牌对战11 - 客户端消息的收发
游戏王联机卡牌对战12 - 消息发送具体场景
游戏王联机卡牌对战13 - 实机演示

前言

应某友人的要求,同时作为练手项目,花几天时间写了个“游戏王”的联机卡牌对战游戏,游戏内容大致是这样的:


客户端是原生的HTML+JS,服务端基于Node.js(本地服务器),通信协议用的WebSocket

可以看到游戏界面有很多操作按钮,因为游戏的操作模式是完全仿线下卡牌的游玩模式,也就是不带任何规则判定和卡牌脚本。带规则判定的游戏实现起来复杂度较高,而且光是给每张卡牌的效果编写运行脚本就是一个极其浩大的工程,这里限制于时间和技术力就不采用那种方式了,市面上已经有很多成熟的游戏产品。

目前的版本很简易,但是已经可以进行完整的对局,为了加强带入感添加了一些动漫音效。当然由于没有规则判定,双方玩家必须处于能随时沟通的环境,实际上就是把线下卡牌转移到PC上,线下玩法的数字版,美其名曰“最纯粹的游戏王对战体验”。


游戏服务端在本地创建,所以只能局域网对战,启动服务端后点开html客户端就会直接连接。游戏特效是基本没有了,原生方法制作特效比较麻烦,想要酷炫的动画和特效推荐用游戏引擎,比如EgretLayabox一类的H5游戏引擎。

牌组自然是网上收集的高清卡牌图片,放在本地读取。这里有一点好处就是可以随心所欲的加入任何版本的卡牌,而且效果不会受限于游戏脚本(根本不存在游戏脚本),打出什么效果玩家说了算。目前市面上的成熟游戏产品出于对战公平性的考虑对很多卡牌的效果做了修改,特别是部分初代卡牌,与动漫中演绎的效果大相径庭,没以前那味儿了。学生时代照着TV动画收集各种牌组就是为了能在某次对局中偶遇动漫里的热血连锁,输赢什么的不重要。另外还有很多初代TV版的卡牌基本正版游戏里是没有收录的,自制版可以DIY一下。

初版完成后果断和朋友开了两局,虽然体验比不上线下卡但情怀还是体会到了。

接下来的章节就主要来谈谈实现思路吧。水平有限,学习记录一下。

项目源代码可移步我的Github,初版已merge至master:
YGO-Online-Combat

HTML+JS+websocket 实现联机“游戏王”对战(一)相关推荐

  1. HTML+JS+websocket 实现联机“游戏王”对战(十三)- 实机演示视频

    最后一章啦,这章主要放个demo演示,然后讨论一些待改进的细节问题. 目录: 游戏王联机卡牌对战 1 - 前言 游戏王联机卡牌对战 2 - 联机模式 游戏王联机卡牌对战 3 - 界面布局 游戏王联机卡 ...

  2. HTML+JS+websocket 实现联机“游戏王”对战(十)- 搭建游戏服务端

    目录: 游戏王联机卡牌对战 1 - 前言 游戏王联机卡牌对战 2 - 联机模式 游戏王联机卡牌对战 3 - 界面布局 游戏王联机卡牌对战 4 - 卡组系统 游戏王联机卡牌对战 5 - 卡片选中系统 游 ...

  3. HTML+JS+websocket 实现联机“游戏王”对战(九)- 实现简单websocket通信

    目录: 游戏王联机卡牌对战 1 - 前言 游戏王联机卡牌对战 2 - 联机模式 游戏王联机卡牌对战 3 - 界面布局 游戏王联机卡牌对战 4 - 卡组系统 游戏王联机卡牌对战 5 - 卡片选中系统 游 ...

  4. HTML+JS+websocket 实现联机“游戏王”对战(五)- 卡片选中系统

    目录: 游戏王联机卡牌对战 1 - 前言 游戏王联机卡牌对战 2 - 联机模式 游戏王联机卡牌对战 3 - 界面布局 游戏王联机卡牌对战 4 - 卡组系统 游戏王联机卡牌对战 5 - 卡片选中系统 游 ...

  5. node.js Websocket消息推送---GoEasy

    Goeasy, 它是一款第三方推送服务平台,使用它的API可以轻松搞定实时推送!个人感觉goeasy推送更稳定,推送速度快,代码简单易懂上手快 浏览器兼容性:GoEasy推送支持websocket 和 ...

  6. 基于Node.js + WebSocket 的简易聊天室

    代码地址如下: http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.j ...

  7. socket服务器断开消息,详解JS WebSocket断开原因和心跳机制

    1.断开原因 WebSocket断开的原因有很多,最好在WebSocket断开时,将错误打印出来. ws.onclose = function (e) { console.log('websocket ...

  8. 从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始

    写在前面的话 经常有学生或者初学者问我如何去阅读和学习一个开源软件的代码,也有不少朋友在工作岗位时面对前同事留下的项目,由于文档不完善.代码注释少.工程数量大,而无从下手.本文将来通过一个多人联机实时 ...

  9. 使用SpringBoot及Construct2的WebSocket制作联机游戏(二)

    前情概要: 使用SpringBoot及Construct2的WebSocket制作联机游戏(一) 一.介绍: 1.SpringBoot服务端添加登录及注册接口,并进行Postman测试 2.Sprin ...

最新文章

  1. [转]MongoDB基本使用
  2. 最好的oracle笔记,Oracle学习笔记(一)
  3. 硕士本科论文通过matlab出仿真图
  4. mybatis mapper.xml --注释 带参数的坑
  5. 编译libmysqlclient.a静态库
  6. yolov3算法优点缺点_优点缺点
  7. Hadoop入门(十)Mapreduce高级shuffle之Sort和Group
  8. MongoDB与其他数据库的对比
  9. mysql事务处理什么意思_mysql事务是什么意思
  10. shop--8.店铺管理页面的开发
  11. acc 蓝牙_蓝牙中的三种音频编码:Apt-X、SBC、AAC,请问分别有什么区别?
  12. 提供SCDN基础版本售卖
  13. 网页加载速度优化分析
  14. 《智能商业》由阿里巴巴学术委员会主席、前总参谋长曾鸣亲自编写,值得一读!
  15. Jenkins的制品管理
  16. linux下的清屏方法
  17. 获取java时间 小时_Java 如何获取当前时间前一个小时的时间
  18. “如果不是生活所迫,谁又愿意拿青春赌明天呢”一位年新30w测试工程师的自白
  19. 本Blog被http://www.dotnetnukeblogs.com/ 收录
  20. HBase Shell数据库操作

热门文章

  1. 如何快速将纸质书转成pdf或Word电子档
  2. 怎样找回u盘里误删的文件
  3. 多多情报通:拼多多视频上传多久审核?如何发布新品?
  4. VM虚拟机 - Docker - CentOS 7 - 快速使用Docker从零搭建Hadoop完全分布式集群详细教程(亲测有效,※吐血推荐※)(内含快速启动容器脚本)
  5. NOY 139 康托展开
  6. 【Akka】Actor模型探索
  7. NOIP2018 自闭记
  8. 非精确线搜索 matlab,使用非精确线搜索Armijo算法确定步长的最速下降法(MATLAB)...
  9. 参加51CTO学院软考培训感想
  10. 【转帖】赤壁之战,曹操大败只因缺了Service Mesh