이전 글은 아래 링크 참조
프로젝트 완료 시 GitHub 주소 공개 예정(3일 술먹어서 작업 못함)
1. 작업 내용 - 프로토타이핑 - 모험 씬 기능 제작
GPT가 제공해 준 작업 순서는 다음과 같다. 기니까 접어둔다.
(복붙 시 번호가 안붙는 상황이 나와서 내용 복붙 후 번호만 붙임)
1. 컨셉 및 디자인 단계:게임의 핵심 메커니즘 및 재미 요소를 결정합니다.게임의 세계관, 스토리, 캐릭터, 백그라운드 등을 설계합니다.
2. 프로토타이핑:
기본적인 게임 메커니즘을 구현한 프로토타입을 만듭니다.
플레이어의 움직임, 환경 상호작용, 기본 적과의 전투 등을 구현합니다.
3. 2D 아트 및 애니메이션 제작:
캐릭터, 배경, 아이템 등에 필요한 2D 그래픽을 디자인합니다.
필요한 애니메이션을 만들어 캐릭터 및 게임 요소에 적용합니다.
4. 레벨 디자인:
탐험 가능한 세계를 설계합니다.
던전, 지형, 비밀 통로 등을 배치하고 연출합니다.
5. 게임 로직 구현:
플레이어의 조작, 아이템 사용, 적과의 전투, 퀘스트 시스템 등의 게임 로직을 프로그래밍합니다.
6. 생성형 AI 구현:
생성형 AI를 사용하여 매번 새로운 지형, 던전, 아이템을 생성하는 시스템을 구현합니다.
7. 사운드 및 음악 추가:
게임 플레이에 필요한 효과음과 배경 음악을 추가합니다.
8. 테스트 및 디버깅:
게임의 오류를 찾고 수정하며, 균형을 맞추기 위해 게임을 반복해서 플레이합니다.
9. 최적화 및 마무리:
게임의 성능을 최적화하고 필요한 추가 기능을 구현합니다.
게임을 출시할 준비를 마치고 마무리 작업을 진행합니다.
10. 출시 및 마케팅:
게임을 적절한 플랫폼에 출시하고, 마케팅을 통해 게임을 홍보합니다.
플레이어들의 피드백을 수집하고 게임을 업데이트하여 지속적으로 향상시킵니다.
- 이번 글은 이전 글에서 도출한 UML을 통해 클래스별 스크립트 제작을 다룬다.
2. 클래스 스크립트 제작
과정은 단순하다.
최종 다이어그램을 도출한 채팅방 내에서 다음과 같이 질문하여 각각의 스크립트를 제작한다.
- 각각의 클래스의 스크립트를 작성해달라고 요청한다.
- 채팅방 생성 시 Unity로 개발하고 있다는 정보를 제공하였으므로 언어 및 환경은 따로 지정하지 않아도 된다.
- 다른 클래스에 대한 스크립트 파일이 존재하지 않아 에러가 뜬다.
- 도출한 모든 클래스 파일을 위와 같은 과정을 통해 프로젝트 내 생성 시킨다.
- 클래스 파일을 생성 후 에러가 남아있는 GameManager 클래스 생성이 필요하다.
- void가 아닌 bool로 반환을 해줘야 한다. 안그러면 에러 상태가 유지된다.
- 위 질문을 통하여 에러를 제거한다.
- 위와 같은 질문 및 피드백을 통해 모든 클래스 파일을 생성한다.
3. 함수 구체화
- 위 이미지는 Enemy 클래스의 일부이다.
- 이미지를 보면 각각의 함수에 대해 구체화 되어 있지 않고 기능을 구현하라는 주석만 적혀있다.
- 해당 주석들을 실제 작동하도록 변환해줘야 한다.
- [ ~~~클래스의 함수를 작성해줘 ] 라는 질문을 한다.
- 이 때 미구현 기능들도 냅두고 대략적인 틀만 잡는다.
- 틀만 먼저 잡는 이유는 질문들을 반복함으로써 점점 구체화 시킬 예정이기 때문이다.
- 근데 AdventureScene 클래스부터 문제가 생겼다.
using UnityEngine;
public class AdventureScene : MonoBehaviour
{
private Dungeon dungeon;
private Player player;
private UIManager uiManager;
private GameManager gameManager;
// Start is called before the first frame update
void Start()
{
// 필요한 컴포넌트들을 초기화합니다.
dungeon = GetComponent<Dungeon>();
player = FindObjectOfType<Player>();
uiManager = FindObjectOfType<UIManager>();
gameManager = FindObjectOfType<GameManager>();
}
// 던전 선택 기능
public void SelectDungeon(int dungeonIndex)
{
// 선택한 던전에 따라 필요한 초기화 작업을 수행합니다.
// 예를 들어, 던전 맵을 생성하고 적을 배치할 수 있습니다.
// 이를 위한 Dungeon 클래스의 메서드들을 호출합니다.
}
// 던전 탐색 기능
public void ExploreDungeon()
{
// 던전 내부를 탐색하는 로직을 구현합니다.
// 적과 아이템을 생성하고 배치하는 등의 Dungeon 클래스의 메서드들을 호출하여 던전을 구성합니다.
}
// 보상 제공 기능
public void ProvideReward()
{
// 던전에서 보상을 제공하는 로직을 구현합니다.
// GameManager 클래스의 메서드를 호출하여 보상을 처리합니다.
}
// 플레이어 사망 처리 기능
public void PlayerDeath()
{
// 플레이어가 사망했을 때의 처리를 구현합니다.
// 예를 들어, 게임을 재시작하거나 다른 작업을 수행할 수 있습니다.
}
}
- 이전에 뱉었던 함수들이 대다수 변경 되어있다.
- 이전 코드들을 참조하여 다시 지시한다.
- 해당 방법은 기존에 학습 된 자료 외 추가 자료를 제공함으로써 구체적 답변을 얻는 방식이다.
- 많은 빨간줄이 생겼다. AdventureScene 클래스를 추가 학습 자료로 제공하며 다른 스크립트들을 수정할 예정이다.
- AdventureScene 클래스를 다시 한번 인지 시킨다.
- GameManager를 구체화한다.
- 위와 같은 방식으로 나머지 빨간줄(에러)를 제거한다.
- 중간중간 이렇게 직접 말해준다.
- 위 함수는 Item 클래스의 ApplyEffect 함수이다.
- 아이템 효과는 여러개가 될 것이기 때문에 해당 함수는 일단 주석처리 해두고 종료한다.
- 모든 에러를 해결했다. 중간중간 여러 함수들이 추가 되었다. 구조가 변경되었는지 확인해봐야 할 것 같다.
- 기능들이나 이것저것 많이 추가 되었다.
- 변수명 변경이라던가 참조 되는 부분들이 수정 되었다.
'AI > AI활용' 카테고리의 다른 글
[ AI로 게임 만들기 ][ GPT3.5 ] 01_프로토타이핑 - Unity 적용 1 (0) | 2024.04.02 |
---|---|
[ AI로 게임 만들기 ][ GPT3.5 ] 01_프로토타이핑 - 모험 씬 기능 도출 (1) | 2024.03.27 |
[ AI로 게임 만들기 ][ GPT3.5 ] 00_컨셉 및 디자인 (1) | 2024.03.26 |
[ AI로 게임 만들기 ] GPT3.5 vs Google Gemini 시작 (0) | 2024.03.25 |
[NFT] AI 그림으로 NFT 작가 되기 (0) | 2023.05.18 |
댓글