2015.08.18 10:54

포항 북부 해수욕장. (이름 바뀌었던데.. )


최근 개장한 포항베스트웨스턴호텔에 겨우 방하나 구해서 놀러감. 시설은 깔끔하고 전 객실이 오션뷰라 배경 좋았음.


마침 축제시기라 방에서 시원하고 불꽃놀이 구경함. ^^






'가족 - 집 - 자동차' 카테고리의 다른 글

퇴근 후의 작업실  (0) 2015.08.19
2015년 6월의 서해안 어딘가..  (0) 2015.08.18
2015년 7월의 여름 휴가  (0) 2015.08.18
믹스커피랑 베지밀B로 달달한 한잔 만들기  (0) 2015.08.18
거북이 위에 거북이  (0) 2015.01.28
버섯이...  (0) 2014.07.13
2015.08.18 10:41

믹스커피에서 커피만 넣는다. 요즘은 보통 3등분으로 가장 위에 커피, 프림, 설탕이 분리되어 포장된다. 


믹스커피 위에서 1/3 지점을 꽉 잡고 부으면 커피만 나옴. 


나머진 과감히 포기!!


머그컵 기준으로 물을 1/4 정도 넣고, 베지밀B를 1/3 혹은 1/2 정도 넣는다. 


그럼 완전 달달한 커피 한잔 완성!! 




'가족 - 집 - 자동차' 카테고리의 다른 글

2015년 6월의 서해안 어딘가..  (0) 2015.08.18
2015년 7월의 여름 휴가  (0) 2015.08.18
믹스커피랑 베지밀B로 달달한 한잔 만들기  (0) 2015.08.18
거북이 위에 거북이  (0) 2015.01.28
버섯이...  (0) 2014.07.13
물고기 색이 이상해  (0) 2014.07.13
2015.08.14 15:38

* 정적으로 사용된 리소스

 : 특정 씬에 포함된 리소스는, 빌드 시 해당 씬을 포함하면 배포되는 기본 파일에 포함됩니다.


* 동적으로 사용된 리소스

 : 동적으로 로딩되는 리소스는 아래 몇가지 방식으로 동적 로딩을 진행할 수 있습니다.

 1. Resources 라는 폴더명을 만들어 리소스를 넣어두면 기본 파일에 포함됩니다. Resources.Load 함수로 동적 로딩 할 수 있습니다

 >> Resources 폴더는 여러개를 만들어 사용할 수 있습니다. 추후 이 폴더명 안에 있는 리소스들은 빌드 시 하나로 합쳐지는데, 같은 파일명이 있으면 문제가 됩니다. 파일명이 중복되지 않도록 주의하시기 바랍니다.

 >> AssetBundle 파일을 이곳에 넣어둘 수 있습니다. AssetBundle.CreateFromFile 함수로 동적 로딩 할 수 있습니다. 좋은 방법은 아닙니다. 이러지 마세요 !!


 2. SteamingAssets에 넣어두면 기본 파일에 포함됩니다. WWW로 로딩 가능합니다. 만약 AssetBundle 파일들을, 게임 설치 후 초기 다운로드가 아닌 바로 실행 가능하게 하려면 이 폴더에 AssetBundle 파일을 넣어두는 방법을 추천합니다. 


 3. AssetBundle 파일로 만든 후, 게임 실행 시 혹은 게임 중 필요할 때 WWW로 다운로드/로딩 가능합니다.


끝!!!

2015.07.22 18:23

구글의 App engine은 App Engine Hosting 과 Managed VMs Hosting 두 가지 중 한가지를 선택할 수 있습니다. 


이번에는 이 둘의 차이점과 앞으로 사용할 Managed VMs Hosting에 대해 상세히 정리해 보겠습니다. Managed VMs Hosting은 2015년 7월 현재 베타 서비스 중이며, 이곳에 기록되는 내용은 이후 계속 변화할 수 있음을 참고하세요. ..... 를 줄줄이 쓰려 했으나 사실 공식 페이지에 워낙 잘 나와있어서, 괜히 사족 안달고  간단히 정리합니다. 


둘은 차이점은 https://cloud.google.com/appengine/docs/managed-vms/ 의 중간 정도에 나와있는 표를 보시면 쉽게 이해하실 수 있습니다.


제가 생각하는 가장 큰 장점은 기존에 정해진 Java, Go, Python, PHP가 아닌 다른 언어로 제작된 어플리케이션을 올릴 수 있다는거죠. 끝!! 


이 아니고.. 기존에 쓰려던 글 중 둘의 차이를 설명한 내용만 아래 남겨두었습니다. 굳이 보실 필요는 없지만... 한번 간단히 읽어 보셔도 됩니다. ^^


=============================================================================


이전 세대에서는 게임 서비스를 위해 IDC와 회선을 임대하고 IBM과 같은 회사에서 서버 시스템을 구매하여 IDC에 설치해야 했으며, 규모가 클 경우 이를 관리하기 위한 인력을 IDC 센터 내에 직원을 두어야 했습니다. 유저가 급격히 증가할 경우를 대비해 시스템 공급업체와 협상하여 빠른 시간안에 시스템을 투입하기 위한 계약을 했어야 했죠. 해외에 서비스를 위해서는 더 복잡한 절차가 기다리고 있었습니다. 게다가 서비스를 위한 대부분의 기능을 직접 개발을 해야 했습니다. 보안 업데이트와 같은 중요한 OS 변경 때마다 개발자와 운영자들의 스트레스를 극도로 상승시키곤 했죠.


Google App Engine 은 Platform as a Service입니다. 

이제 우리는 서비스할 기능을 구현하고, Google의 인프라스트럭쳐에 올려 빌드하고 간단히 배포할 수 있습니다. Google Console을 이용해 원격으로 시스템의 상태를 실시간으로 확인할 수 있으며, 유저의 증감에 따라 GAE에 설정한 대로 어플리케이션을 실행하는 서버들이 자동으로 증가,감소가 진행됩니다. GAE의 메인터넌스는 이제 다운없이 진행이 됩니다.(이에 대해서는 이곳을 참고해 보세요. 아.. 나프다 애청하고 있습니다. 더 많은 개발자 분들이 들으시길 바랩니다. ^^)이전과는 비교할 수 없을 정도로 간편해 졌으며, 운영비용을 획기적으로 줄일 수 있게 되었습니다.


이를 통해 로컬의 작은 회사조차도 전세계에 자사의 서비스를 사용할 수 있게 되었습니다.


기존에 GAE를 활용하는 방법을 기술한 훌륭한 서적들과 아티클들이 많이 있지만 굳이 제 블로그에 다시 정리하는 이유는, 제 경험이 미천하여 기록하며 배우고자 함이며, 저와 같은 시도를 하시는 분들께 조금이나마 도움이 되었으면 하는 마음입니다.


서론이 길었네요. 이제 본론으로 들어가겠습니다.


(* 아래 단락의 참고/이미지출처 사이트: https://cloud.google.com/appengine/docs/managed-vms/)


GAE는 2015년 7월 현재, 두 가지 호스팅 옵션을 제공합니다. 하나는 기존의 App Engine Hosting 이며, 2014년경부터 지원하기 시작하여 아직 베타 서비스 중인, Managed VMs Hosting 입니다. 


이 둘의 차이를 아래의 이미지에서 간단히 이해할 수 있습니다.



위 참고 사이트의 중간쯤을 보시면 아래의 표를 보실 수 있는데, 위 그림과 같이 보시면 startup time이 왜 이렇게 차이가 나는지 알 수 있습니다.


Instance startup time을 언급한 이유는 App Engine sandbox와 비교해 이 요소 이외에 단점이 거의 없기 때문입니다.


.

.

.




연재 순서


 1. Node.js로 App Engine 사용하기 - 들어가며... 

 2. Node.js로 App Engine 사용하기 - App Engine Hosting과 Managed VMs Hosting

 3. Node.js로 App Engine 사용하기 - Hello World with Node.js

 4. Node.js로 App Engine 사용하기 - 데이터 다루기

 5. Node.js로 App Engine 사용하기 - 인증

 6. Node.js로 App Engine 사용하기 - 로깅

 7. Node.js로 App Engine 사용하기 - Cloud Pub/Sub 서비스 시용하기

 8. Node.js로 App Engine 사용하기 - Cloud 설정하기

 9. Node.js로 App Engine 사용하기 - 게임 릴리즈 절차 정리

10. Node.js로 App Engine 사용하기 - 마무리 하며...


그럼 다음 글에서 뵙겠습니다. 



2015.07.22 00:48

현재 구글 앱 엔진은 java, python, go,php 네 가지 언어를 사용한 어플리케이션을 지원합니다.


위 언어 이외의 언어들(nodejs, perl, runy 등등)은 앱 엔진의 runtime 옵션에 custom 이 추가되면서 사용이 가능해졌습니다. (app.yaml의 옵션에서 설정이 가능합니다.)


현재 베타로 운영되고 있으며, 서버는 베타 기간 동안은 오직 북미에서만 운영된다고 합니다. 


가격에 대해서는 사용한 만큼 측정한다고 되어 있는데, 얼마나 써야 유료가 되는지, 유료로 전환할 경우 대략적인 비용이 얼만지는 바로 다음 글에서 측정해 보겠습니다.


이를 위해 Docker를 같이 다룰텐데, Docker에 대해서는 상세히 언급하지는 않을 예정입니다. 


Node.js와 Docker에 대해서는 이미 알고 계시다고 가정하고 진행하겠습니다. Docker는 깊이 있게 다루지 않으니 모르셔도 일단 진행하시면서 익히셔도 되니 참고하세요.


=============================================================================


시작하기 전에 아래 내용에 대한 준비가 필요합니다. 


- gmail 생성

- https://cloud.google.com/appengine/ 에서 무료평가판 신청

- google app engine sdk를 설치. 이는 로컬에서 구글앱엔진의 가상환경을 구축합니다.

- nodejs 설치


=============================================================================


https://cloud.google.com/nodejs/getting-started

https://github.com/GoogleCloudPlatform/nodejs-getting-started


위 두 사이트를 지속적으로 참고하세요. 앞으로 길지 않은 글을 작성하는 동안 위 샘플 프로젝트와 공식 사이트를 많이 참고할 예정입니다.


제 블로그의 글들은 대부분 사전에 알고 있는 지식을 쓰는 경우보다는 스터디나 실제 업무를 진행하면서 부딪히거나 힘들었던 내용들을 실시간으로 올리면서 작성됩니다. 그래서 잘못된 내용이 올라가기도 하고, 글이 완료된 후 퇴고 혹은 내용을 수정하는 경우가 종종 있습니다. 참고해 주세요. ^^;


이 글의 연재 목표는 아래와 같습니다. 


Google App Engine을 활용하여 게임 서버를 구축하는 것이며, 이를 위해 아래 내용들을 직접 제작/설정해 볼 예정입니다. 

- 유저의 게임 진행 데이터 저장 , 리더보드 제공

- 게임 이벤트 로깅

- 클라우드 플렛폼 활용법 

샘플 게임 클라이언트는 html5 Canvas를 사용할 예정이며, 클라이언트에서 사용될 코드들은 javascript로 제작할 예정입니다.


앞으로 연재되는 내용의 순서는 아래와 같습니다. 진행하면서 상황에 따라 변경될 수 있으니 양해 바랍니다. 주 내용은 이곳을 참고하여 따라갈 예정이며, 기존 내용에 제가 테스트를 진행하면서 발생하는 추가 내용들을 기록할 예정입니다. 


연재 순서


 1. Node.js로 App Engine 사용하기 - 들어가며... 

 2. Node.js로 App Engine 사용하기 - App Engine Hosting과 Managed VMs Hosting

 3. Node.js로 App Engine 사용하기 - Hello World with Node.js

 4. Node.js로 App Engine 사용하기 - 데이터 다루기

 5. Node.js로 App Engine 사용하기 - 인증

 6. Node.js로 App Engine 사용하기 - 로깅

 7. Node.js로 App Engine 사용하기 - Cloud Pub/Sub 서비스 시용하기

 8. Node.js로 App Engine 사용하기 - Cloud 설정하기

 9. Node.js로 App Engine 사용하기 - 게임 릴리즈 절차 정리

10. Node.js로 App Engine 사용하기 - 마무리 하며...


그럼 다음 글에서 뵙겠습니다. 



2015.07.20 10:49

오랜만에 포켓몬스터 카드 구매를 했음. 


마트에 우연히 BW 확장팩이 있어서 구매했고, 아들이 동내 문방구에서 xy 확장팩 6탄인 메가레쿠자EX를 봤다길래 주말에 달려가서 구매함. 




 


아들에게 내리 두 판을 지고, 메가레쿠자EX로 덱을 변경해 혼란을 겪고 있는 틈을 타, 겨우 1승을 건짐.


나날이 강해지네 이 놈. -_-a


그나저나 메가레쿠자 데미지 300이다. 사기아냐 이거 --

2015.07.16 19:04

요즘은 개발을 위해 이런저런 게임을 많이 해본다. 특히 모바일 게임은 ...


최근 핫했던(?) 뮤 오리진은 정말 상상을 못햇는데.. 


여러가지 우연곡절 끝에 만들어진 게임이 다행히 대박을 친 케이스인데, 




기존의 중국 웹 MMORPG를 그대로 차용한 시스템이라 뮤라는 타이틀 이외의 어떤 매력이 있는건지 궁금해서 해봤다. 


그런데.. 아무런 느낌을 못 느끼겠는거야 ㅠ_ㅜ 


늙은건가?? 아니면 내가 트랜드를 못 따라 가는건가?? 아님 그냥 다들 뮤라는 타이틀만 보고 하는건가??


개발자로서 감이 확 떨어진건지, 아니면 이 게임이 원래 이런거라 다들 게임성 보다는 친구가 하니까 하는거고, 맨날 광고나 나오니 그냥 하는건지.. 


경험치 증가에 대한 레벨링은 괜찮은 듯. 뭔가 아슬아슬 할 때 잠시 쉴틈을 주네.


특이한 시스템은 없는데, 끝없이 뭔가 할게 있어. 잡다하게... 이거저거... 


그냥 멍 하니 보다가 클릭 한번 하는걸 끝없이 반복하는 느낌. 


세세하게 보자면, 몹이 걸린다던가, 자동 이동하다가 걸린다던가, UI가 중첩되어 같은 캐릭터 포트릿이 화면에 두개 뜬다던가... 이런 자잘한 것들이 끊임없이 보이지만, 그런 시시콜콜한 것들은 과감하게 버려버린 듯..


게임의 세계관이나 뭐. 그런걸 즐긴다기 보다는 그냥 있기 심심하면 켜두는 그런 게임인 것 같다. 








2015.07.15 19:05



앱만장자

저자
크리스 스티븐스 지음
출판사
제이펍 | 2012-09-05 출간
카테고리
컴퓨터/IT
책소개
베스트셀러 앱 ‘앨리스 포 아이패드’의 제작자가 직접 취재한 앱...
가격비교

57. 이제는 전설이 되어버린 건지도 모를 인디 개발자들의 초기 고군분투(?)를 서술한 이야기들.


개발자라면 한번쯤은 꿈꾸는 이야기긴 할텐데...


이제는 워낙 대기업들이 많이 진출한 시장이다보니 초기 앱마켓의 전설은 재연하기 힘들지 않을까.


하지만 지금도 간간히 터지고 있는 "길건너친구들" 같은 작품들을 보면 불가능은 아니라고 생각된다. 


나도... ??  ^^

2015.07.10 11:00

GAME SETUP AND LIGHTING


1. Mesh Collider에 Mesh 말고 Material이 추가로 있음.

  : 충돌체에 매터리얼이 필요한 이유가 뭐지??


2. Camera의 Rendering Path 선택 옵션이 다름.

  4.x >>  Vertex Lit, forward, Deferred Lighting

  5.x >>  forward, Deferred, legacy Vertex lit, legacy Deferred (light prepass)

  : 기존의 Deferred Lighting 이 legacy Deferred가 된건가? (그러니까 legacy가 된거겠지??)

  : 그럼 현재의 Deferred와 legacy Deferred의 차이는 무엇일까?


3. Edit -> Render Setting은 Window -> Lighting 으로 이동됨. fog 설정탭이 이 안에 존재함.

   예제와 비슷하게 하려면 보간 방식을 linear로 설정할 것. Color 를 포함한 소수 옵션을 조절할 수 있지만, Global Fog image effect를 사용할 것을 권장하고 있음. 나중에 Global Fog image effect를 어떻게 활용하는지 찾아보고 장,단점을 정리해보자.

   

4. windows -> Light mapping 메뉴는 Lighting 메뉴로 수정되었으며, 이 튜토리얼에 있는 baking 설정은 General GI와 Baked GI에 분리되어 있다. 




카드키 삭제할 때 Destroy(gameObject) -> GameObject.Destroy(gameObject); 임.


Body Mask 는 Humanoid로 이름이 변경됨.




전반적으로, 크게 바뀐 UI는 내용이 없고, 다른 것들은 따라할 정도 수준.









  

  

2015.07.09 17:47

굳이 이럴 필요 없으나, 이 샘플이 워낙 잘 구성되어 있다고 하니, 이걸 5.x에서 가동시키면 여러모로 도움될 듯 해서 시도해 봄. 할 일 없어서 이거 하는거는 비밀.. 


처음 import 받으면 발생하는 에러들.


1. UnityEngine.Component 로 사용되는 것들을 GetComponent<>()로 수정할 것! 한 50개 정도 되는 듯.


2. doneSceneFadeInOut.cs는 주석처리. 

   Assets/Done/DoneScripts/ScreenFaderScripts/DoneSceneFadeInOut.cs(15,28): error CS1061: Type `UnityEngine.Component' does not contain a definition for `pixelInset' and no extension method `pixelInset' of type `UnityEngine.Component' could be found (are you missing a using directive or an assembly reference?)


3. 네비매쉬 다시 rebake하고.. 

   windows -> Navigation 열고 리베이크.


4. NpShape::setFlag(s): triangle mesh and heightfield triggers are not supported! 에러는 Unity 5.0이 PhysX3.3 SDK로 업그레이드 되면서 발생한 문제다.

 PhysX의 제약사항인데, TerrainCollider는 더 이상 isTrigger 플레그를 지원하지 않으며, Mesh Collider는 convex 모양에서만 트리거를 가질 수 있게 되었다. 이제 MeshCollider 중 isTrigger를 가지지만, convex가 아닌 것을 찾아 convex로 수정하자. 수동으로... 고고!!하면 죽을 지도 --;


Hierachy에 객체를 생성하고, 새로운 스크립트를 추가하자. 그리고 해당 스크립트에 아래 코드를 넣자.


      MeshCollider [] glist;


void Start(){

glist = FindObjectsOfType<MeshCollider> ();


foreach (MeshCollider mc in glist) {

if(mc.isTrigger == true && mc.convex == false)

Debug.LogWarning("Found triggered mesh : " + mc.name);

}

}

1 ~ 4까지의 에러들을 수정했다면 가동은 될 것이다. 위 코드를 삽입 후 가동하면 console창에 문제의 오브젝트 이름이 출력되며, Hierachy에서 해당 객체 이름을 넣은 후 클릭 -> Inspector 창에서 MeshCollider를 찾아 convex를 활성화하면 끝!!


이제 에러없이 샘플이 실행됨을 알 수 있다. 



자... 그럼 이제  이 곳 으로 가서 데모 프로젝트를 배워보자. +_+