Posts
xubuntu 14.04 로 업그레이드를 했습니다.
신경 쓰지 못하고 있었는데 작업중 컴퓨터에서 며칠 전 14.04로 업그레이드 하라는 메시지가 나오길래 아. 어느새 릴리즈 되었군 하고 깨달았습니다. 작업 머신의 업그레이드는 일단 뒤로 미루고 ( 하던 작업을 계속 해야 하니 ) 일단 옆에 있는 노트북부터 업그레이드를 실행했습니다. ( 데이터는 모두 백업 되어 있어 문제가 생기면 포맷하고 새로 설치하면 되니 연습용으론 최적입니다. )
배포판 업그레이드는 많아야 6개월에 한번 진행하는 것이니 명령어를 항상 까먹습니다. sudo do-release-upgrade 를 사용합니다. 한참 목록을 다운 받고 나오는 메시지 대로 진행하면 1~2시간 내에 모든 업그레이드를 완료해줍니다.
Posts
go4game - go 언어로 만드는 게임 서버
몇 년 전부터 생각하고 있던 go언어를 사용한 게임 서버의 개발을 시작했습니다.
일단 첫 번째 작동 버전은 언제나처럼 github에 있습니다. 지금까지 만들어진 것은 서버를 구성하기 위한 가장 기본 적인 구조들 GameService, World, Team, GameObject 과 client 와 tcp 로 패킷을 주고 받을 수 있는 구조들 정도 입니다. 지금 사용하는 패킷은 int32 len + json 형태의 패킷입니다.
참고로 그동안 제가 적은 go 관련 스터디 포스트 들입니다. The Go Programming Language : 2009년 글입니다.
Posts
wxgame의 C/S화는 twisted 버전을 끝으로 일단 마무리 합니다.
앞으로도 자잘한 수정들은 있겠지만 큰 변화나 추가는 없을 듯 합니다.
이번에 twisted 버전을 작업하면서 오랫만에 다시 twisted를 만져 봤는데 예전에 테스트한 기억 보다 많이 빨라진 듯 합니다.
twistedtest.py를 보면 테스트 할 때 사용한 코드가 있습니다만 비록 echo 서버긴 하지만 초당 10만 패킷을 넘게 처리 하는 군요. ( intel 2500, pypy 사용, Int32StringReceiver 프로토콜, epoll reactor 사용.) 이 정도면 거의 대부분의 서버에서 필요한 성능을 충족시킬 수 있을 것 같습니다.
epoll reactor를 사용할 경우 6만 정도의 동시 커넥션 상태에서도 6만 패킷/초 이상을 꾸준히 처리 할 수 있습니다.
Posts
집에서 프로그래밍 환경을 개선 했습니다.
최근 일신상의 변화로 집에서 작업하는 시간이 늘어난 김에 작업환경을 개선 했습니다.
벌써 3년 가까이 써서 열도 많이 나고 소음도 커진 nvidia GTX460 을 빼고 조용하고 발열이 적다는 GTX750ti로 바꿨습니다.
바꾼김에 그동안 묵혀 두고 있던 모니터 두개를 추가해서 triple monitor를 구성했습니다. ( 사실은 이게 목적이었습니다. )
GTX460에선 duel monitor만 구성해도 굉음을 내서 사용이 거의 불가능했었는데 GTX750ti는 세개를 달아도 조용합니다.
저는 주 작업환경이 리눅스라 혹시 지원 안되면 어쩌나 하고 살짝 걱정했었지만 nvidia홈페이지에서 드라이버를 받아 설치하니 아무 문제 없이 잘 잡힙니다.
Posts
wxgame2를 개선 하고 있습니다.
새로 바뀐 스크린 샷
client/server 실행법
서버는 인자없이 그냥 실행하면 됩니다. python wxgame2server.py 또는 이번 C/S 분리의 목적중 하나인 wxpython 코드 제거로 wxpython코드가 서버에는 없기 때문에 pypy를 사용할 수도 있습니다.
클라이언트 실행 python wxgame2client.py -s serverip -t teamname -s 는 접속할 서버의 주소, port는 고정입니다. -t 는 클라이언트 AI의 팀 이름 -t 옵션이 생략되면 서버에 observer mode로 접속합니다. ( 서버가 보내주는 정보를 화면에 표시만 하는 모드 ) 각 팀은 랜덤한 teamcolor를 가지며 그 color대로 표시됩니다.
Posts
wxgame2 의 네트웍 버전이 거의 완료 되었습니다.
사진 설명 - 서버에 네개의 네트웍 클라이언트를 접속하여 실행 중인 화면.
이전 글들 이후로 개인적 여유 시간을 대부분 투자하여 ( 아직 버그가 좀 남아있긴 하지만;) wxgame2 의 네트웍 버전을 거의다 만들었습니다.
github의 코드 를 보시면 알게 되겠지만 기존 wxgame2 코드의 상당부분이 재 작성 되었으며 네트웍 쪽 코드도 수차례 재 작성하였습니다.
정식 MMORPG처럼 모든 판단은 서버에서 이루어지며 각 클라이언트는 시각화와 클라이언트 AI 만 작동하는 형태 입니다. 서버 사이드 AI도 존재 하는데 이것은 서버의 NPC를 시뮬레이션 하는 것입니다.
Posts
호기심에서 레이에 4.4 키캣을 올렸습니다.
4.2를 올린지 얼마 됐다고 업데이트 했냐고 하면 할 말은 없지만 ^^;;
이왕이면 최신 버전인 거지요.
선택한 것은 AORP - 4.4.2 로 http://forum.xda-developers.com/showthread.php?t=2579054http://forum.xda-developers.com/showthread.php?t=2579054
그나마 안정성이 좋아 보였습니다.
설치 방법은 특이할 것이 없는데 4.2때와 같이 fastboot 로 zip 내의 커널을 플래싱하고 CWM 에서 zip을 설치 하면 됩니다.
잠깐 헤맨 것이 gapps 가 기본으로 없어서 고민 했는데 ( 구글 계정 설정이 안 생깁니다. ) ( 위 링크에서도 다운로드 링크가 없습니다 )
다른 커펌 문서 에서 4.
Posts
wxgame2의 네트웍버전을 위한 기반 작업을 진행하고 있습니다.
이전 글 이후에 강의 준비를 하면서 코드를 보니 코드가 오래 되기도 했고 또 설계상의 결정들이 맘에 들지 않아 전체적인 재 정리를 해야겠다고 생각하고 있었습니다.
지난 주부터 시간 되는 대로 작업을 진행해서 로직을 수행하는 wxgame2server.py와 서버로 부터 받은 정보를 시각화하는 뷰어인 wxgame2client.py 로 만드는 것을 일정부분 끝냈습니다.
현재까지는 네트웍으로 데이터를 주고 받는 것은 안되어 있으며 간단하게 file/pickle 을 상용해서 서버-> 클라이언트간 정보를 전달하고 있습니다.
코드를 작성하다 보니 구조가 맘에 들지 않아 거의 뜯어 고치게 되었습니다.
Posts
DIY 전자 장난감 2
이전에 썼던 DIY 전자 장난감 글 이후로 발견한 재미있어 보이는 보드 입니다.
NUCLEO 라고 하는 보드이며 http://vodanan.co.kr/product/detail.html?product_no=139&cate_no=89&display_group=1
에서 판매 하고 있습니다. ARM Cortex-M4 계열 CPU 를 사용한 보드로 일단 가격이 저렴합니다. ^^
아두이노 핀호환 이라고 하고 , http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260000
CPU는 STM32F401RE
http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1810/PF258797
이며 32bit arm 84Mhz CPU 내장 512k flash rom , 96k sram , fpu 지원 정도 스펙이군요. 아두이노랑 비교하면 정말 화려한 스펙입니다. ^^
전원 구성이 유연해서 좋아 보이고 ( 3.
Posts
엑스페리아 레이를 4.2로 업그레이드 하기
마음 같아선 키켓으로 업그레이드 하고 싶었지만
레이의 키켓 포팅 상태를 보니 아직 인 듯 하여
4.2.2 로 업데이트 했습니다. http://forum.xda-developers.com/showthread.php?t=2286165
잘 썼던 super jelly bean 의 4.2 판인 super jelly bean X 를 사용했고 버전은 4.5 입니다.
이전에 레이에 설치 되어 있던 것은 super jelly bean 8 (4.1) 이었군요.
링크를 가보면 설치 방법이 없는데
잠시 고민하다가
그럼 그냥 메모리 카드에 넣고 CWM 모드에서 업데이트 하면 되는 거겠군 하고
딩가 딩가 하면서 설치를 했습니다.