2011-11-22 4 views
1

최근에 취미 게임 프로그래밍을 시작했습니다. 처음 시작했을 때 추상화를 시도하는 경향이있었습니다. 비록 내가 특정 게임을 염두에두고 있었지만, 각 요소가 여러 게임과 게임 유형에서 어떻게 사용될 수 있는지 스스로에게 물어볼 것입니다. 나는 실제로 이것이 구체적인 게임을 현실로 만드는 것과는 확연히 다른 것을 깨닫게되었다.여러 유사 프로젝트에서 YAGNI 대 조숙 한 추상화

그래서 처음부터 마음에 품는 게임의 요구 사항을 충족시키는 코드를 작성했습니다 (그리고 그 게임 만). 나는 여전히 추상화를 만들었지 만,이 게임 자체가 필요할 때만. 나는이 일을하는 방식에 매우 만족합니다. 코드가 문제의 게임에 필요한 추상화 수준에있는 것처럼 느껴집니다.

제 질문은 비슷한 프로젝트가 여러 개있을 때 어떻게이 방법론이 적합할까요? 우주 테마의 사이드 스크롤러 게임을 만들었다 고 가정 해 봅시다. 다 끝나면, 나는 공간을 주제로 한 트와 믹 슈터를 만들고 싶다. 분명히 두 게임 사이의 공통점이 될 것입니다. 이전에 작성된 코드에 비추어 가장 좋은 방법은 무엇입니까? 몇 가지 가능성을 생각해 볼 수 있습니다.

  1. 이전 코드를 무시하십시오. 다시 처음부터 완전히 시작하십시오.
  2. 기존 코드 중 일부를 복사하여 붙여 넣을 수있게하고 현재 게임과 현재 게임에만 맞게 수정할 수 있습니다.
  3. 이전 코드를 사용하여 두 게임을 모두 수용 할 수있는 정도로 일반 코드를 일반화합니다.

시나리오를 약간 변경했는데 새로운 게임이 아닌 경우 어떻게해야할까요? 내 사이드 ​​스크롤링 게임에 트위 스타 인크 (twinstick) 레벨이 있다고 결정하면 어떨까요? 이 경우 옵션 3이가는 길일 것입니다. 그것이 옵션 3이 새로운 게임 인 경우에도 갈 길이라는 의미입니까?

시나리오를 약간 다시 변경하면 두 개의 다른 게임 이었지만 두 프로젝트를 동시에 진행하고 있었습니까? 나는 필연적으로 추상화를위한 유사점과 기회를보기 시작할 것입니다. 그 추상화에 저항하고 코드를 각 게임마다 독특하고 특수하게 유지해야합니까?

답변

1

귀하의 질문은 특정 상황에 의존하기 때문에 구체적인 답변을 제공하기가 어렵습니다.

새 게임이 충분히 다른 경우 처음부터 시작합니다.

코드를 복사하여 붙여 넣기 만해도 간단 할 수 있습니다. 이것은 오래된 게임의 유지 보수에 달려 있습니다. 일정 기간 동안 두 게임을 모두 유지해야하는 상황에 처하게되면 두 곳에서 수정 작업을해야한다는 점을 기억해야하기 때문에 복사 붙여 넣기는 좋지 않습니다. 이 경우 옵션 3이 바람직 할 수 있습니다 - 플랫폼에 일반화하여 플랫폼을 수정할 수 있습니다.

게임은 일반적으로 오랫동안 유지되지 않으므로 이러한 이유로 플랫폼을 제작하는 것은 가치가 없을 수 있습니다. 게임이 유지 관리 수명이 긴 MMORPG와 비슷하다면 상황이 달라집니다.

마지막 요소는 시작 시간입니다. 복사 붙여 넣기가 느리고 버그가있을 수 있습니다. 단 한 번의 게임 만 만들 계획이라면 문제가되지 않을 수도 있습니다. 일부 회사는 몇 달에 한 번씩 새로운 게임을 출시하는 게임 "제품 라인"을 전문으로합니다 (Telltale은 좋은 예입니다). 이러한 상황에서는 "엔진"을 개발하는 것이 좋으며 단순히 새 콘텐츠를 연결하여 새로운 게임을 만들 수 있습니다.

이제 취미로하고 있다고 언급했습니다. 이 경우 의사 결정의 90 %가 비즈니스 모델에서 발생하고 기술적 요인으로부터는 10 % 만 발생하기 때문에이 사항은 중요하지 않습니다.

또한 많은 회사는 제 3자가 개발 한 엔진의 라이센스를 부여하고 그 위에 게임을 구축합니다. 취미 프로그래밍이라 할지라도 1 일째부터 바로 사용할 수있는 엔진이 많이 있으며 그 위에 게임을 만들 수 있으므로 질문은 빌드 대 구매입니다.