Giter Site home page Giter Site logo

hi's Introduction

Legend of the Green Dragon (Core)

Build Status

Legend of the Green Dragon is a text-based RPG originally developed by Eric Stevens and JT Traub as a remake of and homage to the classic BBS Door game, Legend of the Red Dragon, by Seth Able Robinson. You can play it at numerous sites, including http://www.lotgd.net/.

After checking out the developer forums at http://dragonprime.net, it seemed that development had stalled, and specifically, any movement toward more modern technologies and decoupling the game from its web UI was non-existent.

Thus, we sought to create our own rewrite, codenamed Daenerys :)

Goals

  • Headless LotGD: instead of coupling the game with a specific UI, this core game functionality is meant to be wrapped in the interface of your choice.
  • Modular for easy extension.
  • Modern web technologies: PHP 7 since it's familiar to existing LotGD developers, with an appropriate ORM, etc.
  • MVVMC architecture.
    • Model. Of course, we access data through models.
    • View. I lied, there is no view for this core LotGD library! See Headless LotGD goal above.
    • View Model. Instead of a view, we'll have a view model with all the required information to build a view, in a structured format (i.e., in a class).
    • Controller. Game actions and state transitions occur through controllers.
  • Well-documented with as many type hints as PHP 7's limping type system will allow.
  • Well-tested. The only hope of keeping such a large codebase to a low bug count is unit tests. See tests/.

Non-Goals

  • Backward compatibility. It may be controversial since it would mean existing admins can't upgrade to this version, but keeping the old database schema would be seriously limiting to the quality of the codebase. If we actually finish this, then writing an importer wouldn't be too hard.

Learn More

Read more about the game at our wiki.

Here are some good articles to get you started:

  • Gameplay Summary: if you're unfamiliar with the original Legend of the Red Dragon or Legend of the Green Dragon, learn more about what kind of game this is :).
  • Architecture Overview: Get a high-level overview of the pieces of a LotGD game, based on a simple example realm.

Contributing

Looking to help us? Awesome! Check out the Help Wanted Issues to find out what needs to be done, or reach out on Slack.

Lots of communication is happening on our Slack channel. Reach out to austenmc by opening an issue or contacting @austenmc on Dragon Prime.

Some notes:

  • Pull requests cannot be accepted that break the continuous integration checks we have in place (like tests, for example).
  • Please include tests for new functionality. Not sure how to test? Say so in your PR and we'll help you.
  • Our git workflow requires squashing your commits into something that resembles a reasonable story, rebasing them onto master, and pushing instead of merging. We want our commit history to be as clean as possible.

Workflow should be something like:

# Start this flow from master:
git checkout master

# Create a new feature branch, tracking origin/master.
git checkout -b feature/my-feature-branch -t origin/master

# Make some awesome commits and put up a pull request! Don't forget to push your branch to remote before creating the PR. Try something like hub (https://hub.github.com/) if you want to create PRs from the command line.
...

# If necessary, squash your commits to ensure a clean commit history.
git rebase -i

# Edit the last commit message, saying you want to close the PR by adding "closes #[PR number]" to the message.
git commit --amend

# Rebase to ensure you have the latest changes.
git pull --rebase

# Push to remote.
git push origin feature/my-feature-branch:master

# Delete your feature branch.
git branch -D feature/my-feature-branch

Contributors

Leads

Other Contributors

hi's People

Contributors

austenmc avatar vassyli avatar gaeakat 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.