![Logo](https://magicbane.com/images/MBLogo.jpg) # Magicbane Open-Source MMO Project ### *The Community written Shadowbane emulator* [Magicbane](http://www.magicbane.com)
[Public Repository](http://repo.magicbane.com)
> Magicbane is an emulator for the long dead but much beloved Ubisoft MMO, [Shadowbane](https://en.wikipedia.org/wiki/Shadowbane). The project was founded in 2013 with the concept of free availability of gameplay; players unencumbered by any factor other than a desire to again play a game they once loved. A game where the developers do not play is guaranteed to be the fairest game. The Magicbane Team has wanted to open source Shadowbane for half a decade. We are excited to now finally have the opportunity, along with some new technology, to truly democratize Shadowbane. - Written in some 80k lines of Java 8 and bash. - Project with real infrastructure; Production and development servers supporting multiple containerized apps. - MagicBox container technology enables _instant deployment_ and trouble free development on modest hardware. - MagicBox plugin capability allows for new and interesting player experiences. ## Contributing - Inbound == Outbound. - IntelliJ is the supported IDE. - Write code today see it running on the Magicbane production server tomorrow. ## Project setup **Prerequisites**: - Git - IntelliJ - Java 8 JDK - Account on the Magicbane [Public Repository](http://repo.magicbane.com) Copy the HTTP link if you haven't yet installed a public key: ![CopyUrl](https://www.magicbane.com/Development/images/repo.png) - Clone the Magicbane public repo to your local machine using the copied URL. ![CloneURL](https://www.magicbane.com/Development/images/intellij1.png) - Under Settings->VersionControl->Git make sure to turn off these two settings. ![CommitOff](https://www.magicbane.com/Development/images/commit.png) - Select the Project Structure settings within the IDE. ![ProjectStructure](https://www.magicbane.com/Development/images/projectstructure.png) - Select Java 8 as the IDE target as shown. ![Java8](https://www.magicbane.com/Development/images/project.png) - Delete and recreate content root pointing at the **Server** directory. - Make sure the Language Level still reflects Java 8. - The IDE should now autodetect the cloned source. ![hmm](https://www.magicbane.com/Development/images/module.png) Magicbane currently has the following dependencies.
- [EnumBitSet](https://github.com/claudemartin/enum-bit-set) - [HikariCP](https://github.com/brettwooldridge/HikariCP) - [JDA](https://github.com/DV8FromTheWorld/JDA) - [JodaTime](https://github.com/JodaOrg/joda-time) - [TinyLog](https://github.com/tinylog-org/tinylog/tree/v1.3) - [MySqlConnector](https://dev.mysql.com/downloads/connector/j/) They are all directly obtainable from a running MagicBox instance. ``` docker cp magicbox:/usr/share/java/EnumBitSet.jar Dependencies/``` Add the jar files as project libraries as shown. ![Libs](https://www.magicbane.com/Development/images/libraries.png) You should now be able to build the game! ![Build](https://magicbane.com/Development/images/buildproject.png) ### Next Steps You can now move onto the [Development Workflow](http://repo.magicbane.com/MagicBane/Server/wiki/Development-workflow) or [MagicBox Setup](http://repo.magicbane.com/MagicBane/Server/wiki/MagicBox-:-Magicbane-in-a-Box) pages for further information. Support is also available through the Magicbane [Discord server](www.magicbane.com). Feel free to stop in and pick Magicbot's brain!