전체 글
A* 길 찾기 알고리즘
A* 길 찾기 알고리즘은 유니티로 2D 게임을 만들 때도 자주 사용되는 알고리즘이고 포폴에서도 사용했었다. 구글링해서 C# 코드는 금방 찾을 수 있지만 JavaScript 코드는 찾기가 어려웠다. 그래서 단순히 코드 복붙해서 날먹하려는 시도보다는 A* 알고리즘의 원리에 집중해서 새롭게 코드를 작성했다. 1. 우선순위 큐 (Priority Queue) A* 길찾기 알고리즘에서는 탐색할 다음 노드를 선택할 때, 현재 노드와 연결돼 있는 다음 노드들 중에 비용이 가장 적은 노드를 뽑는 과정을 반복해야한다. 이때마다 노드들을 새로 정렬하거나 가장 적은 노드를 찾는 행위를 다시 한다면 길 찾기 알고리즘의 퍼포먼스가 떨어질 수 있다. 물론 전체 노드의 개수(Grid)가 적다면 큰 차이는 없겠지만. 그래서 대부분 ..
유니티 '모바일' 게임을 출시할 때 해야 할 일들
출처 : https://gall.dcinside.com/m/game_dev/154269 유니티 '모바일' 게임을 출시하기까지 필요한 기술의 리스트 게임을 다 만든다고 다가 아니다! 게임을 만들어서 서비스하고 돈을 버는 것은 완전히 다른 이야기다! 게임을 만드는 것을 제외하고 나머지 것들을 내 경험에 기반해서 적어보겠음. 더 생각나는 거 있으면 댓글 달아줘 - 수익화 - 유료템의 구현 - 영수증 검증 - 환불대응, 처리 - 유니티 IAP 설치 (제일 쉬운 방법이긴 함) - 광고의 구현 - 각 광고사 계정생성, 수익을 받을 수 있도록 세팅 - 유니티 애즈의 구현 - 미디에이션 SDK의 탑재 - 애드몹 -광고 생성 - 미디에이션 세팅 - 앱러빈 - ... - 미디에이션 SDK들의 버전에 따른 호환성 찾느라 2..
디아블로2의 아이템 드랍 알고리즘
출처 : https://www.inven.co.kr/board/diablo2/5734/6547 디아블로2는 아이템으로 시작해 아이템으로 끝난다고 해도 될 정도로, 아이템은 디아블로2 플레이에 있어 매우 중요한 위치를 차지합니다. 지금 이 순간에도 더 강한 아이템, 더 고가에 거래되는 아이템, 얻어보지 못한 아이템, 나만의 빌드를 완성시켜 줄 아이템들을 얻기 위해 수많은 방들이 생성되고 수많은 거래가 이루어지고 있으며, 이는 20년이 넘는 시간 동안 게임이 유지될 수 있었던 원동력이기도 합니다. 이렇듯 디아블로2라는 게임의 정수라 할 수 있는 아이템. 이번 글에서는 이 아이템이 게임 내에서 어떻게 생성되고 드랍되는 지 그 알고리즘에 대해 상세히 설명을 드려보고자 합니다. [글을 시작하며...] 디아블로2의..
당신이 작업 일지를 안 쓰면 손해 보는 5가지 비밀
https://cafe.naver.com/indiedev/60880 당신이 작업 일지를 안 쓰면 손해 보는 5가지 비밀 cafe.naver.com https://cafe.naver.com/indiedev/61044 [Part 2] 왜 작업 일지를 안 쓰면 손해를 볼까? 5가지 비밀 공개 cafe.naver.com "이 내용은 사실 남들이 몰랐으면 하는 내용입니다. 제가 그동안 수십 권의 책과 유료 세미나와 유료 정보들을 구매하면서 얻은 개발일지에 대한 깨달음을 숨김없이 전부 전달하고자 합니다. 이 글이 여러분에게 정말 도움이 되기 위해 엄청난 사전조사를 하였습니다." 글의 서론에 적혀있듯이 안의 내용은 확실히 값진 내용들이다. 잔소리하듯이 뻔한 원론적인 얘기를 읊어대는 그런 내용들이 아니고 작업 일지를 ..
3년간 인디게임 2개를 출시했지만 실패했던 이유
https://cafe.naver.com/indiedev/58996 3년간 인디게임 2개를 출시했지만 실패했던 이유 cafe.naver.com https://cafe.naver.com/indiedev/59192 [Part 2] 드디어 게임 출시...!! 과연 결과는? cafe.naver.com https://cafe.naver.com/indiedev/59388 [Part 3] 처참히 망한 게임, 그러나 누군가 손을 내밀었다. cafe.naver.com https://cafe.naver.com/indiedev/59648 [Part 4] 재출시를 하였지만 또 실패하였다. 인디게임은 내 길이 아니었던 건가 cafe.naver.com https://cafe.naver.com/indiedev/59820 [Part..
WebStorm Chrome 디버깅
html 파일 실행 후 크롬 브라우저가 제공하는 크롬 개발자도구에서 디버깅 작업을 할 수 있지만 코딩 작업은 WebStorm에서 하고, 디버깅은 크롬 브라우저에서 하는 작업 방식이 익숙하지도 않고 불편하다 생각해서 WebStorm 툴에서 코딩과 디버깅을 같이 할 수 있는 방법을 찾아보았다. 원래는 WebStorm과 Chrome Dev Tools이 다중 클라이언트 디버깅을 지원하지 않는 동일한 디버그 프로토콜을 사용하는 문제점으로 인해서 한 쪽 디버거의 연결이 끊어지는 문제가 있었다. 이를 해결하기 위해 크롬에서 JetBrains의 IDE 확장 프로그램을 설치해서 사용했지만 WebStorm 2017.3 버전 이후에는 확장 프로그램을 설치하지 않고 추가적인 세팅만 하면 되도록 개선되었다. 먼저 디버깅 ..
CreateJS
https://createjs.com/ CreateJS A suite of modular libraries and tools which work together or independently to enable rich interactive content on open web technologies via HTML5. HTML5의 Canvas 기술을 기반으로 하여 웹 브라우저에서 풍부한 상호작용(이미지와 애니메이션 등) 콘텐츠를 표현하기 위한 자바스크립트 라이브러리 모음이며, 네 가지의 라이브러리로 구성되어있다. ES5 버전으로 구현됨. (1) EaselJSHTML5 Canvas에 Graphic 객체 생성을 위한 라이브러리 (2) TweenJS객체의 상태 등을 보간하는 기능을 제공하는 라이브러리 (3)..
노드를 화면 가득 차게 늘리는 법 #2
https://growy.tistory.com/48 특정 노드를 화면 가득 차게 늘리는 법 #Basic 1. 캔버스의 이해 1280x720 사이즈의 캔버스 밑에 1280x720 사이즈의 이미지 노드를 놓았다. 이 상태에서 씬을 실행하고서 가로:세로 비율이 2.36인 해상도에서 확인하면 위와 같이 나온다. 메인 캔버 growy.tistory.com Canvas와 Fit Height, Fit Width의 적용 원리와 같은 기본 개념은 이전에 작성한 글에서 확인 가능하다. 위 글에서 정리한 기본적인 개념을 더 확장하고, 추가 개념을 입혀서 내가 만든 게임이 PC와 모든 모바일 기기 해상도에서 문제없이 잘 나오도록 하는 것이 목표다. 또한 UI를 PC용, 태블릿용, 모바일 가로용, 모바일 세로용으로 각각 만든다..