Hacktoberfest에 참여하는 것은 저에게 흥미롭고 보람찬 여정이었습니다. 기술을 연마하는 동시에 의미 있는 오픈 소스 프로젝트에 기여할 수 있는 기회를 얻었기 때문입니다. 올해 세 번째 Pull Request를 위해 처음 2개의 PR보다 더 복잡한 프로젝트인 ZTM-Quest 저장소에 기여하기로 결정했습니다.
ZTM-Quest는 개발자의 기술 향상과 실제 프로젝트 구축을 돕는 플랫폼인 Zero to Mastery Academy의 일부 프로젝트입니다. 프로젝트 자체는 사용자가 퀘스트를 완료하고 코딩 능력을 향상시킬 수 있는 매력적인 대화형 웹 앱입니다. 이 블로그에서는 ZTM-Quest 리포지토리 작업 경험, 직면했던 어려움, 배운 내용, Hacktoberfest의 세 번째 PR을 완료한 방법
을 안내해 드리겠습니다.이번 주에는 map_start에 추가 NPC(플레이 불가능 캐릭터)를 추가하여 ZTM-Quest 프로젝트를 개선하는 데 초점을 맞춘 문제를 다루었습니다. 현재 프로젝트에는 지도당 NPC 수가 제한되어 있으며 관리자는 map_start 영역을 더 많이 채우고 싶어했습니다. 다행스럽게도 프로젝트에는 무작위로 NPC를 생성하기 위한 일부 코드가 이미 포함되어 있어 확실한 출발점이 되었습니다. 또한 관리자는 내 스프라이트 시트를 사용하여 맞춤형 NPC를 만들 수 있다고 제안했지만 코드베이스의 복잡성과 크기를 고려하여 프로젝트 요구 사항을 보다 효율적으로 충족하기 위해 기존 자산을 진행하기로 결정했습니다.
ZTM-Quest 프로젝트는 map_arcade, map_city, map_start의 세 가지 맵으로 구성됩니다. 이 문제에서는 관리자의 요청에 맞춰 map_start에만 집중했습니다. 이전에 2D 게임 개발 라이브러리를 사용해 본 적이 없는 사람으로서 처음에는 이 작업이 어렵다는 것을 알았습니다. 하지만 메인테이너의 안내와 상세한 지시 덕분에 코드베이스를 탐색하며 작업과 관련된 핵심 파일과 구조를 파악할 수 있었습니다.
NPC 생성 로직이 정의되어 있는 src/factories/npc.factory.js 파일을 탐색하는 것부터 시작했습니다. 거기서부터 src/gameObjects/map_start 디렉터리에 randNpcsOnRestroomSinkCouch.gameObject.js라는 파일을 생성하여 새 NPC를 추가하기 시작했습니다. 초기 구현에서는 NPC를 한 위치(의자)에만 배치했지만 추가 검토를 통해 관리자가 NPC를 지도 전체에 더 동적으로 배포하려고 한다는 것을 깨달았습니다. 이 문제를 해결하기 위해 코드 편집기의 검색 기능을 활용하여 싱크대, 소파, 화장실 등 기타 관련 위치를 식별했습니다.
지도에서 식별된 개체의 위치를 기반으로 싱크대 근처에 서 있는 NPC 두 명, 소파에 앉아 있는 두 명, 화장실에 세 명을 추가하여 map_start에 더욱 활기차고 상호 작용적인 환경을 만들었습니다.
나의 PR
이 문제를 다루면서 오픈 소스 커뮤니티와 게임 개발에 대한 귀중한 통찰력을 얻었습니다. ZTM-Quest 관리자는 제가 성공할 수 있도록 적시에 피드백과 리소스를 제공하면서 믿을 수 없을 만큼 지원적이고 전문적이었습니다. 처음 프로젝트에 참여했을 때 저는 Discord 그룹에 초대받았고, 질문이 있을 때마다 연락할 수 있었습니다. 이로 인해 경험이 더욱 즐겁고 협력적이었습니다.
전반적으로 이번 주에는 이전 경험이 없는 2D 게임 개발 분야에 도전하면서 저를 편안한 영역에서 벗어나게 했습니다. 초기 학습 곡선에도 불구하고 저는 익숙하지 않은 코드베이스를 탐색하고 복잡한 프로젝트 내에서 문제를 해결하는 데 자신감을 얻었습니다. Hacktoberfest의 최종 PR을 완료하기를 기대하면서 저는 기술 범위를 넓힐 수 있는 새로운 개발 영역을 계속 탐색하는 것을 목표로 합니다.
위 내용은 오픈 소스 성과: Hacktoberfest에서 세 번째 PR 완료의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!