힐베르트한붓 그거 완전탐색 O(N!) 돌리면 되는 거 아니냐?

love2d 프레임워크 튜토리얼 링크

발단

유니티는 무겁다. 일단은 2d 기반의 가벼운 게임을 계속 만들고 싶은데(이 시점에서 게임을 왜 굳이 만들어보려고 하는지에 대한 고민은 애써 미루기로 했다), 필요 없는 짐이 많이 붙어 있는 느낌이였다. 게임메이커는 비쌌다. Godot 엔진은 잘 모르겠다. 마침 love2d라는 가벼운 프레임워크가 있다는 이야기를 들었고, 쓰고 싶어졌다.

의문

너는 전생에 뭐였을 거 같아? 내가 물었다. 글쎄. 나는 뭔지 감이 안 잡히네. 근데 너는 알 것 같다. 뭐? 비트… 코딩을 위해 태어난 남자… 미친… 인용의 인용

이어서

히트맨2 는 대머리 백인 남성이 전국을 싸돌아다니며 ‘아무튼 전세계를 호령하는 쎈 권력자 어둠의 뭐시기들’ 에게 몰래몰래 저승행 편도티켓을 끊어주는 게임이다. (아니면 적어도 그렇게 소개한다) 대머리 백인 남성은 보통 직업을 가진 애꿎은 사람들을 기절시켜서 옷장에다 넣어놓고 옷은 자기가 입는다. 이걸 짧게는 변장했다고 하고 길게는 빠른 취직이라고 부른다. 배경은 대략 열 몇개 정도 되고 각 배경에는 세기에 피곤할 정도로 많은 사람들이 있다. 모든 사람들에게는 각자의 이름이 있고 행동 루틴이 있다. 현실과 비슷하지만 현실이라 부르기에는 많은 부분들이 고장나 있는 것 처럼 느껴진다. 예를 들자면, 방콕에 있는 어떤 호텔의 호텔방 구석에 있는 인터폰과 상호작용해서 룸 서비스를 요청하면 호텔 직원이 두 명 온다. 여기서 한 직원을 다른 직원 몰래 서류 가방으로 후두부를 때려 기절시키고 다른 직원에게 기절한 직원을 보여준다. 그러면 호텔 직원은 기절한 직원을 보고 까무러쳐서 경비병을 부르러 달려간다. 경비병은 호텔 직원보다 발걸음이 빨라서 도움을 요청한 직원보다 호텔 방에 먼저 도착한다. 그 경비병을 기절시킨다. 뒤늦게 도착한 호텔 직원은 이번에는 경비병을 보고 까무러친다. 그리고 또 다른 경비병을 부르러 오고, 경비병은 직원보다 먼저 도착하고, 기절시키고… 이 방법으로 충분한 시간만 있다면 호텔 내에 있는 모든 경비병과 호텔 직원 한 명을 기절시킬 수 있다. 그것이 지루해지면 이번에는 미국에 사는 어떤 공인중개사의 후두부에 무료 머핀을 던져 기절시킨다. 옷을 벗겨 입은 뒤, 놀란 캐시디라는 이름을 가진 백인 남성에게 다가가 집을 보여주겠다고 말한다. 놀란 캐시디와 집 안에 들어가 거실과 상호작용한다. 그러면 대머리 아저씨는 이렇게 말한다. “여기는 아래층 거실입니다, 보통 텔레비전을 보거나 여가 시간을 보낼 때 사용합니다. 큰 방에 쉽게 접근할 수 있는 두 개의 출구가 있습니다. 어두운 바닥은 쉽게 얼룩지지 않습니다. 여러 가능성이 있는 방이죠.” 이 상호작용은 집 안에 있는 다른 방에도 할 수 있지만, 다른 방에 가지 않고 거실에서만 자동응답기처럼 반복할 수 있다. 세 번 반복하면 놀란 캐시디는 화를 내며 집을 보여줄 준비가 되면 다시 오라고 말한 뒤 집 밖을 나서고, 대머리 아저씨는 놀란 캐시디가 문지방을 밟자마자 다시 집을 보여주겠다고 말할 수 있다. 그리고 거실과 상호작용을 세 번 하고, 그게 또 지루해지면…

삽질 TLE

그냥 느리기만 한 것 뿐이라면 CPU로 돌리면 안 되나요? 안 됩니다. 너무 느려요. 상황에 따라서는 얼마나 빠른지가 가능/불가능을 판가름하기도 한답니다. 우주 여행을 하는데 빠른 경우와 말도 안되게 느린 경우를 생각해 보세요. 리얼타임 등의 작업에는 GPU 프로그래밍 언어인 셰이더를 반드시 써야 합니다. 그나저나, 셰이더를 왜 배우려고 하는 건가요? 글쎄요… 배우면서 차츰 생각해보면 되지 않을까요? 아니요… 지금 학생 나이가 몇 살이라고 했죠? 스물 하나요. 군대로 이 년 정도 감하고 생각해보면… 그렇게 많진 않은 시간이라고 생각해요. 그런가요? 그래요. 인용의 인용

합목적적인 빛의 이동 과정

합목적적인 이동 과정에서 빛나는 전리품을 획득하셨군요. 광선은 어느 방향으로 움직일지 선택하기 전, 자신의 최종 목적지를 알고 있어야 한다. 인용의 인용

결론(을 빙자한 데드락)

바퀴는 재발명하지 않는 것이 좋다. 정확히는, 모든 공부에는 이유가 있어야 한다. 만들어놓은 게 있으면 그걸 쓰는 것이 좋고, 당장 이해할 수 없는 것들은 제쳐놨다가 필요해질 때 봐도 좋다. 이유가 있으니까 한다?? 하니까 이유가 있는 거다?? 공부는 필요할 때만 한다??? 이런 생각을 하기 시작하면 당장은 결론이 나지 않는다. 등반 장비가 산 꼭대기에 있는 셈이다. 방법론에 대해 말할 수 있는 건 또 다른 방법론 밖에 없다. 방법론 되먹임? 아무튼, 정답은 있겠지만 당장 할 수 있는 건 무한한 삽질 뿐이다. 인용의 인용