类《双人成行》3D动作益智冒险类双人控制游戏开发

        服务器端采用了基于开源Kbengine(引擎使用C++和Python编写)的多人在线游戏服务器,客户端采用Unity3D。游戏支持线上的双人联机房间功能。

资源地址:类《双人成行》3D动作益智冒险类双人控制游戏开发教程 | Unity 中文课堂

一、游戏玩法

    进入游戏主界面,有三种玩法,第一种是单机模式,第二种是联机模式即类《双人同行》、第三种是乱斗模式。如下

图片

第一种-单机模式(单人操作模式),玩家需要操作两个角色,两个角色配合过关,目前实现了7个关卡,后面会不定期增加;在每个关卡里威廉和安娜一起冒险,根据限定的游戏时间、闯关是否成功、收集到所有的金币、宝石才能过关,并进行关卡评级。

第二种-乱斗模式(单人操作模式),玩家操作角色进行打怪过关,当所有的怪物被消灭后即可完成关卡。

第三种-双人模式(双人联机房间模式)即类《双人同行》玩法,该玩法需要用户先进行用户注册,以从“游客”角色转变成“登陆用户”,从而登陆到后台服务器端。具体为,一个玩家首先进行用户注册,然后建立房间,并把房间号告诉给别的玩家;另一个注册玩家拿到房间号后通过房间号查询并登陆到同一个房间,就可以进行类《双人同行》的玩法了。

二、游戏项目特点

* 新颖的游戏风格:3D开放空间中双人协作过关

* 游戏模式1:用户双人控制模式,一人饰两角,双人配合协同过关

* 游戏模式2:乱斗模式,经典RPG风格 - 和关卡内的各种怪物进行战斗

* 游戏模式3:双人模式(双人联机房间模式)即类《双人同行》玩法

* 通用关卡逻辑的封装:在每个关卡复用同一套过关逻辑

* 各关卡独立部分的游戏逻辑封装:每关通过逻辑接口派生的方式衍生出各自独有的游戏逻辑

* 主角和怪物角色脚本动画组件:通用的角色脚本,支持角色的逻辑业务,如idle、追逐、攻击等等,方便建立你自己的怪物角色。

* 通用的模型动画功能组件:功能组件有,如模型的简单、复杂运动的封装(旋转,移动、来回移动、多次移动)、各种功能性的开关(一次按钮触发,持续触发)、辅助角色加速跳跃的螺旋桨和模拟风力的粒子效果等等。然后可以通过这些已经封装好的众多功能组件,组合出可复用的创意形功能,当然你也可以开发出自己特有的功能组件,然后结合项目中其它功能组件组合出更多的创意形的关卡。

三、项目中学到的东西

* 游戏教程适合初学者,同时适合中高级Unity开发人员,原因如下

* 项目的开发以逐步功能的实现为顺序准则,代码也是尽量以逐行手写的方式,力求大部分学习者能够学习到游戏开发的习惯和完整的游戏开发技术

* Unity中角色控制和Animator动画:首先使用5节基础实操课进行讲解以帮助入门,然后通过若干节的课程,讲解主角和怪物的实现,以帮助更深入的掌握

* 关卡复用的“模型动画功能组件”的制作:帮助大家掌握动画的制作,通过这部分内容大家同时也能学到3D数学在游戏开发中的使用。

* MVC的UI游戏框架的学习:首先使用9节课程进行MVC的基础DEMO讲解;然后通过若干节的课程,讲述在游戏中MVC框架的业务实现技术细节,以帮助更深入的掌握。

* 多人在线的游戏服务器开发:首先使用6节课进行基于C++和Python的游戏服务端的讲解,然后使用若干节课进行类《双人同行》的双人联机的网络游戏的开发学习。

* “图形学相关的知识和3D数学应用”在项目功能开发中进行了完整的讲解:如Vecto3向量、Quaternion方位、模型旋转之插值计算方法、Vector3.Dot点乘计算角度等等都在项目开发中应用并进行了详细的讲解。

* 教程遵循严格的C#编码规范:帮助大家养成良好的编码习惯,以适应正规公司多人协同下的开发流程

四、学习者需要的基础

*掌握基本的C#编码经验

*基本的Unity编辑器的使用

*由于教程是包含有基础部分的,所以不强制要求学习者掌握游戏图形学方面的知识

五、关键技术架构

* 商用级别的MVC UI框架

* 基于KBEngine分布式的多人在线游戏服务器,C++和Python的游戏中心架构技术

* 所有关卡可复用且通用的关卡逻辑

* 当前关卡独有的通用关卡逻辑(所有关卡派生功能)

* 对象池技术:对象的生成和回收复用技术,如关卡4中采用的铁球障碍物

* 通用且可复用的模型动画功能组件

* 乱斗模式中怪物的可复用技术,多种类型怪物通用同一套功能架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark--基本介绍

Spark是基于内存的快速,通农用,可拓展的大数据分析计算引擎,Hadoop是一个分布式系统基础架构 Spark和Hadoop之间的对比和联系 架构与组件: Hadoop: ■ HDFS:分布式文件系统,负责海量数据存储。…

05-GPIO原理

一、概述 1、GPIO,即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 2、GPIO的复用:引脚复用是指将单个引脚配置为多个功能的能力。在 STM32 中&…

基于LangChain4J的AI Services实践:用声明式接口重构LLM应用开发

基于LangChain4J的AI Services实践:用声明式接口重构LLM应用开发 前言:当Java开发遇上LLM编程困境 在LLM应用开发领域,Java开发者常面临两大痛点:一是需要手动编排Prompt工程、记忆管理和结果解析等底层组件,二是复杂…

深入解析 Docker 容器进程的 cgroup 和命名空间信息

深入解析 Docker 容器进程的 cgroup 和命名空间信息 在现代 Linux 系统中,控制组(cgroup)和命名空间(namespace)是实现容器化技术的核心机制。cgroup 用于管理和限制进程的资源使用(如 CPU、内存、I/O&…

【汽车ECU电控数据管理篇】S19文件格式解析篇章

一、S19格式是啥 在电控文件管理的初期阶段,我首次接触到的是 A2L 和 HEX 文件。其中,A2L 文件主要承担着描述性功能,它详细地描述了各种参数和配置等相关信息。而 HEX 文件则是一种刷写文件,其内部明确记录了具体的地址以及对应的…

python编程相关的单词

the: 在编程中,“the” 是一个常见的英语单词,用于指定特定的对象或变量。例如,“the function” 指的是某个特定的函数。 the的拼写是t,h,e.再读一次t,h,e and: 在编程中,“and” 是一个逻辑运算符,用于连接两个条件&…

网络原理 - 4(TCP - 1)

目录 TCP 协议 TCP 协议段格式 可靠传输 几个 TCP 协议中的机制 1. 确认应答 2. 超时重传 完! TCP 协议 TCP 全称为 “传输控制协议”(Transmission Control Protocol),要对数据的传输进行一个详细的控制。 TCP 协议段格…

python博客爬虫列表

我希望对指定网页的,博客列表,获取url,然后保存成本地文件,用python实现 step1: import requests from bs4 import BeautifulSoup import jsondef get_blog_links(url):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win6…

软件测试入门学习笔记

今天学习新知识,软件测试。 什么是软件测试? 使用人工和自动手段来运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或弄清实际结果与预期结果之间的差别。 软件测试的目的? 1)为了发现程序&#xff0…

uniapp开发2--uniapp中的条件编译总结

以下是对 uni-app 中条件编译的总结: 概念: 条件编译是一种技术,允许你根据不同的平台或环境,编译不同的代码。 在 uni-app 中,这意味着你可以编写一套代码,然后根据要编译到的平台(例如微信小…

【k8s】sidecar边车容器

一、Sidecar 模式简介 Sidecar 模式是一种常见的微服务架构设计模式。它通过将附加功能或服务与主应用程序部署在同一容器或主机上,从而实现对主应用程序的增强和扩展。Sidecar 的名称来源于摩托车的边车,它与摩托车紧密相连,为主车提供额外…

MySQL索引使用一定有效吗?如何排查索引效果?

MySQL索引使用一定有效吗?如何排查索引效果? 1. 索引一定有效吗? 不一定! 即使你创建了索引,MySQL 也可能因为以下原因 不使用索引 或 索引效果不佳: 索引选择错误:MySQL 优化器可能选择了错…

漏洞管理体系:从扫描评估到修复验证的全生命周期实践

漏洞管理体系:从扫描评估到修复验证的全生命周期实践 在网络安全防御体系中,漏洞管理是“攻防博弈”的核心战场。据NVD(国家漏洞数据库)统计,2023年新增漏洞超21万个,平均每天披露575个,其中32…

cdh平台管理与运维最佳实践

一、容量规划:构建可持续扩展的数据湖底座 1.1 资源评估三维模型 #mermaid-svg-4Fd5JDKTgwqF1BUd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4Fd5JDKTgwqF1BUd .error-icon{fill:#552222;}#mermaid-svg-4Fd5J…

力扣347:前K个高频元素

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1]题解: 一、思路: 1.我希望将nu…

前馈神经网络层

FeedForward Network 论文地址 https://arxiv.org/pdf/1706.03762 前馈网络介绍 前馈网络是Transformer模型中的关键组件,每个Transformer层包含一个多头注意力模块和一个前馈网络模块。该模块通过两次线性变换和激活函数,为模型提供非线性建模能力。其核…

如何将 sNp 文件导入并绘制到 AEDT (HFSS)

导入 sNp 文件 打开您的项目,右键单击 “Result” 绘制结果 导入后,用户可以选择它进行打印。请参阅下面的示例。要点:确保从 Solution 中选择它。

es-核心储存原理介绍

原始数据 idusernamegradedescription1ahua87i like study2xiaowang92i like es3zhaoyun63i like java 倒排索引 description使用的text分词,使用倒排索引 termidi1,2,3like1,2,3study1es2java3 分词后,如果匹配 es,则需要逐行匹配&…

jmeter中监控服务器ServerAgent

插件下载: 将ServerAgent上传至需要监控的服务器,mac/liunx启动startAgent.sh(启动命令:./startAgent.sh) 在jmeter中添加permon监控组件 配置需要监控的服务器IP地址,添加需要监控的资源 注意&#xf…

UML 状态图:以共享汽车系统状态图为例

目录 一、初识 UML 状态图 二、共享汽车系统状态图详解 (一)初始状态与车辆空闲状态 (二)用户预定相关状态 (三)等待取车与用户取车状态 (四)用户还车及后续状态 三、状态图绘…