Java 공부를 하고 있지만 "객체 지향 프로그래밍이 좋다.." 라는 말의 의미를 알고있긴 하지만 실제로 개발을 체감해본적은 많이 없다는 생각이 들었다.
결국은 SPRING도 객체 지향 설계를 도와준다는점이 큰 장점인 프레임워크이기도하고 여러모로 해당 부분에 대한 공부의 필요성을 느꼈다.
그래서 터미널 기반의 RPG 게임을 개발해보자!! 라는 생각을 하게됐고
Spring과 JPA를 공부하면서 데이터를 어떤 데이터를 통해 CRUD 기능을 수행해야 하는지 TABLE이 늘어나니까 점점 더 헷갈리기 시작했다. 그래서 JDBC를 사용하며 실제쿼리문을 날려보면서 RPG 게임을 구현해봐야겠다 라고 생각했다.
참고로 JDBC는 자바에서 데이터베이스(MYSQL을 쓸거다)에 접근 할 수 있도록 하는 자바 API이다. JPA가 그것을 편리한 메서드로 대신 해줬는데 JDBC를 사용하면 그 매서드 안에 있는 쿼리문을 내가 직접 작성하는 과정도 거쳐야 한다고 보면 되겠다.
그러면 객체지향 프로그래밍과 , JPA의 편리함에 대해 조금 더 느낄 수 있는 프로젝트가 되지 않을까 기대해본다.
일단은 오늘은 일단 설계만 해봤다!
게임 화면 계획
프로그램이 시작되면 캐릭터 생성, 불러오기 중에 선택 할 수 있고
캐릭터 생성시 닉네임, 직업을 입력받으면 레벨, 경험치, 공격력 등등이 초기 값으로 세팅 된다. 그리고 이미 생성해둔 캐릭터를 불러 오는건 플레이어의 이름을 기준으로 조회 할 것이다.
생성, 불러오기 중 하나를 선택하면 이후에 메인화면으로 이동하고
던전, 상점, 게임 나가기 중에 선택을 할 수 있다.
던전은 또 난이도 별로 나뉘고 각각의 던전에는 몬스터들이 다른 스펙을 가지고 존재한다. 그리고 각 던전마다 입장가능한 레벨 제한도 구현 할 것 같다.
던전에 입장하면 사냥이 시작된다. 몬스터와 유저의 서로의 공격 속도에 따라서 전투가 진행되고 진행 될때 유저가 스킬이나 아이템을 사용하면 그 효과가 적용이 된다. 사냥에 성공하면 몬스터가 보상을 준 아이템과 경험치를 받는다. 물론 받는 경험치는 몬스터마다 다르다. 유저가 지면 경험치를 드랍하고 메인화면을 나가게된다.
상점은 장비, 물약 상점 두가지 정도를 계획하고 있고
물건 판매, 구매 정도의 기능을 구현 할 것 같다.
일단 초기 계획은 이렇고 실제로 구현하다보면 변경사항이 생길 것 같긴하다.
두팔^^
ERD
https://www.erdcloud.com/ ERD 설계에 좋은 ERD 클라우들 라는 프로그램을 사용했다, 처음 써봤는데 UI도 멋있고 아주 편리했다.
여튼 데이터는 위에서 전체적인 게임 진행 상황을 설계한 대로 구상해보았다.
화면이 필요없는 터미널 기반의 게임이다보니 조금 맘편히 구현 할 수 있지 않을까.. 했지만 설계만 했는데도 어떻게 구현하면 좋을지에 대해 마음에 걸리는 부분이 꽤 있다. 예를 들어 '몬스터와의 전투가 진행되는 와중에 어떻게 스킬,아이템 등을 입력받을까', '공격속도를 다르게 하려면 어떻게 각각의 쓰레드를 사용해야하는데 쓰레드를 잘 이용할 수 있을까' 등등 JDBC도 처음 써봐서 기본적인 생성 조회에서도 버벅이지 않을까 걱정이 되긴한다. 잘 되겠지..?
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ