전체 글 92

AI 페어 코딩으로 게임 만들기 — libGDX가 LLM과 의외로 잘 맞는 이유

2026년에 1인으로 게임을 만든다는 건, 사실상 LLM과 같이 만든다는 뜻입니다. Claude든, Cursor든, Copilot이든, 무엇이든. "AI 도움 없이 다 손으로 짭니다"라고 말할 수도 있지만, 그건 마치 IDE 없이 메모장으로 코드 짠다는 말과 비슷한 자랑이 됐습니다. 멋있긴 한데 더 빨리 갈 수 있는데 안 가는 겁니다.지난 글(내가 왜 libGDX를 선택했는지)에서 libGDX를 고른 이유 네 가지를 정리했는데, 사실 그 글에서 한 줄로만 짚고 넘어간 이유가 있습니다. "AI 어시스턴트랑 협업이 잘 맞습니다"라는 줄입니다. 이번 글에서는 그 한 줄을 풀어보려고 합니다.먼저 결론부터 말씀드리면 이렇습니다. libGDX는 LLM이 가장 잘 도와줄 수 있는 형태의 게임 엔진입니다. Unity나..

내가 왜 libGDX를 선택했는지 — Unity·Godot 다 깔아보고 돌아온 이야기

지난 글(Android 15에서 useImmersiveMode=false인데 상태바가 가려져요 — libGDX 풀스크린 정공법까지)에서는 풀스크린 이슈를 끝까지 파보는 내용을 다뤘습니다. 그 글을 읽고 누군가 이렇게 묻더군요."근데 요즘 누가 libGDX 써요?"맞는 말입니다. 2026년에 모바일 게임을 만든다고 하면 사실상 Unity 아니면 Godot 이야기부터 나옵니다. Unreal까지 따지면 세 갈래죠. libGDX는 그 "주류 회의실" 바깥에 있는 엔진입니다. 그런데도 저는 지금 만들고 있는 게임을 libGDX로 만들고 있습니다. 이번 글은 그 이유에 대한 글입니다.미리 말씀드리면 "libGDX가 최고입니다!" 같은 글은 아닙니다. 저는 Unity도 깔아봤고, Godot도 깔아봤고, Cocos2d..

Android 15에서 useImmersiveMode = false인데 상태바가 가려져요 — libGDX 풀스크린 정공법까지

Android 15에서 libGDX(Kotlin) 게임을 빌드했는데 useImmersiveMode = false로 바꿔도 상단 상태바가 안 보이는 분들이 계실 거예요. 이 글은 그 증상의 원인을 정공법까지 한 사이클 통째로 정리한 글이에요. 결론부터 말하면 — 진범은 libGDX의 AndroidApplication이 init 단계에서 무조건 FLAG_FULLSCREEN을 박아넣는 한 줄이에요. onCreate에서 clearFlags로 풀어주는 게 정답. styles.xml 테마와 useImmersiveMode만 건드려선 안 풀립니다.저는 영지 + 던전 idle 게임을 libGDX로 1인 개발 중이에요. 캐주얼 idle 컨셉이라 상태바를 가리지 않고 노출하기로 결정했는데, 거기서 출발해서 정답에 닿기까지 ..

android architecture components (AAC) 설명 및 샘플코드

안드로이드에서는 다양한 컴포넌트들과 lifecycler가 각기 다르고 얽혀 있습니다. 앱을 개발하다보면 이런 컴포넌트들이 정상적으로 연결되어 있지 않으면 명확하게 파악하기 어려운 사이드 이펙트와 버그 및 크래시를 보게 되는데요. 이러한 문제를 해결하기 위해 각각의 컴포넌트들에 있는 lifecycler를 학습하고 문제점을 수정하는데 많은 시간을 할애해야 했습니다. 이전에는 명확한 가이드 라인이 없었고 구글에서도 이러한 문제점을 줄이기 위해 Android Architecture Components(AAC)를 제공하고 있습니다. 자세한 사항은 아래 링크에서 확인 가능합니다. https://developer.android.com/topic/libraries/architecture 또한 현재 git에 샘플 코드를..

[Tutorial] CONCLUSION

RiveScript 기본적인 Tutorial을 끝냈습니다. 지금까지 RiveScript 코드 작성 방법에 대해 배웠으며 이를 토대로 chatterbot을 개발하는데 도움이 되었으면 합니다. 우리가 다루지 못한 내용으로는 Object Macros가 있지만 이에 대한 자세한 내용은 https://www.rivescript.com/docs/tutorial#object-macros 을 참조하십시오. 우리는 튜토리얼에서 배운 내용을 바탕으로 안드로이드에서 사용 가능한 챗봇을 개발하는 부분에 대해서 실습할 수 있도록 하겠습니다. 감사합니다.

[Tutorial] TAGS

지금까지 우리는 RiveScript의 TAG에 대해서 공부 했습니다. 우리가 공부했던 태그의 예는 , , {topic}입니다.실제로는 이 보다 더 많은 태그가 있고 우리는 이를 사용할 수 있습니다!이번에는 우리가 배우지 않은 태그와 태그 사용 방법을 배워보겠습니다. 태그는 일반적으로 화살괄호()안에 태그를 입력하는 형태로 사용이 되며 중괄호({})는 주변의 텍스를 수정하는데 사용이 됩니다. 태그는 일반적으로 특별히 명시된 경우를 제외하고 모든 RiveScript 명령과 함께 사용할 수 있습니다., - 이 태그는 와 비슷하지만 % Previous에 있는 와일드 카드를 가져옵니다. 다음은 그 예입니다.+ i bought a new * - Oh? What color is your new ? + (@colors..

[Tutorial] MORE DEFINITIONS

begin.rive로 다시 돌아가서 유용한 2가지 타입이 있습니다. Global Variables 전역 변수(Global Variables)는 봇 변수(bot variables)와 비슷하지만 봇과 관련은 없습니다. 전역 변수는 RiveScript 인터프리터에 의해 정의 될 수 있습니다. 이번에는 RiveScript 인터프리터에 직접 영향을주는 두 가지 특수한 전역 변수에 대해서 배워 보겠습니다. Debug Mode! global debug = true ! global debug = false이 전역 변수는 RiveScript 인터프리터에서 디버그 모드를 켜거나 끌 수 있습니다. 디버그 모드는 https://play.rivescript.com/에서 Debug Mode를 클릭하면 실제 어떻게 출력 되는지 볼..