❓오늘의 질문
우리 프로젝트에서 내가 겪은 기술적 챌린지 요소는?
1. 타입스크립트를 활용한 변수 타입 통제
게임을 제작하기에, 정말 많은 수의 변수가 게임 로직 진행을 위해 필요한데, 이를 타입스크립트 기능으로 각 변수에 타입을 줘서 통제하니, 잘못된 값이 들어가는 식의 오류등을 쉽게 찾을 수 있었다.
다만 많은 변수들을 한번에 관리하기 위해 객체 및 클래스 문법을 활용했는데 이 때문에 복잡해진 객체에 맞는 타입을 부여하는 과정에서 어려움을 느꼈음.
2. 게임 개발 그 자체.
처음에는 가볍게 생각했는데, 생각한 것보다 정말 고려할 요소가 많았다. 아이디어, 게임 로직, 그래픽 이 세 박자가 잘 어우러지게 개발하는 과정 자체가 도전적이었다.
선형적으로 진행되는 게임 플레이 동안 각 시간대마다 표현되야 하는 요소가 바뀌고, 조작을 막거나 활성화하는 등의 통제부터, 극한의 상황에 의한 오류가 발생하지 않게 제한하는 등의 여러 과정들이 있었다.
첫 2d 게임 개발인 만큼 캔버스란 기초적인 툴을 선택하여 학습 진입장벽을 낮추었는데, 캔버스의 단순한 구조가 간편하면서도 편의 기능이 부족했던 점에 의해 개발 양 자체가 오히려 증가하는 면도 있었다.
또한 소켓 io를 사용하는 멀티플레이어 게임인 폭탄 돌리기의 경우, 서버와 올바르게 통신하며 게임 정보가 각 플레이어들에게 공통되게 유지되게 하는 로직 구현이 도전적이었다.
3. 리액트 재랜더링 통제
리액트 컴포넌트를 사용하는 게임이 아닌 이상에야 게임이 시작된 후 부터는 재랜더링이 게임 끝날 때 까지 필요가 없다.
큰 문제는 아니었으나, useEffect, memo 등의 기능들로 재랜더링을 통제하여 게임 진행이 리액트 기능에 의해 방해되는 경험이 잦았고, 이를 극복했다.
😃삶 + 마무리 할 말
나는 행복합니다~
'TIL (반쯤은 일기)' 카테고리의 다른 글
TIL 2021.12.13 코딩의 소중함을 깨닳게 해주는 자소서 쓰기 (0) | 2021.12.13 |
---|---|
TIL 2021.12.12 오랜만에 TIL, 프로젝트 발표 끝! (0) | 2021.12.13 |
TIL 21.11.30 정말 해줄거 다해줘도 안풀리는 에러가 있구나.. (0) | 2021.12.01 |
TIL 21.11.26 나는 혹시 캔버스 마스털? (0) | 2021.11.27 |
TIL 21.11.25 다양한 피드백의 중요성... (0) | 2021.11.26 |
댓글