요약
•
포스트 아포칼립스 세계관의 생존 경영 시뮬레이션 게임 개발
•
블록 프로그래밍 기반 해킹 시스템과 연구소 관리 메커니즘을 결합한 독특한 게임플레이 설계
역할
•
6인 팀(기획자, 디자이너 2인, 개발자 3인)에 기획 및 개발자로 참여
•
메인 게임 기획자로서 전체 게임 시스템 및 메커니즘 설계 (기여도 100%)
•
코딩 퍼즐 시스템 및 연구소 관리 메커니즘 상세 설계 (기여도 80%)
성과
•
알파 버전 완성 및 공개 테스트 진행, 핵심 게임플레이 요소에 대한 긍정적 피드백 획득
•
공개 테스트 참가자의 80%가 게임의 퍼즐 시스템에 긍정적 평가
시기
•
2023.03 - 2023.07 (4개월)
직관적인 블록 코딩 퍼즐 시스템
블록 코딩 퍼즐은 게임의 핵심 메커닉으로, 플레이어에게 프로그래밍의 기본 개념을 재미있게 가르칩니다. 드래그 앤 드롭 방식의 블록 조합을 통해 복잡한 프로그래밍 로직을 시각적으로 구현할 수 있어, 코딩 초보자도 쉽게 접근할 수 있습니다.
퍼즐은 해킹과 업그레이드라는 두 가지 유형의 스테이지로 구성되어 있으며, 각 스테이지는 독립적인 미니게임 형식으로 진행됩니다. 플레이어는 다양한 블록을 조합하여 단말을 움직이고, 퍼즐 오브젝트와 상호작용하며 문제를 해결합니다.
이 시스템은 단순한 퍼즐 해결을 넘어 실제 프로그래밍 기술 향상으로 이어집니다. 게임을 통해 습득한 논리적 사고와 문제 해결 능력은 실제 코딩 학습에 직접적으로 적용될 수 있어, 교육적 가치가 높습니다.
동적 연구소 탐사 시스템
게임은 바이오, 테크, 에너지, 환경이라는 4가지 독특한 연구 테마를 중심으로 구성됩니다. 각 테마는 고유한 시각적 아이덴티티와 게임플레이 특성을 가지고 있어, 플레이어에게 다양한 경험을 제공합니다.
플레이어들은 이 다채로운 세계를 탐험하며 각기 다른 특성을 지닌 연구실들을 발견하게 됩니다. 이 탐사 과정은 LabTags 시스템을 통해 동적으로 관리되어, 매번 새로운 도전을 제시합니다.
이 코드는 각 연구실의 상태를 실시간으로 추적하고 업데이트하는 LabTags 시스템의 핵심을 보여줍니다. 이를 통해 보안 수준, 운영 상태, 이벤트 발생 등 다양한 요소가 동적으로 변화하며, 플레이어에게 항상 새로운 도전을 제시합니다.
예시 코드
public class LabTags
{
public ResearchField researchField;
public SecurityLevel securityLevel;
public OperationStatus operationStatus;
public EventOccurrence eventOccurrence;
public event Action OnTagsChanged;
public void SetTagValue(string tag, Enum value)
{
// 태그 값 설정 로직
OnTagsChanged?.Invoke();
}
}
C#
복사
확장 가능한 모듈식 연구실 운영 시스템
연구실 운영의 핵심은 이 직관적인 대시보드입니다. 플레이어는 여기서 연구실의 모든 측면을 한 눈에 파악하고 관리할 수 있습니다.
Lab
├── LabBuffComponent
│ └── BuffManager (Singleton)
├── LabProductionComponent
├── LabStatComponent
├── LabUpgradeComponent
└── LabTags
Plain Text
복사
이 시스템의 기술적 핵심은 다음과 같은 모듈식 아키텍처에 있습니다. 각 컴포넌트는 독립적으로 기능하면서도 이벤트 시스템을 통해 유기적으로 상호작용합니다
예시 코드
public class Lab : MonoBehaviour
{
[SerializeField] private LabBuffComponent buffComponent;
[SerializeField] private LabProductionComponent productionComponent;
[SerializeField] private LabStatComponent statComponent;
[SerializeField] private LabUpgradeComponent upgradeComponent;
[SerializeField] private LabTags tags;
private void Awake()
{
upgradeComponent.OnUpgradeSucceeded += OnUpgradeSucceeded;
}
private void OnUpgradeSucceeded(int level)
{
buffComponent.ApplyLevelBuffs();
productionComponent.UpdateProduction();
statComponent.UpdateStats();
tags.UpgradeStage = (UpgradeStage)level;
}
}
C#
복사
이 코드는 업그레이드 완료 시 발생하는 이벤트가 어떻게 다른 시스템들에 영향을 미치는지 보여줍니다. 이러한 구조는 새로운 기능을 쉽게 추가할 수 있게 하며, ScriptableObject를 활용한 데이터 관리로 게임 기획자의 작업을 용이하게 합니다.
이렇게 구성된 시스템은 플레이어에게 복잡하면서도 직관적인 연구실 관리 경험을 제공하며, 개발팀에게는 유연하고 확장 가능한 작업 환경을 제공합니다.