Java로 텍스트 기반 모험을 만들고 있는데 현재 3 가지 중 하나를 수행 할 수있는 상당히 제한된 전투 시스템이 있습니다.
- 칼로 공격하다
- 마법 공격 (잠금 해제 된 경우)
- 건강 물약을 마시다
이 시스템은 작동하지만 상당히 지루하고 영감이 없습니다. 나는 텍스트 기반 게임의 한계를 감안하면서 전투를 즐겁게 만들고 싶지만 이것을 달성하는 방법을 모르겠습니다. 이 시스템을 더 매력적이고 재미있게 만드는 방법을 알고 있다면 크게 감사하겠습니다.
Java로 텍스트 기반 모험을 만들고 있는데 현재 3 가지 중 하나를 수행 할 수있는 상당히 제한된 전투 시스템이 있습니다.
이 시스템은 작동하지만 상당히 지루하고 영감이 없습니다. 나는 텍스트 기반 게임의 한계를 감안하면서 전투를 즐겁게 만들고 싶지만 이것을 달성하는 방법을 모르겠습니다. 이 시스템을 더 매력적이고 재미있게 만드는 방법을 알고 있다면 크게 감사하겠습니다.
답변:
기본적으로 플레이어의 선택 을 향상시킬 수있는 방법을 찾고 있습니다 . 그렇게하는 방법은 선택을 더 흥미롭고 의미있게 만드는 것입니다. 의미심장하게, 나는 선택이 전체 경험에 미치는 영향을 언급하고 있습니다. 게임의 다른 시스템, 내러티브 등에 대해 더 많이 알지 못하면서이 답변의 범위를 벗어나는 의미있는 부분을 제외시킬 것입니다. 대신, 전투 시스템에 측정 된 불확실성 및 복잡성을 추가하여 더 재미있게 만드는 몇 가지 방법에 중점을두고 있습니다.
제시된 정보를 바탕으로, 나는 다음과 같은 선을 따라 다소 분명한 전투 전략이 있다고 생각합니다.
이러한 종류의 패턴은 게임 플레이를 발견하고 한 번 발견하면 오래 걸리지 않습니다. 이미 몇 가지 솔루션을 시도했습니다.
다음은 의사 결정을보다 흥미롭게하기 위해 시스템에 복잡성을 추가 할 수있는 몇 가지 방법입니다.
복잡성, 불확실성을 추가하고 플레이어가 위험을 감수하도록 권장 할 수 있습니다. 즉, 물약에 0-9의 난수를 부여하십시오. 물약은 자신의 #이 가장 최근에 플레이어에게 입힌 마지막 피해 숫자와 얼마나 밀접하게 일치하는지에 따라 더 많이 치유됩니다.
GDSE는 의견보다 Q & A에 관한 것이기 때문에 그 예가 그저 라 강조하고 싶습니다. 핵심 답은 문제의 시스템을 너무 복잡하거나 임의적이거나 구제 할 수 없게 만들지 않고 흥미를 유발할 수있는 방법을 찾는 것입니다. 이를 수행하는 방법에 대한 추가 의견이 필요한 경우 GDSE 채팅 또는 TIG Source 와 같은 gdev 포럼 으로 이동해야 할 수 있습니다 .
한 번은 내가 플레이 한 최고의 텍스트 기반 2 문자 전투 시스템 중 하나가있는 게임을했습니다 (게임은 다른면에서 끔찍했기 때문에 그 이름을 잊었습니다).
이 시스템이 왜 깊이 있는가?
첫째, 현재 공격 상태에 영향을 미치는 상태 효과와 공격에 대한 상대 방어 통계를 살펴 봐야하므로 현재 어떤 공격이 가장 큰 피해를 입히는 지 항상 명확하지는 않습니다. 플레이어가 게임 메커니즘을 완전히 이해했을 때 이것은 간단한 계산 일 뿐이지 만 알고리즘을 깊게 분석하여 교육적인 추측을하는 플레이어는 거의 없습니다.
둘째,이 경우에도 할 가장 손상 공격에서 그림을, 당신은 상태 효과가 영향을 미칠 것을보고있다. 예를 들어 적 STR을 강화하는 공격을 사용하는 것은 좋지 않을 수 있지만, 반면에 적은 하나의 STR 기반 공격 만 받았으며이 공격은 DEX를 목표로하고 DEX가 가장 좋은 통계이므로 그렇게 나쁘지는 않을 수 있습니다. 이 공격은 또한 INT를 높여주는 효과가 있지만 여전히 3 라운드의 INT 강화 효과가 남아 있기 때문에 다른 능력치에 부스트를 얻는 기회를 사용하고 싶을 수도 있습니다.
이 시스템을 복사해야한다는 말은 아닙니다. 내가 말하고 싶은 것은 깊은 턴 기반 전투 시스템을 설계하고 싶다면
MUD 원석 3은 훌륭한 텍스트 기반 전투였습니다.
MUD이기 때문에 실시간 전투가 있었고 멀티 플레이어였습니다.
가장 기억에 남는 것 중 하나는 자세가 있다는 것입니다. 방어 적이거나 중립적이거나 공격적 일 수 있으며 전투 중에 입장을 바꿀 수 있습니다.
공격에 대한 소요 시간 개념도있었습니다. 더 무거운 무기와 갑옷 (그리고 힘이 적거나, 주문이 적음)은 더 긴 라운드 타임을 의미했습니다.
따라서, 당신은 X 초의 라운드 시간을 가질 것이고, 당신이 싸우고있는 것은 Y의 라운드 시간을 가질 것입니다. (단일 상대를 가정 할 때)
당신과 당신의 상대는 당신의 라운드 타임 타이머가 진행되지 않을 때만 행동 할 수 있기 때문에, 훌륭한 전투기는 "스탠스 댄스"를합니다.
목표는 공격 할 때마다 공격적인 자세를 취하고 공격을받을 때마다 방어적인 자세를 취하는 것입니다.
당신은 당신의 라운드 시간과 그들의 시간을 기준으로 일을해야합니다.
꽤 재미 있었고 기술의 좋은 도전이었습니다. 텍스트 게임 imo에 아주 좋습니다.
선택이 의미가 있을 때 게임이 가장 재미 있다고 종종 말합니다 . 당신의 기계공이 너무 단순하다면, 당신의 선택은 명백해지며 (예를 들어, 체력이 낮음-> 체력을 마시는 물약) 게임이 참여하지 않게됩니다. 선택을 의미있게 만드는 한 가지 방법은 관찰 , 예측 또는 계획 과 같은 기술을 요구하는 것 입니다.
이에 대한 좋은 예 는 다음과 같은 기능과 필요한 기술을 갖춘 JRPG 인 Chrono Trigger입니다 .
이 모든 것을 기반으로하기 위해 게임은 다른 장비를 제공 하고 다른 적과 적의 작곡 을 던지며 때로는 파티원 을 변경하도록 강요합니다. 이는 모두 다른 전략의 상대 효율성에 영향을 미치며 게임 방법 .
그러나 이것은 하나의 예일 뿐이며, 그들이 사용 하는 메커니즘 은 중요한 부분이 아니며 , 플레이어가 배우는 데 필요한 기술 입니다. 기술의 다른 예로는 타이밍 / 반사 (일반적인 액션 게임), 추론 (퍼즐 게임), 장기 계획 (전략 게임) 또는 요미 (파이팅 게임)가 있습니다. 지루한 게임을보다 매력적인 게임으로 만드는 기술에 집중하십시오.
시간에 민감하게 만들 수 있습니다. 그래서 당신은 "트롤이 당신의 머리에서 그의 클럽을 스윙하고 있습니다 ..."라고 말할 수 있고 ...가 점차적으로 나타납니다 (각 0.5 초). 시간이 지나면 마지막입니다. 사용자가 더킹을하지 않았다면 클럽이 그들을 때리고 "클럽이 당신의 머리를 때렸다.
방어적인 움직임은
다른 공격에는 다른 방어가 필요하므로 플레이어는 매번 "차단"을 입력 할 수없고 대신 자극 (설명 된 공격)에 반응해야합니다.
싸움이 시작되면 사용자가 머리에 펀치를 넣을 수 있지만 두 번째 공격이 머리에 다른 펀치이면 차단됩니다. 머리를 펀칭하고 다리를 차십시오. 또한 사용자는 자신의 공격에 대해 약간의 생각을 할 수 있습니다. 어떤 종류의 패턴 인식과 캐릭터가 반복을 허용하지 않고 다음 행동도 추측 할 수 있도록하는 것입니다. 학습 트리를 유지하면 매우 재미있는 놀이를 할 수 있습니다. :)
나는 전투 엔진으로 텍스트 기반 게임을 작업하고 있었고 Super Nintendo의 제목을 기억한다면 OGRE BATTLE 에서 영감을 얻은 시스템으로 최상의 결과를 얻었습니다 . 제 경우에는 3 명의 파티를 통제하고 한 번에 최대 5 명의 적을 상대 할 수 있습니다.
기본적으로 팀의 전술을 설정하면 정해진 반복 횟수에 따라 전투 순서가 자동으로 설정됩니다. 체력이 가장 낮거나 가장 높은 적을 목표로 하시겠습니까? 가장 많은 피해를 입히는 적을 목표로 삼고 싶습니까? 아니면 리더를 목표로 삼고 싶습니까? 모든 비용으로 물약을 저장하거나 % 임계 값으로 사용 하시겠습니까?
이 순서는 여러 번의 공격 교환으로 진행된 후 프롬프트가 다시 나타나고 전술을 다시 평가하고 변경할 수 있습니다. 당신이 팀에 명령하는 것처럼, 당신 자신은 참여하지 않습니다.
궁극적으로 그것은 Pikalek의 말에 달려 있습니다. 선택에 약간의 생각이 필요한 경우에만 흥미 롭습니다.
참고 : 이것은 길지만 가치가 있다고 약속합니다.
혁신적이고 전통적인 다중 옵션 전투 시스템에서 벗어날 수있는 일을하려는 경우. MUD 옆에 많지 않은 텍스트 기반 전투 시스템을 제안합니다 (예 : 이름을 입력하여 주문 또는 공격을 던지십시오) . 게임 방식을 보다 매력적 으로 만들 수있는 좋은 방법 입니다.
타이핑은 텍스트 기반 게임에 액션 요소 인 장르의 게임에 매우 독특한 무언가를 제공합니다. 특히 시간 제한과 결합하면 보스를 죽이고 보스처럼 느끼면서 키보드를 타오르는 것보다 게이머에게 더 좋은 느낌은 무엇입니까?
플레이어가 실제로 버튼을 누르지 않고 자신의 공격과 철자 이름을 기억하도록 강요합니다. 좋은 스토리 / 의미 (텍스트 기반 게임에 필수적이라고 생각) 또는 일종의 의사 언어와 결합하면 플레이어가 게임에 더 몰입하게됩니다. 또한, 게임 팬 커뮤니티 (게임을 위해 당신이 얻을 수 있기를 바랍니다)는 게임에 대한 추가 토론을위한 공통 요소가 있기 때문에 훨씬 안정적입니다. 팬베이스 확장 요소 (FEF) 라고 부르는 것을기본적으로 게임의 기능으로 팬이 게임의 고유 한 측면과 공통된 연관 지점을 갖도록합니다. 게임에 수동으로 더 많은 볼륨을 추가하기 때문에 정말 좋습니다. 여기서 FEF의 가능한 결과를 잘 시각화합니다. 시작 지점 사용자가 게임을 == 사용자가 FEF를 배우는 => 사용자가 다른 사용자와 FEF를 논의 함 IRL / online => 인터넷에서 게임 관련 콘텐츠의 볼륨을 추가로 확장 => 더 많은 타사가 게임에 노출됨 => 더 많은 사용자가 게임을 할 가능성이 높음 => 시작점 이 높음 . 그 게임의 성공적인 FEF의 좋은 예는 Skyrim의 도바 언어 또는 염소 시뮬레이터의 독특한 유머 버그입니다.
나는 마지막 두 가지 점이 그러한 시스템의 가치를 입증하기에 충분하다고 생각합니다 (적어도 단점 이전). 그러나 나는 어려움 인 세 번째 요점을 추가 할 것입니다. 이 시스템을 통합함으로써 플레이어는 충분한 도전을 받고 게임에서 그의 성공이 부호없는 정수 값보다는 기술에 더 많이 기반을 두게됩니다. 어려움이 효과적이고 효과가없는 추가인지 여부는 전적으로 구현에 기반합니다. 예를 들어 게임 OSU는 매우 도전적인 게임이며 상대성도 인기가 있지만 게임을 처음 좋아하는 많은 잠재적 인 플레이어 / 초보자를 겁나게합니다.
많은 일입니다. 물론 많은 키워드 데이터베이스가 제공되는 이러한 시스템을 구축하는 것은 GUI에 몇 개의 버튼을 붙이는 것만 큼 간단하지 않습니다 (조합, 오타, 키보드 처리 등의 시스템을 구축 할 때 고려해야 할 문제는 언급하지 않고 기타...)
오타. 어색한 키보드 또는 사용자로 인해 살해되는 것보다 더 자극적이고 분노를 일으키는 주요 요인은 물론 일부 알고리즘에 의해 수정 될 수 있습니다. 게임을 개발할 때 중요한 요소 인 구현하는 데 훨씬 많은 시간과 노력이 필요합니다.
모두를위한 것은 아닙니다. 특히 게임 기술 / 주문이 특정 언어로 구현 된 경우, 모든 사람이 빨리 입력하는 것은 아니며 영어 기본 언어는 다른 사람보다 더 빨리 철자 를 사용 하거나 더 빨리 철자를 입력 할 가능성이 높습니다 (만들지 않으면 모든 언어에 동일하게 적용됨) 에스페란토의 기술). 이를 위해서는 개발자가 대체 언어 (또는 일부 넌센스)를 제공해야하고 대상 잠재 고객이 줄어들게 될 것입니다. 실제로 작은 어린이는 게임을 플레이 할 수 없게됩니다 (텍스트 기반 게임의 대상 잠재 고객이 아니라고 가정합니다) ) *
. * "포켓몬은 어때?" 잠깐만 요, 당신은 아무도 당신이 처음 대화를 읽지 않았다는 것을 알고 있습니다.
** 그것이 무엇인지 알고 싶다면 전체 게시물을 읽으십시오.
플레이어와 상대방이 동시에 선택하면 두 가지 결정이 동시에 공개되고 실행됩니다.
희미한.
희미한.
높은 스윙.
낮은 스윙.
높은 블록.
낮은 블록.
스윙하고 상대가 막히지 않으면 피해를 입습니다.
높은 스윙은 낮은 스윙보다 더 많은 데미지를줍니다.
스윙하고 상대가 올바른 높이를 차단하면 다음 행동이 낭비 될 확률이 50 %입니다 (다음 행동이 공개 된 후 코인 플립이 수행됩니다).
당신이 기절하고 상대방이 그 높이를 차단한다면, 그들은 당신의 영리한 추론으로 떨어졌습니다.
물론 그룹 싸움, 마법, 물약에는 더 많은 상호 작용이 필요합니다. 언제든지 더 많은 옵션 (파워 스윙 높음 / 낮음)을 추가 할 수 있습니다. 연결하면 더 많은 손상을 입히지 만 다음 1+ 회전에는 취약합니다.
AI 선택은 원하는만큼 간단하거나 복잡 할 수 있지만 거기에 임의의 요소가 있어야합니다. 기본적으로 사람들이 위협을 받으면 (주변의 건강 상태가 낮을 때) 차단 가능성이 높아집니다. 상대방의 균형이 맞지 않고 체력이 낮고 포위 상태에 빠지면 흔들릴 가능성이 높아집니다. 또한 플레이어가 제공 한 정보에 응답하게하십시오. 플레이어가 항상 높은 스윙을한다면, 아마도 높은 차단을하도록하십시오.
당신이 설명하는 것은 구식 JRPG 전투 시스템의 텍스트 전용 버전처럼 들립니다.
@Pikalek은 이러한 시스템이 왜 지루한 지, 깊이를 추가하여 어떻게 참여하게 하는지를 잘 설명합니다. 그래도이 전투 유형에는 두 가지 문제가 있습니다.
여기에 일부 측면 사고가 유용 할 수 있습니다. 그러한 예 중 하나는 Final Fantasy XIII가 전통적인 FF 전투 시스템을 근본적으로 변화시킨 방법입니다.
FF XIII에서 전투는 실시간으로 이루어지며 플레이어 캐릭터는 AI로 제어됩니다 ^. 플레이어 입력은 특정 액션 대신 캐릭터에 역할을 할당하는 "패러다임 전환"입니다. 역할은 각 캐릭터가 사용하는 기술을 결정하며 전사, 마법사, 전차, 의료진 등 매우 일반적인 행동입니다.
이 시스템에는 장단점이 있지만 매우 효과적이며 매력적입니다.
부정적인 측면에서 캐릭터 행동에 대한 미세한 제어력을 잃으면 효과적 일 수 있고 구현하기가 어려운 기술 / 역할이 필요합니다.
긍정적 인 측면에서 실시간 전투는 훨씬 빠르고 매력적이며 쉬운 전투를 신속하게 파견 할 수 있습니다. 또한 전투는 전략 (파티 및 패러다임을 설정하는 방법)과 미세 관리 작업보다는 전술의 전투 흐름에 관한 것입니다. 오는 공격? 빨리, 모든 탱크로 전환하십시오!
이러한 전투 시스템을 구현하는 것은 큰 노력이며 게임의 많은 영역에 영향을 미치므로 한 번의 소금으로 가져 가십시오. 아직도 나는 더 많은 게임을하고 싶고, 텍스트 전용 게임에 적합하다고 생각하는 매우 강력하고 덜 사용 된 시스템이라고 생각합니다.
^ 정확하게 말하면, 메인 캐릭터를 수동으로 제어하거나 완전 자동으로 설정할 수 있습니다.
텍스트 기반 시스템이기 때문에 매번 똑같은 선택 세트 대신 공격 및 방어 옵션에 가능한 문구를 사용하는 것이 좋습니다. 이 문구는 무기에 따라 달라질 수 있으며 "변화하는 전투의 중간에"더 의미가 있습니다. 따라서 행동에 대한 프롬프트가 나타나면 '공격 선택'에 대한 정확한 문구와 '방어 선택'에 대한 문구는 매번 다릅니다.
또한 위험한 위치에 있으면 물약을 마실 수있는 옵션이 없거나 "폭발"상태에서 술을 마시면 상대방에게 자유로운 공격을 할 수있는 "위협"기술을 도입 할 수 있습니다. 이것은 무작위 일 수도 있고 항상 선택한 상황에 따라 달라질 수도 있습니다.
이것은 또한 전투 결과 설명-적중, 미스, 무기 유형 및 피해량에 대한 다른 무작위 / 변경 설명에 적용됩니다.
Mark Brown에서 오늘 배운 건강에 관한 간단한 팁 :
다른 게임 스타일에 대해 다른 크기의 체력 물약으로 플레이어에게 상을 수여 할 수 있습니다.
전체 비디오보기 : 게임이 건강을 유지하는 방법