- 이 코드는 2021년 푸릇푸릇한 중3때의 제가 모 마피아 게임에 영감을 받아 코딩 연습 차원에서 만들어 본 마피아 게임입니다.
- 클라이언트 코드는 나중에 올려보도록 하겠습니다.
(전송 버튼 저거 저렇게 쓰면 안 되는 이미지 같은데,, 배포 안 했으니까 용서해 주세요)
- C++ STL과 Boost.Asio를 베이스로 만들었고, 그 외 다른 라이브러리는 크게 사용하지 않았습니다.
- Asio로 만든 이유는 그 당시 제가 Asio를 배웠기 때문입니다.
- 프로토콜은 자체 개발입니다. 초기에는 TCP 위에서 작동했지만, 나중에 TLS로 변경했습니다.
- 로그인 기능은 없기 때문에 DB는 사용하지 않습니다.
- 이 사람은 2018년 친구에 의해 마피아 게임에 입문하게 되었습니다.
- 제가 마피아를 정말 좋아했는데요, 당시 C++ 연습 겸 마피아 직업 배정 로직도 만들어 보고 그랬습니다.
- 때는 2020년, 한창 마피아 게임을 즐겨 하던 이 사람은 문득 이 게임 나도 만들 수 있겠다는 생각을 하게 됩니다.
- 직업 배정 코드는 옛날에 짜봤던 마피아 직업 배정 로직을 그대로 가져와서 썼던 것 같습니다.
- 그렇게 몇 달 동안 열심히 노력한 결과 마피아 게임 카카오톡 봇을 만드는 데 성공했습니다.
- 이 때 만든 카톡 봇 코드가 이 코드의 게임 시스템 부분의 베이스가 되었습니다.
- 그리고 2021년, Java로 안드로이드 네이티브 앱을 만드는 법을 배운 이 사람은 이번에는 마피아 앱을 만들기로 했습니다.
- 카톡봇 만들었던 코드를 베이스로 소켓 부분을 얹어서 코드를 짰습니다.
- 그렇게 이 코드는 잊혀져 가는 듯 했으나..
- 2023년, 웹을 배운 이 사람은 웹으로 또 마피아를 만들게 되었습니다.
- 이번에는 기존 코드를 그대로 활용해 TypeScript로 WebSocket 레이어만 새로 얹었습니다.
- 이 코드도 나중에 올려보도록 하겠습니다
- Boost와 OpenSSL만 있으면 아마,, 빌드가 될 겁니다.
- 깃에 올려놓은거는 XCode 환경인데 아마 다른 환경에서도 세팅을 잘 맞춰주면 작동할 겁니다.
- 윈도우는 안 해봐서 몰라요. 원래 리눅스를 타깃으로 만들었습니다.
- 맥이랑 리눅스는 잘 되는 거 확인했는데 윈도우는 될 지도 안 될 지도??