Wonny
Wonny
🏅 AI 마스터
🎻 루키 파트너
🏅 베스트오브베스트

손이 느려 슬픈 Wonny가 ESG 턴제 시뮬레이션을 게임을 개발하다

■ 소개

1주차 사례 게시글입니다

뇌과학의 원리를 활용해서 턴제 시뮬레이션 게임을 만들려고 했습니다.

(그런데 ESG가 왜 자본주의랑 연결되는지를 더한)

.

그래서 이 게임의 목표는 EXIT을 통한 파이어족 달성입니다-!

(많이 벌고 빨리 은퇴하고 싶은 욕망은 누구에게나 있다아~)

.

그래서 게임 제목은

EXITers

입니다.

<서사>

모든 것을 걸고 시작한 나의 회사, 이제 막 상장의 기쁨을 맛봤지만 현실은

녹록지 않다. 바닥난 잔고와 위태로운 지분, 이대로 물러설 수는 없다. 모든

것을 쏟아부어 회사를 일으키고, 마침내 자유를 쟁취할 것이다!

.

.

애아빠라 육아도 해야하다보니 시간을 분초단위로 써야합니다 ㅎㅎ

.

바로 본론 들어갈게요

.

(추가)

아 제목은 왜 저렇게 했냐면,

저는 손이 느려서 롤같은 게임은 진짜 못하고,

유튜브로만 봅니다... ㅠㅠ

대신 똥손으로 그나마 할 수 있는게 턴제 게임이라

문명같은 턴제게임을 좋아합니다.

원래 문명like게임을 만들려다가, 너무 복잡해지면 또 노잼이니까

"60 seconds"*라는 게임을 오마주로 한번 시도해봤습니다.

* 핵전쟁에서 가족들이랑 지하실에서 살아남는 게임입니다.

■ 플레이 영상

■ 진행 방법

Q. 어떤 도구를 사용했고, 어떻게 활용하셨나요?

러버블로 만들고 Cursor로 편집한다는 틀은 지난번 글과 동일합니다.

.

하지만, 프롬프트를 만들어봤던 경험에 비춰봤을때,
(참고 : https://www.gpters.org/research/post/how-use-tcfd-disclosure-CvZeHW8RTecZVXA)

AI는 모든 걸 다 해줄 수 있지만, 디테일은 제공해야한다.

.

(추가)

위 링크 들어가서 보시면 아시겠지만,,, ㅎㅎ

보고서 쓸 당시 프롬프트만 무려 A4용지 6페이지를 썼습니다.

라는 점을 알고 있었기에 최대한 자세한 구조를 집어넣으려고 했습니다.

.

.

그래서 최대한 디테일을 넣어서 PRD를 짜달라고 했고, 사용한 프롬프트는 다음과 같습니다.

--------
뇌과학의 원리를 활용해서 텍스트 기반 60 seconds 스타일 게임 PRD만들어줘
뇌과학 원리는 첨부된 파일 내에서 가장 적합걸로 3개 만 추려서 적용해줘 
우선 러버블에서 디자인을 만들고 커서에서 구현할 계획이야 

--------
 : 게임제목 - EXITers
 : 주인공 - 상장사 경영자
 : 배경 
  - 주인공은 100% 지분으로 시작했으나 사업 벌려서 잔고 0에 가까운 상태. 회사채 발행 못하는 상태 (신용도 낮음, 나중에는 ESG등급 높으면 ESG채권도 발행 가능)라서, 그래서 300주(일반주주):700주(주인공)으로 이제 막 상장하여 $5,000을 확보하였고, 회사를 지속가능하게 운영하여 EXIT하는게 목표임
  - 배경을 랜딩페이지에서 맛깔나게 소개해주고, 내가 이 돈벌면 회사 때려친다라는 금액(EXIT 금액)을 기입하도록 안내, 시작 버튼을 누르면 게임 시작
 : Dashboard 구성
  - 이름 : 주인공 이름 유저가 수정가능
  - 회사명 : 유저가 수정 가능
  - 회사 잔고 : 남은 돈, 처음에 주식발행해서 마련한 $5,000으로 시작
  - 내 잔고 : $0으로 시작
  - EXIT 목표 : (EXIT 금액) 표시
  - 주가 : (누적수익 / 1000주)로 표시
 : 게임 승리 요건 
  - "내 주식 매각" 버튼을 누르면 (주가 * 내 주식수) 만큼 내 잔고로 금액 채워지고 내 주식수는 0이 됨
  - 내 잔고의 금액이 EXIT 금액이 되면 EXIT하고 파이어족 되기 버튼 등장하고, 그 버튼 누르면 승리
 : 게임 실패 요건 - 지분 50%미만 못 지키는 경우(경영권 상실), 회사 잔고 0이 되는 경우(파산)
 : 3개 사업부서 보유
   - 영업팀(S문제 랜덤 발생) // 관리팀(E문제 랜덤 발생) // 이사회(G문제 랜덤 발생)
   - E,S,G별 문제는 퍼플렉시티 API로 랜덤 생성
   - 영업팀은 수익을 발생시킴 (첫턴에 $1000 수익, 매턴 +-5% 범위 내에서 기본적으로 변동, 그러나 S문제 랜덤으로 발생하면 수익 5~15% 범위 내에서 감소)
   - 관리팀은 비용을 발생시킴 (첫턴에 $700 비용, 매턴 +- 5% 범위 내에서 기본적으로 변동, 그러나 E문제 랜덤으로 발생하면 비용 5~15% 범위 내에서 증가)
   - 이사회는 주인공이 보유한 주식을 팔아서 자금을 확보하거나, 시장에서 주식을 매입(자사주 매입)하여 지분을 높일 수도 있음. 특히, 사익편취 버튼이 있는데, 이것을 쓰면 회사의 수익을 빼돌려서 내 잔고로 넣을 수 있음
 : 랜덤이벤트 - E,S 문제에 대해 무대응이 50%이상 선택되면 외부에서 행동주의펀드 개입하여 주가 50% 폭락
 : 선택지 
- ESG별 문제에 대해서 두가지 선택을 할 수 있음 (ESG문제 대응, 무대응)
- ESG문제 대응은 퍼플렉시티 API로 문제에 대해서 대응책을 LLM으로 생성해서 유저에게 보여줌
- 단, ESG문제 대응에는 비용이 발생함. 그러나 다음 5개 턴에 걸쳐 발생한 비용의 1.5배가 수익으로 5분할 하여 추가 됨
- 무대응에는 비용이 발생하지 않음. 그러나 무대응할 경우 다음 5개 턴동안 각 1% 2% 3% 4% 5%씩 수익이 감소함.
----

역시 러버블은 멋지게 뽑아내주더라구요.

그런데 문제는 있었습니다.

프롬프트에 뇌과학 이라는 단어가 들어가다보니, 뇌과학에 포커스가 맞춰졌습니다.

<시행착오 1>

한국어의 출구 웹 사이트 스크린 샷

.

그래서 오프모임때 나온 명언("문제가 생기면 고칠 생각하지 말고 다시 한다 ㅎㅎ")에 따라

다시 했습니다.

<2차 프롬프트>

게임 디자인 문서 (GDD) - EXITers
1. 개요
EXITers는 60 Seconds! 스타일의 텍스트 기반 경영 시뮬레이션 게임으로, 플레이어는 상장 기업의 경영자가 되어 회사를 지속 가능하게 운영하고 EXIT 목표를 달성하는 것이 목표입니다. 러버블(Lovable)에서 디자인을, 커서(Cursor)에서 구현을 담당합니다.
2. 게임 목표
플레이어 목표: 회사를 지속 가능하게 운영하며, EXIT 목표 금액을 달성하여 파이어족이 되는 것입니다.
승리 조건: '내 주식 매각'을 통해 내 잔고에 EXIT 목표 금액 이상의 자금을 확보하고 '파이어족 되기' 버튼을 클릭하면 승리합니다.
실패 조건:
회사 잔고가 0이 되어 파산하는 경우
주인공의 지분율이 50% 미만이 되어 경영권을 상실하는 경우
3. 게임 배경 및 설정
플레이어는 100% 지분으로 시작했으나 사업 확장으로 인해 잔고가 거의 0에 가까운 상장사 경영자입니다. 회사채 발행이 불가능한 상황(낮은 신용도, 향후 ESG 등급 향상 시 ESG 채권 발행 가능)에서, 최근 상장을 통해 일반 주주 300주, 주인공 700주 비율로 총 $5,000의 자금을 확보했습니다.
랜딩 페이지:
스토리 소개: "모든 것을 걸고 시작한 나의 회사, 이제 막 상장의 기쁨을 맛봤지만 현실은 녹록지 않다. 바닥난 잔고와 위태로운 지분. 이대로 물러설 수는 없다. 모든 것을 쏟아부어 회사를 일으키고, 마침내 자유를 쟁취할 것이다!"와 같은 문구로 게임 배경을 흥미롭게 소개합니다.
EXIT 금액 입력: "이 돈이면 회사를 때려치울 수 있다!"라는 메시지와 함께 플레이어가 원하는 EXIT 목표 금액을 직접 입력하도록 안내합니다.
시작 버튼: "새로운 인생을 향한 도전 시작!" 등의 문구와 함께 게임 시작 버튼을 제공합니다.
4. 대시보드 구성
게임 화면 상단에 다음 정보들이 표시됩니다.
이름: 주인공 이름 (플레이어가 수정 가능)
회사명: 회사 이름 (플레이어가 수정 가능)
회사 잔고: 현재 회사 자금. 초기 $5,000으로 시작.
내 잔고: 플레이어 개인 자금. 초기 $0으로 시작.
EXIT 목표: 플레이어가 설정한 EXIT 목표 금액 표시.
주가: (누적 수익 / 1000주)로 계산되어 표시.
5. 게임 플레이 루프 (턴 기반)
매 턴마다 다음 단계가 진행됩니다.
사업부서별 문제 및 수익/비용 발생:
영업팀 (S 문제): 첫 턴에 $1,000 수익 발생. 이후 매 턴 ±5% 범위 내에서 변동. S 문제 발생 시 수익 5%~15% 감소.
관리팀 (E 문제): 첫 턴에 $700 비용 발생. 이후 매 턴 ±5% 범위 내에서 변동. E 문제 발생 시 비용 5%~15% 증가.
이사회 (G 문제): 이사회 관련 문제 (예: 주식 매각/매입, 사익 편취 관련).
ESG 문제 생성: Perplexity API를 사용하여 E, S, G 각 부문별 문제를 랜덤으로 생성합니다.
랜덤 이벤트 - 행동주의 펀드 개입:
E, S 문제에 대한 '무대응' 선택 비율이 50% 이상 누적될 경우, 50% 확률로 외부 행동주의 펀드가 개입하여 주가가 50% 폭락합니다.
플레이어 선택:
각 ESG 문제에 대해 두 가지 선택지를 제공합니다: '문제 대응' 또는 '무대응'.
'문제 대응':
Perplexity API를 통해 LLM이 해당 문제에 대한 대응책을 생성하여 플레이어에게 보여줍니다.
대응에는 비용이 발생합니다.
효과: 다음 5개 턴에 걸쳐 발생한 비용의 1.5배가 수익으로 5분할 되어 추가됩니다. (예: 100달러 비용 시 다음 5턴간 매 턴 30달러 추가 수익)
'무대응':
비용이 발생하지 않습니다.
효과: 다음 5개 턴 동안 각 1%, 2%, 3%, 4%, 5%씩 수익이 감소합니다. (누적 감소)
이사회 기능 (버튼):
내 주식 매각: (주가 * 내 주식수)만큼 내 잔고로 금액이 채워지고, 내 주식수는 0이 됩니다. (EXIT의 핵심 기능)
자사주 매입: 회사 잔고를 사용하여 시장에서 주식을 매입, 주인공의 지분율을 높일 수 있습니다. (경영권 방어)
사익 편취: 회사 수익의 일부를 빼돌려 '내 잔고'로 직접 가져올 수 있습니다. (단, 과도한 사익 편취는 주가 하락 및 G 문제 발생 확률 증가 요인이 될 수 있음 - 상세 구현 시 추가 논의 필요)
6. 기술 스택 (예정)
디자인: Lovable
구현: Cursor
LLM 연동: Perplexity API (ESG 문제 및 대응책 생성)
7. 추가 고려 사항
난이도 조절: 턴당 수익/비용 변동폭, 문제 발생 확률, 대응 비용 및 효과 등을 조절하여 게임 난이도를 설정합니다.
튜토리얼: 게임 시작 시 기본적인 규칙과 인터페이스에 대한 튜토리얼을 제공합니다.
엔딩: 승리 및 패배 시 각 상황에 맞는 엔딩 메시지 및 화면을 제공합니다.
세이브/로드 기능: 플레이어가 게임 진행 상황을 저장하고 불러올 수 있도록 합니다.
비주얼 요소 (러버블): 텍스트 기반이지만, 대시보드 구성이나 이벤트 발생 시 시각적으로 흥미를 유발할 수 있는 간단한 UI/UX 요소를 디자인에 포함합니다. (예: 아이콘, 색상 변화 등)
ESG 등급 시스템 (향후 확장): E, S, G 문제 대응 여부에 따라 ESG 등급 시스템을 도입하고, 등급에 따라 회사채 발행(특히 ESG 채권) 가능 여부나 이율에 영향을 줄 수 있도록 확장할 수 있습니다.
8. 게임 흐름 요약
시작: 랜딩 페이지에서 EXIT 목표 금액 설정 후 게임 시작.
대시보드: 회사/개인 잔고, 주가, EXIT 목표 등 핵심 정보 확인.
턴 진행: 매 턴마다 ESG 문제 발생 및 수익/비용 변동.
선택: 각 문제에 대해 '대응' 또는 '무대응' 선택.
이사회 활용: '내 주식 매각', '자사주 매입', '사익 편취' 등을 통해 경영 전략 실행.
승리/실패: EXIT 목표 달성 또는 파산/경영권 상실 시 게임 종료.

.

<시행착오 2>

이제 좀 더 그럴싸하게 제가 원했던 모습이 나왔습니다.

출구 웹 사이트의 스크린 샷
중국어 앱의 스크린 샷

.

.

그 다음부터는 생각나는데로 Cursor로 수정해나가면서

Git에 커밋을 푸쉬했습니다.

<커밋 푸쉬 내역>

전화에 한국어 앱의 스크린 샷

  • 커밋 푸쉬하면서 추가된 기능

  1. 직전 턴 수익/비용 표시 추가 : 직전 턴의 수익/비용에 일정 비율로 랜덤으로 기본적으로 변동합니다. 이 수익/비용에 ESG요소 대응 선택에 따라 수익/비용에 미치는 영향들이 발생하게 됩니다.

  2. 자사주 매입은 다음 개발로 넘기기로 했습니다.

  3. 10주 매각 : 원래 전체 지분을 한번에 파는 기능으로 되어있는데, 로직상 50% 미만으로 지분율이 떨어지면 게임에서 패배하기 때문에 10주 단위로 변경했습니다.

  4. 대시보드 섹션명도 직관적으로 "특수 행동"으로 수정했습니다.

  5. 무대응 패널티를 추가했습니다. 약 10턴에 걸쳐 패널티가 점차 누적 적용됩니다.

  6. 대응 인센티브도 추가했습니다. 약 10턴에 걸쳐 인센티브가 점차 누적 적용됩니다.

  7. 사익편취라는 용어를 직관적으로 횡령으로 변경했습니다.

  8. 횡령을 한번이라도 했다면 깜빵엔딩이 나오게 했습니다.

<오늘까지 업데이트 된 최종 버전>

  1. 랜딩페이지

    한국어의 출구 웹 사이트 스크린 샷
  2. 초기화

한국 통화 거래 앱의 스크린 샷

  1. ESG 이슈 발생 화면

    한국 거래 플랫폼의 스크린 샷
  2. 무대응시 화면

한국 통화 거래 앱의 스크린 샷
  1. 다른 ESG이슈 발생 화면

    한국 거래 플랫폼의 스크린 샷
  2. 횡령화면

    한국 거래 플랫폼의 스크린 샷
  3. 파이어족 되기 버튼 활성화 화면

    한국 거래 플랫폼의 스크린 샷
  4. 횡령으로 파이어족 달성시 깜빵엔딩 화면 (배드엔딩)

    빨간색 버튼이있는 한국 앱의 스크린 샷


9. 주식매각으로 파이어족 달성 화면 (해피엔딩)

한국 게임 상을 보여주는 화면

  1. 경영권상실 엔딩

    결제 화면이있는 한국 앱의 스크린 샷
  2. 특정 턴 이후 무대응 누적으로 인한 행동주의 펀드 개입 화면

    한국 환전 앱의 스크린 샷

■ 결과와 배운 점

저는 아무래도 바이브코딩 체질인가 봅니다.

너무 재밌습니다.

시간이 순삭됩니다.

.

.

바이브 코딩 하는 내내 초딩시절 고전게임에 치트엔진 쓰듯이

커서에서 보이는 코딩내역들도 열어보면서

"아 여기가 바뀌겠구나"라고 생각해가며 바이브 코딩했습니다

여러 옵션을 보여주는 컴퓨터 화면의 스크린 샷

(출처 : https://namu.wiki/w/%EC%B9%98%ED%8A%B8%20%EC%97%94%EC%A7%84)

.

.

.

커밋 푸쉬가 잘 안되면,

"안바뀐것 같더라도 일단 푸쉬해줘"라고 하면 업데이트가 잘 됩니다 ㅎㅎ

.

.

플레이하실 수 있게 공유드리고 피드백 받고 싶은데,

아직 퍼블리시를 제대로 안배워서 배워서 공유드리겠습니다.

(스터디장님이 vercel?로 하라고 하셨는데, 제가 아직 잘 모릅니다.)

.

.

일단 올리고 수정할거 있으면 수정하겠습니다. ㅎㅎ

다들 AI팅! (엄빠들은 육아팅도!)

■ 다음주에 업데이트할 것

1) 랭킹보드 도입 - 최대 지속턴, 최고 부자, 최고 주가 등

2) 자사주매입 요소 추가

3) 최대주주 자본 투입 요소 추가

4) 난이도 도입 - 하드/노말/이지 모드 도입 (ESG이슈 발생 빈도 차이)

2개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만