<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>새벽코딩</title>
    <link>https://rbsejin.tistory.com/</link>
    <description>그래픽스 프로그래머로 전향하기 위해 공부하고 있습니다.</description>
    <language>ko</language>
    <pubDate>Sun, 31 May 2026 06:14:19 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>이세빵</managingEditor>
    <image>
      <title>새벽코딩</title>
      <url>https://tistory1.daumcdn.net/tistory/4153408/attach/62c333c5553e4cf098e2f76379b3a37b</url>
      <link>https://rbsejin.tistory.com</link>
    </image>
    <item>
      <title>스타크래프트 맵 지형 관련 데이터 읽기</title>
      <link>https://rbsejin.tistory.com/58</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MTMX에서 VF4 부분을 읽어서 지형정보를 렌더링했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그는 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;0x0001 - Walkable&lt;/li&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;0x0002 - Mid&lt;/li&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;0x0004 - High (Mid and High unchecked = Low)&lt;/li&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;0x0008 - Blocks View&lt;/li&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;0x0010 - Ramp - Appears on the middle minitiles of most ramps/stairs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동할수있으면 빨간 계열, 이동할 수 없으면 파란 계열&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고도가 높을 수록 밝게 렌더링했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지형과 관련된 필수적인 정보는 이제 모두 가져온 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맵 관련해서 추후 해야할 일은 아래 두 가지 정도일 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 고도, 대각선 등을 고려하여 가중치가 있는 다익스트라, A*로 길찾기 알고리듬을 수정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 맵 툴 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트하다보니 이동불가지형을 클릭할 경우 멈춤현상이 발생하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) BFS로 넓은 맵을 단순무식하게 길찾기 해서 연산자체가 오래걸리고, 특히 이동불가지형일 경우 길찾기가 불가능하다는 것을 알아내기까지 맵 전체를 뒤져야하기 때문에 멈춤현상이 발생하는 것 같다. 아예 길찾기를 하기전에 이동불가지형을 선택했는지를 확인하는 로직을 추가하거나 아니면 목표지점을 그 근처 이동가능지형으로 변경해서 길찾기를 실행하도록 수정하는 편이 괜찮을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 그리고 설사 연산자체가 오래 걸려서 화면이 끊길 지언정 이동속도는 변함이 없어야하는데 이동자체도 멈추고 있는 걸로 봐서는 게임 루프쪽에도 손을 봐야할듯싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 이제 막연한 부분은 어느 정도 정리된 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발에 박차를 가해야겠다.&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/453463413&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/7cslF/hyYmV65S83/Bym3rehQKpJcJ0Mojy73EK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/be3mzL/hyYm1Gapcn/nCfr5ByXy5kqQNqAny2Vik/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/453463413?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>스타크래프트 개발일지</category>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/58</guid>
      <comments>https://rbsejin.tistory.com/58#entry58comment</comments>
      <pubDate>Thu, 6 Mar 2025 03:03:37 +0900</pubDate>
    </item>
    <item>
      <title>스타크래프트 투혼맵</title>
      <link>https://rbsejin.tistory.com/57</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;스타크래프트 scm 맵에서 scenario.chk를 추출해 MTXM 쪽에서 이미지 데이터를 구했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동할수 없는 지형, 지형의 높이 관련 데이터는 일단 무시하고, 수동으로 만들어서 테스트해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 화면에 실제 맵이 그려지니까 그럴듯하게 보이고 의욕이 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/453451796&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/JhKSv/hyYmYbpr6N/g9q46Z4eUPeT05yLBPBbB1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/bCSBzz/hyYndT0HgU/xkacwHZjAXBgb8jk236920/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;'새벽코딩'에서 업로드한 동영상&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/453451796?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>스타크래프트 개발일지</category>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/57</guid>
      <comments>https://rbsejin.tistory.com/57#entry57comment</comments>
      <pubDate>Wed, 5 Mar 2025 16:26:10 +0900</pubDate>
    </item>
    <item>
      <title>맵 크기 확장 및 카메라 기능 구현</title>
      <link>https://rbsejin.tistory.com/56</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 맵의 크기를 실제 스타 맵 사이즈로 확장하니 길찾기가 버벅거렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추후 개선할 점이 몇가지 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 길찾기 알고리듬을 BFS에서 A*로 변경해야할 것이고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음으로는 셀단위(8x8)가 아니라 지역(region)을 나눠서 지역단위 길찾기를 하고, 지역내에서 셀단위 길찾기를 하면 효율적일 것 같다. 다만 어떻게 지역을 나눠야할지 감도 안잡힌다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 길찾기가 오래걸릴 경우 게임이 멈추는 현상이 발생하는데 이를 해결해야할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇지만 일단 다음 작업은 실제 맵 이미지를 불러오는 부분을 구현할 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 게임 구색은 갖춰놓고 성능을 개선하도록 하자...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/453440039&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cxWvI2/hyYnaphR61/8JNzQWbBeJQHFJ6dFrzkiK/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/91lbK/hyYnabJTvH/m9gprB8JB4fERV7Mw1Dqok/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;'새벽코딩'에서 업로드한 동영상&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/453440039?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>스타크래프트 개발일지</category>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/56</guid>
      <comments>https://rbsejin.tistory.com/56#entry56comment</comments>
      <pubDate>Wed, 5 Mar 2025 04:59:11 +0900</pubDate>
    </item>
    <item>
      <title>길찾기 간단한 버전 구현</title>
      <link>https://rbsejin.tistory.com/55</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 길찾기를 구현해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 가장 심플하게 BFS로 간단하게 구현했다. (추후에 A* 알고리듬으로 변경할 예정)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 문제가 마린의 크기가 17x20 픽셀이고, 셀의 크기는 8x8 픽셀이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유닛이 지나갈수없는 좁은 통로일 경우 다른 경로를 찾아야하기 때문에 충돌을 고려하여 BFS를 수정해줘야했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음엔 충돌되기 직전까지 이동한다음에 유닛을 조금 움직여주면서 찾아야하나? 뭐 이런 복잡한 생각을 고민을 꽤나 했었는데 의외로 간단한 방법으로 해결되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단지 BFS에서 &lt;b&gt;이웃 셀을 queue에 삽입하기 전에 충돌체크&lt;/b&gt;(해당 셀에서 유닛이 타일에 겹치는지 체크)를 해서 충돌할 경우 큐에 넣지 않으면 된다.&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/453365871&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/pjrou/hyYna93mOf/FLeGYXaCVD0x632WVSMnB0/img.jpg?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584,https://scrap.kakaocdn.net/dn/bHK6jW/hyYjsdv07p/pPEQodr0hq1y2G50twQEPk/img.jpg?width=800&amp;amp;height=584&amp;amp;face=0_0_800_584&quot; data-video-width=&quot;800&quot; data-video-height=&quot;584&quot; data-video-origin-width=&quot;800&quot; data-video-origin-height=&quot;584&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot; data-original-url=&quot;&quot; data-video-title=&quot;&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/453365871?service=daum_tistory&quot; width=&quot;800&quot; height=&quot;584&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>스타크래프트 개발일지</category>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/55</guid>
      <comments>https://rbsejin.tistory.com/55#entry55comment</comments>
      <pubDate>Sat, 1 Mar 2025 21:38:56 +0900</pubDate>
    </item>
    <item>
      <title>스타크래프트 개발을 다시 시작하다.</title>
      <link>https://rbsejin.tistory.com/54</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;사실 3년 전부터 유영천님의 DirectDraw 강의를 듣고, DirectDraw로 스타크래프트를 한 번 만들어보고 싶다는 생각을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DirectDraw 초기화하고, 이미지 로드해서 화면에 띄우는 것까지 하고 접었는데 오늘부터 다시 시작해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 주는 A* 알고리즘에 대해서 어느정도 알고 시작해야할 것 같아서 그래프와 다익스트라, A* 관련 강의를 듣고 샘플코드를 만들어봤는데 역시 공부만 하다보니 아무래도 의욕이 떨어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 눈에 보이는 걸 뭐라도 만들고, 거기서 필요하면 잠시 중단하고 공부를 하든지 해야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 조건을 갖추고 나서 시작하려는 마음은 독이될 수도 있다는 생각이 든다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6tEcz/btsL1FJnCZR/iAHrXsuPKMNRKntuPejFmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6tEcz/btsL1FJnCZR/iAHrXsuPKMNRKntuPejFmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6tEcz/btsL1FJnCZR/iAHrXsuPKMNRKntuPejFmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6tEcz%2FbtsL1FJnCZR%2FiAHrXsuPKMNRKntuPejFmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;169&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파란화면에 마린 하나 덩그라니 띄웠는데 뭐부터 해야할지 막막한 상황...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 화면에 그리드를 그리고, 마린이 해당 지점으로 이동하는 것부터 구현해봐야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러러면 길찾기 알고리듬이 들어가야할텐데 BFS를 써서 눈에서 돌아가는 것을 확인하고, 바로 A*로 교체할 시점을 생각해봐야할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 장애물도 추가해서 잘 돌아가는지 확인해보고...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동하는 것만 한 1주일 걸릴 것 같고...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음은 스프라이트 이미지를 이용해서 애니메이션 작업을 해야할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 1. 이동 2. 애니메이션 이렇게 두 가지를 구현하고 추후 구현 범위를 정하고, 일정을 산정해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>스타크래프트 개발일지</category>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/54</guid>
      <comments>https://rbsejin.tistory.com/54#entry54comment</comments>
      <pubDate>Sun, 26 Jan 2025 17:43:07 +0900</pubDate>
    </item>
    <item>
      <title>sourcetree github 연동</title>
      <link>https://rbsejin.tistory.com/47</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dobby-the-house-elf.tistory.com/454&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://dobby-the-house-elf.tistory.com/454&lt;/a&gt;&lt;/p&gt;</description>
      <author>이세빵</author>
      <guid isPermaLink="true">https://rbsejin.tistory.com/47</guid>
      <comments>https://rbsejin.tistory.com/47#entry47comment</comments>
      <pubDate>Sat, 4 Sep 2021 09:44:04 +0900</pubDate>
    </item>
  </channel>
</rss>