Posts
250k packet/sec 달성
이런 저런 오버헤드들을 좀 줄이고 성능위주로 설정해서 250k packet/sec 을 달성했습니다. 클라이언트 실행 인자 go run .\multiclient.go -ConnectToServer=localhost:8081 -Concurrent=100 -NetType=tcp -PacketIntervalMS=0 *main.MultiClientConfig main.MultiClientConfig ConnectToServer: string localhost:8081 NetType: string tcp PlayerNameBase: string MC_ Concurrent: int 100 AccountPool: int 0 AccountOverlap: int 0 LimitStartCount: int 0 LimitEndCount: int 0 PacketIntervalMS: int 0 exit status 2
서버 실행 결과 *main.ServerConfig main.ServerConfig TcpPort: string :8081 HttpPort: string :8080 HttpFolder: string www http server dir=www port=:8080 , http://localhost:8080/ tcp server port=:8081 Connection:0 Send:total[0 0.
Posts
150000 (150k) packet/sec 를 처리하는 서버
https://github.com/kasworld/massecho
를 조금 더 이리 저리 수정해 봤습니다. 각 connection이 보내는 초당 패킷수를 100으로 고정한 상태에서 connection 수를 1000 과 1500으로 바꿔가며 테스트 할때 marshaler로 표준 라이브러리의 json 이나 gob를 사용하면 AMD Ryzen 3700X (8c16t) 에서 간단한 echo protocol 을 사용해도 // Echo simple echo
type ReqEcho_data struct {
Msg string
}
// Echo simple echo
type RspEcho_data struct {
Msg string
}
98000 (98k) packet/sec정도가 한계입니다. 이를 messagepack (https://github.com/tinylib/msgp) 으로 바꾸면 처리량이 150000 (150k) packet/sec 정도로 증가합니다.
Posts
go 언어로 만든 서버에서 64K connection 만들어 보기
재미삼아 만들어본 프로젝트입니다. https://github.com/kasworld/massecho
tcp연결이나 gorilla websocket을 사용해서 테스트 가능합니다. 테스트 전에 준비해야 할것이 대규모의 connection을 테스트 하기위해선 몇가지의 제한을 넘어야 합니다. 1. OS에서 열수있는 파일수의 제한 2. OS에서 client socket 제한 윈도우즈가 주 개발 환경인 상황에서 linux 테스트를 위해 설치한 WSL2 와 virtualbox의 ubuntu에서는 openfile 수의 제한을 올릴수가 없습니다. ( 아니면 방법을 못찾은 듯)
ubuntu를 설치한 노트북에선 같은 방법으로 잘되는 것으로 봐선 그냥 막아둔듯 합니다. linux에서 파일 수 제한을 올리는 방법은 /etc/security/limits.
Posts
goguelike 의 캐릭터(activeobject) 형태를 바꿔 봤습니다.
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
졸라맨 형태같기도 하고 “옷” 같기도 한 모양입니다만 이런모양이 된것은 제가 threejs 를 사용해서 만들수 있는 가장 사람 과 닮은 형태라서 그렇습니다. 그전에 알파벳 모양일때는 위에서 보기 좋게 누워 있었는데 이제는 그럴필용가 작아져서 누워 있는 것을 일으켜 세웠습니다.
모든 faction의 캐릭터의 모양이 다 같아져서 색만으로 구별해야 하게 되었지만 조금더 그럴 듯하게 보이게 되었습니다. 그 외에 내부적인 변경사항은 terrain script의 업데이트, towermaker의 업데이트, 모든 랜덤을 seed 기반으로 바꾸고 tower config에서 seed를 지정할 수 있게 만들었습니다.
Posts
goguelike 에서 가칭 LightHouse 와 GateKeeper fieldobj 의 동작.
공격방식의 개선을 통해서 fieldobj 가 AO를 공격하는 것이 가능해졌습니다. 오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
추가로 lighthouse와 gatekeeper를 사용한 플로어의 플레이 테스트
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
Posts
goguelike 공격방식의 개선
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
기존에는 active object (캐릭터) 가 자신의 주변 8방향 타일을 향해서만 공격하는 형태였습니다.
이를 확장 개선하여 공격당하는 타일 (danger object)를 정의 하고 공격 행동이 이 DO 들을 만들어 DO manager에 추가 하는 형태로 개선 변경하였습니다.
이를 통해서 바로 옆 타일 하나를 공격하는 기본 공격 뿐아니라 근접 3타일을 공격하는 범위 공격 (wide attack ) , 한쪽 방향으로 3타일 까지 공격하는 장거리 공격( long attack) 의 추가가 가능해 졌습니다.
Posts
goguelike 윈도우 포팅
윈도우에서 서버실행, 클라이언트실행, 동영상 캡처까지 한 결과물.
오류가 발생했습니다. www.youtube.com에서 동영상을 시청하거나 브라우저에서 자바스크립트가 사용 중지된 경우 사용 설정하세요.
윈도우를 설치하고 개발 환경까지 설정했으니 윈도우에서도 작동 할 수 있게 포팅작업을 진행했습니다.
ground 서버를 제외한 (towerserver의 프로세스 제어용으로 ps 명령어 실행 및 결과를 문자 파싱해 쓰는 관계로 포팅이 꽤 어려울 것 같습니다. )
towerserver, multiclient, textclient, wasmclient(이건 포팅이 필요없는 거죠.) 등이 작동합니다. ( 아마도 ^^) 컴파일 까진 확인 했는데 작동확인이 된것은 towerserver, wasmclient 입니다.
Posts
대충 10여년간 리눅스를 주력으로 쓰다가 윈도우를 사용하니 보이는 점들
(중간 중간 잠깐씩 윈도우를 사용한 적이 있긴 합니다. ^^)
잊어버리기 전에 기록용으로 적어봅니다. 윈도우 업데이트는 여전히 한숨만 나옵니다. 최근 리눅스를 쓰면서 업데이트로 답답한 적은 전혀 라고 할정도로 없었는데 윈도우는 아직도 이해할수 없을 정도로 업데이트 하는 시간이 오래 걸리는 군요. ( 리눅스도 가끔 이상한 업데이트로 시스템에 말썽을 일으키기는 하지만 업데이트 하는데 걸리는 시간 자체는 빠릅니다. 사용자를 하염없이 기다리게 하거나 리부팅을 몇번식 하게 하는 경우는 더더욱 없지요. )
이제는 사용하는 프로그램이 거의 동일해서 지금 리눅스를 쓰고 있는지 윈도우를 쓰고 있는지 잘 구별되지 않습니다.
Posts
windows 10 wsl2에서 goguelike 빌드 성공.
약 5시간 걸려서 windows 10 설치, 각종 프로그램( chrome, gimp, blender, 7zip, vscode, libreoffice, notepad++, keepass2, git, wsl2!! , steam ^^ ) 설치후 wsl2에서 goguelike 를 build 하고 windows 의 chrome에서 접속 성공.
Posts
네번째 windows 의 구매
리눅스만 사용한다는 녀석이 왜 이리 윈도우가 많아? 라고 하시면 가족들이 쓰는 것이고
새로 구매한 windows 10은 “WSL2 를 써보고 싶어서” 라고 대답하겠습니다.
그리고 핑계김에 (게다가 새 그래픽 카드도 샀으니 ) flight simulator 도 돌려 보고 싶어서 입니다. ^^