Posts
Goguelike2 pre-alpha 테스트 플레이 오픈합니다.
( 동일한 글이 제 블로그 http://kasw.blogspot.com/2018/05/goguelike2-pre-alpha.html 에도 올라가 있습니다. )
Goguelike2 pre-alpha 테스트 플레이 설명
그동안 혼자서 만드는 MMO 라는 목적으로 작업한 goguelike2 가 프리 알파 정도 상태긴 하지만 일단 테스트 플레이가 가능한 수준이 되어서? 공개합니다.
MMO 지만 MMORPG 는 아닙니다. roguelike를 MMO 로 만들어보는 것이라 MMORLG 라고 할수 있습니다.
접속 방법은 브라우저를 사용해서 아래있는 링크로 접속하시면 됩니다. 접속시 10Mbyte 좀 넘는 데이터를 다운 받게 되니 주의해주세요.
다만 firefox 는 느려서 잘 안되는 것 같고 개발에 사용중인 chrome에서는 잘됩니다.
Posts
udp와 network jitter
지난글 http://kasw.blogspot.com/2018/01/tcp-udp.html
이후로 goguelike2에 udp 지원을 넣기 위해 작업을 계속하고 있었는데 드디어 오늘 udp로 goguelike2 server 와client을 연결 tcp와 똑같이 작동시키는데 성공했습니다.
udp 작업만 한것은 아니고 필요한 다른 작업들도 동시에 하고 있었기 대문에 생각보다 좀 오래 걸린듯 합니다.
좀 집중해서 작업했으면 2주 정도는 당길수 있었을것 같지만 이런 저런 일들을 처리 하기도 하느라 시간을 좀 썼습니다.
그리고 부산물로 tcp 와 udp 를 동시에 지원 가능한 net 라이브러리가 생겼습니다. ^^
udp를 지원 하도록 바꾸면 tcp와의 차이를 비교 하는 것이 힘들 것 같아서 고민하다가 두가지를 거의 같은 구조로 지원 할수 있게 기반 작업들이 이루어지고 나니 그러면 동시에 지원하게 하면 좋겠네?
Posts
tcp 와 udp
goguelike2는 서버 클라이언트간 패킷전송을 초당 2 번, 즉 2 frame / sec 로 하고 있습니다.
사용자 행동(입력)은 각 frame 마다 서버로 전송되고
서버에서는 각 frame 별로 사용자 액션을 실행 결과를 돌려주는 동시에 그 결과로 변화된 field 상황을 viewport로 만들어 각 클라이언트에 전송합니다.
처음에는 초당 3번을 하도록 했었는데
local 이 아닌 wifi로 연결된 서버와 클라이언트에서 테스트라 했더니
서버 - 클라이언트간 전송 latency가 들쑥날쑥해서 클라이언트가 처리하기가 애매 했습니다.
frame jitter(?) 가 100% 가 넘는 경우가 생기더군요.
Posts
visual studio code를 사용해 보고 있습니다.
지난주에 지인이 추천해준 Visual Studio Code를 설치해서 테스트 중입니다. MS를 떠나 리눅스만! 사용한지 거의 10년만에 “MS에서 만든”, “리눅스에서 작동하는”, “오픈소스 프로그램” 을 설치해서 써보면서 다시금 MS넘들이 싫기는 하지만 역시 프로그램은 참 잘 만들지.. 하는 생각을 떠올리고 있습니다.
그리고 오늘부터 본격적으로 환경을 세팅하고 작업을 해보고 있는데 sublime text 를 구입해 사용한지 5년 만에 진지하게 주 에디터를 바꾸는 것을 고민 하고 있습니다.
중간에 atom은 시도해보고 바로 아니다 싶었는데 visual studio code는 나름 시도 해볼 가치가 있을 것 같습니다.
Posts
github를 통한 지난해 작업 통계
goguelike2는 비공개 레포지토리라 저를 제외한 사람들에게는 안보이기 때문에 스크린 샷으로 대치 합니다.
10월 초 부터 커밋량이 늘어난것이 퇴사후 goguelike2작업을 본격적으로 시작한 흔적입니다.
10월 부터 평일 주말 안가리고 월 300 커밋 이상을 했군요.
중간에 블로그를 github page로 바꿔 볼까 하고 테스트한 흔적도 보입니다. ^^ jekyll 를 쓰면 편하다고 하는 데 ruby는 영 취향이 아니어서 hugo (https://gohugo.io/getting-started/installing)를 사용해 봤는데 괜찮은 것 같아서 심각하게 고민 중입니다.
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
Posts
병풍과 물고기
라고 쓰면 뭔소리여 하고 궁금해들 하실꺼라고 생각해서.^^
fish shell 과 byobu 이야깁니다.
사용자 친화적 21세기 다운 명령행 처리기 ( command line shell ) https://fishshell.com/
tmux 나 screen을 쓰기 편하게 wrapping한 byobu ( 일본어로 병풍이라는 군요. ) 홈페이지가 죽어 있는 관계로 https://en.wikipedia.org/wiki/Byobu_(software)
저는 linux를 주 작업용으로 쓰는 관계로 shell 에서 작업할 일이 많습니다. ( 윈도는 아예 안씁니다. - 라이선스는 사둔 것이 있지만 )
fish shell은 아마도 bash에서 git prompt 를 설정하다가 우연히 발견 했던 것 같습니다.
Posts
벤치마크와 프로파일링의 결과가 서로 상충될때
작업하고 있는 goguelike2에서 사용하는 작은 패키지 하나를 github 공개 repository 에 올렸습니다.
https://github.com/kasworld/wrapper
인데
내용을 보면 뭐 이런 간단한 걸 올린 것일까? 하고 생각할만한 패키지입니다.
패키지의 기능은 최대 값이 있는 정수가 범위를 벗어 나지 않도록 wrap around 해주는 것입니다.
실제 사용은 오른 쪽 끝을 넘어가면 왼쪽으로 나와서 무한해 보이는 필드 를 만들기 위한 기능을 제공하기 위해서 만든 것인데.
원래는 func WrapInt(v, l int) int { return (v%l + l) % l }
Posts
Meta-programming으로 만드는 게임 서버
지난 2년간 회사에서 개발한 게임서버 개발을 한번 정도 정리 해보고 싶다고 생각 하고 있었습니다만.
몇주전에 golang korea 에 올라온 GDG seoul meetup 발표자 모집 글을 보고 (꽤나 즉흥적으로 ) 신청을 했더니 덜컥 발표자로 등록 되어 버렸습니다.
https://www.facebook.com/groups/golangko/
결국 지난주 토요일 (2017-09-16) “Meta-programming으로 만드는 게임 서버” 라는 주제로 발표를 했습니다. https://www.meetup.com/GDG-Seoul/events/242054608/
https://docs.google.com/presentation/d/1P6wykg33jnbTM0GVB3AwXUJZlkp20yC0i6XcbOfPlG4/edit?usp=sharing
발표 준비를 하면서 “너무 실무적 내용들이고 또 자세한 설명은 생략한다. 식이라 이래도 좋은가?” 라는 걱정을 좀 했는데 다들 열심히 들어 주시고 해서 어떻게 무사히 끝냈습니다.
Posts
한성 X57K BossMonster Lv.74 구입,사용기
급히 쓸 일이 생겨서 새 노트북 구입했습니다.
지난주 화요일에 도착했습니다.
한성컴퓨터 X57K BossMonster Lv.74 (SSD 120GB)
저번 한성 노트북을 부셔먹긴 했지만 전 기본적으로 한성 노트북이 꽤나 맘에 드는 관계로 또 한성 노트북을 샀습니다.
( 가격도 싸고, 불필요한 windows 비용 안내도 되고, 쓸데없는 ODD 도 없고 해서 저한테는 딱입니다. )
i7 에 8G ram 1050 4G , 120 ssd 를 달고 80만원 대 입니다.
집에서 쓰는 데스크탑보다 사양이 좋네요. ( ram , ssd 가 작지만 업그레이드 가능하니 )
Posts
go sdl gui 의 새버전을 작업하고 있습니다.
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
https://github.com/veandco/go-sdl2 를 기반으로 만들었던
https://github.com/kasworld/go-sdlgui 가 별로 맘에 안들어서 아예 새로 작업을 조금씩 해보고 있습니다.
go-sdlgui 와는 기반이 되는 design decision 이 달라서 아예 다른 형태의 구현이 될것 같습니다.