Coder Social home page Coder Social logo

textrpg-in-2008-maplestory's Introduction

TextRPG - 2008 Maplestory

2008년 메이플스토리의 세계관을 추억하기 위한 텍스트 1:1 진행 방식 RPG

2023-1 ANU JAVA 학기말 사이드프로젝트

개발기간

2023.05.09 ~ 2023.06.13 (약 한 달간)

Stacks

  • JAVA
  • Eclipse

개발 동기 및 프로젝트 설명

프로젝트는 RPG(Role-Playing-Game) 방식의 게임을 구현하는 것을 1차 목표로 합니다.

  • RPG 게임이란 플레이어가 게임 내에서 가상의 캐릭터를 조종하고, 그 캐릭터가 세계관에서 경험하고 성장함으로써 자신의 캐릭터를 전략적으로 발전시키는 게임을 말합니다.
  • 본 목표는 제가 과거에 열중했던 메이플스토리라는 RPG 게임을 Jframe을 기반으로 한 텍스트 기반의 1대1 턴제 방식으로 새롭게 재창작 하는 것입니다.
  • 게임은 텍스트 기반 인터페이스를 사용하여 플레이어의 명령을 입력 받고, 게임의 진행 상태를 문자로 출력하는 방식입니다.

More Info

  1. Jframe 라이브러리를 기반으로 한 JTextPane 텍스트창을 메인 게임 화면으로 구성하였습니다.
    (JTextPane은 JTextArea와 다르게 HTML 속성 적용을 지원하여서 이를 채택하였습니다.)

  2. 사용자는 직업, 체력, 마력, 공격력, 레벨, 경험치 등의 필드값들을 가진 한 개의 캐릭터를 조종합니다.

  3. 각 직업별로 플레이어 성장 시 증가하는 필드값의 차이, 보유 스킬등을 다르게 구성합니다. 이는 직업 간 차별화를 두기 위함입니다.
    (전사 클래스는 직업 클래스를 상속받습니다.)

  4. 적 개체(몬스터) 또한 체력, 공격력, 레벨 등의 필드를 보유하고 있습니다.
    현재 15개의 몬스터 클래스를 구현하였습니다.
    (주황버섯 클래스는 몬스터 클래스를 상속받습니다.)

  5. 플레이어와 몬스터 간의 전투 시스템은 캐릭터와 몬스터의 필드값들을 기반으로 한 여러가지 이벤트를 발생 후, 둘 중 한 객체의 HP가 0이 될 때 승패가 결정됩니다. (데미지 계산 공식을 세우고 적용 (명중률과 크리티컬), 전투 중 각종 소비아이템 사용, 직업 별 스킬 적용 등)

    플레이어가 전투에서 승리할 경우, 플레이어의 인스턴스 필드값 증가를 통해 플레이어는 성장하며 더욱 강력해집니다.
    더 강력해진 플레이어는 그에 맞는 상위 적 객체(몬스터)와의 전투를 수행할 수 있습니다.

  6. 인벤토리 시스템을 통해 플레이어는 필요한 아이템을 획득, 사용, 버리거나 관리할 수 있습니다.
    (현재 본 프로젝트는 소비 아이템 관리 기능만 구현하였습니다.)
    (HP를 50 회복해주는 빨간 포션은 - 소비 아이템 – 아이템 클래스를 다중 상속받습니다.)

  7. 세계 지도 & 이동 시스템을 통해 플레이어는 게임 세계를 탐험하고 다른 위치로 이동할 수 있습니다.
    각 위치는 일정 확률로 다양한 종류의 몬스터와의 조우(= 전투 발생) 및 여러 가지 발생 가능 이벤트들을 포함하고 있습니다.
    현재 17개의 맵을 구현하였습니다.

14개의 주요 클래스 연결

  • Main (게임 실행 및 GUI 구성)
  • Game (텍스트 1대1 턴제 기반 주요 로직 수행)
  • Battle (전투 중)
  • Player (플레이어)
  • Monster (각종 몬스터)
  • Location (각종 맵)
  • Inventory (플레이어의 아이템 가방)
  • Item (각종 아이템)
  • ConsumableItem (Item 클래스를 상속받은, 소비 아이템)
  • LootTable (아이템 가방 관리)
  • Job (직업)
  • Skill (스킬)
  • MapManager (맵 객체 연결 및 관리)

사용된 Swing 컴포넌트

  • Jframe
  • Jpanel
  • Jlabel
  • JProgressBar
  • JTextPane
  • JScrollPane
  • JTextField
  • Jbutton
  • ImageIcon

인게임 플레이

image

초안 계획서

미니 프로젝트 20201123 김선혁.pptx

textrpg-in-2008-maplestory's People

Contributors

ouserdev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.