<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ciao Lee</title>
    <description>The latest articles on DEV Community by Ciao Lee (@ciaolee00).</description>
    <link>https://dev.to/ciaolee00</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4134135%2F4fb078b5-f9bd-46e9-9c3a-d4dd26b2a38b.jpg</url>
      <title>DEV Community: Ciao Lee</title>
      <link>https://dev.to/ciaolee00</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ciaolee00"/>
    <language>en</language>
    <item>
      <title>(d+027) Shader</title>
      <dc:creator>Ciao Lee</dc:creator>
      <pubDate>Sun, 20 Sep 2026 14:21:56 +0000</pubDate>
      <link>https://dev.to/ciaolee00/d027-shader-1mi1</link>
      <guid>https://dev.to/ciaolee00/d027-shader-1mi1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmaiqpqiugv2pz2czgos4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmaiqpqiugv2pz2czgos4.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  업그레이드 삼각형
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;한줄한줄 그래픽스 API에 익숙해지고 있다. 코드를 이해하는데 한줄한줄 의미가 너무 커서 코딩을 처음 배우는 듯한 기분이 들곤한다. 새로운 단어와 그 개념에 대한 이해가 필요한 부분이라서 작동원리와 함께 약간의 암기가 필요하다. 시험을 대비하는 것은 아니기 때문에 외우는 것에 거부감은 없지만 새롭게 제시하는 단어들은 아직 입에 잘 붙지 않는다. 그냥 넘어가기에는 다음 챕터를 이해하기 위해서는 아무래도 머릿속에 잘 담아두는 것이 좋기는 한데  에이징 이슈 덕분인지 꾸준한 반복학습이 필요하다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdixrj35tll0ogc62y35c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdixrj35tll0ogc62y35c.png" alt=" " width="799" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  삼각형 돌리기에 필요한 지식
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;몇 개 안되는 좌표값과 색상값을 화면에서 회전시키기 위해서 필요한 코드의 줄 수는 럭키 넘버 777 이다. 777줄이 모두 엄청난 의미를 가지진 않겠지만 그 동안 겪어왔던 개발적 지식보다는 훨씬 더 많은 것들을 포함하고 있다고 생각한다. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;외우는 것이 자신없어서 원리와 흐름을 익히는 편인데 그래픽스 프로그래밍은 상당히 추상화가 많이 되어 있어 코드 한줄의 의미를 파악하기 위해서 많은 배경지식이 필요했다. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;기세좋게 OpenGL 정도는 쉽게 익힐수 있을줄 알았는데 그 야말로 벽같은 기분이 들곤한다. 처음 apple 의 swift 를 접할때 느꼈던 제 3의 벽을 오랜만에 느끼게 되었다. swift 를 접하기 전에는 java로만 개발을 해왔던 덕분인지 모든 것을 class 화 하여 생각했는데, 함수를 변수로 생각할수 있다는 개념이 그 당시의 나로서는 받아들이기 어려운 이상한 나라의 원리처럼 느껴졌다. 그 당시에는 OOP로 세상의 모든 것을 객체화하여 사유할수 있다는 자신감이 흘러넘쳤다. 그런 마음가짐으로 접한 swift 였는데 기반지식이 무너지며 새로운 개념을 익히는데 거부감이 들어 도통 제대로 배우기가 쉽지 않았었다. 마음을 열고 모르는게 당연하다고 생각하면 쉬운 일이었는데 그 동안 배워왔던 룰로 해석할수 없는 부분을 도저히 용납할 수 없었던 것 같다. 어쩌면 자신감이 조금 상했었다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;아무튼... 지금 배우는 생소한 개념들을 이제는 그냥 그렇구나 하면서 기존의 지식을 고집하지 않는 조금은 여유로운 사람이 된 것 같은 기분이 든다. 해내고야 말 거야라는 과거의 나보다는 조바심이 줄어든 기분이 들어 오히려 배움에 있어 더 유연해진것 같다. 과도한 승부욕으로 오히려 나 스스로를 피곤하게 만들었는데 지금은 어려운것이 있다면 어려운대로 재밌게 느껴진다. 그리고 예전보다 새로운 지식을 찾아 배우는 것에 어려움이 덜해졌다. 구글링을 넘이 이제는 원하는 질문에 비교적 정확하게 답해주는 AI 가 있기 때문인것 같다. 혼자서 그래픽스를 배우라고 했으면 아마 지금보다 훨씬 더 오랜 시간 공부에 매진을 했어야 할 것 같다. 지금은 모르는 지점을 정확하게 배울수 있어 나만의 템포로 나만의 스케줄대로 최적화된 교육을 받는 기분이 든다.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devjournal</category>
      <category>gamedev</category>
      <category>graphics</category>
    </item>
    <item>
      <title>(d+023) Triangle</title>
      <dc:creator>Ciao Lee</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:53:19 +0000</pubDate>
      <link>https://dev.to/ciaolee00/d023-triangle-5e90</link>
      <guid>https://dev.to/ciaolee00/d023-triangle-5e90</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4nlyywvyv7lcewwfy7lf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4nlyywvyv7lcewwfy7lf.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  삼각형
&lt;/h1&gt;

&lt;h2&gt;
  
  
  파이프라인
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;그래픽스 파이프라인이라는 의미를 이제는 어느정도 알듯 하다. 아직 체득한 것은 아니지만 확실히 그래픽은 순서에 따라 그려진다는 것을 인지하고 전체적인 흐름을 파악하고 있다. OpenGL 은 그래픽스 라이브러리 중에서도 아주 쉬운 그래픽스 라이브러리라고 한다. 그러나 나에게는 아무래도 처음 접하는 것이다보니까 생소한 개념들이 많이 뛰쳐나와서 어색하고 정리가 안되어 머리가 복잡하다. 아직 어려운 것을 시작한것도 아닌데 익혀둘 개념 자체가 많다보니까 내가 해낼수 있을까? 라는 기분에 매우 혼란 스럽다. C++ 자체도 아직 덜 익숙하다보니 문법에 대한 이해도의 부족과 개념 미숙지의 어설픔이 동시에 몰려와 원하는 것을 코드로 적어내는 것도 쉽지가 않다. 그래도 이런 배워가는 재미가 즐거움이라 요즘 시간 가는줄 모르고 하고 있다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7hukvz96torax8l7l9fu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7hukvz96torax8l7l9fu.png" alt=" " width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  세이더
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;게임에서 그래픽의 품질은 셰이더가 다 한다라는 얘기가 있는데, 사실 그 동안 세이더가 뭔지 정확하게 알지도 못했던 것 같다. 그래픽스 공부를 시작하니 이제서야 무엇이 세이더인지 개념을 알게 된듯하다. 지난 몇년. 프로그래밍을 어쩌면 별것 아닌것처럼 쉬운것으로 착각하고 오만하게 대했던것 같다. 게임개발도 그냥 분야가 다를뿐이지 지금의 지식 수준이면 시간만 있으면 무난히 습듭할수 있을줄 알았다. 이번 기회에 C++를 통해서 내가 정말 너무나 모르고 있던 세계가 열리는 듯한 기분이 들어서 재밌기도 하고 두렵기도하다. 알아가는 즐거움과 방향을 찾지못해 방황하는 지식의 모험가가 된 느낌이다. 기쁨과 좌절이 뒤죽박죽 오가는 묘한 흥분감을 만들어준다. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgb3wvknpjsyyuwpm9be9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgb3wvknpjsyyuwpm9be9.png" alt=" " width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  별것 아닌것에 대한 엄청난 것들
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;삼각형. 그거 그냥 좌표3개만 있으면 뚝딱? 아닌가 싶었다. 그러나 그 좌표를 표현하기 위한 준비물이 이렇게 많을줄은 몰랐다. 어렴풋하게 OpenGL 은 구닥다리고, 단순하게 표현되어 있다고 해서 쉽게만 생각했는데 전혀 그렇지 못했다. 잘 알지도 못했을땐 그냥 바로 Vulkan 을 시작하면 되지 않을까 생각했는데 정말 몰라도 너무 모르는 것이였다. 지금도 삼각형 하나 그릴려고 대략 30줄의 삼각형 데이터와 약 500줄이 넘는 초기화 코드가 필요한데 Vulkan 은 이것의 최소 5배 이상의 보일러플레이트가 필요하다고 하니 얕봐도 너무 얕봤던 것이다. 벼는 익을수록 머리를 숙인다고 했는데 게임 개발공부를 하기 직전의 내 모습은 천하를 호령한 것처럼 너무나 기세등등 했었던것 같다. 이제는 모르는 것들을 찬찬히 익혀가며 겸손한 마음을 가져야겠다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmqtu9opz5o95pouky8c3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmqtu9opz5o95pouky8c3.png" alt=" " width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  정말로 삼각형 그리기가 이렇게나 어렵습니다!!
&lt;/h2&gt;

</description>
      <category>beginners</category>
      <category>cpp</category>
      <category>gamedev</category>
      <category>learning</category>
    </item>
    <item>
      <title>(d+019) OpenGL</title>
      <dc:creator>Ciao Lee</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:51:05 +0000</pubDate>
      <link>https://dev.to/ciaolee00/d019-opengl-2p06</link>
      <guid>https://dev.to/ciaolee00/d019-opengl-2p06</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhk5s4zw6zutqd6dnklow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhk5s4zw6zutqd6dnklow.png" alt=" " width="800" height="1158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  스팀, 프로그래밍 게임 축제
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;스팀을 오랜만에 켜보니 프로그래밍 게임 대축제를 하고 있다. 퍼즐게임을 워낙 좋아해서 한번 쭉 훑어봤지만 뭔가 구미가 당기지 않는다. 차라리 이럴꺼면 하던거 마저할까? 이런 생각이 들었다.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94vvy9gpm6cjw4h8pji6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94vvy9gpm6cjw4h8pji6.png" alt=" " width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tlc8r36dqt5e5yx9hoc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3tlc8r36dqt5e5yx9hoc.png" alt=" " width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  TileMap, Atlas
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;며칠전부터 만들어온 타일맵에 드로우콜(렌더링호출)을 줄이고 렌더속도를 올리고자 타일맵에 Atlas를 적용해 보았다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;타일을 화면에 표시할때 비디오램에서 같은 텍스쳐를 가져와서 한번에 렌더링을 해야 하는데 엉성하게 만든 클래스 조합이  발목을 잡는다. 처음에는 타일마다 렌더링 객체를 붙혀 작성하여 관리가 편하게 느껴졌지만 배치렌더링을 위해 기존에 있던 것들을 다 부시고 만들었다. 눈으로 보기에는 그저께 그렸던 것과 똑같지만 내부는 완전히 새로운 것으로 바뀌어 나름의 뿌듯함이 느껴졌지만... 눈에 보이는 바뀐점이 없으니 조금은 아쉽다는 생각이 들었다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;타일맵에서 더 해볼것들이 많이 있으나... 여기서 계속 눌러 앉기에는 다음할 것 들이 태산이다...  그래서 액터를 등록하고 움직이는 객체를 추가하는 것은 다음으로 넘겼다. 게다가 다음장부터는 렌더러를 바꾸기 때문에 오늘까지 만들어둔 2D 기반의 렌더러는 더 이상 사용하지 않는다.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  C++
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;타일맵 만든다고 일주일이나 소모했다. 나름 이것저것 해본다고 C++가 친해졌다. OOP 개념이야 평소에 기본적으로 잘 사용하고 있다고 생각했지만 낯선 느낌이 난다. 최근 몇년 업무에 사용하는 언어가 Go, TS 다 보니 다형성 관련해서 쓸일이 없어 아마 기억속 저 너머로 잊혀지고 있었던것 같다. 게다가 C++ 에는 다중상속(Mix-in)이 되고 Java 의 객체 구조와 다르게 접근제한자도 의미가 소폭 다르다. 알고있던 것들을 기반으로 코딩을 하다보니 어처구니 없는 실수를 계속했다. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;"새 술은 새 부대에 담아라" 라고 했는데 나는 자꾸 기존의 판단의 관성에서 벗어나질 못한다.  템플릿함수도 기존에 알고 있던 제네릭이랑 상이해서 2단계 조회 후 순환참조 때문에 한참을 고생했다. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;대략 10년을 컴퓨터로 밥벌어먹고 살았는데, 내가 이정도로 무지했나 싶을 정도로 너무 섬세하고 풍부한 언어다. 최적화를 위해 맴버변수의 크기(정확히는 패딩)에 따라 순서도 정해서 나열해야 하는 것마저 신비롭기만 하다. 그 동안 컴퓨팅 성능과 상관없이 개발자가 읽기 편하고 관리하기 편한 코드를 작성하는데 큰 힘을 들였다면 게임은 그 정반대가 되어야 한다. 기계친화적이고 비인간적이어야 하니... 머리가 조금 아프다.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fafjyrg6rb8nj1oxfjhcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fafjyrg6rb8nj1oxfjhcb.png" alt=" " width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fde693xmk6wqtn1j2e9el.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fde693xmk6wqtn1j2e9el.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  OpenGL
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;책의 5장 부터 이제 본격적인 3D 화면을 그릴 준비를 한다. 4장까지는 2D 기본 SDL 렌더러를 사용했지만 이제는 OpenGL 을 사용한다고 한다. 뭔가 알아볼수록 구닥다리의 냄새가 나지만 이게 기초중에 기초고, 이걸로 어느정도 기초개념을 쌓은 다음에 Vulkan 이나 DX3D 로 가는 것이 순리라고 하니 바닥을 잘 다져나가야 겠다.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;덕분에 지금까지 해온 엔진에서 렌더링 부분을 통째로 걷어냈다. OpenGL 관련된 기능은 초기화 이외에 추가하지 않아서 ... 어쩌면 2주전 처음 검정색 화면을 봤던 그때로 다시 돌아간 느낌이다. 그때랑 다른거는 이제 어느정도 게임루프에 맞춰 최적화된 프로그래밍을 해야한다는것. 그리고 60프레임 (16.66 ms) 안에서 어느정도 컴퓨팅 파워(속도)가 남았는지 체크하는 로거가 등장한다는 것이다. 주말내에 검정화면에 뭐라도 하나 띄울수 있으면 좋겠다.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>gamedev</category>
      <category>learning</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>(d+017) TileMap</title>
      <dc:creator>Ciao Lee</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:44:49 +0000</pubDate>
      <link>https://dev.to/ciaolee00/tilemap-2ki1</link>
      <guid>https://dev.to/ciaolee00/tilemap-2ki1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjkgrziv3mcyyxhri9zfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjkgrziv3mcyyxhri9zfh.png" alt=" " width="799" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Game Programming in C++
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;산자이 마드하브&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  느낌
&lt;/h1&gt;

&lt;p&gt;책의 4장까지 독서를 마치고&lt;br&gt;
이제 대략적인 게임엔진의 핵심인&lt;br&gt;
게임루프에 익숙해져가고 있다.&lt;/p&gt;

&lt;p&gt;이제는 초당 60프레임/ 약 16ms가 대단하게 느껴졌다.&lt;br&gt;
그 동안 게임을 하면서 트리플A 게임들 60프레임도 방어하지 못한다고&lt;br&gt;
화를 내곤 했었다.&lt;/p&gt;

&lt;p&gt;그러나 지금은 개발자들이 그만한 퀄리티를 내기 위해서&lt;br&gt;
온몸 비틀기하며 고생했었다는 것을&lt;br&gt;
조금이나마 이해할 수 있을것 같다.&lt;br&gt;
(아니면 어쩔수 없고...)&lt;/p&gt;

&lt;p&gt;그러나 지금은 개발자들이 그만한 퀄리티를 내기 위해서&lt;br&gt;
온몸 비틀기하며 고생했었다는 것을&lt;br&gt;
조금이나마 이해할 수 있을것 같다.&lt;/p&gt;

&lt;p&gt;게다가 예전에부터 유니티, 언리얼에서 만든&lt;br&gt;
객체의 복잡한 라이프사이클 로직 구성이 선뜻 이해가 안 됬는데&lt;br&gt;
이제 모든 코드를 손으로 직접 짜보니&lt;br&gt;
모든게 다 이유가 있었구나 싶은 생각이 들었다.&lt;/p&gt;

&lt;p&gt;내 스스로 엔진 자체가 왜 이렇게 구성됐을지&lt;br&gt;
고민해본지는 고작 17일밖에 안되었다.&lt;br&gt;
이런 자그마한 엔진도&lt;br&gt;
아직은정리가 안되어 기능 하나 고치려면&lt;br&gt;
머리가 띵할만큼  지끈 거리는데&lt;br&gt;
거의 10년 이상 무수히 많은 천재 개발자들이&lt;br&gt;
닦아 놓은 그 길이 시시껄렁한 이유였을리가 없다.&lt;/p&gt;




&lt;p&gt;아무튼... 4장의 핵심은 FSM(유한상태기계)와&lt;br&gt;
이동에 필요한 최단거리 알고리즘&lt;br&gt;
GBSF A*, Dijkstra 등등...&lt;br&gt;
처음엔 이 이론들을 이걸 진짜 다 구현해서 쓰나? 싶어 클로드랑&lt;br&gt;
대화해보니 이 정도로 쉬운 알고리즘은 그냥 만들어서 쓴다고 한다.&lt;br&gt;
게임 개발자라면 이 정도는 그냥 할 줄 알아야 하나보다.&lt;/p&gt;

&lt;p&gt;아무튼 책에서는 준비된 준비물로 FSM과 최단거리&lt;br&gt;
알고리즘을 익힐수있게 준비를 해줬지만&lt;br&gt;
이책은 무려 거의 10년도 다 된 책이다.&lt;/p&gt;

&lt;p&gt;기준이었던 SDL2는 이제 3가 나왔고...&lt;br&gt;
C++도 23이 구현막바지고 26도 나온다고 한다.&lt;/p&gt;

&lt;p&gt;책의 코드는 그저 내용을 이해하기 위한 도움말 수준이 되었고&lt;br&gt;
실제적으로 쓸모는 없어졌다. (제공하는 소스도...)&lt;/p&gt;

&lt;p&gt;그래서 FSM과 최단거리 알고리즘을 시각적으로 보여주는&lt;br&gt;
타일맵을 직접 구성해보기로 마음먹었다. 대략적인 구성이야&lt;br&gt;
단순해 보였는데 실제로 구성하려니... 쉽지가 않다.&lt;/p&gt;

&lt;p&gt;월요일부터 시작해서 오늘까지 집에서 남는 시간동안&lt;br&gt;
머리싸매서 겨우 타일맵을 화면에 그릴수 있게 되었다.&lt;br&gt;
(아직 엑터를 그 올려서 움직이지는 못한다...)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flftyr6361yw46xtkttco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flftyr6361yw46xtkttco.png" alt=" " width="800" height="205"&gt;&lt;/a&gt;&lt;br&gt;
&amp;lt;엔진소스 총 코드라인&amp;gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  수백번 숙고의 시간
&lt;/h1&gt;

&lt;p&gt;수백번 써다지웠다 하며... &lt;br&gt;
드디어 1776줄만에 타일맵을 그릴 수 있게 되었다.&lt;br&gt;
익숙하지 않은 C++도 골머리 앓는데 큰 역할을 했다.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6cf4l3y6p9xdcm4r7xv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe6cf4l3y6p9xdcm4r7xv.png" alt=" " width="800" height="713"&gt;&lt;/a&gt;&lt;br&gt;
&amp;lt;하드 코딩된 맵 데이터&amp;gt;&lt;/p&gt;

&lt;p&gt;정말 데모 수준도 안되는 화면을 띄우기&lt;br&gt;
에이징 이슈로 이제 잘 돌아가지도 않는&lt;br&gt;
머리를 정말 많이 썼다..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzu6ifyvzjtoikubddssi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzu6ifyvzjtoikubddssi.png" alt=" " width="799" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  너무 재밌다
&lt;/h1&gt;

&lt;p&gt;아무튼 별거 아닌 화면 띄우는데 머리는 아팠는데...&lt;br&gt;
막상 해결하니까 너무 재밌는 것이다.&lt;/p&gt;

&lt;p&gt;아직까진 2디 이고 이제 다음장부터 3디 이다.&lt;/p&gt;

&lt;p&gt;목표했던 스퀘어에닉스의 HD-2D 그래픽 스타일의 타이쿤 게임까지는 백만년 남은 기분이 든다.&lt;/p&gt;

&lt;p&gt;그래픽스(OpenGL -&amp;gt; Vulkan)도 공부할 예정이라 정말 더 막막한 기분이지만...&lt;br&gt;
나름 끝나지 않는 재밌는 퍼즐(?) 컨텐츠에 기대가 된다.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>gamedev</category>
      <category>tilemap</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>Dev blog</title>
      <dc:creator>Ciao Lee</dc:creator>
      <pubDate>Sun, 20 Sep 2026 13:36:14 +0000</pubDate>
      <link>https://dev.to/ciaolee00/dev-blog-1c76</link>
      <guid>https://dev.to/ciaolee00/dev-blog-1c76</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftg0yez70q6zxopowgr2a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftg0yez70q6zxopowgr2a.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  개발일지
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;내 생각에 대해서 정리하여 글을 써보는 것도 나름의 개발 공부라고 생각이 들어 시작하게 되었다.&lt;/li&gt;
&lt;li&gt;여러 가지 콘텐츠가 있겠지만 당분간은 게임개발에 대한 것들을 주로 올리게 될 것 같다.&lt;/li&gt;
&lt;li&gt;꾸준히 포스팅을 할 수 있는 노력형 개발자가 되었으면 한다.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
  </channel>
</rss>
