Mini Old School Maplestory

Game Programming with Python Only

Dec-06-2023


0/7Revival of my childhood game addiction.
  • 1/7
  • Idea



       Maplestory is a 20-year-old classic 2D RPG game, but still beloved by many users and possesses solid fandom. The aim of this term project is to rerun this game in an old-school style and mini version.

Classic version of Maplestory >

  • 2/7
  • Feature Comparison

Original Maplestory
  • The key features of the original version of this game consist of three parts:
  • I. Exploring diverse and beautiful maps using portals.
  • II. Hunt monsters and grow the character’s ability. (character properties, skillsets, and items) Eventually,fight stronger monsters.
  • III. Intensive interaction with NPC characters through quests and real game players by forming parties to deal with the difficult quests.

Oldschool mini MapleStory
  • However, in this term project, to make a playable project in three weeks, I’m planning to concentrate only on making at least two different maps for users. Also, I will confine characters' properties to their HP(physical strength), MP(skill strength), and EXP(level gauge) and add a few skills players could achieve and perform along the game.

  • 3/7
  • Supported Game Features

1. Navigation: Move, jump, portal transfer

2. Basic interaction: Attack default, eat item

3. Skills:
  • Teleport: Player teleports to random position
  • Final attack: Player hit zone increases
  • Flame attack: Fire columns gernerated
  • Electric attack: Lightening attack and monsters’ movement freezes for seconds
Game help screen

  • 4/7
  • User Story Board 



  • 5/7
  • MVP Plan



1. Structural Plan

Code Organization
  • At a very high level, I need four classes.
  • Class Interface: Store interface elements such as buttons, window size, and coordinates.
  • Class Map: Store diverse map layers, and map objects, and define how these should be displayed in users’ windows.
  • Class Character: Store properties and action sets that characters perform. Deals with every state change of a character.
  • Class Monster: Store properties and action sets that monsters perform. There may be diverse sub-classes of class monsters, to represent multiple monsters appearing in the game.

UI
  • Duplicate the user interface of the original maple story as much as possibl. The main components are:
  • The main map on the centre.
  • Small guide map in the top left corner.
  • Bottom ribbon bar. Shows the character’s level, HP, MP, EXP, and skills it can perform.
  • Character property window, where players can build the character’s states(character properties and skills)

UX
  • Players can navigate freely in the game environment.
  • They can explore using map objects such as ropes, boxes, houses, etc.
  • Whenever they hunt, motion interaction between players and monsters is enjoyable.

2. Algorithmic Plan
  • Collision detection. Walking, jumping, climbing a rope, and falling.
  • Detecting Hp, Mp, Exp state, dealing with increasing skill set.
  • Programming characters and monsters interaction: Monsters are attacked by characters,characters are attacked by monsters, when characters hunt and perform skills,when monsters are dead, when characters are dead.

  • 6/7
  • Project Gallery






  • 7/7
  • Game Play Video

Game play video fast paced





Check out more cool stuffs:
Proceed to Arch + Nik


Nik Kim

GitHub
ML Blog
YouTube


A New Turing Test

I envision machines that pass my own version of the Turing test: “Can we play with them?” I remember the moments of playing co-op video games with my little brother under a shabby tent made of chairs and blankets. I cherish these small, precious memories—they’re still alive within me.
Favourite...

- Fungus: Mushrooms
- Animal: Dogs
- Series: Arcane (Jinx is my #1)
- Movie: EEAT
- Game: To The Moon
- Instrument: Guitar