전체 글 275

cocos2d v3.14.1로 포팅하기 (N/N)

집에 다시 와서 보니 일부 Classes 폴더의 파일을 제대로 마이그레이션하지 않아서 생긴 문제였다. 문제 수정 후 다시 실행해보니 정상적으로 실행되었다. 이번 작업을 하면서 느낀 점을 다소 극단적으로 표현하자면 다음과 같다.cocos2d-x 엔진 쓰지 마세요. 두번 쓰지 마세요.사실 아는만큼 보인다고 내가 cocos2d-x나 다른 모바일 엔진에 대해서 잘 알지 못하는 측면도 있다. 하지만 요새 대부분 상용 게임이 언리얼이나 유니티를 쓰는 것을 보면... 개인적으로 유니티 엔진으로 2D 게임 만드는 것이 훨씬 시간도 짧게 걸렸고 쉬웠다. 물론 cocos2d-x에도 장점은 있다. C++ 사용이 가능하고 VisualStudio로 개발이 가능하다.Text, Line, Rect, Circle 등을 그리고 조작하..

Game Dev/StarCrush 2017.03.07

cocos2d v3.14.1로 포팅하기 (2/N)

Android SDK를 업데이트하니 새로운 문제를 또 찾을 수 있었는데 바로 "cocos run -p android"가 동작하지 않는다는 것이다. 지금 하면서 느끼는거지만 Android-Studio와 cocos2d-x 엔진 조합은 정말 개발하기 힘들다. 게임을 만드는 것보다 Publish와 서비스 유지, 3rd Party Library 붙이기가 정말 고역이다. 차라리 Unity로 포팅하는게 더 빨랐을 수도 있을 것 같네. 때려칠까... 문제가 많이 있어서 하나씩 정리해보겠다. Android SDK 버전Android SDK Tools v25.2.3까지만 command-line으로 android 빌드가 가능하다. 필요하면 다음 링크에서 command-line 지원되는 버전을 다운 받는다. https://dl..

Game Dev/StarCrush 2017.03.07

cocos2d v3.14.1로 포팅하기 (1/N)

Google에서 메일이 왔다. StarCrush 어플리케이션에서 몇가지 개인정보를 사용하고 있으니 개인정보취급방침을 담은 URL을 제출하라는 내용인데 귀찮기도하고 따로 개인정보를 쓰는 일이 없으니 연관된 라이브러리를 없애려고 마음먹었다. 그런데 웬일!? 빌드가 되지 않는다. 작년 11월 이후에 변경한 것이 없는데... 이렇게 나는 더 귀찮은 엔진 포팅의 길로 접어들게 되었다. 참고로 이 글의 모든 내용은 다음 링크를 참고하였다.http://www.cocos2d-x.org/docs/installation/Android-VisualStudio/ cocos2d-x 파일을 다운로드 받아서 압축을 푼다.http://www.cocos2d-x.org/downloadsetup.py 파일을 실행한다.테스트로 cmd에서 ..

Game Dev/StarCrush 2017.03.07

Terrain Elevation 얻어오기

UE에서 Landscape를 생성한 후 Landscape의 Z 값을 읽어오는 작업을 진행했다. Landscape를 만드는 자세한 설명은 생략한다! CryEngine에서는 GetTerrainZ, GetZ 같은 함수가 있었는데 UE에서는 찾지 못했다. 포럼을 검색해보니 그냥 LineTrace를 해보라고 한다. 많이 느릴 것 같은데 우선 함수 Wrapping을 해서 나중에 구현은 바꿀 수 있도록 하고, LineTrace를 해보았다. 오 대충 되는듯? 몇가지 문제가 있는데 Grid의 선분이 Lighting에 영향을 받는다. (나는 단색으로 나오기를 원함) Grid의 선분이 굴곡이 있는 곳에서는 땅 밑으로 들어간다. 두번째 문제의 원인은 Terrain의 Vertex보다 Grid의 Vertex가 더 크기 때문이다...

VisualStudio를 위한 Unreal 설정

Unreal을 제대로 사용하려면 VisualStudio에 추가 설정이 필요하다. 몇개는 Unreal에서 이미 제공하는 것이고 다른 하나는 웹을 검색하다가 발견한 것이다. 사실 VisualAssist가 없다보니 VS 기본 Intellisense의 느린 단점이 너무나 잘 보인다. VisualAssist 개인 구매를 심각하게 고민 중! 참고로 오늘 UE 4.15.0 버전을 설치해보니 VS2013, VS2015은 물론이고 VS2017까지도 Extension이 지원되고 있다. Unreal VisualizerVisualStudio에서 디버깅 할 때 watch 윈도우 등에서 값을 잘 보여준다.설치/Engine/Extras/VisualStudio/Debugging/UE4.natvis 파일을 찾는다.해당 파일을 다음 중..

UE4 새로운 프로젝트 시작

새로운 프로젝트를 시작해보기로 했다. 언리얼 엔진 사용주제는 내가 좋아하는 삼국지서버도 만들어서 클라우드 서비스에 올려 볼 예정새로운 작업을 할 때마다 블로그에 기록 남기기 사실 작업이 완료된 것은 거의 없는데 시작이 반이니까 블로그에 첫 글을 남겨본다. 오늘까지 한 일육각형 그리드를 관리하는 클래스 구현https://github.com/ypchoi/hexgridHexGrid 프로젝트는 오픈소스로 꾸준히 업데이트 할 예정UnrealEditor에 육각형 그리드를 그려보기 어려웠던 점언리얼 엔진은 왼손좌표계를 쓰는데 Forward가 +X, Right가 +Y, Up이 +Z내가 쓰던 크라이 엔진은 Forward +Y, Right +X, Up +Z자기가 만든 게임을 실행하려면 다음과 같이 설정해야 함세팅 > Ga..

Tiled Rendering

개요사실 SW Render Technique라기 보다는 GPU Render Technique화면 공간을 여러 Tile(or Grid)로 나누어 렌더링 하는 방식Tile-based Rendering(=TBR), Sort-middle Architecture라고도 불린다.중간에 어떤 Tile에 어떤 Geometry가 그려질지 결정하기 때문기존의 Immediate Rendering(=IM)은 Sort-Last이렇게 나누면 동일한 (빈 공간이나 동일한 배경) 타일을 활용할 수도 있고 HW의 성능이 떨어질 경우 적은 리소스만 가지고도 렌더링이 가능하다. 순서Rendering 하기 전에 Geometry가 어느 Tile에 그려질지 결정해야 한다.Modern GPU에서는 CPU가 아닌 GPU에서 수행 가능보통 Tile은..

Game Dev/Article 2016.10.21

Forward+ Rendering

개요전통적인 Forward Rendering의 확장!최종 Shading 전에 Light Culling 하나만 추가되었다.많은 수의 Light를 Culling하고 Pixel에 영향을 주는 것만 저장한다.Light List를 구축하고 이를 Shader에서 사용하지만 메모리는 적게 쓴다. Standard Forward, Standard Deferred식상한 얘기들ForwardDeferred에 비해서 Material 수는 큰 문제가 되지 않는다.다만 Light 개수가 많아지면 성능에 문제가 된다.또 Shader 조합이 폭발적으로 늘어날 수 있고 Light와 Geometry의 CPU 관리가 필요하다.DeferredGeometry 복잡도와 Light 복잡도를 분리하여 많은 Light를 그릴 수 있다.Shader 조..

Game Dev/Article 2016.10.19

Premultiplied alpha

Post Multiplied Alpha우리가 익히 많이 사용하고 있었던 Blending 공식Dest.rgb = (Src.rgb * Src.a) + (1 - Src.a) * (Dest.rgb) Src : SRC_ALPHADest : INV_SRC_ALPHA 하지만 이 공식은 많은 경우에 잘못된 Artifact가 발생한다. 다음의 이미지를 보면 왼쪽은 (R:1.0, G:0.0, B:0.0, A:1.0) 컬러이고, 오른쪽은 (R:0.0, G:1.0, B:0.0, A:0.1) 색이다. 이 둘을 혼합한다면 아주 연한 녹색 빛을 띄는 붉은색이 되어야 할 것이다. 그런데 저 둘을 가지고 1x1 Mipmap을 만들어보면 다음과 같은 결과가 나타난다!?이 컬러는 (R:0.5, G:0.5, B.0.0, A:0.55)로 단..

Game Dev/Article 2016.10.14

VS TeamService로 작업 공간 이동

원래는 개인 작업 저장소를 http://dev.naver.com/ 에서 관리하고 있었다. 용량 제한이 있지만 일단 무료이고, Git이 지원 가능하며 (예전에는 SVN만 가능했음) 가장 마음에 드는 것은 Private로 프로젝트를 만들 수 있어서이다. 물론 내 코드나 작업물을 누가 퍼가겠느냐만은... 사실 국내 최고의 IT 기업 중 하나인데 이런 결정을 내렸다는건 너무 아쉽다. 그런데 네이버 오픈 프로젝트를 접는다는 소식을 듣게 되었고 때마침 동료 프로그래머가 Visual Studio Team Service를 추천해 주었다. 승리의 MS! https://www.visualstudio.com/team-services/위 링크로 접속이 가능하며 Microsoft 계정만 있으면 무료로 사용이 가능하다. (단 5..

Game Dev/Work Log 2016.10.13