brunch

You can make anything
by writing

C.S.Lewis

by 이기곤 Apr 21. 2019

0x00. 프레임워크 개발 시작

개발 언어로 Rust를 채택한 이유

오래 전부터 오픈 소스 저장소를 만들어보려 했지만 잘 되지 않았다. 코드보다는 글을 쓰면서 배운 것들을 정리하는 게 더 재밌기도 했고, 실제로 사용하는 라이브러리나 기술이 아니면 결국에는 손에서 멀어졌기 때문이다. 주력으로 쓰는 언어인 C++도 무언가를 취미로 만들기엔 적합하지 않았던 것 같다.


그런 이유로 첫 번째 책을 썼던 시점에 Rust를 배우기로 마음먹었다. C++의 장점들을 가져가면서 생산성을 높이고 싶었기 때문이었다. 하지만 역시 책을 쓴 이후에는 손이 가지 않았다. 회사에서 쓸 무언가를 만들었던 기억은 있는데, 상용 환경에서 쓰기엔 리스크가 너무 컸었다. 그 이후 Rust 언어는 점점 잊게 됐다.


오픈 소스 프레임워크를 만들어보자.


얼마 전 Rust를 다시 접할 기회가 생겼다. 이번에는 제대로 무언가를 만들자는 결심을 했다. 개발로 먹고 사는 사람이 오픈 소스 저장소 하나조차 없다는 게 괜한 자존심을 긁은 것도 다.

무엇을 만들까 하다가, 문득 간단한 모바일 게임 서버 프레임워크를 만들어보면 어떨까 하는 생각이 들었다. 그 이유는 Rust가 게임 서버를 만드는 데 적합한 언어인지 확인해보고 싶기 때문이다.


시작하기로 마음먹었으니, 기능 명세부터 만들자.


오늘날 수 많은 모바일 게임들은 몇 가지 특징들만 제외하면 비슷한 부분들이 상당히 많다. 안타깝지만 그러한 특징조차 없는 게임들도 있다. 하지만 이건 유저 입장에서나 걱정할 일이다. 서버 개발자 입장에서는 프레임워크를 만들기에 딱 좋은 환경이기 때문이다.


[그림 1] 게임 프레임워크에서 제공할 수 있는 기능들

(출처: Game Engine Architecture, Third Edition)

[그림 1]은 C++ 기반 엔진에서 필요로 하는 것들이지만, 모바일 게임에서 사용하는 것들도 있다.


다음 글에서는 구체적으로 필요한 기능들을 나열해보려 한다. 처음에는 생각나는 것들을 쓸 것이기 때문에 두서가 없을 것이고, 글 하나로 끝낼 수도 없을 것이다. MVP를 만든 다음이나 되야 명세다운 명세가 나오지 않을까 하는 생각도 든다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari