玩过单机游戏的朋友,应该对金山游侠这个软件很熟悉把。小时候嫌刷怪升级非常辛苦,很多时候都是直接用金山游侠来修改游戏的经验或者等级内存,直接把角色调得很牛逼。

游戏开发也非常需要这些可以修改玩家数据的“金手指”。在游戏设计里,它有个更加专业的名称,叫GM(GameMaster)命令。

有了GM命令,我们就看好很方便让角色快速升级或者直接获取极品道具。当然,只要是数据,都可以有对应的GM命令,只要项目有需要。

下面,我们就来看一下GM系统的一种实现方式。

假设我们需要有一种指令,比如输入playerLv加一个数字表示要达到的等级,只要服务端受到这条指令,就直接将当前角色升到目标等级。不同的GM命令,指令的前缀和参数都是不同的,也就是说,每个指令都有自己固定的格式。在Java里,我们可以用正则表达式来定义这样的格式。

1.首先来看一些我们的gm命令抽象类,该类有几个作用,例如,定制具体的gm命令参数的格式,解析参数的方法,以及执行逻辑的方法。

/*** 抽象gm命令* */
public abstract class AbstractGmCommand {/*** 正则表达式模式* @return*/public abstract String getPattern();/*** 帮助文档* @return*/public abstract String

java游戏服务器框架之GM金手指的设计相关推荐

  1. ioGame 网络游戏服务器框架 (java)、java游戏服务器、netty 集群分步式的网络游戏服务器

    ioGame 国内首个基于蚂蚁金服 SOFABolt 的 java 网络游戏服务器框架:无锁异步化.事件驱动的架构设计 通过 ioGame 可以很容易的搭建出一个集群无中心节点.有状态多进程的分步式游 ...

  2. java 分布式游戏服务器框架,集群游戏服务器框架,游戏服务器网关框架 ioGame 网络游戏服务器框架

    网络游戏框架简介 ioGame 是一个由 java 语言编写的网络游戏服务器框架.支持 websocket.tcp ,适用于全球同服.回合制游戏.策略游戏.即时战斗等游戏服务器的开发.具有高性能.稳定 ...

  3. java游戏服务器开发之四--通讯框架netty

    前言, 说明 引入netty的pom <!-- netty --><dependency><groupId>io.netty</groupId>< ...

  4. Java游戏服务器开发之概念扫盲

    入行缘由 在2017年我正式的从web转Java游戏服务器开发.那个时候机缘巧合的投了一家使用Java语言开发游戏服务器的企业,当时的老板还问我为什么从web转游戏开发.当时我的回答还是历历在目:我喜 ...

  5. 游戏服务器框架概括分析

    游戏服务器框架概括分析 关注公众号 风色年代(itfantasycc) 500G游戏开发资料随便拿! 这篇blog题目涉及的范围真大!以至于在这里需要先写一篇前言把范围缩小.选择写这样一个系列的文章, ...

  6. Java游戏服务器系列之Netty详解

    今天带大家来学习Java游戏服务器的相关知识,文中对Netty作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下 一.简介 Java的底层API逐渐复杂,而开发者面对的 ...

  7. 高性能分布式游戏服务器框架

    欢迎大家Fork mqant开源框架 为什么决定要重新造一个轮子? 目前网上优秀的开源游戏服务器框架也不少(当然与web框架比起来就少太多了),但总结起来都各有各的优缺点,下面列出我在选型过程中的一些 ...

  8. 开源游戏服务器框架汇总

    转自:https://gameinstitute.qq.com/community/detail/133153 有哪些开源游戏服务器框架,值得学习呢.基于node.js .java.C#.golang ...

  9. java游戏服务器必备

    推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 对于一个新手,想接触游戏服务器,一定会有个疑问--使用Java开发服务器需要学习什么? Java语言,由于学习成本低,开发速度快,稳定 ...

最新文章

  1. GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
  2. .net后台获取html控件值的2种方法
  3. mysql 魔乐_MLDN 李兴华 魔乐科技网上最全笔记
  4. html写三角形,css3怎么写三角形?
  5. java语言编程基础_Java编程基础02——Java语言基础
  6. android 中空饼图控件,android饼状图内是空心的怎么做
  7. apple mach-o linker (id) error
  8. leetcode217. 存在重复元素(vip题)超简单
  9. 如何在Eclipse 3.3上安装jadclipse[java的反编译工具] 收藏
  10. java单链表基本操作 一,Java_实现单链表-基本操作
  11. highcharts.js两种数据绑定方式和异步加载数据的使用
  12. Lenovo E47A Ubuntu闪屏解决办法
  13. 【汇编语言】进制转换
  14. 大厂用的分库分表方案和demo源码,都在这里了!
  15. 让网站支持RSS订阅
  16. python 字段_python字典查询
  17. h5php大转盘抽奖,微信公众号H5抽奖幸运大转盘,PHP带后端,微信抽奖大转盘源码可以独立使用...
  18. 小米air2se耳机只有一边有声音怎么办_几款两百元以内的耳机使用体验
  19. OpenGauss一主一从搭建(全网最详细,最简单)
  20. 源码解析-深刻理解Hash HashTable HashMap原理及数据hash碰撞问题

热门文章

  1. Python基础之day03-字符串,列表,元组,字典
  2. mklink 参数使用
  3. cesium加载离线tms切片
  4. RHEL9.0 安全启动提示Verification failed: (0x1A) Secureity Violation解决方法
  5. Bilinear Filter
  6. Unity之OpenXR+XR Interaction Toolkit 安装和配置
  7. springSecurity实现登录验证
  8. list, vector, map, set 区别与用法比较
  9. mac java verbose_如何检查Mac上是否安装了Java JDK?
  10. 对表空间USERS无权限