Skip to content

not-blond-beard/savor-22b-mock-battle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2024.05.

결론적으로 해당 기획은 수비 덱의 불리함을 해결하지 못했고, 그리고 덱을 짜는 난이도 자체가 너무 높다는 문제점과 무엇보다 재미가 없어서 새로운 기획으로 변경합니다.

Summary

  • 전투 시뮬레이터는 게임 기획 내용을 최소한으로 검증할 수 있도록 하기 위해서 만들어졌습니다.
  • 수비/공격 세팅을 전부 다 입력해서 플레이 해볼 수 있는 방식입니다.
  • 다음과 같은 내용을 확인하고자 합니다.
    • 게임으로써 즐기며 플레이 가능한 지
    • 너무 어려운 플레이 방식이라 불가하진 않은 지
    • 너무 심각한 기획 오류가 있진 않은지
    • 기획 변경이 필요한 지

게임 설명

  • 전투는 5인으로 진행
    • 모든 캐릭터(슈퍼 푸드)는 슈퍼 푸드의 고유 스킬을 사용해서 전투를 진행함. (일반공격은 없음.)
    • 전방-중앙-후방 (각 줄에 슈퍼 푸드 최소 한명) 으로 배치 가능함.
    • 적팀의 모든 슈퍼 푸드를 죽이거나, 양쪽 팀이 모든 스킬을 다 소진했을때 슈퍼 푸드의 총 합 체력이 더 많다면 승리함. (각 슈퍼 푸드마다의 체력 시스템 존재)
    • 게임에 진입하기 전 유저는 각 캐릭터의 행동에 순서를 정할 수 있음.
      • 스킬
      • 가드 전환
    • 모든 캐릭터는 가드 상태를 게임에 진입하기 전에 지정해둘 수 있음.

데미지

  • 하단 가드를 하면 하단 공격에 데미지를 10%만 받고 중단 공격 데미지를 100% 받음.
  • 중간 가드를 하면 중단 공격에 데미지를 100%로 막고 하단 데미지를 100% 받음.

가드

  • 가드를 하고 있지 않으면 모든 공격에 대해 100% 데미지를 받음.
  • 공격하고 있을 때는 가드 불능 상태가 됨.

프레임

  • A1번 캐릭터의 행동에 10 프레임이 필요하고 B1번 캐릭터 행동에 12프레임이 필요하다면 A1캐릭터의 행동이 먼저 진행됨.
    • 만약 A1에 행동프레임이 5이고 A2에 행동 프레임이 3인데 B1캐릭터 행동에 12가 필요하다면 A1 → A2 → B1으로 진행됨.
    • 이때 B1의 캐릭터는 공격이 시작 됐으므로 가드 불능 상태임.
  • 일부 스킬에는 -프레임(=손해 프레임)을 상대방에게 만드는 기술이 있음.
    • 만약 이 스킬에 걸려 -4프레임이 된 상태라면 스킬을 사용할 때 4프레임이 더 필요하게 됨.
      • 14프레임의 기술을 사용하면 18프레임이 필요한 것.

공격 대상

  • 단일 대상 스킬의 경우 대상이 정해져 있음
    • 체력이 제일 적은 캐릭터 대상
    • 체력이 가장 많은 캐릭터 대상
    • 첫번째 열 대상 등등

상성

  • 짠맛 → 단맛 → 매운맛 → 신맛 → 쓴맛 -> 짠맛

게임 내에서 사용할 수 있는 슈퍼 푸드

  • 앞의 영어 이름은 슈퍼 푸드의 type 입니다.

  • JJAJANG 짜장면 (짠맛)

    스킬 1 (발동 7, 4턴 지속)

    • 본인의 방어력을 20 증가시킵니다.

    스킬 2 (발동 10, 6턴 지속)

    • 단일 공격에 대한 공격을 모두 대신 맞아줍니다 (수호)

    스탯

    체력: 100

    방어력: 50

    저항력: 10

    회피력: 0

    치명타 확률: 0

  • JJAMBBONG 삼선짬뽕 (매운맛)

    스킬 1 (발동 10)

    • 1열에 있는 음식 1개에게 데미지 30을 주고 손해프레임 3을 줍니다.

    스킬 2 (발동 15, 2턴 지속)

    • 모든 상대에게 5데미지를 주고 방어력을 10 깍습니다.

    스탯

    체력: 225

    방어력: 30

    저항력: 40

    회피력: 0

    치명타 확률: 0

  • CAKE 초코케이크 (단맛)

    스킬 1 (발동 13)

    • 체력이 가장 낮은 상대에게 데미지 35를 줍니다.

    스킬 2 (발동 18)

    • 1열에 있는 음식들에게 데미지 15를 줍니다.

    스탯

    체력: 180

    방어력: 40

    저항력: 0

    회피력: 0

    치명타 확률: 20

  • MALA_XIANG_GUO 마라샹궈 (짠맛)

    스킬 1 (발동 10, 3턴 지속)

    • 체력이 가장 낮은 음식 하나에게 데미지 10과 방어력 감소 10을 부여합니다.

    스킬 2 (발동 18, 중단)

    • 체력이 가장 낮은 음식 하나에게 데미지 50 줍니다.

    스탯

    체력: 80

    방어력: 10

    저항력: 40

    회피력: 30

    치명타 확률: 40

  • MILK_SHAKE 밀크쉐이크 (단맛)

    스킬 1 (발동 5)

    • 다음 시전되는 스킬 2의 공격력을 10 증가시킵니다.

    스킬 2 (발동 25, 중단)

    • 모든 상대에게 데미지 30을 줍니다.

    스탯

    체력: 100

    방어력: 10

    저항력: 0

    회피력: 0

    치명타 확률: 0

  • MALA_TANG 마라탕 (매운맛)

    스킬 1 (발동 14)

    • 1열에 있는 음식들에게 데미지 5와 기절 상태이상을 부여합니다.

    스킬 2 (발동 20, 중단)

    • 1열에 있는 음식들에게 데미지 60을 줍니다.

    스탯

    체력: 130

    방어력: 20

    저항력: 0

    회피력: 0

    치명타 확률: 0

  • KUNG_PAO_CHICKEN 꿔바로우 (신맛)

    스킬 1 (발동 15)

    • 모든 상대에게 데미지 20을 줍니다.

    스킬 2 (발동 15, 중단)

    • 모든 상대에게 데미지 10을 줍니다.

    스탯

    체력: 80

    방어력: 30

    저항력: 20

    회피력: 0

    치명타 확률: 20

  • STIR_FRIED_FISH_CAKE 양파 어묵 볶음 (짠맛)

    스킬 1 (발동 10)

    • 체력이 가장 낮은 음식 체력을 30 회복시킵니다.

    스킬 2 (발동 15)

    • 모든 아군 음식의 체력을 10 회복시킵니다.

    스탯

    체력: 150

    방어력: 0

    저항력: 20

    회피력: 0

    치명타 확률: 0

  • SEASONED_BELLFLOWER_ROOT 두릅무침 (쓴맛)

    스킬 1 (발동 20, )

    • 상대 2열과 3열에 있는 음식들에게 기절 상태이상을 부여합니다.

    스킬 2 (발동 12)

    • 상대 1열에 있는 음식들에게 기절 상태이상을 부여합니다.

    스탯

    체력: 80

    방어력: 0

    저항력: 0

    회피력: 0

    치명타 확률: 0

  • RED_GINSENG_JUICE 홍삼즙 (쓴맛)

    스킬 1 (발동 12, 6턴 지속)

    본인의 회피력을 30 증가시킵니다.

    스킬 2 (발동 10, 4턴 지속)

    단일 공격에 대한 공격을 모두 대신 맞아줍니다 (수호)

    스탯

    체력: 50

    방어력: 0

    저항력: 0

    회피력: 50

    치명타 확률: 0


게임 플레이 시 확인할 체크리스트

  • 수비덱을 충분히 공략할 수 있는지 확인
  • 너무 변수가 많아서 힘들진 않은지 확인
  • 스펙 차이가 어느정도(20%?) 나면 수비덱을 이길 수 없도록 설정이 가능한지 확인
  • 전투 한번 한번의 스트레스가 많진 않은지 확인
  • 자동기보? 전투가 가능한지(pve 대비) 확인

추천하는 플레이 방식

  • 공격 팀이라고 가정하고, 수비 팀의 데이터를 보수적으로 미리 입력해둡니다.
    • 이 데이터를 서로 주고받아보면 좋을 것 같습니다.
  • 이제부터 플레이를 진행해보며 수비 팀을 파훼할 수 있는 커맨드를 분석해 승리합니다.

게임 구성

  • 화면은 총 두가지로 구성되어 있습니다.

설정 화면

image

  • 가장 먼저 게임을 실행하면 나오는 화면입니다.
  • 기본적으로 디폴트 데이터가 설정되어 있어서 그대로 플레이 해도 상관 없습니다.
  • 해당 화면에서는 아래 설정을 진행할 수 있습니다.
    • 수비 캐릭터 배치, 공격 캐릭터 배치
    • 수비 기보, 공격 기보
  • 기본적으로 입력 포맷은 json이나,
    • 입력 창은 별다른 포맷 프리티파이가 없는 plain text의 형태라서
    • 알아서 프리티파이 홈페이지 등에서 정렬해서 오면 됩니다.

게임 화면

image

  • 설정한 데이터를 토대로 게임이 실행되는 화면입니다.
    • 캐릭터 위의 인포는 순서대로 다음과 같습니다.
      • [속성][아이디] 캐릭터 타입
  • 게임의 결과도 해당 화면 안에서 나오게 됩니다. (어떤 팀이 이겼는 지)
  • 아래 커맨드 확인 플로팅 화면을 통해 현재 커맨드(스킬, 가드 등) 진행 상황을 알 수 있습니다.

플레이 방법

1. 게임을 실행합니다

image

2. 수비/공격 캐릭터의 배치를 입력합니다.

  • 총 세 줄로 배치를 진행할 수 있습니다. (전방, 중앙, 후방)
    • 총 캐릭터는 5개를 입력하면 되지만, 최소/최대 캐릭터 수에 대한 제한은 없습니다.

입력 포맷

  • 입력 포맷은 다음과 같습니다.
[
	[
	  // 캐릭터 하나의 배치
    {
      "id": String
      "type": Number
    } 
	], // 전방 캐릭터 리스트
	[], // 중앙 캐릭터 리스트 
	[] // 후방 캐릭터 리스트
]
  • 이차원 배열 형태로 데이터를 받습니다.
    • 순서대로 전방, 중앙, 후방 입니다.
    • 필수적으로 세 개의 리스트를 포함해 보내주어야 합니다.
  • type
    • type은 어떤 슈퍼 푸드 타입을 사용할 건지에 대한 내용입니다.
  • id
    • 특정한 슈퍼 푸드를 식별하기 위해 플레이어가 임의로 지정할 수 있는 number 형식 아이디 입니다.
    • 같은 팀 뿐만 아니라, 수비/공격 전체 겹치지 않는 숫자 아이디이면 됩니다.

입력 예시

  • 입력 예시는 다음과 같습니다.
[
  [
    {
      "id": 1,
      "type": "JJAJANG"
    }
  ] // 전방 리스트,
  [
    {
      "id": 2,
      "type": "JJAMBBONG"
    },
    {
      "id": 3,
      "type": "JJAMBBONG"
    }
  ] // 중앙 리스트,
  [
    {
      "id": 4,
      "type": "CAKE"
    },
    {
      "id": 5,
      "type": "JJAMBBONG"
    }
  ] // 후방 리스트
]

3. 수비/공격 캐릭터의 기보를 입력합니다.

  • 기보에서는 스킬(1,2번 스킬)과 가드 전환을 진행할 수 있습니다.

입력 포맷

  • 입력 포맷은 다음과 같습니다.
[
  {
		"id": Number, // 슈퍼푸드 유니크 아이디
		"skill_id": Number, // 스킬 아이디
		"meta": Number, // (Optional) 가드 전환을 위한 속성 값
  }
]
  • id
    • 캐릭터 배치를 입력할 때 각 슈퍼 푸드에 지정해줬던 유니크 아이디입니다.
    • 스킬 혹은 가드 변경을 시도하려는 슈퍼 푸드의 id를 입력합니다.
  • skill_id
    • 사용하려는 행동에 대한 id 입니다.
    • 입력할 수 있는 값은 다음과 같습니다.
      • 0
        • 가드 전환을 의미합니다.
        • 해당 값을 0으로 보낼 때에는, meta 항목을 항상 함께 보내야 합니다.
          • 어떤 방향으로 가드를 전환할 지에 대한 값이 필요합니다.
      • 1
        • 해당 슈퍼 푸드의 스킬 1번을 사용한다는 것을 의미합니다.
      • 2
        • 해당 슈퍼 푸드의 스킬 2번을 사용한다는 것을 의미합니다.
  • meta (Optional)
    • 가드 전환 시, 어떤 방향으로 가드를 전환할 지를 의미합니다.
    • 그래서 skill_id 값이 0일 경우에만 해당 meta값을 보내면 됩니다.
    • 입력할 수 있는 값은 다음과 같습니다.
      • 0
        • 가드 하단으로 전환
      • 1
        • 가드 중단으로 전환

입력 예시

[
	{
		"id": 1,
		"skill_id": 1
	},
	{
		"id": 1,
		"skill_id": 2
	},
	{
		"id": 1,
		"skill_id": 0,
		"meta": 1,
	},
	{
		"id": 2,
		"skill_id": 1
	},
	{
		"id": 2,
		"skill_id": 2
	},
	{
		"id": 1,
		"skill_id": 0,
		"meta": 0,
	},
	{
		"id": 3,
		"skill_id": 1
	},
	{
		"id": 3,
		"skill_id": 2
	},
	{
		"id": 1,
		"skill_id": 0,
		"meta": 1,
	},
	{
		"id": 4,
		"skill_id": 1
	},
	{
		"id": 4,
		"skill_id": 2
	},
	{
		"id": 5,
		"skill_id": 1
	},
	{
		"id": 5,
		"skill_id": 2
	}
]

4. 우측 상단 게임 실행 버튼을 클릭합니다.

image

5. 게임의 진행을 확인하고, 결과를 확인합니다.

image image

  • 결과에 따라 부족한 부분을 파악하여 커맨드를 수정해나갑니다.

참고

해당 문서는 내부 노션 문서를 그대로 Readme로 옮겼습니다.

사용한 asset은 다음과 같습니다.

https://github.com/Jordyfel/duelyst-animated-sprites-godot

About

Mock battle for savor-22b project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published