아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
랍스타즈 favicon랍스타즈

SSH로 즐기는 멀티플레이어 스네이크 게임, 1초에 1억 픽셀 렌더링!

by DD
2026-02-26
4개월 전
조회수 32

SSH를 통해 접속 가능한 멀티플레이어 스네이크 게임 'snakes.run' 개발

터미널 렌더링(Terminal Rendering)을 위해 유니코드 블록 요소(Unicode Block Elements) 사용 및 밴드위스 최적화

Bubbletea TUI 프레임워크(TUI Framework)와 Go SSH 라이브러리(Go SSH Library)를 포크하여 성능 개선

성능 프로파일링(Performance Profiling)을 통해 CPU 사용량 감소 및 동시 접속자 수 증가

터미널 렌더링 최적화: 밴드위스 절감

저자는 터미널 렌더링(Terminal Rendering) 시 밴드위스(Bandwidth) 사용량을 줄이기 위해 다양한 기법을 적용했다. 초기에는 각 프레임마다 전체 라인을 다시 전송하는 방식으로 인해 밴드위스 사용량이 과도하게 높았다. 이를 해결하기 위해 VT100 시퀀스(VT100 Sequences)를 사용하여 변경된 셀만 업데이트하는 방식으로 변경했다. 또한, 4-bit 색상 사용 및 문자열 캐싱(String Caching)을 통해 밴드위스 사용량을 추가적으로 절감했다.

성능 개선: CPU 사용량 최적화

성능 개선을 위해 저자는 CPU 프로파일링(CPU Profiling)을 통해 병목 지점을 파악하고, lipgloss 라이브러리(Library) 사용을 최소화했다. 특히, 문자열 연결 및 측정 함수를 직접 구현하여 문자열 할당(String Allocation) 관련 오버헤드를 줄였다. 또한, 배너(Banner)와 같은 고정 문자열을 미리 할당하는 문자열 캐싱(String Caching) 기법을 적용하여 가비지 컬렉션(Garbage Collection) 시간을 줄였다.

SSH 성능 튜닝: 키스트로크 타이밍 난독화 제거

저자는 SSH 클라이언트(Client)의 키스트로크 타이밍 난독화(Keystroke Timing Obfuscation) 기능을 비활성화하여 성능을 향상시켰다. 이 기능은 OpenSSH에서 보안을 위해 도입되었지만, 멀티플레이어 게임에서는 불필요한 오버헤드를 발생시켰다. 저자는 Go의 암호화 라이브러리(Crypto Library)를 포크하여 해당 기능을 제거함으로써 성능을 두 배로 향상시켰다.

아키텍처 개요: SSH를 통한 게임 실행

snakes.run은 SSH를 통해 접속하여 터미널에서 게임을 즐길 수 있도록 설계되었다. 게임 서버는 Bubbletea TUI 프레임워크(TUI Framework)를 사용하여 프레임을 렌더링하고, Go SSH 라이브러리(Go SSH Library)를 통해 클라이언트에 전송한다. 저자는 SSH의 기본적인 동작 원리를 활용하여, 터미널에 텍스트와 이스케이프 시퀀스(Escape Sequences)를 전송하는 방식으로 게임을 구현했다.

snakes.run: rendering 100M pixels a second over ssh
고급
아키텍처
Go
SSH
Bubbletea
Backend
Frontend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

SSH로 즐기는 멀티플레이어 스네이크 게임, 초당 1억 픽셀 렌더링!

레딧 로고

SSH로 즐기는 멀티플레이어 스네이크 게임, 1초에 1억 픽셀 렌더링!

레딧 로고

SSH 인증서, 더 안전하고 편리한 SSH 환경을 위한 핵심 기술

랍스타즈 로고

인디 게임 개발의 숨겨진 이야기

더 프라임아젠 로고

AWS 비용, 터미널에서 한눈에 파악하세요!

해커뉴스 로고

SSH 키 입력 난독화, 게임 서버 성능에 치명타!

레딧 로고
랍스타즈 favicon랍스타즈
고급
아키텍처
Go
SSH
Bubbletea
Backend
Frontend

관련 추천 글

SSH로 즐기는 멀티플레이어 스네이크 게임, 초당 1억 픽셀 렌더링!

레딧 로고

SSH로 즐기는 멀티플레이어 스네이크 게임, 1초에 1억 픽셀 렌더링!

레딧 로고

SSH 인증서, 더 안전하고 편리한 SSH 환경을 위한 핵심 기술

랍스타즈 로고