솔로 개발자 프로젝트는 어떤 종류의 프로젝트 관리를 사용해야합니까?


49

개발이 3 개의 독립적 인 부분 (맵 생성, "오버 월드"엔진 및 배틀 엔진)으로 분리 될 수있는 게임 프로젝트를 직접 수행하고 있지만, 개발이 진행됨에 따라 어떻게 처리해야하는지 잘 모르겠습니다. 이 프로젝트의 관리, 특히 다음 세 가지 사항에 관한

  1. 내가 혼자 일하고 있기 때문에 버전 관리 시스템을 사용하는 것이 가치가 있습니까?

  2. 계획된 기능 / 버그를 등록하기 위해 공식적인 방법을 사용해야합니까 (지금은해야 할 일을 기억합니다)

  3. 가장 중요한 질문 : 먼저 무엇을 개발해야하는지 어떻게 알 수 있습니까? 이제 기본 사항이 완성되었으므로 코딩 할 기능 목록을 알고 있지만 어떤 순서로 수행해야하는지 모르겠습니다.


39
1) 그렇습니다, 그렇습니다 그리고 그렇습니다 ; VCS를 사용하지 말라고 아무도 말하지 않기를 바랍니다.
sam hocevar

3
버전 관리를 필요로하는 다양한 문제가 있습니다. (a) 로컬 복사본이 손상된 경우 백업의 기본 아이디어 및 (b) 덮어 쓴 코드와 자산이 반드시 원하는 것은 아닙니다. 덮어 쓰기는 파괴적인 메커니즘이므로 본질적으로 (a)입니다. (b)와 관련된 (c)도 있습니다. 다른 접근법을 시도하기 위해 분기를 원할 수 있습니다. 성능이 중요한 코드를 작업 할 때는 다른 접근 방식의 위치를 ​​잃지 않고 다른 접근 방식을 프로파일 링하는 데 도움이되므로 상당히 자주 분기합니다.
엔지니어

@Sam의 의견은 두 번째입니다-항상 버전 관리를 사용하십시오. 나는 지금부터 당신이 기뻐하실 것입니다. 저렴한 / 무료 호스팅 VCS 및 DVCS 시스템이 많이있어 오프 사이트 백업을 제공합니다. 색상을 Subversion 마스트에 고정했지만 새로 시작하면 Mercurial을 사용한다고 생각합니다.
Tim Long

1
이 질문들은 각각 별개의 주제이므로 별도의 질문이어야합니다.
Tetrad

답변:


59

나는 사용할 것이다 :

1. 코드 관리

코드를 관리하기위한 분산 소스 코드 관리자 인 GIT (그리고 멋진 참조 ) 를 제한없이 유지하려면 GitHub 에서 개인 프로젝트로 호스팅합니다 .

(여기에는 소스 코드 관리를위한 Google이 많이 있습니다 .GitHub 또는 다른 웹 사이트를 사용해야 할 필요조차 없습니다 .Git은 로컬 컴퓨터에서 제대로 작동하지만 GitHub를 사용하면 백업 관리가 어려워집니다. 훨씬 쉬워졌습니다.

두 대의 컴퓨터가있는 경우 백업 컴퓨터를 호출 할 컴퓨터에 리포지토리를 생성 한 다음 로컬 네트워크를 통해 해당 리포지토리를 복제하여 개발에 사용합니다. 백업 머신과 1 : 1 백업이 있습니다!)

2. 이슈 및 기능 관리

내가 사용하는 것이 Trello 또는 GitHub의에 내장 된 이슈 관리를 버그와해야 할 일을 관리하기 위해.

3. 디자인 프로세스

게임을 먼저 디자인하겠습니다.

  1. 내 마음에 먼저
  2. 그런 다음 종이에
  3. 그런 다음 GameMaker 또는 PyGame 을 사용 하여 아이디어를 프로토 타이핑하고 내가 즐기는 것을 즐길 때까지 1-3 회 이상 반복합니다.

4. 프로토 타입을 가이드로 사용하고 게임 개발

그런 다음 프로토 타입을 제쳐 놓고 개발하려는 플랫폼을 선택했습니다. 그런 다음 기존 엔진을 찾아 내 게임 아이디어에 가장 적합한 엔진을 선택하십시오. 그런 다음 프로젝트의 명확한 목표를 세우고 작은 작업으로 구성한 다음 작업을 마치기 시작합니다. 이 상태에 도달하면 자신에게 가장 적합한 작업 방식이 있다는 것을 알게 될 것입니다.

개발 스타일, XP, 폭포 등에 적용 할 수 있는 몇 가지 방법론 / 철학 이 있습니다. 가장 빠르게 발전하게한다고 생각하는 것과 함께하십시오.

5. 많은 게임 테스터가 있습니다!

연주 할 수있는 것이 있으면 바로 친구에게 시도해보십시오! Windows를 실행하는 경우 빠른 설치 프로그램 패키지를 설정하거나 Linux / Mac을 사용하는 경우 프로세스를 자동화 할 수있는 셸 스크립트를 작성하여 쉽게 도와 줄 수 있습니다. 테스터의 피드백에 많은주의를 기울이고 게임 디자인과 제작하려는 게임 종류에 대해 알려주십시오.

6. 내 게임을위한 웹 사이트 만들기

내가 잘 진행 되 자마자 게임에 대한 웹 사이트를 만들 것입니다. 예를 들어, 연구에 중점을 둔다면 게임 진행에 적용 할 수 없을 때 창의성과 콘텐츠가 계속 흐르도록 할 것입니다 또는 개발 중단이 필요합니다!

GitHub을 사용하면 게임에 대한 프로젝트 페이지 를 설정하고 , 그렇지 않으면 WordPress / Jekyll 블로그 또는 이와 유사한 것을 호스팅하고 그 게시물을 작성합니다.

이를 통해 잠재적 인 게이머 / 테스터를 추천 할 수있는 장소를 확보하고 동기를 유지할 수 있습니다!

7. 콘테스트 참가

거의 항상 진행되는 많은 게임 개발자 콘테스트가 있습니다. 규칙이 허용하는 경우이 중 하나를 게임에 참여 시키려고합니다. 이것은 동기 부여를 증가시키고 모든 것을 더욱 재미있게 만듭니다-누가이기는 것을 좋아하지 않습니다!

엄격한 마감일로 개발하는 경우에는이 시점을 건너 뛸 수 있습니다.


1
좋은 대답입니다. 문제 추적을 위해 FogBugz 를 제안 합니다. 나 같은 솔로 개발자에게는 무료입니다.
notlesh

2
너무 많은 +1이 필요하지만 하나만 줄 수 있습니다.
chaosTechnician

Dropbox와 함께 GIT / hg /를 사용하면 마술이됩니다.
zeroDivisible

14

혼자 일하더라도 버전 관리 시스템을 사용하는 것이 좋습니다. 실수로 무언가를 삭제하거나 더 크게 변경하면 나중에 나쁜 생각임을 깨닫고 변경 사항을 취소해야합니다.

편집 : 많은 무료 소스 제어 솔루션이 있습니다.

  • Windows에서 쉽게 설정하고 사용할 수 있는 VisualSVN Server를 사용했습니다 .

  • Codeplex ( SVN또는 with Mercurial), SourceForge 또는 Google Code 와 같은 온라인 대안도 있습니다 . 단점은 리포지토리를 설정 및 유지 관리 할 필요가없고 데이터가 클라우드에 있다는 것입니다. 중요한 것은 비공개 소스 프로젝트를 자유롭게 호스팅 할 수 없다는 것입니다.

버그 및 기능 추적 : 게임 베타 테스트, 버그보고 및 기능 요청에 관심이있는 잠재 고객이 이미있는 경우 계속 진행하십시오.
그러나 그러한 소수의 사람들 만이 있거나 전혀 존재하지 않는다면 불필요합니다.

그리고 개발 우선 순위에 관해서는 여러분 이 결정해야합니다. 유일한 개발자보다 프로젝트에서 무엇을해야하는지 누가 더 잘 알아야합니까?


1
+1 SVN은 하드 드라이브가 긁히거나 잘못된 파일 등을 삭제할 때 그만한 가치가 있습니다.
Valmond

5
위의 VCS 중 다수의 문제점은 공개 된 것입니다. 무료 개인 호스팅을 원하면 assembla.com을 확인하십시오 .
ClassicThunder

12
bitbucket.org 는 개인 저장소
o0 '를

1
@ClassicThunder 나는 내 게시물에 말했다. 또한 지난 번 확인했을 때, assembla는 개인 프로젝트를 무료로 보지 못했습니다. 그 동안 어떤 변화가 있었습니까? (나는 그것을 의심하지만, 당신은 모른다.)
ver

1
원하는 경우 개인 SVN 저장소를 자체 HDD에 설정할 수 있습니다. 즉 모든 ... 중복 답변, OMG .. 얼마나 더 VCS보다 훨씬 더 좋을 것이다
Kromster 지원 모니카 말한다

7

내가 혼자 일하고 있기 때문에 버전 관리 시스템을 사용하는 것이 가치가 있습니까?

나도 그렇게 생각해. 설정하기가 쉽지 않으며 여러 번 리팩토링에 열중하거나 어리석은 짓을하고 변경 사항을 롤백하는 기능으로 인해 많은 시간이 절약되었습니다. 또한 서버에서 호스팅되는 경우 문제가 발생할 경우를 대비하여 코드를 백업 합니다.

계획된 기능 / 버그를 등록하기 위해 공식적인 방법을 사용해야합니까 (지금은해야 할 일을 기억합니다)

나는 그것이 필요하다고 생각하지 않습니다. 나는 사소한 버그를 잊지 않도록하기 위해 당신이하려는 일에 대한 서면 목록을 유지하고 코딩에서 휴식을 취한 후에 다시 시작하는 데 도움이된다는 것을 알았습니다.

가장 중요한 질문 : 먼저 무엇을 개발해야하는지 어떻게 알 수 있습니까? 이제 기본 사항이 완성되었으므로 코딩 할 기능 목록을 알고 있지만 어떤 순서로 수행해야하는지 모르겠습니다.

위의 목록을보고 눈을 감고 무작위로 찌르십시오. 손가락이있는 기능에 상관없이 작업하십시오. 항목이 서로 의존하지 않는 한 특정 순서로 작업을 수행하는 것보다 흐름을 계속 유지하는 것이 더 중요합니다.


5

버전 관리를 확실히 사용하십시오

버전 관리는 줄타기 워커의 안전망과 같습니다. 쉽게 되돌릴 수 있다면 큰 코드 덩어리를 삭제하는 큰 리 팩터는 문제가되지 않습니다. 레포의 실험 브랜치에 있고 다시 병합하지 않기로 결정할 경우 훨씬 적습니다.

이런 종류의 자유가 없다면, 주석 처리 된 코드를 필요할 때마다 두려운 곳에 두십시오.

나는 Git에 투표했다. 구문은 약간 이상하지만 그에 대한 두 가지 큰 점은 다음과 같습니다.

  • 낮은 오버 헤드 . 폴더와 유형을 변경하고 git init체크인을 시작할 준비가되었습니다. 결국 버전 관리를 원하지 않는 경우 rm -rf .git해당 폴더에서 더 이상 Git 저장소가 아닙니다.
  • SSH를 통해 배포됩니다 . 힘내가 배포됩니다. 즉, 여러 장소에 여러 개의 전체 레포 사본 (모든 기록 등)을 가지고 동기화 할 수 있습니다. SSH 액세스 권한이있는 컴퓨터에서 다른 Git 저장소를 설정 한 다음 해당 저장소를 원격으로 추가 할 수 있습니다. 그 후에는 언제든지 git push해당 리포지토리 에 백업하려고합니다 .

    전체 리포지토리가 하나의 컴퓨터에 있고 해당 컴퓨터에서 Subversion 서버를 실행해야하는 Subversion보다 큰 이점입니다.

Mercurial은 이와 동일한 점을 선호하지만 사용하지는 않았습니다.


3
  1. 예! 당신이 요구하고 있기 때문에 나는 당신이 개정 제어 시스템에 잘 적응되어 있다고 생각합니다. 그것은 필수입니다!

  2. 두 번째 질문과 관련하여 버그 를 등록하는 공식적인 방법 이 있으므로 사용해야합니다. 계획 기능을 위해 덜 공식적인 경로를 취하는 것이 아프지 않을 것이라고 생각합니다 (혼자 일할 때)

  3. 게임을 생생하게 만들어주는 기능을 먼저 수행하십시오. 최종 게임 플레이가 어떻게 진행 될지 이해하십시오.


3

1) 물론입니다. BitBucket 및 TortoiseHg를 통한 Mercurial을 권장합니다. BitBucket은 최대 5 명의 사용자에게 무료로 제공되며 클라우드에서 호스팅되므로 마음에 들지 않습니다 (백업 불필요).

2) 새로운 기능을 구현하기 전에 버그를 수정해야합니다. 간단한 액세스 가능한 TODO 목록을 사용하여 보류 중 / 완료된 사물을 추적합니다. 일반 텍스트 파일을 사용하고 소스 제어 저장소에 파일을 추가하는 것을 잊지 마십시오.

3) 최종 사용자가 재생할 수있는 무언가를 제공하는 것이 주요 목표라는 점을 명심하면서 특정 날에하고 싶은 일을하십시오. 예를 들어 물리학에 익숙하지 않다면 렌더링 작업을하거나 AI에 누락 된 단위 테스트를 추가하십시오.

작업 덩어리는 약 며칠 안에 수행 할 수있을 정도로 작아야합니다. 동기를 유지하고 소진을 피하는 것이 중요합니다.

아키텍처가 올바르게 수행되면 여러 다른 요소에 영향을 미치지 않고 엔진 / 게임의 수정 부분을 쉽게 추가 할 수 있어야합니다 (그렇지 않으면 리팩토링으로 시작하십시오).


2

1) 모두가 말한 것처럼 : 그렇습니다 (저는 온라인으로 싼 것을 빌려줍니다)

2) 간단한 목록을 유지하거나 프로젝트가 커지고 베타 테스터를 얻는 경우 Mantis Bug Tracker를 설치하십시오.

3) 모르겠지만, 내가하고있는 방법을 알려줄 것입니다 : 가장 방해가 적거나 가장 어려운 것을 먼저 개발하십시오. 모든 것이 끝날 때까지 반복하십시오. 그렇게하면 개발이 더 재미 있고 쉬워집니다 (그리고 그 문제에 부딪치지 않을 것입니다.


1

이 질문을 해주셔서 감사합니다. 이것은 내가 현재하고있는 일입니다.

1) 버전 관리 : 필수입니다. 지금은 수동 백업을 유지하고 있습니다. 훌륭하게 작동하는 무언가가 갑자기 오류를 던지거나 예상대로 작동하지 않을 때 유용합니다. 나는 버전을 비교하고 종종 어리석은 실수를 찾습니다 (주로 무언가를 언급)

2) 단어 문서를 작성하고 게임에서 가질 모든 기능을 범주 순서로 나열하고 하위 기능 (및 클라이언트 / 서버 관련 또는 적용 가능한 항목)을 나열하는 다단계 들여 쓰기와 함께 나열했습니다.

3) 내가 얻은 목록 (일반적으로 완성되지는 않지만 무언가를 계속 추가하십시오) 후에 나는 게임 흐름을 생각하고 게임을 실행하고 시작하기 위해 필요한 모든 포인트를 강조 표시합니다. 나는 진행중인 작업을 의미하는 노란색을 표시합니다. 완료되면 녹색. 주황색은 개선되었음을 나타내거나 알려진 버그가 있음을 나타냅니다.

도움이 되었기를 바랍니다


0

1.) 모든 프로젝트에 버전 관리를 사용할 가치가 있습니다. 이미 사용 방법을 알고 있다면 아주 작은 것조차도. TortoiseSVN 과 함께 Linux 및 Windows에서 수년간 Subversion을 사용했습니다 . 작은 (<500 줄) 프로젝트를 만들 때도 변경 사항을 취소하고 프로젝트를 잠시 중단하면 내가하고있는 일을 추적 할 수 있도록 저장소를 만듭니다.

2.) 프로젝트의 규모에 따라 다릅니다. 팀과 함께 플레이 테스트하고 배포하려는 경우 버그 추적 시스템을 사용하는 것이 좋습니다. 나는 현재 20k 라인이 넘는 프로젝트에서 솔로 작업을하고 있지만 아티스트는 있지만 SVN 저장소에있는 텍스트 파일에 할 일 목록을 유지합니다. 아직 다른 사람들과 공유 할 필요는 없지만 버그 추적 기능이 없어서 지금 당장 필요합니다. 필요할 때까지 걱정하지 않아도됩니다. 발생할 수있는 최악의 상황은 이미 작성한 버그를 입력하고 수정 한 버그를 제거 / 수정해야한다는 것입니다. 메모의 정신적 추적을 잃기 시작하면 버그 추적기를 얻으십시오.

3.) 종이에 그립니다. 완성 된 게임을 원하는 것으로 시작하여 요점을 적어 둡니다. 그런 다음 충돌 감지에 필요한 것으로 분류하십시오. 네트워크 코드? 플레이어와 몬스터의 종류? 클래스 계층 구조? 비전에서 뒤로 작업하여 처음부터 비전을 구축하는 방법에 대한 명확한 아이디어를 얻습니다. 객체 지향 언어를 사용하고 있다고 가정합니다. 시작하는 데있어 가장 중요한 단계는 클래스 계층을 합리적인 방식으로 설정하는 것입니다. 절대로 다중 상속을 피하기 위해 최선을 다하고 (때로는 피할 수는 없지만) 다이어그램 편집기에서 클래스 관계를 작성하십시오 (나는 Dia 사용 ). 기본 교장은 나중에 두통을 피하는 데 먼 길을갑니다.


참고 : TortoiseSVN은 Subversion 용 Windows 전용 클라이언트입니다.
영차
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.