픽셀 아트로 구현된 AI 오피스 시뮬레이션 제작기
1인 개발자가 Flutter, Supabase, Gemini LLM을 활용해 AI 오피스 시뮬레이션 구축 중
텍스트 로그의 한계를 극복하기 위해 2D 픽셀 월드를 구현하여 몰입감 증대 시도
Bonfire 엔진을 활용해 타일맵 기반 오피스 공간과 캐릭터 이동 로직 구현
사용자가 에이전트에게 직접 개입하여 상호작용 및 서사 변화를 유도하는 기능 추가
Bonfire 엔진을 활용한 2D 타일맵 기반 월드 구현
본문에서는 Flutter 기반의 Flame 엔진 위에 구축된 Bonfire 플러그인을 활용하여 2D 오피스 월드를 구현했다고 설명함. Bonfire는 **타일맵(Tilemap) 로딩, 장애물 레이어 분리, A* 알고리즘 기반 패스파인딩(Pathfinding) 기능을 내장하고 있어, 개발자는 복잡한 길 찾기 로직 대신 에이전트의 이동 목표 설정에 집중할 수 있었음. Tiled Map Editor로 맵 레이아웃과 속성(walkable, obstacle)을 지정하면, Bonfire가 이를 기반으로 캐릭터의 최단 경로를 계산하고 장애물을 피해 이동하도록 함. 16x16 픽셀 타일 크기**와 고유 좌표 관리를 통해 캐릭터 간 겹침이나 벽 끼임 같은 문제를 효과적으로 해결함.
텍스트 데이터의 시각화 및 몰입감 증대 전략
기존 텍스트 로그 방식의 한계를 극복하기 위해, 에이전트의 상태 변화를 이모티콘, 조명, 하트 이펙트 등 시각적 요소로 표현하여 몰입감을 높였음. 예를 들어, 스트레스 수치 변화에 따라 캐릭터 표현이 달라지거나, 로맨스 이벤트 발생 시 하트 이펙트가 나타나는 식임. 또한, 시간 흐름에 따른 오피스 조명 변화를 Flame의 컬러 필터(Color Filter) 오버레이(Overlay)로 구현하여 현장감을 더함. 이러한 시각적 연출은 단순한 텍스트 정보 전달을 넘어, 사용자가 '진짜 공간'이라는 인식을 갖게 하는 데 기여함.
사용자 개입을 통한 시뮬레이션 상호작용 강화
본 프로젝트는 사용자가 시뮬레이션을 단순히 관찰하는 것을 넘어, 직접 개입(Intervention Mode)할 수 있는 기능을 제공함. 2D 화면에서 캐릭터를 탭하면 커피 제공, 대화 시도 등의 행동을 선택할 수 있으며, 이러한 행동은 에이전트의 스탯 변화(스트레스 감소 등)로 즉시 반영됨. 변경된 스탯은 다음 배치(Batch) 호출 시 LLM에 전달되어 에이전트의 대화 톤에도 영향을 미침. 이는 '내가 이 세계에 영향을 미친다'는 경험을 제공하여, 단순 관찰 앱과 시뮬레이션 게임을 구분 짓는 핵심 요소로 작용함.
AI 협업을 통한 개발 장벽 해소 경험
개발 경험이 없는 비개발자임에도 불구하고, AI(Claude)와의 협업을 통해 A* 알고리즘, Bonfire 플러그인 활용법 등을 학습하며 개발을 진행했다고 밝힘. AI에게 맥락을 설명하고 함께 문제를 풀어가는 과정에서 미지의 영역에 대한 학습 장벽이 낮아지고, 개발에 대한 자신감을 얻었다는 점을 강조함. 이는 AI가 새로운 기술 학습의 촉매제 역할을 할 수 있음을 시사하며, 비개발자도 시뮬레이션 월드 구축에 도전할 수 있다는 가능성을 보여줌.
퇴근 및 야근 시나리오와 사용자 개입 유도
직원(에이전트)들의 퇴근 루틴을 구현하고, 특정 조건(높은 스트레스, 낮은 생산성) 시 야근 통보 이벤트를 트리거하여 쓸쓸한 오피스 분위기를 연출함. 이 과정에서 사용자는 남은 직원에게 무언가를 해주고 싶다는 감정적 동기를 느끼게 됨. 이는 사용자의 행동이 시뮬레이션의 서사에 영향을 미치는 경험을 강화하며, '내가 책임져야 할 공간'이라는 인식을 심어줌. 이러한 연출은 사용자의 지속적인 참여와 몰입을 유도하는 중요한 장치로 작용함.