이 튜토리얼에서는 OpenAI API를 통해 게임에서 퀘스트를 완료한 것으로 표시하는 방법을 배웁니다. 클라이언트, 즉 플레이어의 브라우저가 다음 정보를 수신하는 것이 중요합니다: 퀘스트가 성공적으로 완료되었습니다. 이를 통해 플레이어는 오웬 박사와 대화하여 게임 목표에 더 가까이 다가갈 수 있습니다. 자세한 내용을 살펴봅시다!
가장 중요한 결과
- 퀘스트는 응답 오브젝트의 완료된 퀘스트 속성을 통해 표시됩니다.
- 이 정보는 클라이언트로 전송되어 퀘스트의 상태를 업데이트할 수 있습니다.
- 퀘스트가 완료된 것으로 표시되면 플레이어는 오웬 박사와 상호작용할 수 있습니다.
단계별 가이드
기본 애플리케이션이 올바르게 준비되었는지 확인하여 설정을 시작합니다. 이 예제에서는 응답 메시지를 사용하여 퀘스트의 상태를 업데이트하겠습니다.

응답 메시지에 completedQuest라는 새 속성을 추가합니다. 이 속성을 사용하면 오웬 박사가 준 음료와 관련된 퀘스트의 현재 상태를 저장할 수 있습니다.
코드에서는 완료된 퀘스트를 Dr Owen Drink로 설정했습니다. 즉, 함수가 호출되는 즉시 퀘스트가 완료된 것으로 간주됩니다.
그런 다음 이 퀘스트의 이름을 프로퍼티에 작성합니다. 이렇게 하면 여러 퀘스트를 유연하게 관리할 수 있습니다.
완료된 퀘스트 속성을 정의한 후 이 응답 객체를 클라이언트에 보냅니다. 응답 텍스트뿐만 아니라 이 추가 정보도 함께 보내는 것이 중요합니다.

그런 다음 클라이언트에서 이 응답을 수신하고 응답 객체를 처리합니다. 여기서 올바른 속성에 액세스하고 있는지 확인해야 합니다.

응답을 받으면 chat.jsx 파일에서 응답 개체 콘텐츠를 검색합니다. 이 과정에서 콘텐츠와 completedQuest 속성에 액세스합니다.

완료된 퀘스트 속성이 정의되지 않은 경우 해당 퀘스트 ID를 검색할 수 있습니다. 이 ID를 통해 완료해야 하는 특정 퀘스트를 찾을 수 있습니다.

퀘스트 ID를 사용할 수 있게 되면 완료됨 속성을 true로 설정하여 실제로 퀘스트를 완료된 것으로 표시합니다.

여기서 쿼리를 사용하여 ID가 완료된 퀘스트 ID와 일치하고 올바른 퀘스트를 찾았는지 확인합니다.

모든 퀘스트가 포함된 게임 런타임 데이터를 검색합니다. 처음에 각 퀘스트의 상태는 거짓으로 설정됩니다. 이제 퀘스트가 완료된 것으로 표시되면 이 상태를 true로 변경합니다.

간단하게 하기 위해 게임 런타임 데이터를 채팅 컴포넌트에 소품으로 전달합니다. 이를 통해 코드의 적절한 위치에서 퀘스트를 관리하고 사용할 수 있습니다.

채팅 컴포넌트에서는 이 데이터를 사용하여 퀘스트를 검색합니다. 올바르게 완료된 퀘스트를 찾기 위해 올바른 ID가 있는지 확인합니다.

대상 퀘스트를 찾으면 상태를 true로 설정합니다. 이렇게 하면 게임 내 시각적 상태도 업데이트됩니다.

동작을 테스트하기 위해 바에 가서 바텐더와 상호 작용합니다. 다시 한 번 오웬 박사에게 음료를 사달라는 명령을 내립니다.

"닥터에게 음료를 사주세요."라는 메시지를 보냅니다. 이 시점에서 퀘스트가 완료된 것으로 표시되어야 합니다.

모든 것이 올바르게 구현되면 오웬 박사가 사용자 인터페이스에 표시되고 그에 따라 상태가 업데이트됩니다.
이제 퀘스트가 완전히 완료되지 않은 경우 플레이어가 오웬 박사와 상호작용할 수 없도록 해야 합니다.

퀘스트 상태를 참으로 설정하면 오웬 박사와의 상호작용을 허용할 수 있습니다. 이렇게 하면 게임 경험이 향상되고 퀘스트가 의미 있게 느껴집니다.
상호작용을 더욱 세분화하려면 다음 단계에서 여러 대화 파트너를 선택할 수 있는 드롭다운 메뉴를 추가해야 합니다. 플레이어는 게임 내 다양한 캐릭터와 소통할 수 있어야 합니다.
요약
이 가이드에서는 게임에서 퀘스트를 완료한 것으로 표시하는 방법과 이를 위해 필요한 단계를 배웠습니다. 퀘스트 상태를 올바르게 관리하면 게임 내 상호작용을 늘리고 플레이어의 경험을 더욱 흥미롭게 만들 수 있습니다.
자주 묻는 질문
"완료된 퀘스트"란 무엇인가요? "완료된 퀘스트"는 플레이어가 성공적으로 완료한 미션 또는 과제입니다.
퀘스트 상태는 어떻게 업데이트되나요?퀘스트 상태는 응답 메시지의 완료된 퀘스트 속성을 통해 업데이트됩니다.
여러 개의 퀘스트를 동시에 관리할 수 있나요?예. 서로 다른 퀘스트 ID를 사용하고 개별적으로 상태를 업데이트하여 여러 개의 퀘스트를 관리할 수 있습니다.
완료된 퀘스트 속성은 어떤 용도로 사용되나요? 완료된 퀘스트 속성은 게임에서 특정 퀘스트가 완료되었음을 알려 클라이언트가 적절히 반응할 수 있도록 합니다.
오웬 박사와 대화하려면 어떻게 해야 하나요? 플레이어가 오웬 박사와 대화하기 전에 해당 퀘스트의 상태가 true로 설정되어 있는지 확인해야 합니다.