All Projects → jedld → natural_20

jedld / natural_20

Licence: MIT license
This is a text-based game engine that implements the D&D 5th edition ruleset. A sample adventure is included in this repository

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to natural 20

AsLib
🎨: RPG map maker (paint tool)
Stars: ✭ 82 (+36.67%)
Mutual labels:  rpg-game, rpg-maker
WuXiaRPG
《武侠与江湖》,菜鸟一只,第一次使用GitHub,一个Libgdx游戏框架做的武侠沙盘角色扮演游戏。
Stars: ✭ 20 (-66.67%)
Mutual labels:  rpg-game
rpgwizard
2D RPG Game creator
Stars: ✭ 37 (-38.33%)
Mutual labels:  rpg-maker
mega-rpg
A discord bot where you can build an empire, recruit a devastating army and level up your epic hero. All of this so you can explore and conquer the world!
Stars: ✭ 31 (-48.33%)
Mutual labels:  rpg-game
EAGLE-RGSS3
老鹰的脚本小巢
Stars: ✭ 21 (-65%)
Mutual labels:  rpg-maker
VXA-OS
Most complete and secure free 2D online game creation tool from RPG Maker.
Stars: ✭ 14 (-76.67%)
Mutual labels:  rpg-maker
TemplePlus
ToEE hooks, extensions and fixes
Stars: ✭ 73 (+21.67%)
Mutual labels:  rpg-game
flare
A Simple Browser Based Game.
Stars: ✭ 85 (+41.67%)
Mutual labels:  rpg-game
games-wabot
Games-wabot is RPG Bot Whatsapp. Now support Multi-device!!, check branch multi-device
Stars: ✭ 165 (+175%)
Mutual labels:  rpg-game
hevadea
🗺 A game about exploring a randomly generated world.
Stars: ✭ 29 (-51.67%)
Mutual labels:  rpg-game
rpgmpacker
Simple CLI program for packaging RPG Maker games to use in an automated build/deploy pipeline.
Stars: ✭ 19 (-68.33%)
Mutual labels:  rpg-maker
myxy
用libGDX开发的梦幻西游
Stars: ✭ 24 (-60%)
Mutual labels:  rpg-game
Z25d
javafx 2.5d rpg game
Stars: ✭ 37 (-38.33%)
Mutual labels:  rpg-game
Luminari-Source
Current Source Code for LuminariMUD - A Pathfinder/D20 Multi User Dungeon
Stars: ✭ 37 (-38.33%)
Mutual labels:  rpg-game
TRPGMaker
Tactic Role-Playing Games Maker for Unity
Stars: ✭ 24 (-60%)
Mutual labels:  rpg-maker
ForgE
Simple clone of RPG maker using LibGdx
Stars: ✭ 17 (-71.67%)
Mutual labels:  rpg-maker
ApocaBot
ApocaBot: A Discord Bot for PbtA Games
Stars: ✭ 30 (-50%)
Mutual labels:  rpg-game
Freedom-Hunter
Monster Hunter like action RPG game
Stars: ✭ 71 (+18.33%)
Mutual labels:  rpg-game
eureka
Old-school CRPG engine, editor and game
Stars: ✭ 41 (-31.67%)
Mutual labels:  rpg-game
rpg-dice-roller
📱 RPG Dice Roller, Number Generator, Coin Flip - Available on Google Play Store - Made with React Native | Styled-Components
Stars: ✭ 15 (-75%)
Mutual labels:  rpg-game

Natural20

A Ruby toolkit to create your own text based DnD 5th Edition RPG games or to quickly test drive certain creature encounters if you are a DM.

Features:

  • Accurate DnD 5e ruleset implementation using the Open Game License
  • Line of Sight computation with Lighting simulation (dim, dark areas)
  • Simulation of doors, traps, treasure chests and cover
  • Rudimentary AI and pathfinding
  • Text based UI
  • Support for automatic and manual dice rolling
  • Easily extensible to incorporate in your own games

Supported Races:

  • Human
  • Elf
  • Halfling
  • Dwarf
  • More to come

Supported Classes;

  • Fighter
  • Rogue
  • Wizard
  • More to come

Installation

  • Install ruby 2.5 or later

Add this line to your application's Gemfile if you plan to use the game engine in an adventure of your own otherwise you can just clone this repository locally using git clone:

gem 'natural_20'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install natural_20

Usage

To quickly try this out, clone this repository, in the working folder start the game engine it will load the default adventure included in this repository:

bin/nat20

See below for a description of the adventure

Adventure Tutorial

The default adventure in this story is meant to showcase the game engine, it contains a small dungeon with doors and traps as well as goblins and a dangerous owlbear. you are to lead a party of 2 to steal the treasure behind one of those doors.

You can find the adventure specific files in the following locations:

char_classes/ characters/ items/ npcs/ races/ maps/game_map.yml game.yml

These are all text readable for you to customize to your liking.

Screenshots

Screenshot from 2021-02-06 13-14-48 Screenshot from 2021-02-06 13-15-13 Screenshot from 2021-02-06 13-15-37

Creating your own adventures

You can generate a skeleton adventure using:

nat20author

A prompt based system will launch for you to create your own game.

The end result will be a folder containing a bunch of YAML files describing your game

Map making guide

A map is a YAML file that consists of the following:

  • Base Layer - contains terrain information like ground, grass, walls, doors, traps and various obstacles
  • Meta Layer - contains information about dynamic objects like player tokens, NPCs
  • Light Layer - contains information about static lights in the map
  • Legend - A mapping from the layers to details about the terrain and tokens
  • Map Triggers - A map level trigger

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/natural_20. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Natural20 project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].