하루 또는 이틀 안에 자바 게임 [닫기]


9

우리는 자바에서 학교 프로젝트 (University, first year)로 간단한 게임을하려고하는 세 사람 입니다. 게임은 객체 지향적이어야합니다. 우리는 시간이 많지 않습니다 . 10-20 시간이 정상입니다. 우리 중 누구도 게임 개발에 대한 경험이 없지만 Java에 대한 공정한 기술을 보유하고 있습니다.

우리는 정확히 어떤 종류의 게임을 선택할 수 있으며, 그것이 문제가있는 곳입니다. 우리는 얼마나 높이 목표를 정해야합니까? 경쟁이 있기 때문에 우리는 우리가 가진 시간에 최고의 게임을 만들고 싶습니다. 3D 게임은 비현실적입니까? 게임 엔진 / 라이브러리를 사용해야합니까? 어떤 종류의 기능을 피해야합니까?


4
3D는 게임 개발자 경험이 없다는 점을 고려하여 시간에 관계없이 너무 높은 목표를 설정하고 있습니다. ; P
공산주의 오리

슬프게도, 나는 : P
Øyvind

탁구! 패들, 공은 자신의 물건이 있습니다, 점수를 추가합니다. 공은 패들에게 방향을 -1만큼 곱합니다. 공이 다른 팀의 패들 지점을지나 가면 공을 다른 플레이어에게 제공하십시오. 아니면 너무 쉬운가요?>
Spooks

아마도 우리는 더 발전하기 쉬운 개념이지만 더 창의적이고 창의적인 개념을 목표로 삼아야한다고 생각합니다.
Øyvind

1
우리와 게임을 공유하는 것은 어떻습니까? :)
ashes999

답변:


23

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로 쉽게 구현할 수있는 기본 아이디어를 생각해보십시오 (예 : 픽셀 충돌, 미친 물리 계산, 입자 효과 등 방지). 그런 다음 우선 순위 목록 을 작성 하십시오.게임 기능을 최대한 자세하게 설명합니다 (예 : 각 기능을 가능한 한 많은 작업으로 분리). 이런 식으로, 당신은 가능한 한 목록을 아래로 내려 가며, 우선 순위가 낮은 작업을 수행하지 않는다면 큰 문제가되지 않습니다. 이것은 신중하게 수행해야합니다 (시간이 끝날 때 여전히 기능적인 게임이 필요하므로 수행해야 할 최소 작업 세트가 있으며 일부 작업은 다른 작업에 의존합니다). 시간이 얼마나 걸리는지 모르는 경우 가장 좋은 방법입니다.


훌륭한 조언입니다.
Alexander Gessler 2016 년

1
좋은 지적입니다. 비록 소스 제어가 초보자들에게 더 복잡하게 만들 수 있다고 생각하지만 (누군가 레포를 엉망으로 만든다고 상상해보십시오). 시간이 중요 할 때는 새로운 도구를 사용하지 않아야합니다. 그러나 이미 VCS에 익숙하다면 반드시 사용해야합니다.
bummzack

4
낮은 순위를 목표로하고 우선 순위가 지정된 목록을 사용하는 것에 대한 Ricket의 조언은 훌륭합니다. 위험을 최소화하고 반복을 늘리는 것입니다. 달리기 전에 8 시간 동안 일해야하는 상황을 피하려고합니다. 제대로 작동하지 않거나 시간이 오래 걸리면 아무 것도 없을 수 있습니다. 대신 1 시간 이내에 게임을 시작한 다음 나머지 10 시간 동안 물건을 추가하고 테스트하고 정제하십시오. 게임을 계속하면서 더 많은 것을 찾을 수 있습니다.
amitp

@bummzack 동의합니다! 그것은 실제로 방해가 될 수 있으므로 연습하고 확신하는 것이 중요하지만 올바르게 사용하면 매우 훌륭하고 유용 할 수 있습니다.
Ricket

빠른 작업을 수행하는 가장 좋은 방법은 극단적 인 프로그래밍 방식 (svns보다 낫습니다)으로하는 것입니다. 이는 전체 팀이 하나의 컴퓨터 앞에 함께 앉아 있음을 의미합니다. 소규모 팀 (최대 2-3)에서 효과적입니다. 당신은 서로를 지원하고 문제는 더 빨리 해결됩니다-당신은 좌절하지 마십시오.
Notabene

2

너무 높이 겨냥하지 마십시오. 관심있는 것을 골라 그 주위에 간단한 것을 만드십시오. 예 : 물리 엔진에 대해 배우고 싶을 수도 있습니다. 토템 파괴자 또는 이와 유사한 물리 퍼즐을 만드 시겠습니까? 핵심 요소를 중심으로 시도하고 AI, 정교한 렌더링 / 그래픽 / 셰이더 등과 같은 다른 복잡한 요소는 포함하지 마십시오.

측면 에 초점을 맞추고 그에 맞는 게임 메커니즘을 찾으십시오. 3D에 관심이 있다면 게임은 틱택 토처럼 간단하지만 화면에 좋은 3D 그래픽을 얻는 데 집중할 수 있습니다.

한 번에 너무 많은 새로운 것을 배우려고하지 마십시오. 기존 프레임 워크 / 도구를 최대한 활용하십시오.

이것을 마무리하기 위해, "시작하기"게임에 대한 아이디어가 있습니다 : "날개를 벌 수있는"좋은 게임은 무엇입니까?

업데이트 : 당신은 시간이 정말 짧기 때문에, "배워야 할 새로운 것들"을 절대적으로 줄입니다. 물리 엔진은 한번도 사용하지 않은 경우 이미 과잉 상태 일 수 있습니다. 또한 잘 정의되고 작은 규칙 세트와 제한된 양의 게임 상태로 이미 알고있는 게임 메커니즘을 선택하십시오.


2

3D 게임 작성 경험이 없다면 3D 아이디어를 즉시 중단하십시오. 대신 간단한 게임 플레이 개념에 중점을두고 간단한 2D 그래픽을 사용하여 구현해보십시오. 게임 메커니즘을 먼저 구현해야합니다. 이전에 완료 한 후에도 정교한 시각 효과를 추가 할 수 있습니다.

그러나 게임 플레이가없는 게임은 게임이 아니지만 멋진 그래픽이없는 게임은 여전히 ​​재미있을 수 있습니다.

20 ~ 30 일 시간은 당신이 그렇게 좋은 게임에 대한 약간의 시간이 정말 계획이 필요하고 신중하게 작업을 우선 순위 또는 적절한 결과를 얻을 수 없을거야.


좋은 지적 :)
Øyvind
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.