首页 > 编程语言 >Java游戏任务背包系统设计思路

Java游戏任务背包系统设计思路

时间:2023-05-07 22:33:00浏览次数:45  
标签:背包 Java 游戏 系统 道具 玩家 任务 ID

在这里插入图片描述

前言

在游戏开发中,游戏任务系统是必不可少的,因为任务系统是游戏的驱动,是使玩家能坚持玩下去的途径之一,也是玩家的目标。

任务大体分为三块,玩家接受任务--进行任务--任务完成获得奖励。这里面包括两个系统,任务系统和背包系统,因为玩家获得的奖励需要落到玩家自己的背包里。所以我们需要对任务系统和背包系统做一定的设计。

1、任务系统

1.1 任务的分类

任务大致分为:主线任务、支线任务、每日任务等等,根据功能还能分为工会任务、势力任务等等。

任务是游戏里比较复杂的系统,所以设计的时候应该尽可能的方便扩展,在增加任务的时候能简单的配置出来。

1.2 任务数据的定义

在这里插入图片描述

task_chain_id:任务链ID,父任务

task_sub_id:任务id,隶属于父任务的子任务

desc:任务描述

award:任务奖励,json格式,例如 {"amount":"100"},金币奖励100

type:任务分类,是主任务、还是每日任务等等

title:任务标题

roleID:角色ID,该任务绑定的角色,同时也是背包的主键。

2、道具系统

2.2 道具的数据定义

道具系统,也是吸引玩家的途径之一,道具策划的给力,也是增加用户留存率高的手段之一,那么对于后端开发来说,怎么设计道具表呢?

在这里插入图片描述 itemsID:道具ID,同一个道具ID唯一。

roleID:角色ID,角色ID和道具绑定。

count:同一个道具下的数量。

type:道具分类。

desc:道具描述。

name:道具名称。

我们有时候会有碎片的需求,n个碎片可以合成一个道具。那么,碎片表可以这样设计:

在这里插入图片描述

界面UI如下:

在这里插入图片描述

由于任务系统的复杂性,设计上必然有一些挑战,但是这种系统如果理解了,也都是套路的问题,做的久了自然而然就会了,并且可以根据需求自由的调整,理解最重要。

标签:背包,Java,游戏,系统,道具,玩家,任务,ID
From: https://blog.51cto.com/51yeqiu/6252627

相关文章

  • (libgdx小结)window(游戏对话框的使用)
    packagecom.example.groupactiontest;importcom.badlogic.gdx.ApplicationListener;importcom.badlogic.gdx.Gdx;importcom.badlogic.gdx.graphics.GL10;importcom.badlogic.gdx.graphics.Texture;importcom.badlogic.gdx.graphics.g2d.BitmapFont;importcom.ba......
  • Java多线程--让主线程等待所有子线…
    朋友让我帮忙写个程序从文本文档中导入数据到oracle数据库中,技术上没有什么难度,文档的格式都是固定的只要对应数据库中的字段解析就行了,关键在于性能。   数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完......
  • Java练手项目(尚硅谷),后续2
    菜鸟小白,如有大佬发现错误欢迎指正,洗耳恭听。今天在练习Java尚硅谷的项目的时候,发现自己对break语句,还是不太了解,就把那个项目里面的一段循环代码拿了出来,单独放在一个小项目里,去看看,到底执行了哪句,执行顺序。发现,这样来理解比较好一些。代码如下:importjava.util.Scanner;......
  • java注解
    /***@JsonIgnore不返回*/@JsonIgnoreprivateStringsummary;/***@JsonFormat时间注解*/@JsonFormat(pattern="yyyy-MM-ddhh:mm:ss",locale="zh",timezone="GMT+8")privateDatecreateTime;/***@JsonInclude空字段不返回*/......
  • (六) Java API查询与算数运算符练习
    目录API在线文档算数练习题API在线文档各种API集合不过有了chatgpt这些都是弟弟了算数练习题i=i++publicclassInt{ publicstaticvoidmain(String[]args){ inti=1; i=i++; System.out.println(i); }}这里的输出应该是1,因为i=i++这句规则......
  • 黑马 2-javaweb 学习随记
    day08 1:启动tomcat失败121-Oct-202213:41:57.148严重[main]org.apache.catalina.util.LifecycleBase.handleSubClassException初始化组件[Connector[HTTP/1.1-8080]]失败。2org.apache.catalina.LifecycleException:协议处理程序初始化失败3......
  • java常见问题
    java.lang.OutOfMemoryError:Javaheapspace 解决问题之前先来分析一下为什么会出现内存溢出的问题.有两种可能性:一种是应用有问题,本该回收的内存没有进行回收导致的内存溢出,这种情况就需要修改代码了.第二种情况则是服务器资源不够或JVM参数设置过小导致的内存溢出,......
  • 猜数字游戏
    1、电脑生成一个随机数2、猜数字#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<time.h>#include<stdlib.h>voidmenu(){ printf("******************************"); printf("***1.PLAY0.EXIT*****"); printf("......
  • Java Bean介绍与配置
    (一)JavaBean介绍1.javaBean的介绍在Java中,有很多class的定义都符合这样的规范:若干private实例字段;通过public方法来读写实例字段。例如:publicclassPerson{privateStringname;privateintage;publicStringgetName(){returnthis.name;}p......
  • Java 进阶 - Apache BeanUtils
    介绍BeanUtils是ApacheCommons的组件,它们源自JavaAPI并提供Java语言的组件体系结构。JavaBeanUtils设计模式使用实用程序类,这些实用程序类有助于获取和设置Java类的属性值,以便检索和定义Bean属性。常用方法//根据指定的Map填充指定JavaBeans属性publicst......