오늘 하루도 무수히 많은 테이블과 데이터 사이에서 헤엄쳤습니다. 인디 게임 개발자에게 가장 뿌듯한 순간은, 머릿속으로만 구상했던 무기 데미지 공식이나 스킬 트리 구조가 마침내 화면 위에서 완벽히 돌아갈 때가 아닐까 싶습니다.
기획은 낭만적인 글쓰기가 아니다
기획은 단순한 세계관 설정이나 소설 쓰기가 아닙니다. 철저하게 논리적이고 빈틈없는 '공학적 설계'이며, 모든 단어는 코드로 구현 가능한 수치와 상태로 번역되어야 합니다.
1. 기술적 난관과 예외 상황
초기에는 "이 검은 적을 쳤을 때 불타오르며 추가 데미지를 준다" 같이 소설을 쓰듯 기획서를 채워나갔습니다. 하지만 막상 이것을 코드로 구현하려니 예외 상황이 수없이 터져 나왔습니다. 방패를 든 상태에서 맞으면? 데미지 중첩은? 결국 엑셀(Excel)로 정확한 수치 밸런싱을 맞춘 뒤에야 엔진을 켜는 것이 맞다는 것을 배웠습니다.
2. 데이터 파이프라인 구축
이제 저는 하드코딩된 변수들을 코드에서 걷어내고, 스프레드시트의 데이터를 JSON 포맷으로 자동 변환하는 Python 스크립트를 작성하여 사용합니다. 수작업을 없애고 파이프라인을 자동화하는 것이 핵심이었습니다.
DataParser.py
import pandas as pd
import json
def convert_to_json(csv_path):
# 1. 기획자가 작성한 밸런스 데이터 로드
df = pd.read_csv(csv_path)
# 2. 엔진에서 읽기 쉬운 형태로 변환
game_data = df.to_dict(orient='records')
with open('GameDB.json', 'w') as f:
json.dump(game_data, f, indent=4)
print("✅ 데이터 추출 및 빌드 완료!")
- 데이터 기획: 구글 스프레드시트에서 밸런스 기획 및 수치 조정
- 자동화 변환: Python 스크립트를 통해 CSV 데이터를 파싱하여 JSON 생성
- 엔진 로드: 게임 실행 시 JSON 데이터를 읽어들여 인게임 변수에 즉시 바인딩
3. 시스템 설계의 중요성
초기에는 이런 파이프라인을 구축하는 시간이 낭비처럼 느껴졌습니다. 하지만 게임의 스케일이 커질수록 이 시스템의 진가가 발휘되었습니다. 수십, 수백 개의 밸런스를 단 한 번의 스크립트 실행으로 동기화할 수 있게 되었으니까요. 1인 개발일수록 반복적인 노가다를 줄이는 자동화 시스템 구축이 생명줄과도 같습니다.