Code Monkey home page Code Monkey logo

adventurerofthelittletown-rpg's Introduction

Text-Based-RPG [Object Oriented Programming]

Notice

Development has ended!

Text Based RPG

I created this repository to make practice of my OOP (Object-Oriented-Programming) skills. In this project, I'm going to make a simple Text Based RPG game that contains basic RPG game characteristics in C# on Windows Form Application.

What are the classes/objects in our game?

For our game, we want to do these things:

  • The player goes to locations.
  • The player gets stronger when level up.
  • The player can trade with vendors/stores in a certain Location.
  • The player may need to have certain items to enter a location.
  • The location might have a quest available.
  • To complete a quest, the player must collect certain items and turn them in.
  • The player can collect items by going to a location and fighting monsters there.
  • The player fights monsters with weapons.
  • The player can use a healing potion while fighting.
  • The player can change the active weapon.
  • The player receives loot items after defeating a monster.
  • After turning in the quest, the player receives reward items.
  • The player can choose to revive by sacrificing max hit points after death.

So, the nouns (classes/objects) in our game will be Player, Location, Item, Quest, Monster, Weapon and Healing Potion. We'll need a few more, but we can start with these.

What's next?

This is a very simple RPG, and there is a lot you can do to expand it.

Here are a few ideas:

  • Save the player's current game to disk, and re-load it later (Currently I did it with XML)
  • Add a level requirement for some items
  • Add a level requirement for some locations
  • Add spells and scrolls
    • Level requirements for the spells
    • Cooldown (turn based) system for the spells
  • Add different kinds of potions: increased damage, critical damage, etc.
  • Add curse system : freeze, paralyze, poison, etc.
    • Add special weapons with curse ability
  • Add randomization to battles
    • Determine if the player hits the monster
    • Determine if the monster hits the player
  • Add player attributes: strength, dexterity, etc.
    • Use attributes in battle: evade chance, critical hit chance, critical damage, etc.
  • Add armor and jewelry
    • Makes it more difficult for the monster to hit the player: defense point, armor etc.
    • Has special benefits: increased chance to hit, increased damage,critical hit chance, etc.
  • Add crafting skills the player can acquire
  • Add crafting recipes the player use
    • Require the appropriate skill
    • Requires components (inventory items)
  • Make some quests repeatable
  • Make quest chains (player must complete the Quest X before they can receive Quest Y)
  • Add pets
    • Can help the player in battle by attacking opponents
    • Can help the player in battle by healing the player
    • Can help the player by cursing the opponents

There are also more programming techniques you can learn to make the program a little cleaner. In our code we already used some of these techniques.

  • LINQ, when searching lists
  • Events/delegates, to handle communication between the logic project and the UI project โ€“ which will let you move more logic code out of the UI project
  • BindingList, so you don't have to repeatedly repopulate the DataGridViews and ComboBox in the UI

What will the game look like?

adventurer of the little town

adventurer of the little town 2

adventurerofthelittletown-rpg's People

Contributors

aerarslan avatar

Stargazers

Burla Nur Korkmaz avatar

Watchers

James Cloos avatar

adventurerofthelittletown-rpg's Issues

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.