홍정모 연구소 프로젝트
함께 만드는 테트리스 (디스코드)
- 이 프로젝트 진행과 관련된 모든 내용들은 참여자들의 제안에 따라 변경될 수 있습니다.
- 모든 결정은 홍정모 개인의 주관적인 판단에 따릅니다. 실제로는 참여자들의 의견을 반영하지만 커뮤니티의 무의미한 에너지 낭비를 막기 위한 규정입니다.
함께 프로그래밍 하는 연습을 하는 것이 목표입니다. 잘 할 필요 없고 성실할 필요도 없습니다. 근사한 테트리스를 구현하는 것이 목표가 아니라, 만드는 과정에서 많은 분들이 경험을 나눠갖는 것이 목표입니다
모든 계획은 참여자들의 의견에 따라 언제든지 바뀔 수 있습니다. 유치원에서 블럭 쌓기 놀이하는 느낌으로 만들고 부수고를 반복해도 됩니다. 예를 들면, 프로그래밍 언어도 변경/추가할 수 있고 전체 구조를 바꾸고 싶으면 처음부터 다시 만들 수도 있습니다.
실력이 없는 것은 상관 없지만, 예의 없는 태도를 보이는 사람은 경고 없이 즉시 퇴출합니다.
윈도우즈 11, Visual Studio 2022를 기준으로 시작합니다. 맥 환경을 원하시는 분은 자동으로 호환성 유지해주는 도구를 제작해서 기여하시면 됩니다. (예: 커밋할때마다 엑스코드로 변환하고 테스트도 해주는 자동화 도구를 파이썬으로 구현)
- 콘솔 출력으로 기본적인 테트리스 구현 (구현 예시)
- 2인 플레이 기능 (네트워크 또는 같은 PC에서 - 유닛 테스트를 어떻게 할 것인가?)
- 인공지능 플레이어 (강화학습)
- 배틀 테트리스 기능
- 입력 큐를 통해 지연을 최소화
- 의존성 주입 패턴 및 상태 관리 로직으로 모듈 간 결합도를 최소화화여 확장 가능한 설계 적용
- 콘솔 화면 출력 및 UI 시스템 계층 구현
- UI 시스템에서 일어나는 메모리 관리를 모듈 내부적으로 처리하여 안전하게 동작하도록 설계
- 추상화된 UI 계층을 이용해 유지보수/확장이 용이하도록 설계
- 게임 루프 설계 및 엔진을 모듈화하여 유지보수성 향상
- 엔진과 게임모드의 계층구조를 적용해 게임모드 확장성 확보
- 블록 모양 자료구조를 정의하여 화면 출력 기반 마련