3D 모델을 만들거나 좋은 모델을 찾는 방법을 알아야하기 때문에 3D를 피하십시오. 이러한 모델을로드하는 방법 (종종 서사시 작업 자체가 슬프게도)과 화면에 그리는 방법을 알아야합니다 (예 : OpenGL 또는 DirectX는 적은 이득을 얻기 위해 많은 작업을 수행하며 jMonkeyEngine 과 같은 엔진조차도 기본 3D 지식과 함께 엔진 활용 방법에 대한 지식이 필요합니다. 2D 이미지를 화면에 블리 팅하고 이동시키는 것은 정점, 재질, 뷰 행렬, 변형 등을 처리하는 것보다 훨씬 간단합니다.
내장 Java 라이브러리 및 클래스 (Graphics2D, ImageIO, AWT 마우스 및 키보드 리스너, Canvas, Java Sound API 등)를 사용하십시오. 다른 라이브러리를 찾는 대신 이러한 점을 고수하면 얻을 수있는 이점은 다음과 같습니다. 이미 알고 있지만 (어느 정도) 잘 테스트되고 안정적이며 일반적으로 이해가되며 온라인 문서와 리소스가 풍부하며 이식성이 뛰어납니다. 네이티브 라이브러리와 함께 추가 라이브러리를 설치하는 것에 대해 걱정할 필요가 없습니다.
미리 작은 코드 스 니펫 라이브러리를 빌드하십시오. 여기에는 이미지로드, 이미지를 화면 위의 위치에 그리기, 이미지 크기 조절 및 기타 효과, 사운드 재생, 배경 음악 반복, 경계 상자 충돌 감지, 텍스트 그리기 등이 포함됩니다. 또한 프레임 (또는 애플릿)을 열고 캔버스를 추가하는 캔버스 응용 프로그램이 있으며 캔버스의 페인트 및 다시 그리기 방법을 재정의해야하며 스레드가 캔버스 다시 그리기 방법 (또는 타이머를 호출)을 반복해야합니다. 를 검색하면 이러한 내용을 배울 수 있습니다 Java 2D game programming
. 대학 도서관에 액세스 할 수 있다고 가정하면, 많은 훌륭한 Java 게임 서적을 준비해야합니다. 위에서 언급 한 스 니펫과 내가 놓친 다른 부분을 확인하고 살펴보세요.
사전에 팀과 소스 제어 및 작업 분할을 연습하십시오.Subversion, Git, Mercurial 등을 사용 하시겠습니까? 모든 사람의 컴퓨터가 동일한 최신 버전의 Java로 설정되어 있습니까? 저장소를 작성하고, 일부 파일을 커미트 / 푸시하고, 모든 사용자가 저장소를 체크 아웃하고 시스템으로 이동할 준비가되었는지 확인하십시오. 'hello world'앱을 커밋하고 모든 사람이 앱을 가져 와서 수정 및 커밋 할 수 있는지 확인하십시오. 병합을 처리하는 방법을 알고 있는지 확인하십시오 (완전한 커뮤니케이션이나 페어 프로그래밍으로 완전히 피하거나 병합 도구를 사용하는 방법에 관계없이). 또는 소스 제어에 익숙하지 않은 경우 작동하는 솔루션을 찾아야합니다. 세 번째 사람이 예술이나 소리 또는 다른 것을하는 동안 페어 프로그래밍이든, 처음부터 정리해야합니다. 그렇지 않으면 많은 시간을 낭비하게됩니다.
무료 미디어를 제공하는 웹 사이트 링크를 북마크하십시오. 여기에 다른 질문에 나열된 이러한 유형의 사이트가 상당히 많았습니다. freesound 와 같은 사이트처음부터 다시 만들 시간이 없을 때 게임에서 사용할 유용한 미디어를 빠르게 찾을 수 있습니다. 물론이 사이트를 즐겨 찾기에 추가하여 문제가 발생하면 질문 할 수 있습니다. gamedev.net 포럼과 같은 포럼을 책갈피로 지정하여 답변을 검색 할 수 있습니다. 타사 라이브러리를 사용하기로 선택한 경우 해당 웹 사이트를 책갈피하십시오. 이 책갈피를 폴더로 구성하고 가능한 한 많이 가져 와서 세 사람 모두 동일한 유용한 책갈피 라이브러리를 갖도록 공유하십시오. 이 책갈피를 수집하고 유형 / 제목별로 구성하는 데 시간이 많이 걸리지 않지만 프로젝트 중간에 모든 웹 사이트를 기억할 필요가없는 경우 시간을 절약 할 수 있습니다.
더 많은 제안은 "게임 개발 경쟁을 준비하는 방법"이라는 질문에 대한 답변을 참조하십시오. .
귀하의 질문의 나머지 부분을 해결하기 위해 ... 일반적인 조언입니다 : 높은 목표로하지 않습니다 . 그러나 준비 방법 (예 : 위의 제안) 및 Java 기술에 따라 크게 달라질 수 있습니다. 이것은 당신의 역사를 바탕으로 한 개인적인 판단이지만, 게임을 한 역사를 가진 사람이 없기 때문에 (필요한 시간을 판단 할 수는 없습니다) 정말 낮은 목표를 정하십시오 . 고급 개념 없이도 2D로 쉽게 구현할 수있는 기본 아이디어를 생각해보십시오 (예 : 픽셀 충돌, 미친 물리 계산, 입자 효과 등 방지). 그런 다음 우선 순위 목록 을 작성 하십시오.게임 기능을 최대한 자세하게 설명합니다 (예 : 각 기능을 가능한 한 많은 작업으로 분리). 이런 식으로, 당신은 가능한 한 목록을 아래로 내려 가며, 우선 순위가 낮은 작업을 수행하지 않는다면 큰 문제가되지 않습니다. 이것은 신중하게 수행해야합니다 (시간이 끝날 때 여전히 기능적인 게임이 필요하므로 수행해야 할 최소 작업 세트가 있으며 일부 작업은 다른 작업에 의존합니다). 시간이 얼마나 걸리는지 모르는 경우 가장 좋은 방법입니다.