게임기 두 대를 들고 통신배틀 하고 싶었다 | 디지몬 육성기 개발일지 8화

SMCo STUDIODEVLOG
DAY 20–24 · 2026.09.03 ~ 09.08

디지몬 육성기 개발일지 · 8화

게임기 두 대를 들고 통신배틀 하고 싶었다

9월 3일 오전 11시, 작업을 시작하기 전에 이런 말을 먼저 보냈다.

"XB버젼과 XA버젼을 통신배틀했을때 해금되는 에어리어가 있잖아? 근데 디지몬에서 이 통신은 꽤나 중요한 요소거덩. 근데 그냥 알만 바꿔서 다른걸 키운다는건 통신이 안 된다는 뜻이잖아? 그게 좀 아쉽달까"

그때까지 이 게임은 한 번에 한 버전만 키울 수 있었다. XA를 해 보고 싶으면 알을 바꿔 새로 시작하는 식이었다. 그러면 XA와 XB가 붙을 일이 영영 없다. 실물기를 두 대 갖고 놀던 기억이 있었느냐고 나중에 물어봤는데, 아니었다.

"경험은 아니야. 그러면 좋을것 같다는 생각이야. 디지몬은 통신배틀이 해금에 중요한 요소인데, 그걸 하기 위해 복잡해지는건 싫었어. 그냥 내가 직접 게임기 두개를 들고 통신배틀 할 수 있으면 편하고 좋잖아?"

이 화는 그 한마디를 실제로 만드는 닷새다.

01이번 닷새의 할 일

30분 뒤에 방향이 정해졌다. "슬롯을 변경하면 게임기 자체를 바꾸는 느낌으로 쉘까지 바뀌는거야." 버전을 고르는 건 설정 메뉴의 한 줄이 아니라 손에 든 기기를 바꾸는 일이어야 한다는 뜻이다. 그러려면 기기를 고르는 화면이 필요했다. 쉘 오른쪽 아래의 자물쇠를 누르면 기기가 작아지고, 그 뒤로 배경이 깔리고, 좌우로 다른 기기가 보이는 화면이다.

그 배경은 직접 설명했다.

"글자들은 화면 맨 위에 고정되어있어. 코드가 입력될때 위에서 아래로 줄이 쭉 늘어지면서 글자열이 생기는거야. 입력된 글자는 밝은 색이고 새로 글자가 입력되면 기존 글자는 원래색으로 돌아가. 그리고 한 줄이 입력 완료되면 그 줄 전체가 천천히 투명해지는거야."

영화 매트릭스의 그 초록 글자 비다. 왜 디지몬 게임에 매트릭스였는지 물었더니 출처가 따로 있었다.

"디지몬 배틀스피릿 게임에 캐릭터 선택창 배경화면이었어. 좋아하는 게임이라 인상깊은 부분이기도 했고, 디지털 몬스터니까 맞는 선택이라고 생각했어."

헤드 색이 세 번째 글자까지 번지게 하고 속도를 절반으로 늦추는 수정 한 번을 거쳐 "응 마음에 들어"가 나왔다. 이 닷새 동안 이 말이 이렇게 빨리 나온 건 거의 여기뿐이다.

초록 글자가 흘러내리는 검은 배경 위에 흰 XB 쉘이 작게 떠 있고, 오른쪽 뒤로 검은 XA 쉘이 보인다
9월 3일 오후에 직접 녹화한 화면. 자물쇠를 누르면 쉘이 작아지고 뒤에서 글자 비가 내린다. 오른쪽 뒤에 있는 검은 기기가 XA다.

그날 밤 11시에는 XA의 진화표도 옮겼다. "XA버젼 진화트리 정립해놔." 해외 공략 사이트의 표를 보고 조건을 하나하나 게임 진화 트리에 넣는 일이다. 이게 다음 날 오전에 문제가 된다.

02잘 안된 것

첫 번째는 애니메이션이었다. 자물쇠를 누를 때 쉘이 작아지면서 튕기고, 시계 반대 방향으로 조금 기울었으면 좋겠다고 했다. 두 번을 말했는데 두 번 다 이런 답이 돌아갔다.

"이번에도 안보이는데. 내가 16분의1 속도로 재생했는데도 애니메이션이 없어. 그냥 축소만 해"

녹화를 16분의 1로 돌려본 이유를 물었다. "내가 설명을 잘못한건가, 속도가 너무 빨라서 못본건가 싶었어. 답답해서 1/16으로 돌려봤지." 설명도 틀리지 않았고 속도 때문도 아니었다. 애니메이션이 아예 안 돌고 있었다.

메인메뉴에서는 디지몬의 0번 그림 한 장만 액정에 보여야 한다는 규칙도 계속 어긋났다. 고치면 다른 데서 움직이고, 그걸 고치면 크기가 틀렸다. 그날 저녁 7시에 이렇게 물었다.

"이거 한번에 다 잡을 수 있어? 아니면 지금처럼 이렇게 계속 토큰낭비 해야해? 이것부터 확실하게 하고 작업 시작해"

그 뒤로 뭔가 달라졌냐고 물었더니 짧게 답했다. "토큰낭비 질문 뒤로 체감되게 바뀐건 없는것 같아." 결국 이틀 뒤 새벽에 이 규칙은 스스로 거둬들였다. "그 조건 그냥 빼고, 현재 재생되고있는 화면 그대로 메인메뉴에서 재생되도록 해줘."

두 번째는 진화표였다. 조건을 못 채웠을 때 가는 진화를 기본 진화라고 부르는데, 사이트에 적힌 대로 옮기지 않고 없는 규칙을 채워 넣었다. 9월 4일 오전 11시 13분이었다.

"베리얼 뱀데몬을 기본진화로 갖는 디지몬은 각 시리즈별로 3마리씩있어. 누메몬을 기본진화로 갖는 디지몬은 하나밖에 없고. 정말 어이가 없다. (…) 대체 무슨생각인거야? 사이트 확인하고 기재된 대로 다시 확인하고 나한테 보고해. 니 멋대로 규칙 만들지 말고"

무엇이 가장 화가 났는지 물었다. 틀린 것 자체였는지, 지어낸 것이었는지.

"지어낸게 화가 났어. 신뢰성이 떨어지면 AI를 쓸 이유가 없으니까"

세 번째가 제일 길었다. 두 기기를 번갈아 키우게 만들었는데, 둘이 계속 엉켰다. XA를 고르면 XB 쪽에 알이 생겼다. XA의 시작 화면이 XB 쉘 안에서 튀어나왔다. XA에서 부화 XAI가 돌면 XB에서도 같이 돌았다. 겉으로는 쉘이 두 개인데, 안에서는 한 게임이 두 옷을 번갈아 입고 있었던 것이다. 4일에서 5일로 넘어가는 새벽 1시 가까이 이렇게 물었다.

"노드를 아예 나눠서 xa, xb 두개로 나눈거 아니었어? 왜 자꾸 이런 문제가 생기는거지?"

이틀 뒤, 7일 오후에는 말이 더 단단해져 있었다.

"실제 LCD화면 자체도 나눠. 둘 다 재생하는거야. 백그라운드에서 재생하는거라고 지난번에도 분명하게 명시했어. (…) 프로그램으로 구현중이지만, 내 목적은 실제 게임기 2개를 한번에 하는것처럼 하는거야."

그 사흘 동안 포기하고 싶었는지 물었다. "그동안 경험이 있으니까 어떻게든 되기는 할거라고 생각했어." 그날 화면 계층을 통째로 두 벌로 나눴다. 화면, 연출, 타이머까지 기기마다 따로 갖고, 뒤로 돌린 기기도 매 프레임 진짜로 돈다.

검은 XA 쉘의 액정 안에 게임 화면 대신 뒤의 초록 글자가 그대로 비친다
같은 녹화에서 XA로 넘긴 순간. 액정이 비어 있어서 뒤의 글자 비가 그대로 보인다. XA는 이때 아직 쉘만 있었다.

03잘된 것

위 두 장은 9월 3일 오후 4시 27분에 찍은 5초짜리 녹화에서 나왔다. 좌우 화살표를 누르면 흰 XB와 검은 XA가 자리를 바꾸는 게 전부인 영상이다. XA 쪽 액정은 비어 있다. 그걸 그날 바로 디스코드와 DC 커뮤니티에 올렸다.

"XA버젼은 아직 만들지도 않았지만 분리된다는게 기분 좋았다."

반응을 물었다. "응원해줬던거 같아. 기대한다는 글들도 보였고."

7일에 두 기기가 진짜로 따로 돌기 시작했고, 8일 밤 11시에 그 다음 단계가 나왔다.

"메인메뉴에서 익스펜드 하면 현재 실행중인 쉘이 위로 올라가면서 쉘 두개가 위아래로 있는 형상이 되는거야."

메인메뉴 위쪽에 자리만 잡아 두었던 EXPAND 버튼이다. 이제 두 기기가 한 창에 위아래로 같이 보인다. 둘이 원래부터 따로 돌고 있었기 때문에, 한쪽을 가리던 걸 치우고 한 칸 아래에 놓는 것으로 끝났다. 처음 말한 "게임기 두 개를 들고"가 화면에 그대로 나온 모습이다.

흰 XB 쉘과 검은 XA 쉘이 위아래로 쌓여 있다. 위에는 뿌띠몬이 서 있고 아래 액정에는 XAI 화면이 돌고 있다
지금 빌드의 EXPAND. 위의 XB에서는 뿌띠몬이 서 있고, 아래 XA에서는 막 부화한 참이라 XAI가 돈다. 두 기기가 서로 다른 시간을 산다.

04실물기 비교 테스트

8일 오후 1시 반쯤 이런 질문을 했다. "지금 PC 버젼에서 프로그램 완전종료하거나 PC가 절전모드가 되면 게임이 멈춰?" 완전히 껐을 때는 다시 켜면 그동안 흐른 시간만큼 따라잡는다. 그런데 절전은 달랐다. 게임은 켜져 있는 채로 멈춰 있다가 깨어나면 그 사이 시간을 모르고 이어서 돈다. 여덟 시간을 자고 와도 디지몬에게는 한순간이었다.

답은 한 줄이었다. "실물기처럼 바꿔줘." 실물기는 가방 속에 있든 책상 위에 있든 시간이 흐른다. 이건 원칙에서 나온 요청이 아니라 겪어서 나온 요청이었다. "PC 켜두고 겪은 일이었어."

그보다 20분 전에는 이 프로젝트를 밖에서도 작업할 수 있는지도 물었다. 깃허브에 올리면 되냐고. 그러다 스스로 접었다.

"아니 내가 직접 테스트 하지 못하면 의미가 없는데?"

그 이유를 다시 물으니 "게임을 테스트하는데 너무 불편할거 같아서"였다. 코드를 읽고 고칠 수 있는 게 아니니 확인하는 방법은 화면을 직접 보는 것뿐이다. 이 개발일지의 사진이 전부 진짜 캡처인 것도 같은 이유다.

05아직 모르는 것, 다음에 할 것

이 닷새가 끝났을 때 두 기기는 따로 돌았지만, 정작 둘이 맞붙는 통신배틀은 아직 없었다. 첫날 이야기했던 온라인 통신도 그대로 남았다. 그날 이런 질문도 했었다. "게임 내부적으로 현재 상태를 암호화해서 문자형식으로 바꾼 다음 카톡으로 보내면 되는거 아니야?" 그 방식은 지금도 만들지 않았다.

다음 화는 바로 다음 날, 9월 9일 하루로 한 화가 된다. 디지코어, 상점, 그리고 통신배틀이 그날 다 들어갔다.

i정보 코너

여기부터는 순수 기술 정보만 모아뒀습니다. 굳이 안 읽으셔도 위 내용 이해에는 지장 없습니다.

ENGINEGodot 4.7 (Mobile 렌더링)
메인메뉴자물쇠(PC는 ESC)로 연다. 쉘이 작아지고 좌우로 다른 기기가 보인다. 좌우 화살표로 기기를 바꾸고 이름표로 확정한다
매트릭스 배경줄마다 길이가 다르고, 방금 찍힌 글자만 밝으며, 다 찍힌 줄은 천천히 사라진다. 게임 속도(x2)를 올려도 이 배경은 빨라지지 않는다 - 쉘 안의 시간만 빨라진다
두 기기 분리처음엔 한 게임이 XA·XB 겉모습을 번갈아 입는 구조였다. 지금은 기기마다 디지몬·화면·연출·타이머를 따로 갖고, 뒤로 돌린 기기도 매 프레임 돈다
EXPAND메인메뉴에서 켜면 두 기기가 한 창에 위아래로 쌓인다. 입력은 한 번에 한 대만 받는다
기본 진화조건을 못 채웠을 때 가는 진화. 사이트에 적힌 그대로가 원칙이고, 다른 조건보다 먼저 판정되면 안 된다
PC 절전게임은 프레임 사이 시간으로만 흐르는데 엔진이 긴 공백을 잘라버린다. 벽시계로 1분 넘게 빈 걸 절전으로 보고, 껐다 켰을 때와 같은 방식으로 따라잡는다
아직 없음통신배틀(다음 화), 카톡으로 보내는 문자 코드 방식의 온라인 통신
#디지몬#Godot#ClaudeCode#인디게임개발#개발일지

← 이전 화: 7화 · 알림 하나 때문에 태블릿으로 옮겼다

다음 화 → 9화 · 배틀이 되자 버젼 하나가 완성됐다

SMCo STUDIO — 코딩 모르는 사람이 AI랑 게임엔진만으로 게임을 만드는 기록 DAY 20–24 / ???
이 화만 요약해서 인스타그램에도 올려뒀습니다. 두 기기가 사흘 동안 엉켰던 이야기는 여기 블로그에만 있어요.
인스타그램에서 보기 →
SMCo STUDIODEVLOG
DAY 20–24 · 2026.09.03 ~ 09.08

Digimon Raising Sim Devlog · Episode 8

I Wanted to Hold Two Devices and Battle Them

At 11 AM on September 3rd, before any work started, this message went out first.

"You know how there's an area that unlocks when you connect-battle the XB version against the XA version? Connecting is a pretty important part of Digimon. But just swapping the egg to raise something else means you can't connect, right? That's kind of a shame."

Up to then the game could only raise one version at a time. If you wanted to try XA, you swapped the egg and started over. That way XA and XB never meet. I asked later whether this came from memories of playing two real devices together. It didn't.

"It's not from experience. I just thought it'd be nice. In Digimon, connect battles are an important part of unlocking things, but I didn't want it to get complicated just to do that. Wouldn't it be convenient and nice if I could just hold two devices myself and battle them?"

This episode is the five days of actually building that one remark.

01The five days' to-do list

Thirty minutes later the direction was set: "When you change the slot, it should feel like swapping the device itself, shell and all." Picking a version shouldn't be a line in a settings menu; it should be changing the device in your hand. That needed a device-select screen. Press the lock at the bottom right of the shell, the device shrinks, a background appears behind it, and the other devices show up left and right.

The background was described in detail.

"The characters are fixed at the very top of the screen. When code gets typed in, a line stretches down from top to bottom and a string of characters forms. The character just typed is bright, and when a new one is typed the previous one goes back to its normal colour. And when a line finishes, the whole line slowly fades out."

It's the green rain from The Matrix. I asked why The Matrix, in a Digimon game, and it turned out there was a separate source.

"It was the background of the character select screen in Digimon Battle Spirit. It's a game I love, so it stuck with me, and since it's Digital Monster, I thought it was the right choice."

After one round of changes — the head colour bleeding down to the third character, the speed halved — came "Yeah, I like it." In these five days, that's about the only place those words came that quickly.

A small white XB shell floating over a black background with green characters raining down, and a black XA shell behind it on the right
A screen recording from the afternoon of September 3rd. Press the lock and the shell shrinks while character rain falls behind it. The black device at the back right is XA.

At 11 that night the XA evolution table went in too: "Set up the XA version's evolution tree." It meant reading the table on an overseas guide site and entering each condition into the game's evolution tree one by one. That became a problem the next morning.

02What didn't work

First, the animation. The request was for the shell to bounce as it shrinks when the lock is pressed, and tilt a little counter-clockwise. It was asked for twice, and twice the reply was this.

"Still can't see it. I played it at 1/16 speed and there's still no animation. It just shrinks."

I asked why the recording got slowed to 1/16. "I wondered whether I'd explained it wrong, or whether it was too fast for me to see. I was frustrated, so I played it at 1/16." The explanation wasn't wrong and it wasn't the speed. The animation simply wasn't running.

The rule that the main menu should show only a single frame — the Digimon's sprite 0 — on the LCD kept going wrong too. Fix it and something else moved; fix that and the size was off. At 7 that evening came this question.

"Can you catch all of this in one go? Or do we have to keep wasting tokens like this? Settle that first before you start working."

Asked whether anything changed after that, the answer was short: "I don't think anything noticeably changed after the token-waste question." In the end, in the small hours two days later, that rule was withdrawn by the person who'd set it: "Just drop that condition, and have the main menu play whatever's currently playing on the screen."

Second, the evolution table. The evolution a Digimon falls to when it fails every condition is called the default evolution, and instead of copying those as the site listed them, rules that didn't exist got filled in. It was 11:13 AM on September 4th.

"There are three Digimon per series that have BelialVamdemon as their default evolution. There's only one with Numemon as its default. This is unbelievable. (…) What were you even thinking? Check the site, verify it against exactly what's written there, and report back to me. Don't make up rules on your own."

I asked what made them angriest — that it was wrong, or that it was made up.

"That it was made up. If it isn't reliable, there's no reason to use AI."

The third one ran longest. The two devices were supposed to be raised side by side, and they kept tangling. Pick XA and an egg appeared on XB. XA's start screen popped out of the XB shell. When the hatch XAI ran on XA, it ran on XB too. On the outside there were two shells; on the inside it was one game switching between two outfits. Close to 1 AM, as the 4th turned into the 5th, came this.

"Didn't you split the nodes completely into two, XA and XB? Why does this keep happening?"

Two days later, on the afternoon of the 7th, the wording had hardened.

"Split the actual LCD screen too. Both of them run. I stated clearly last time that it runs in the background. (…) It's being built as a program, but my goal is for it to be like playing two real devices at once."

I asked whether there'd been a moment in those three days of wanting to give up. "I had experience from before, so I figured it'd work out somehow." That day the screen layer was split into two complete sets. Screens, presentations, timers — each device has its own, and the one sent to the background genuinely keeps running every frame.

Inside the black XA shell's LCD, instead of a game screen, the green characters behind it show straight through
The moment the same recording switches to XA. The LCD is empty, so the character rain behind it shows straight through. At this point XA was only a shell.

03What went well

Those two pictures came from a five-second recording taken at 4:27 PM on September 3rd. All it shows is the white XB and the black XA swapping places when the arrows are pressed. XA's LCD is empty. It went up on Discord and the DC community that same day.

"I hadn't even built the XA version yet, but it felt good that they were separating."

I asked about the response. "I think people cheered me on. I saw posts saying they were looking forward to it, too."

On the 7th the two devices really started running separately, and at 11 PM on the 8th came the next step.

"When you EXPAND from the main menu, the shell that's currently running moves up, and you get two shells stacked one above the other."

That's the EXPAND button that had only been a placeholder at the top of the main menu. Now both devices show in one window, one above the other. Because the two were already running separately, all it took was removing what had been hiding one of them and placing it one slot lower. It's the "hold two devices" from the very first message, showing up on screen as-is.

A white XB shell and a black XA shell stacked vertically. Puttimon stands on the top one and the XAI screen runs on the bottom LCD
EXPAND in the current build. Puttimon stands on XB at the top, while XA below has just hatched, so its XAI is running. The two devices live on different clocks.

04Comparing against the real device

Around 1:30 PM on the 8th came this question: "On the PC version, if I fully quit the program or the PC goes to sleep, does the game stop?" When fully quit, relaunching catches up on however much time passed. Sleep was different. The game sat frozen while still running, and on waking it carried on without knowing about the time in between. Eight hours asleep was a single instant to the Digimon.

The answer was one line: "Make it like the real device." A real device keeps time whether it's in a bag or on a desk. This request didn't come from principle; it came from experience. "It happened to me while I had the PC left on."

Twenty minutes before that there was a question about working on this project away from home — would putting it on GitHub work? Then it was dropped.

"No, if I can't test it myself there's no point, is there?"

Asked about that again, the reason was "because testing the game would be way too inconvenient." Reading and fixing code isn't an option, so the only way to check anything is to look at the screen yourself. That's the same reason every picture in this devlog is a real capture.

05What I still don't know, and what's next

When these five days ended, the two devices ran separately, but the connect battle where they actually face off still didn't exist. The online connection from the first day was left as it was, too. That day there was also this question: "Couldn't the game just encrypt its current state into text and send it over KakaoTalk?" That approach still hasn't been built.

The next episode is the very next day — September 9th alone makes a full episode. The DigiCore currency, the shop, and the connect battle all went in that day.

iInfo corner

Pure technical notes from here on. Skipping them won't cost you anything above.

ENGINEGodot 4.7 (Mobile renderer)
Main menuOpened with the lock (ESC on PC). The shell shrinks and the other devices appear left and right. The arrows switch devices; the name tag confirms
Matrix backgroundEach line is a different length, only the character just typed is bright, and finished lines slowly fade. Raising the game speed (x2) doesn't speed up this background — only time inside the shell speeds up
Splitting the devicesAt first it was one game alternating between XA and XB outfits. Now each device has its own Digimon, screens, presentations and timers, and the backgrounded one runs every frame
EXPANDTurned on from the main menu, it stacks the two devices vertically in one window. Only one takes input at a time
Default evolutionWhere a Digimon goes when it fails every condition. The rule is exactly what the site lists, and it must never be judged ahead of the other conditions
PC sleepGame time only advances by the time between frames, and the engine clips long gaps. A wall-clock gap of over a minute is treated as sleep and caught up the same way a quit-and-relaunch is
Not yet builtThe connect battle (next episode), and online connection by sending a text code over KakaoTalk
#Digimon#Godot#ClaudeCode#indiedev#devlog
SMCo STUDIO — a record of someone who can't code building a game with nothing but AI and a game engine DAY 20–24 / ???

댓글

이 블로그의 인기 게시물

DXRP v0.2 — 두 기기를 한 화면에, 서로 싸우게

DXRP v0.1 안드로이드 APK 공개

DXRP v0.1 — 액정 육성 게임, PC에서 무료로