Skip to content

ldhhello/MafiaServer

Repository files navigation

동마월 (동현이의 마피아 월드) C++ 원본 소스 코드

  • 이 코드는 2021년 푸릇푸릇한 중3때의 제가 모 마피아 게임에 영감을 받아 코딩 연습 차원에서 만들어 본 마피아 게임입니다.
  • 클라이언트 코드는 나중에 올려보도록 하겠습니다.

2021년 당시 작동 사진

시연 이미지 (전송 버튼 저거 저렇게 쓰면 안 되는 이미지 같은데,, 배포 안 했으니까 용서해 주세요)

뭐를 써서 만들었나요?

  • C++ STL과 Boost.Asio를 베이스로 만들었고, 그 외 다른 라이브러리는 크게 사용하지 않았습니다.
  • Asio로 만든 이유는 그 당시 제가 Asio를 배웠기 때문입니다.
  • 프로토콜은 자체 개발입니다. 초기에는 TCP 위에서 작동했지만, 나중에 TLS로 변경했습니다.
  • 로그인 기능은 없기 때문에 DB는 사용하지 않습니다.

이 코드의 역사

  • 이 사람은 2018년 친구에 의해 마피아 게임에 입문하게 되었습니다.
  • 제가 마피아를 정말 좋아했는데요, 당시 C++ 연습 겸 마피아 직업 배정 로직도 만들어 보고 그랬습니다.

  • 때는 2020년, 한창 마피아 게임을 즐겨 하던 이 사람은 문득 이 게임 나도 만들 수 있겠다는 생각을 하게 됩니다.
  • 직업 배정 코드는 옛날에 짜봤던 마피아 직업 배정 로직을 그대로 가져와서 썼던 것 같습니다.
  • 그렇게 몇 달 동안 열심히 노력한 결과 마피아 게임 카카오톡 봇을 만드는 데 성공했습니다.
  • 이 때 만든 카톡 봇 코드가 이 코드의 게임 시스템 부분의 베이스가 되었습니다.

  • 그리고 2021년, Java로 안드로이드 네이티브 앱을 만드는 법을 배운 이 사람은 이번에는 마피아 앱을 만들기로 했습니다.
  • 카톡봇 만들었던 코드를 베이스로 소켓 부분을 얹어서 코드를 짰습니다.
  • 그렇게 이 코드는 잊혀져 가는 듯 했으나..

  • 2023년, 웹을 배운 이 사람은 웹으로 또 마피아를 만들게 되었습니다.
  • 이번에는 기존 코드를 그대로 활용해 TypeScript로 WebSocket 레이어만 새로 얹었습니다.
  • 이 코드도 나중에 올려보도록 하겠습니다

빌드는 어떻게 하나요?

  • Boost와 OpenSSL만 있으면 아마,, 빌드가 될 겁니다.
  • 깃에 올려놓은거는 XCode 환경인데 아마 다른 환경에서도 세팅을 잘 맞춰주면 작동할 겁니다.
  • 윈도우는 안 해봐서 몰라요. 원래 리눅스를 타깃으로 만들었습니다.
  • 맥이랑 리눅스는 잘 되는 거 확인했는데 윈도우는 될 지도 안 될 지도??

About

Archive of Donghyun Mafia World Server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published