/ioGameMMO

这是一个基于 ioGame 网络编程框架开发的 MMO 类型的回合制网络游戏项目,这类型的游戏涵盖的点比较多,是 ioGame 的最佳实践。 我们会尽可能的在项目中演示框架文档中提及的理论特性。

Primary LanguageJavaGNU Affero General Public License v3.0AGPL-3.0

群号

群号:🔥🔥回合制网络游戏 MMO (yuque.com)

主要内容是 MMO 回合制网络游戏项目开发与学习,也是 ioGame 网络编程框架的最佳实践项目。

提供完整的项目源码、详细的文档、问答交流...等。

如果你对网络编程感兴趣,或许这是一个很好的入门机会。

如果你是 web 领域的开发者,但对网络游戏开发感兴趣,或许这是一个很好的入门机会。

github gitee
ioGameMMO 回合制网络游戏源码 ioGameMMO 回合制网络游戏源码

项目内容

更详细的可以到在线文档中了解 🔥🔥回合制游戏项目 MMO (yuque.com)

这是一个基于 ioGame 网络编程框架开发的 MMO 类型的回合制网络游戏项目,这类型的游戏涵盖的点比较多,是 ioGame 的最佳实践。我们会尽可能的在项目中演示框架文档中提及的理论特性。

该项目教学不会讲解框架源码相关的,更多的是偏应用的,就是教你如何使用。如果你能将项目学完,基本上就具备了独立开发游戏的能力了。

整体模块内容如下(更多内容将在后续添加...)

  • 注册、登录
  • 人物信息、属性、数值
  • 英雄系统:技能
  • 英雄技能系统
  • 宠物系统:属性、技能、打书、
  • 宠物技能系统:宠物技能书、技能作用、给宠物上书。
  • 商店系统
  • 道具系统
  • 背包系统
  • 装备系统:升级
  • 任务系统
  • 邮件系统
  • 排行榜系统
  • 聊天系统
  • 好友系统
  • 战斗系统:战斗过程、战斗奖励
  • 组队系统

输入图片说明

组件化与改造

上述各个子系统(游戏逻辑服)几乎都是可以组件化的,我们会在此教学中,尽可能的将每个可独立的游戏逻辑服组件化。当逻辑服组件化后,我们将来可以还可以复用这些组件。

虽然我们在开头介绍该项目是一个小型回合制的游戏项目,但实际上还能将其改造为其他类型的游戏。比如改为实时战斗类型的游戏,两者更多的是在战斗系统部分的区别,其他的子系统可以复用。

ioGame 已提供了 TCP、WebSocket、UDP 连接方式的支持,并提供了灵活的方式来实现连接方式的切换。可以将 TCP、WebSocket、UDP 连接方式与业务代码进行无缝衔接。开发者可以用一套业务代码,无需任何改动,同时支持多种通信协议。所以,如果这部分需要做改造的,我们可以忽略不计。

项目产生背景

ioGame 在网络编程方面是先进的、富有想象力的、与时俱进的框架。除了能制作网络游戏外,还能用在物联网等其他领域,总之与网络相关的领域基本上都适用。

项目是基于网络编程框架 ioGame 开发的,也是 ioGame 的最佳实践。ioGame 正式发布至**仓库已经一周年了,经历了近 50 个版本的高速迭代。期间得到了众多开发者的认可,并且这些数据都是可查的,统计数据来源于语雀后台,这些数据都是真实的、客观存在的、活的。与 git star 数据不同的是,因为成本的原因,某宝某多还没有出现能提供这种服务的商家,所以这样的统计数据也更具真实性。

ioGame 为开发者提供了丰富的文档与示例,对于有过游戏开发经验的小伙伴来说已经足够了,甚至可以用丰富来形容。但这些对于没有游戏开发经验的人来说是远远不够的,即使看完了文档与示例后,不懂得如何灵活的运用在游戏中。这些都是正常的现象,之所以会有这种现象是因为没有项目可练习。

另外一个比较困难的点,就是其他领域的开发者想要进入游戏领域则比较困难,因为大部分的公司都需要具备游戏开发经验,这样就导致了对游戏开发有兴趣的人进不来的困境。

游戏开发与 web 类型的 xxx管理系统不同,游戏研发相对来说更困难,且研发经费也较高(没有谁的钱是大风刮来的),所以很少能看见相关的开源产品;这样就造成了入门困难的局面,想入门的开发者没地方入门;为了打破这个局面和普及 ioGame,这里决定使用 ioGame 来研发 MMO 类型的回合制游戏,让 java 从业者有机会能看到游戏开发的整体过程。

本项目对 web 开发者是友好的,如果你之前做过 web 开发,那么学习本项目是一件轻松且简单的事。

该项目整体内容比较丰富,学习完项目后,基本可以开发出市面上 90% 的游戏了。不夸张的说,当你学习完该系列后,基本上可以超越游戏行业 80% 的从业人员。

如果你想深入学习游戏开发、如果你是其他领域的开发者且对游戏开发有兴趣,请选择我们。我们会用心的制作该系列的文档,并且我们有编写优质文档的能力,这点从 ioGame 提供的文档中就可以看出。

适合人员

  • 对游戏开发感兴趣的。
  • 想从其他领域转入游戏行业,这是一个不错的机会。
  • 如果你想深入学习,这会是一个不错的项目,整体系统丰富,综合了多方面的内容。

互动型项目

本项目是边开发边教学类型的项目,并不是类似录播那种有固定大纲的。与录播不同的是,这是一个可参与型的项目,也是一个可互动型的项目。

这种模式的好处就是,当开发者有问题,或有其他需求时,我们可以随时变更策略,以满足多数开发者当下的需求。简单点说,你们是老板、你们是策划、你们是游戏的设计者,只要是合理范围内的需求,我们都是会做记录,并在后续的规划中安排上。

如果你对此模式感兴趣,欢迎加入我们。

故事背景

参考简介

当前开发的是回合制游戏,如果你对回合制游戏不熟悉,可以参考一下梦幻西游手游之类的。之前也说过,回合制游戏与即时战斗类的游戏只是在战斗部分的所不同,但大部分的系统都是可以通用的。所以,只要没有涉及到战斗部分内容的,就可以将我们现在做的游戏称为通用游戏。

故事背景

在一个名为渔民小镇的城镇中,居住着许多喜爱冒险的英雄。这个小镇周围环境优美,是个旅游胜地,吸引了许多游客前来观光和休闲。然而,最近,一股黑暗势力突然出现,威胁着小镇和其居民的安全。

这个黑暗势力由一位邪恶的巫师领导,他使用黑魔法控制了周边的森林和山脉,并派遣手下侵袭小镇。居民们生活在恐惧之中,他们需要拯救者的到来来击败黑暗势力,恢复和平与安宁。

为了解救小镇和居民,我们需要招集这些英雄。这些英雄拥有各自独特的技能和能力,可以擅长物理攻击、魔法攻击、医疗或辅助。他们都住在渔民小镇上,过着平凡的生活,但在危机时刻,他们愿意奋起抵抗黑暗势力。

在这个回合制的 MMO 游戏中,玩家可以选择一个英雄来进行战斗。每个英雄都有自己独特的技能树和装备,玩家可以根据自己的游戏风格和策略选择最适合自己的英雄。有些英雄擅长远程物理攻击,如射手,他们使用弓箭和弩来对抗敌人;有些英雄擅长近战物理攻击,如剑客,他们运用灵活的剑术打击敌人;还有一些英雄擅长魔法攻击,他们可以控制火焰、冰霜、闪电等元素来打击敌人;还有一些英雄擅长医疗和辅助技能,可以为队友提供治疗和增益效果。

除了英雄,玩家还可以携带宠物宝宝一起战斗。这些宝宝拥有各种特色,有些可以提供额外的攻击力,有些可以为队友提供辅助效果,还有些可以变身成强大的怪兽来对抗敌人。玩家需要与自己的宠物宝宝建立深厚的关系,训练它们并发挥它们的潜力。

在游戏中,玩家们可以通过组队过副本、任务和剧情,与其他英雄一起冒险。通过合作与协作,玩家们可以共同击败强大的敌人,解锁新的地图和装备,提升自己的实力。

在副本中,他们将面临各种挑战和敌人,需要通过团队协作和策略才能成功通关。完成任务和剧情将推动故事的发展,揭示出邪恶势力背后更深层的秘密。

玩家不仅可以升级,提升他们的技能和装备,还可以升级和培养宠物宝宝。随着宠物宝宝的成长,它们将获得新的技能和能力,为玩家在战斗中提供更多的支持和战斗力。

渔民小镇的命运掌握在玩家们的手中。让我们招集这些英雄,带领他们一起战胜黑暗势力,保护渔民小镇和其居民,恢复和平与繁荣!

提示:上述故事背景是临时写的,将来游戏发展到一定阶段会重新架构相关内容。

大体玩法架构

从上面的故事背景我们知道,游戏有很多英雄,类似 LOL 的那种英雄,每个英雄都有其特色技能。而玩家只要拥有了英雄,在战斗前是可以选择任何英雄、并携带宠物宝宝一起战斗。

玩家们可以组队一起下副本、任务、剧情行。

玩家可以组队、游戏内置多个英雄,玩家可以使用任意英雄战斗。每个英雄擅长有所不同,各玩家在组队时,可以选择搭配不同的组合来达到不同的效果。

与一般回合制游戏不同的是,我们不固定玩家使用某一个英雄,而是可以随意切换英雄。回合制的核心之一是战斗部分,通过不同的搭配和战斗策略,往往可以展现出丰富的战斗亮点。这些搭配可以是各英雄之间的组合、阵型选择、所携带的宠物宝宝、指挥的策略...等。

为了突出一些意外性,我们会在战斗中添加地形、天气等各种因素;某些英雄、或者阵型、或其他...等,则可以根据这些意外因素增减自身的一些属性。

为了保证 PVP(玩家与玩家之间的)战斗之间的公平性,我们会推出一个赛事。无装备加成模式、或者说装备任选的搭配模式。在战斗前玩家可以选择各装备的搭配策略,凭借各玩家的想象力来组装出各种出奇的战术。

通过上面的方式,在比赛中我们做到了公平性。正常情况下,如副本、剧情、任务等,各种加成,如装备、宠物宝宝 ...等各种加成,还是需要依靠平时的积累。

这样使得游戏具有娱乐性、又具备比赛的公平性。

前置说明

由于整体规划的内容比较多,整体教学会分为几期来讲解,也就是将上述模块拆分为多个阶段来。

该项目教学不会讲解框架源码相关的,更多的是偏应用的。如果你能将项目学完,基本上就具备了独立开发游戏的能力了。

困境

在第一阶段的教学中,是偏向游戏服务器,不会有任何游戏客户端上的交互,而是使用框架提供的模拟客户端请求模块来做功能上的交互。

之所以没有游戏客户端,是因为没有资金请客户端的开发者、没有资金购买 UI 和美术资源、没有资金购买 BGM 和音效、没有资金购买特效 ...等。

所以,如果你比较关注的是游戏客户方面的内容,那么这会让你失望。但是别担心,将来会补上游戏客户端部分的内容,所有的困难,都是可以一步一步的解决。

收费

这是一个收费教学项目,收费是基于以下几点考虑:

  1. 如果你从事过游戏相关行业,就知道整体项目需要的成本有多高。在上面困境中,解释了为什么第一阶段不会有游戏客户端部分的内容;但考虑到整体的趣味性,将来是会安排游戏客户端部分的,前提是有足够的资金时。而我们想通过教学收费的方式,来实现这一可能性。
  2. 整体规划的内容比较多,制作这个系列需要大量的时间、人力物力;如果选择用爱发电的策略,这几乎是不可能完成的。
  3. 发展需要,一切的发展都离不开经济与物质上的支持。
  4. 建立门槛,过滤观光客;优先让付费用户学习、掌握生产资料,从而提高自身竞争力。

这里在补充一些,付费用户相比于自身探索的开发者,会节约大量时间成本 。这些节约出来的时间,已经足够研发几款小游戏了,甚至有可能转化为收益了。我们会让付费用户优先掌握生产资料,因为市场上或者说行业上对于这部分的供需关系是有限的,先进入的优势远大于后进入者。

前置小结

在本小节,从自身的困境中说明了为什么需要收费。由于整体规划比较大,我们会将内容会分为多个阶段来教学。

介绍了授权沟通码的作用,谈到了取得运营权后各方利益的分配问题。我们会将所得利润继续投入到产品的研发中。

如果你有幸白嫖了该项目的相关资源,这并不是因为你强,而是因为你不尊重知识产权。

或许你可以用较低的价格,从其他不良商家手中购买到这些相关的产品与资料,但这是不好的行为。从税收层面来说,他们的这一行为不会为国家与社会贡献任何税收;从产品持续投入来说,他们不会为产品的迭代投入一分钱;不要让劣币驱逐良币,不良商家这样的行为比劣币更可恶,是纯粹的盗窃,他们的行为伤害了真正在做事的人。

而我们会在取得利润后,将利润持续的投入到产品的研发中,形成良性循环。研发过程需要大量的人力物力、时间 ...等,请支持正版,请支持我们的计划,谢谢。

环境安装及准备工作

本项目的学习者建议具备 1 年及以上工作的经验,纯新手不推荐往下看。由于项目整体规划比较大,所以太过基础的不会细讲,比如语法、基本环境的安装 ...等。项目整体是偏应用的,更多的是讨论游戏相关的内容。

环境安装

建议先了解 ioGame 框架的基础概念,可以阅读 ioGame 快速理解篇

第一阶段内容

暂定内容如下,在制作的过程中会有变动。

项目的搭建

详细文档正在制作中....

更详细的文档,请到星球获取

采用标准项目结构来搭建项目的重要性,及为何采用这样的结构?

登录

详细文档正在制作中....

更详细的文档,请到星球获取

人物属性系统

详细文档正在制作中....

更详细的文档,请到星球获取

人物包含一些基础属性

  • 气血上限
  • 魔法上限
  • 物理伤害
  • 物理防御
  • 法术伤害
  • 法术防御
  • 速度
  • 怒气

人物等级描述

等级在游戏中并不是重点,每个阶段需要设置一个等级上限。不要让玩家花费太多时间在升级上面,而是让玩家玩专注副本、剧情、任务这上面。通过这些团队任务来得到更好的奖励,如:装备打造图书与各种耗材等。

玩家组队,通过各英雄之间搭配来完成不同的副本。这也是我们后期研究的主要方向,因为需要专注升级的游戏实在太无聊了。

英雄系统

详细文档正在制作中....

更详细的文档,请到星球获取

英雄属性作用

基于人物的基础属性百分比增减

  • 物理防御百分比增减
  • 法术防御百分比增减
  • 物理攻击百分比增减
  • 法术攻击百分比增减
  • 速度百分比增减
  • 治疗量百分比增减

英雄分类

  • 以物理攻击为主,擅长近战技能和高爆发输出。
  • 以法术攻击为主,擅长控制技能和群体输出。
  • 以辅助和治疗为主,擅长提供队友增益、恢复生命值,减益敌人属性。
  • 以辅助和封印控制为主,擅长减益敌人属性、控制敌方行动。

英雄擅长搭配分类

  • 攻击技能:包括普通攻击和各种主动技能,用于对敌人造成伤害。
  • 治疗技能:用于为队友回复生命值,保持队伍的健康状态。
  • 辅助技能:提供各种辅助效果,如增益队友属性、减益敌人属性、增加移动速度等。
  • 控制技能:用于限制敌人的行动,如眩晕、冰冻、沉默等。
  • AOE技能:范围攻击技能,可以对一片区域内的敌人造成伤害。
  • 群体技能:可以对多个敌人或队友释放技能效果。
  • 召唤技能:可以召唤宠物或其他辅助单位来进行战斗。

英雄技能分类

  • 普通技能
  • 大招

英雄设计

我们先设计一个英雄,名为阿里克斯

  • 英雄分类:物理攻击为主
  • 英雄擅长搭配分类:攻击技能、群体技能

阿里克斯-背景故事:

阿里克斯,被誉为雷霆剑士。从小,他就展现出非凡的战斗天赋和对正义的执着追求。阿里克斯是渔民小镇上一位出色的剑士,经过艰苦的修行和无数次的战斗,阿里克斯逐渐掌握了雷霆之力。他能够通过剑术融入自然元素的力量,使出令人震撼的雷电攻击。他的剑技犹如闪电一般迅猛,每一次挥剑都能带来毁灭性的打击。

前期,简单一点处理,我们只做普攻类的,关于技能之类的放到第二阶段。

最后

上面只列出了登录、人物属性、英雄系统 ...等,第一阶段更多的内容将在后续补充。

由于成本的原因,不会像 ioGame 框架那样提供完整的文档与示例。

回合制网络游戏项目公开部分的迭代速度会比较慢,想要获得当前阶段较新项目源码、文档,可以在付费后得到。目前支持的付费方式是知识星球。(不提供 IOS 的支付入口,因为 IOS 要收 30%、知识星球要收 20%

请支持正版,我们会将收入持续的投入到该项目中,不要让劣币驱逐良币。