최근에 취미 게임 프로그래밍을 시작했습니다. 처음 시작했을 때 추상화를 시도하는 경향이있었습니다. 비록 내가 특정 게임을 염두에두고 있었지만, 각 요소가 여러 게임과 게임 유형에서 어떻게 사용될 수 있는지 스스로에게 물어볼 것입니다. 나는 실제로 이것이 구체적인 게임을 현실로 만드는 것과는 확연히 다른 것을 깨닫게되었다.여러 유사 프로젝트에서 YAGNI 대 조숙 한 추상화
그래서 처음부터 마음에 품는 게임의 요구 사항을 충족시키는 코드를 작성했습니다 (그리고 그 게임 만). 나는 여전히 추상화를 만들었지 만,이 게임 자체가 필요할 때만. 나는이 일을하는 방식에 매우 만족합니다. 코드가 문제의 게임에 필요한 추상화 수준에있는 것처럼 느껴집니다.
제 질문은 비슷한 프로젝트가 여러 개있을 때 어떻게이 방법론이 적합할까요? 우주 테마의 사이드 스크롤러 게임을 만들었다 고 가정 해 봅시다. 다 끝나면, 나는 공간을 주제로 한 트와 믹 슈터를 만들고 싶다. 분명히 두 게임 사이의 공통점이 될 것입니다. 이전에 작성된 코드에 비추어 가장 좋은 방법은 무엇입니까? 몇 가지 가능성을 생각해 볼 수 있습니다.
- 이전 코드를 무시하십시오. 다시 처음부터 완전히 시작하십시오.
- 기존 코드 중 일부를 복사하여 붙여 넣을 수있게하고 현재 게임과 현재 게임에만 맞게 수정할 수 있습니다.
- 이전 코드를 사용하여 두 게임을 모두 수용 할 수있는 정도로 일반 코드를 일반화합니다.
시나리오를 약간 변경했는데 새로운 게임이 아닌 경우 어떻게해야할까요? 내 사이드 스크롤링 게임에 트위 스타 인크 (twinstick) 레벨이 있다고 결정하면 어떨까요? 이 경우 옵션 3이가는 길일 것입니다. 그것이 옵션 3이 새로운 게임 인 경우에도 갈 길이라는 의미입니까?
시나리오를 약간 다시 변경하면 두 개의 다른 게임 이었지만 두 프로젝트를 동시에 진행하고 있었습니까? 나는 필연적으로 추상화를위한 유사점과 기회를보기 시작할 것입니다. 그 추상화에 저항하고 코드를 각 게임마다 독특하고 특수하게 유지해야합니까?