Git Product home page Git Product logo

duratoremu's Introduction

DuratorEmu

This is a World of Warcraft 1.1.2.4125 tiny server emulator, written in Python, which tries to remain small, clean and understandable. The goal is to handle several player and basic stuff like chat and groups to have some fun with old school exploration techniques.

I'll repeat that again: it is a TINY emulator, which means that it is not meant for serious use (you shouldn't run a serious private server anyway). There are very few sanity checks beside basic auth, and almost nothing that a client wouldn't do is checked for. It is also not meant to be an efficient implementation. It is in Python, and nothing is done to circumvent the GIL. The threaded connections use locks pretty much anywhere because I didn't want to do a full-fledged concurrency system, and I'm not even implying that I could do that correctly. It would mean that I have to look in my reading notes about the readers-writers problems and stuff, and these notes are almost unreadable.

Use it to have fun exploring with a few friends, that's all.

Demo: https://youtu.be/uucpgeK3ILk

Installation

Dependencies:

  • Python 3.4+
  • MySQL
  • Peewee, the Python ORM used
  • A Python MySQL driver
  • PyShgck

Python 3.4+

Get that from their website.

MySQL

Get a community package from their website, anything slightly recent should be fine. Once the MySQL server is running, you need to setup a database and an account to access this database.

Quick MySQL database setup:

  • CREATE DATABASE durator;
  • CREATE USER 'durator'@'%' IDENTIFIED BY 'durator'
  • GRANT ALL PRIVILEGES ON durator.* TO 'durator'@'%' IDENTIFIED BY 'durator';

Feel free to use other credentials (but update the database code configuration), and to narrow the hostname to something more private than a full wildcard.

Peewee

Available in PyPI:

pip install peewee

Python MySQL driver

You only need one of them, preferably PyMySQL because that's the one I use, but both are available in PyPI:

pip install pymysql
# OR
pip install mysqldb

PyShgck

Grab this tag and install it with the setup batch file.

Configuration

Configure the database and create an account with the database client

cd DuratorEmu
python3 -m durator.main db
# use the commands 'install' and 'account'

Then just use start.bat, or manually start the login and world servers in different consoles:

python3 -m durator.main login
python3 -m durator.main world

Documentation

Some related projects and documentation that I used, first for Vanilla (mostly 1.12):

More recent but still interesting sources:

Also, thanks to #modcraft for being nice folks :]

duratoremu's People

Contributors

dece avatar

Watchers

 avatar  avatar

Forkers

wangxujun163163

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.