백만 체스판: 단일 프로세스 서버를 통한 수백만 개의 동시 체스 게임 처리

2025-07-16
백만 체스판: 단일 프로세스 서버를 통한 수백만 개의 동시 체스 게임 처리

저자는 1000x1000 체스판 그리드가 단일 글로벌 게임을 형성하는 온라인 멀티플레이어 체스 게임인 '백만 체스판'을 구축했습니다. 각 이동은 턴이 없고 보드 간 이동이 허용되므로 전체 보드에 즉시 영향을 미칩니다. 단일 Go 프로세스에서 실행되는 이 게임은 10일 만에 15만 명 이상의 플레이어를 유치하여 1500만 회 이상의 이동과 수억 건의 쿼리를 처리했습니다. 이 기사에서는 게임의 시스템 설계, 데이터 분배, 프로토콜 최적화, 낙관적 잠금 및 롤백 메커니즘에 대해 자세히 설명합니다. 저자는 성능 최적화, 아키텍처 선택, 게임 규모와 플레이어 경험 간의 균형 등 얻은 교훈을 공유합니다. 게시물은 웅장한 규모 부족과 같은 설계 결함에 대한 성찰과 미래 게임 개발 계획으로 마무리됩니다.

더 보기
게임

백만 개의 체스판: 역사상 가장 미친 멀티플레이어 체스 게임

2025-04-28
백만 개의 체스판: 역사상 가장 미친 멀티플레이어 체스 게임

개발자가 '백만 개의 체스판'이라는 웹사이트를 만들었습니다. 이름 그대로 백만 개의 체스판이 있습니다! 모든 플레이어는 동일한 보드를 공유하고 턴 방식이 아닌 순간적으로 말을 이동할 수 있습니다. 개발자는 엄청난 기술적 과제를 극복하고 백엔드를 Go 언어(첫 번째 Go 프로젝트!)로 구축하여 단일 작성자 스레드와 여러 개의 판독기 스레드를 사용하고 낙관적 잠금을 동시성 처리에 사용했습니다. 이 프로젝트는 기술적 업적입니다. 플레이하여 전례 없는 멀티플레이어 체스를 경험해 보세요!

더 보기

브라우저 탭에서 Pong 실행하기

2025-02-20
브라우저 탭에서 Pong 실행하기

한 개발자가 240개의 브라우저 탭에서 Pong 게임을 실행하는 기발한 방법을 선보였습니다! AppleScript를 사용하여 탭 그리드를 만들고, Web Workers를 통해 효율적인 백그라운드 업데이트를 수행하며, Broadcast Channel을 이용해 탭 간 통신을 구현하여 탭의 favicon에 게임을 렌더링했습니다. 이 프로젝트는 브라우저 API의 강력함과 창의적인 문제 해결 능력을 보여줍니다.

더 보기

Vim에서 Bad Apple: 6500개의 정규 표현식과 마법

2025-01-12
Vim에서 Bad Apple: 6500개의 정규 표현식과 마법

이 게시글에서는 검색 쿼리만 사용하여 Vim에서 Bad Apple 뮤직 비디오를 렌더링한 방법을 설명합니다. 각 프레임은 이진 픽셀 배열로 변환되고, 직사각형으로 분할되고, Vim 정규 표현식으로 표현되었습니다. 결과는? 6500개가 넘는 정규 표현식을 포함하는 파일이며, Vim 매크로를 사용하여 순차적으로 재생하여 애니메이션을 만듭니다. 이 놀라운 업적은 Vim의 놀라운 기능과 저자의 뛰어난 프로그래밍 실력을 보여줍니다.

더 보기
개발