진박사의 일상

[작품소개] SimpleCraft - Java 본문

프로그래밍

[작품소개] SimpleCraft - Java

진박사. 2021. 6. 30. 15:22

DrJin/SimpleCraftUI: My HighSchool Java Project. 내 고등학교 자바 프로젝트. 그나마 지금까지 한 것 중에선 이게 가장 나은듯. (github.com)

 

DrJin/SimpleCraftUI

My HighSchool Java Project. 내 고등학교 자바 프로젝트. 그나마 지금까지 한 것 중에선 이게 가장 나은듯. - DrJin/SimpleCraftUI

github.com

고등학교 때 만들었던 프로젝트이지만 아직까지도 개인적으로 가장 기억에 남는 프로젝트 중 하나.

Java의 객체지향 구조를 이해하는데 가장 도움을 주었던 프로젝트로 아직까지 그때의 이해를 바탕으로 객체지향을 이해하고 있다는 점에서 내 개발 역량에서 상당히 중요한 경험이었다.

 

간단한 소개.

1. 게임 소개

유명한 게임 중 하나인 마인 크래프트를 모델로 삼은 게임으로써 게임 내 주요 기능 중 세개인 채광과 벌목, 제작 기능을 구현시켰다.

두가지의 종류의 도구와 세가지의 재료를 활용하여 6가지의 서로 다른 도구 아이템을 제작 할 수 있다.

 

2. 상속 구조

 

게임 내 오브젝트 간의 상속 구조

- 도구 - Instrument class의 상속과 ingredient Interface을 구현한 객체들

1) Ax

벌목을 할 때 작업 효율을 높여줌

2) Pickax

채광을 할 때 작업 효율을 높여줌

3) Lighter

탈 수 있는 아이템을 태움

- 재료 - Ingredient interface

1) 나무

벌목을 통해 얻을 수 있으며 가장 약한 재료이자 도구를 만들때 필수적으로 필요하다.

잘 탄다.

2)

채광을 통해 비교적 쉽게 얻을 수 있으며 나무보다 단단하다.

타지 않는다.

3)

채광을 통해 비교적 어렵게 얻을 수 있으며 가장 단단하며 부싯돌과 함께 라이터의 재료로 쓰인다.

타지 않는다.

 

구현한 재료 인터페이스에 따라 도구의 강도나 성질이 변화하고 상속한 도구의 클래스에 따라 도구의 종류가 결정되는 형태.

 

 

3. 게임 화면

좌측 상단의 텐트로 가면 아이템 제작이 가능하고 돌이나 나무로 가면 채집을 진행할 수 있다.

아이템 제작의 예시

도구를 제작하는데 필요한 종류와 갯수가 인벤토리에 있으면 아이템 제작을 할 수 있다.

ex) 벌목시 나오는 나뭇조각 2개로 나무막대기를 만들 수 있다.

벌목 및 채광의 예시

벌목과 채광을 할 경우 도구의 재료가 더 좋은 재료일수록 더 효율이 높아진다. 그리고 벌목과 채광이 끝나면 같은 개수만큼의 나무나 돌 오브젝트가 리스폰된다.