Code Monkey home page Code Monkey logo

ex_venture's Introduction

ExVenture

Build Status Trello Discord Patreon

ExVenture Logo

A text based MMO server written in Elixir.

Features

Powerful web admin

  • Everything is editable by the web admin panel and live in the game on save
  • There are no text files to edit, everything is stored in PostgreSQL

Web client

  • Using Phoenix Channels, ExVenture ships with a built in web client
  • Hosted by the app itself, accessible by browsing to /play

Cross Game Chat

  • ExVenture fully supports the Grapevine network
  • Supports Grapevine character registration and OAuth login
  • Cross game channels
  • Cross game tells

Front Page

  • News announcements
  • Help is web accessible
  • Classes, skills, and races are all available on the home page
  • Send and receive in game mail from your account page
  • Chat with players in the game from the web chat

Security

  • The telnet connection does not allow passwords to be entered over plaintext
  • Add TOTP to your account

Resilient

  • Crashes are contained in the room that they occur and those processes restart cleanly
  • Player connections are not dropped during session recovery

Multi-node support

  • Use the power of elixir to start a cluster for your game
  • The world is spread across the entire cluster
  • Building on local resiliency, the app will stay alive if a node goes down

Games Running ExVenture

If you are running an ExVenture MUD and want to get on this list, let us know on the Discord!

Requirements

  • PostgreSQL 10
  • Elixir 1.8.0
  • Erlang 21.0.5
  • node.js 8.6

Setup

mix deps.get
mix compile
cd assets && npm install && node run build && cd ..
mix ecto.reset
mix run --no-halt

This will start a server on port 5555 that you can connect with using the local.tin tintin++ config. Ecto reset will include a sample area, classes, skills, and a login. You can also load http://localhost:4000/ in your browser for the admin panel and web client.

Running Tests

MIX_ENV=test mix ecto.create
MIX_ENV=test mix ecto.migrate
mix test

Web Client

A web client is hosted by the game. Once it is running locally, you can access it via http://localhost:4000/play.

Web Client

Admin Panel

There is an admin panel located at http://locahost:4000/admin that you can build out the game in. Create zones, rooms, npcs, items, etc. in the panel. They will become live instantly on creating or updating.

You can see more on exventure.org.

Admin Dashboard

Deployment

See exventure.org for deployment setup.

Metrics

Prometheus metrics are set up and will be reported on /metrics. You may want to have nginx deny requests to this endpoint or whitelist it for IPs, etc.

ex_venture's People

Contributors

oestrich avatar lorecrafting avatar shanesveller avatar paulsullivanjr avatar dependabot[bot] avatar nomicflux avatar deep-spaced avatar vadi2 avatar bsharpe avatar thedandroid avatar jdesrosiers avatar justuseapen avatar

Watchers

James Cloos avatar  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.