이번에 토이 프로젝트로, .NET의 WPF와 Blazor를 이용해 Vector Graphics 기반으로 TETRIS를 만들어보게 되었습니다.
얼마 전에 업무를 하던 중 참고를 위해 과거에 만들었던 옛 소스코드들을 뒤적거리다가 게임 개발 동아리 활동을 막 시작할 무렵에 만든 20년도 넘은 Win32 API 기반 TETRIS 소스코드를 발견했습니다.
당시에 그걸 만들고 난 후, 오락실 버전 TETRIS처럼 블록들이 깔끔하게 연결된 모양으로 예쁘게 만들려면 과연 어떻게 설계해야 할까 고민한 적이 있었습니다. 물론, 당시의 저로서는 조금 고민하다가 어려워서 바로 포기했었네요…
그때 못했던 것을 여가시간에 한번 해볼까 해서 토이 프로젝트로 진행해보게 되었습니다.
진행하다 보니 오락실 버전 TETRIS의 깔끔하게 연결된 조각을 구현하기 위해 Vector Graphics를 이용하게 되었고, Vector Graphics 하면 바로 떠오르는 WPF를 이용해 만들었습니다. 그러다가 Geometry로 정의한 TETRIS의 조각을 Dynamic Resource를 이용해 6가지 테마로 표현해보기도 했네요.
그러고 나서 기왕 해보는 거 TETRIS의 조각을 정의하는 기본 자료구조를 Blazor에도 적용해봤습니다. Blazor 기반으로 구현한 것은 GitHub Pages를 이용해 게시했고, 다음의 링크에서 플레이해볼 수 있습니다.
https://vagabond-k.github.io/VegrarisDemo/
프로젝트 이름은 Vector Graphics 기반으로 만든 TETRIS 라는 의미로 VEGRARIS라고 지었으며, 전체 소스코드는 GitHub에 공유했습니다. 비록 세상에 전혀 도움이 안 될 것 같은 소스코드지만, 그래도 누군가에게는 학습을 위한 자료가 되지 않을까 싶어서 공유를 하게 되었습니다.
Vector Graphics 기반 Geometry 생성 알고리즘 등 쪼끔 더 자세한 구현 과정 설명은 블로그 글에 작성하였습니다. 궁금하신 분은 해당 글을 확인하시면 되겠습니다.
이제 곧 설입니다. 모두들 즐거운 설 명절 되세요~