블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
Technical Article 2013. 2. 15. 22:29

Erlang 놀이 #1

윈도우에서 Erlang 기본 경로 수정

 

설치경로 : C:\Program Files\erl5.9.3.1

작업경로 : C:\Dev\erlang_test

 

1. 설치경로/usr/.erlang 파일 추가

C:\Program Files\erl5.9.3.1\usr\.erlang

 

2. c:cd("working_path"). <<< 경로 수정

 

io:format("consulting .erlang in ~p~n", [element(2,file:get_cwd())]).
c:cd("C:/Dev/erlang_test").
io:format("Now in : ~p~n", [element(2, file:get_cwd())]).

 

 

리스트 합 구하기

<Src>

-module(cal).
-export([sum/1]).

sum(L) ->
 sum(L, 0).

sum([], N) ->
 io:format("[], N=~p~n", [N]),
 N;

sum([H|T], N) ->
 io:format("[H=~p|T=~p], N=~p~n", [H,T,N]),
 sum(T, H+N).

 

<Output>

Erlang R15B03 (erts-5.9.3.1) [64-bit] [smp:4:4] [async-threads:0]

consulting .erlang in "C:/Program Files/erl5.9.3.1/usr"
C:/Dev/erlang_test
Now in : "C:/Dev/erlang_test"
Eshell V5.9.3.1  (abort with ^G)
1> c(cal).
{ok,cal}
2> L = [1,2,3,4,5].
[1,2,3,4,5]
3> cal:sum(L).
[H=1|T=[2,3,4,5]], N=0
[H=2|T=[3,4,5]], N=1
[H=3|T=[4,5]], N=3
[H=4|T=[5]], N=6
[H=5|T=[]], N=10
[], N=15
15

 

 

 

,
Technical Article 2013. 1. 27. 00:34

cpp-netlib 0.9.4 visual studio 2010 사용해보자!

왜???

클라우드, 스마트폰 => HTTP 서버, 클라이언트

결국 스케일 아웃을 위해서 Restful 방식으로 될 수 밖에!

 

- MS casandra

native C++ 을 위한 MS의 restful 지원책 => 실제로는 azure에 끌어들이기 위한것 아닌가?

공식 사이트에서도 설명했지만 production 레벨로 권고하지 않음. 아직 개발단계이니...

성능 테스트 해봤을 때 좀 실망적...

 

- Boost ASIO + custom HTTP

간단하게 짜기 좋으며 성능도 짱.

 

- Boost cpp-netlib

아직 정식 boost 배포에 포함되지는 않았지만 노력중인듯.

HTTP, URI, header 등... 필요한 건 다 있는듯

 

 

 

cpp-netlib 0.9.4 빌드 방법

 

1. Jamroot파일에서 주석처리

#build-project libs/network/test ;
#build-project libs/mime/test ;

 

2. libs/network/build/Jamfile.v2 에서 from -> to 로 변경

from: lib cppnetlib-uri : libs/network/src/uri/parse.cpp ;
to: lib cppnetlib-uri : libs/network/src/uri/uri.cpp libs/network/src/uri/schemes.cpp ;

3. boost 폴더에서 bjam 복사

 

4. 실행

cd cpp-netlib-0.9.4

 

bjam.exe -sBOOST_ROOT=C:\Dev\boost_1_52_0 toolset=msvc address-model=32 variant=debug link=static
bjam.exe -sBOOST_ROOT=C:\Dev\boost_1_52_0 toolset=msvc address-model=32 variant=release link=static
bjam.exe -sBOOST_ROOT=C:\Dev\boost_1_52_0 toolset=msvc address-model=64 variant=debug link=static
bjam.exe -sBOOST_ROOT=C:\Dev\boost_1_52_0 toolset=msvc address-model=64 variant=release link=static

 

5. 빌드 후 라이브러리 파일 경로

cpp-netlib-0.9.4\libs\network\build\bin

 

* 파일명이 빌드타입이나 비트에 따라 별도로 생성 안 됨 ㅡㅡ;

 

 

참조  : https://groups.google.com/forum/?fromgroups#!topic/cpp-netlib/HCahOzmLe54

 

 

 

샘플 테스트

 

 

서버> node.js

var cluster = require('cluster');

var numCPUs = require('os').cpus().length;
// var numCPUs = 1;

if ( cluster.isMaster )
{   
 for (var i = 0; i < numCPUs; i++) {
  cluster.fork();  
 }   
 
 cluster.on('death', function(worker)  {   
  logger.info('worker ' + worker.pid + ' died & restart');
  cluster.fork();                   
 }); 
}
else
{
 var sys = require("sys"),
 my_http = require("http");
 my_http.createServer(function(request,response){ 
  response.writeHeader(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
 }).listen(80);
 sys.puts("Server Running on 80"); 
}

 

 

샘플>
#include <boost/network/protocol/http/client.hpp>
#include <iostream>

#pragma comment(lib, "libcppnetlib-client-connections.lib")
#pragma comment(lib, "libcppnetlib-server-parsers.lib")
#pragma comment(lib, "libcppnetlib-uri.lib")


int _tmain(int argc, _TCHAR* argv[])
{
 using namespace boost::network;
 /*
 if (argc != 2) {
  std::cout << "Usage: " << argv[0] << " [url]" << std::endl;
  return 1;
 }
 */

 char* uri = "http://127.0.0.1";

 http::client client;
// http::client::request request(argv[1]);
 http::client::request request(uri);
 request << header("Connection", "close");
 http::client::response response = client.get(request);
 std::cout << body(response) << std::endl;

 return 0;
}

 

 

결과>

b
Hello World
0


계속하려면 아무 키나 누르십시오 . . .

 

 

,
Mobile 2012. 3. 4. 20:09

[iPhone] 백수리즘(Remote4AV)


Remote4AV Tray 다운받기(Download)
반드시 이 프로그램을 설치하셔야 동작이 가능합니다.

 

 




컴퓨터 켜놓고 누워서 동영상 보다가, 자고 싶은데 귀찮아서 그냥 잠든 적 많이 있으시죠?

백수리즘(Remote4AV)는 iPhone과 iPod Touch 에서 PC에서 동작중인 동영상 플레이어를 제어할 수 있는 앱 입니다.


[특징]
- 윈도우즈 기반(Windows XP이상 32Bit, 64Bit 모두 지원) 컴퓨터 동영상 프로그램 제어
- Gom Player, KMP 지원
- 재생/일시정지, 프로그램 종료, 음량 조절, 앞/뒤로 감기 지원
- 컴퓨터 종료 예약(30분 단위로 최대 180분까지)
- 마지막 접속한 컴퓨터를 앱이 시작할 때 바로 접속합니다. (귀차니즘 발동!)




- 압축을 해제하고 파일을 실행합니다.

 



- About을 이용하면 본 페이지로 이동합니다.


- Setup에서 윈도우 시작시 자동실행과 포트 옵션을 설정할 수 있습니다.



- 폰에서 시작했을 때 화면 입니다. 초기에 PC정보가 없기때문에 + 를 눌러 줍니다.


- 아이피 정보를 입력하고 PIN에 있는 > 버튼을 터치합니다.


- 서버에서 접속됐다는 정보가 뜨지요 ...






- PIN 번호를 확인하고


- 폰에서 PIN번호를 입력하고 Save 버튼을 터치합니다.


- 이제 PC가 등록됐습니다. 눌러보죠.


- 리모콘 화면이 뜹니다.

<버튼 설명>
빨간색 버튼 : 동영상 플레이어 종료
시계 : 시스템 종료 타이머
구부러진 화살표(엔터모양) : 전체화면/창 전환
다른 버튼은 다 아시겠죠? ^^


- 타이머 설정 됐을때 화면 입니다.

,
Technical Article 2012. 2. 27. 20:51

Boost::ASIO 사용을 위한 1.48.0 빌드 (VS2005)

다운 & 압축해제
http://boost.org

bjam, b2 빌드
 D:\Vendor 경로 기준

cd D:\Vendor\boost_1_48_0\tools\build\v2

bootstrap.bat

b2 install --prefix=D:\Vendor\boost_1_48_0

set path=%path%;D:\Vendor\boost_1_48_0\bin



 boost 빌드

cd D:\Vendor\boost_1_48_0

bjam --toolset=msvc --build-type=complete --with-system --with-thread --with-date_time --with-regex --with-serialization stage


D:\Vendor\boost_1_48_0\bin.v2\libs 
*.lib 파일 적당한(?)곳에 복사 후 사용



기타
vs2010, vs2005가 둘다 설치되어 있으면 vs2010으로만 빌드가 됨 ㅡㅡ;;
환경변수 때문인듯 한데... 아시는분은 답글 좀 달아주세요 ^^;





,
Technical Article/Mac & iPhone 2012. 1. 31. 20:44

[Xcode4.2] 스토리 보드 기반 탭바 프로젝트에 + cocos2d + Box2D 연동


- 2개 프로젝트 생성
cocos2d 프로젝트(이하 A)생성
스토리 보드 이용하는 프로젝트(이하 B)  생성 (ARC 옵션 사용 안함)

- A의 libs와 resources를 B에 복사 후 프로젝트에 추가
GameConfig.h, GLES_Render.*, HelloWorldLayer.* 도 모두 복사 후 프로젝트 추가 

 

* 만약 ARC 옵션을 사용했다면 다음과 같이 NO로 변경 




- 프로젝트 설정 변경







- 라이브러리 추가 



- 프로젝트에서 빌드 되나 확인 ^^;

- UIViewContoller 추가
m 확장자를 mm으로 바꿔줘야 에러 발생 안함 


- 뷰에 붙이기

#import "HelloWorldLayer.h"
.
.
.

- (void)viewDidLoad

{

    [super viewDidLoad];


    if(![CCDirector setDirectorType:kCCDirectorTypeDisplayLink]) {

[CCDirector setDirectorType:kCCDirectorTypeDefault];

}

    

CCDirector *director = [CCDirector sharedDirector];

    

    CGRect screenRect = [[UIScreen mainScreen] bounds];


  EAGLView *glView = [EAGLView viewWithFrame:screenRect

  pixelFormat:kEAGLColorFormatRGB565

  depthFormat:0

];

[director setOpenGLView:glView];

[director setAnimationInterval:1.0/60];

[director setDisplayFPS:YES];

[self setView:glView];

[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];

[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];

}



- (void)viewDidUnload

{

   [[CCDirector sharedDirector] end];

    [super viewDidUnload]; 
}

  

 

 
- 빌드 후 확인 
,
Technical Article/Mac & iPhone 2012. 1. 26. 20:44

[OSX] 단축키


캡쳐(파일 저장)
전체화면 : Cmd+Shift+[3]
화면일부 : Cmd+Shift+[4]
윈도우 : Cmd+Shift+[4] , 해당 윈도우 커서 이동 [Space]
- 클립보드로 저장하고자 하면 Ctrl 추가

프로세스
강제종료 : Cmd + Opt + ESC
전환 : Cmd + TAB

Safari
Refresh : Cmd + R

Xcode 4.2
소스 헤더 전환 : Ctlr + Cmd + [UP]
실행(디버깅) : Cmd + R
빌드 : Cmd + B
실행된거 정지 : Cmd + .(점)

디버깅 창 : Ctrl + Cmd + R
콘솔 창 지우기 : Ctrl + K

 
,
개인 2011. 11. 10. 15:14

GStar 2011 전체 이용가 게임의 위엄



....쯔바이 온라인.....


,
카테고리 없음 2011. 9. 15. 21:42

텍스트큐브에서 티스토리로 이주중...


2011-09-15 일 부터 티스토리로 블로그를 옮겼습니다.

아직 도메인이 제대로 연결이 안되어 있지만...

1~2일 내로 리프레시 되겠지요 ^^

,
Technical Article 2011. 6. 27. 17:51

xcode 4.0.2 에서 cocos2d 0.99.5 설치 및 테스트 프로젝트 빌드 하기

부제 : Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

cocos2d 0.99.5 안정 버젼
http://cocos2d-iphone.googlecode.com/files/cocos2d-iphone-0.99.5.tar.gz

xcode4용 템플릿(www.cocos2d-iphone.org/archives/1412)
http://cocos2d-iphone.googlecode.com/files/cocos2d-1.0.0.-beta-templates.tar.gz

cocos2d-iphone-0.99.5.tar.gz 를 압축 해제하고 터미널에서
$ sudo ./install-templates.sh
설치 완료 후 템플릿이 보일수도 있고 안보일 수도 있다.

이제 템플릿을 받아서 터미널에서
$ mkdir -p ~/Library/Developer/Xcode/Templates
$ cd ~/Library/Developer/Xcode/Templates
$ tar xzvf cocos2d-1.0.0-beta_templates.tar.gz

하고 새로 xcode를 실행하면 정상적으로 빌드가 된다.

,
개인 2009. 12. 15. 12:20

쯔바이 온라인(Zwei Online) CBT 12월 17일부터~~~


사용자 삽입 이미지





사용자 삽입 이미지


먹으면서 성장하는 착한RPG! 쯔바이온라인!
안녕하세요, 쯔바이온라인 입니다.

여러분의 2009년 12월을 더욱 즐겁고 신나게 만들어드릴
쯔바이온라인 1차 테스트가 12월 17일부터 시작 됩니다!

재미있는 쯔바이온라인도 즐기시고,
여러분을 위해 준비 된 풍성한 이벤트 선물도 받아가세요!

12월 17일! 쯔바이온라인 1차 테스트에서 만나 뵙겠습니다.



<< 쯔바이 온라인  1차 테스트 일정 안내 >>

 [ 테스터 모집 기간 ] 2009년 12월 10일(목) ~ 16일(수)

 [ 테스트 일정 ] 2009년 12월 17일(목) ~ 20일(일)

 [ 테스트 시간 ] 오전 11시 ~ 오후 10시

 [ 테스터 응모  방법 ]  

 홈페이지 메인 화면 좌측 'Game Start'하단의 [테스터 신청하기] 클릭!  

 테스터 선정 여부는 즉시 확인 가능




,
TOTAL TODAY