Giter Club home page Giter Club logo

basic-fantasy-rpg's Introduction

Quick Screenshot

RPG WIP

Getting Started:

  1. Clone this repository. From the command line: git clone https://github.com/Jesse989/basic-fantasy-rpg.
  2. Change into cloned repository, e.g. cd basic-fantasy-rpg.
  3. Run npm install.
  4. Browser should pop up automatically with game running.

Game Play:

Tap on a character to target them. Use an ability by clicking the icons on the right side of the screen.

Each character has a cheese (restore health) and a drink (restore resource) button on the bottom two action bar slots. Barbarian has a 'rage ruby' instead, it fills up his rage bar.

Mage:

  1. Toggle auto attack.

  2. Wand: shoot from a distance.

  3. Arcane Intellect: buff yourself and your friends.

  4. Arcane Missiles: instant attack that ticks three times for 30 damage. Uses a lot of mana.

  5. Frostbolt: does damage and slows your target.

  6. Polymorph: turn your target into a small sheep like thing.

Barbarian:

  1. Toggle auto attack.

  2. Rush: run at target and stun them for 3 seconds.

  3. Gore: apply a dot that does 15 dmg per tick.

  4. Strike: next melee swing does 11 extra damage.

  5. Battle cry: raises attack power by 25.

  6. Intimidate: does 10 damage and slows enemy attacks by 100%.

  7. Hobble: does 7 dmg and causes target to run half as fast.

Priest:

  1. Toggle auto attack.

  2. Wand: shoot from a distance.

  3. Lesser Heal: heal a small amount of friendly targets hit points.

  4. Renew: heals 50 damage over 15 seconds, uses less mana.

Roadmap:

Phase 1:

This phase consists of creating a playable demo, where the user can choose which class to play (Barbarian or Mage to start with). After they choose they will be started in the demo scene, which is a large dungeon filled with groups of enemies. The groups will consist of an orc group: melee, ranged caster, and ranged physical damage. The player will be able to defeat these packs and progress through the dungeon. After a few packs, the player will 'level-up' and gain access to another ability. Ideally this will repeat until the character is up to level 5, and has a solid selection of abilities to use. Also, the player will be able to loot the bodies, and equip/use any items they pick up. Finally, the player should be able to talk to a friendly NPC at the start of the dungeon, who will offer the player a quest: kill x amount of enemies, or collect x amount of quest items. On completion of the quest, the player will receive experience and loot.

Phase 2:

This phase will focus on backend and expansion of existing assets. The most important aspects of this phase will be implementing multi-player capabilities using a node.js back-end which will use socket.io to communicate with the players. In addition, this will allow for accounts to be created and characters to be saved and loaded from different devices, using a simple database such as MongoDB or graphQL.

Other important aspects of phase two will be the expansion of in game assets, for example creating more mobs, more maps, more quests, more abilities, and more playable classes.

Phase 3:

Phase three consists of a completely playable game. The user accesses the game (either through their browser, or on their phone as a PWA or browser). After the user logs in, they will be brought to a character screen where they can choose their previously created characters, or create a new character.

After they choose their character, they will be logged into the game world at their previous in game location.

At this point there will be multi-player capabilities, and a mini-raid/dungeon. Players will be able to work together to defeat epic Mobs that drop epic loot.

Please notice, this game is very early in development and there are a lot of things to complete, however that being said, there is a large framework in place that will enable tons of options and playability.

Credits:

First off, thank you to Richard Davey and the rest of the Phaser3 development team. This game engine is a blast to work with, the documentation is up to date and vast, and the Phaser3 examples are a huge resource. This game would not exist without Phaser3, and it has been inspiring to watch its development and growth over the last year.

https://phaser.io/phaser3

Big thanks to 0x72 for his awesome work on the open-source tileset. Here is the link to his page on itch.io. Check it out if you get a minute, the quality is amazing for a free asset.

https://0x72.itch.io/16x16-dungeon-tileset

Thanks to Yandeu for the awesome template. Quickest and most painless way to get setup and coding when you want Phaser3, Webpack, Babel, and other great stuff. Here is the link:

https://github.com/yandeu/phaser-project-template-es6

Here is some documentation for the Combat System if you have questions:

https://codepen.io/Jesse989/full/vPgPGY

basic-fantasy-rpg's People

Contributors

jesse989 avatar kwchan19 avatar yandeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

basic-fantasy-rpg's Issues

Polymorph animation

We need a polymorph animation, which will of course be played by the target of the mages polymorph spell. Use a creature from the master sprite sheet, or create your own cute little critter.

Orc Archer

Need someone to create the Orc Archer mob.

This would include:

  1. Using the mob template and creating a new mob called "Orc Archer"
  2. Creating a 'shoot' ability (ranged of course).
  3. Create a new OrcArcherAI.js and make it similar to the OrcAI,js, except this one should check if the target is within ranged distance (instead of melee distance) and if so, it should use its shot ability.

You can use the Orc body animations for now until we have a shoot animation.

Mage spell: Polymorph

Create a mage ability that will turn the target into a sheep (or whatever other animal you would like instead).

Check out the other mage abilities for some ideas on how to implement it.

Mage animations

Mage animations need to be created and added. An outline of the process (notice also that there are separate animations for weapons/hands, AND for the body, this is so swapping out weapons can be easier and more modular):

  1. Locate the master_spritesheet.png in ./src/assets.
  2. Identify which character to use for mage: (only a couple options, should be easy).
  3. Cut the sprite out of the spritesheet, make sure it is 16x16 pixels.
  4. Create a new image that is 5 frames long and one 1 frame high (remember, each frame is 16 px).
  5. Edit each frame to make an animation!
  6. Save animation in the correct folder (anims), using the same naming convention (name_action_spritesheet.png).
    Once you get this far you can either submit a pull request and have it merged, or if you feel comfortable you can go ahead and try to wire it up.

If you decide to implement it, here are the additional steps:

  1. open ./src/scripts/scenes/preloadScene.js.
  2. using the same code as the barbarian uses for the same action, create an entry for your new spritesheet.
  3. Next, go to the animationCreator.js in the same folder, and add an entry for your spritesheet, once again copying the most relevant example from the barbarian.
  4. The last step is to go into the Mage.js file and change the animation name string to 'mage'.

Please let me know if you have any questions or issues!

Dialogue system

The game needs a way to display dialogue between characters.

For instance, in order to start a quest the player will need to be able to have a conversation with the quest giver. This would involve:

  1. A container with a background that the text will be shown in.
  2. The text itself.
  3. Buttons or links (a way to interact with the character).

Let me know if you would like to work on this, it would help out a lot!!

Animations: spell casting

Need some spell casting animations:
Need some of each spell school:

  1. Fire
  2. Frost
  3. Arcane
  4. Shadow
  5. Holy

These will be played by the caster while they are in the process of casting, so something like glowing hands that move a little bit would work.

New Maps

In order for the completion of Phase 1, the character will need to be able to play through enough content to level up and learn all the abilities that become unlocked.

This means the starting map needs to be big enough to explore and contain enough mobs to complete the quests.

We need someone to create a large and well planned out beginning level.

If you open the current map in tiled you should have access to everything you need to expand the map.

Let me know if you would like to attempt this, or if you have any questions.

Title scene

We need a really great title scene, if anyone has expertise in this area please claim this issue.

Don't worry about the name at this time, we will come up with something. Just pick something awesome for a placeholder, who knows, it might stick!

For now the scene should load up with the page, and have a "start" button at the very least.

I encourage you to go further though and implement a character selection part as well.

Let me know if you have any questions or if you need help wiring it up.

Cheers!

Mage spell: Fire Blast

Fire Blast spell needs to be implemented:

This would be a great first issue, everything is set up and ready to go, the spell just needs to be implemented correctly. There are plenty of examples in the barbarian folder, and in the completed mage spells.

  1. file location: src/scripts/objects/classTemplates/mage/abilities/fireBlast.js
  2. description is already in file, and it is already wired up.
  3. test it by targeting enemy and pressing 7.

As always, please feel free to let me know if you have any questions or ideas.

Priest class

Need someone to create the priest class.

Closely related to the Mage class, because they both are casters who wear cloth, and have similar primary stats.

You could start out by copying the mage class, and changing the constructor a little bit if you need.

The abilities are the main difference, but that is the fun part!

Once you are done add it into the main scene and enable the swapping, so the player can control him as well, and cast some heals when the part starts to get low.

Mage spell: Fireball

Fireball spell needs to be implemented:

This would be a great first issue, everything is set up and ready to go, the spell just needs to be implemented correctly. There are plenty of examples in the barbarian folder, and in the completed mage spells.

  1. file location: src/scripts/objects/classTemplates/mage/abilities/fireball.js
  2. description is already in file, and it is already wired up.
  3. test it by targeting enemy and pressing 6.

As always, please feel free to let me know if you have any questions or ideas.

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.