Git Product home page Git Product logo

metastone's Introduction

#MetaStone#

What is it?

MetaStone is a simulator for the online collectible card game (CCG) Hearthstone® by Activison Blizzard written in Java. It strives to be a useful tool for card value analyzation, deck building and performance evaluation. There is also support for custom cards, allowing users to implement their own card inventions and testing them within the simulator engine. MetaStone tries to re-implement all game mechanics and rules from the original game as accurately as possible.

What is it not?

This is no Hearthstone replacement or clone. Please do not request better graphical effects, sounds or anything which makes it feel more like Hearthstone. There won't be any mode to battle against other human players. This is a tool meant for advanced players; if you just want to play Hearthstone, please play the real game.

Can I contribute?

Sure! There is still a lot to do and anybody willing to contribute is welcome

What needs to be done?

  • UI improvements in general are welcome
  • we always need more unit tests! If you don't know what to test, take a look at http://hearthstone.gamepedia.com/Advanced_rulebook and just pick an example of card interaction from that wiki page
  • code refactorings to make the code simpler and/or faster
  • there is a bug in the code and you know how to fix it? Great!
  • better AI: at the moment the most advanced AI is 'Game State Value', however it is very subpar compared to human players. A more sophisticated AI would be a huge boon
  • also consider having a look at the open issues
  • anything else you would like to improve

How do I compile the code on my machine?

  • clone the repo from GitHub
  • download and install Gradle (most recent version 2.7 is recommended, but older version should also work)
  • you need to add the /bin folder of Gradle to your PATH environment variable if you are on Windows
  • now navigate to the folder with your local git repo, open Command Prompt/Terminal and type 'gradle eclipse'
  • this will download all required dependencies and create appropriate .project files
  • now you can open up Eclipse and choose 'Import -> Existing projects into workspace'
  • after the import is done, be sure to check the Build Path settings in Eclipse. you may have to change the path to your JDK installation there (JDK 1.8u60 is required)
  • that's it, you should now be able to launch the project from Eclipse ('gradle run' on the command line should also work, but it is much slower than the launch from within Eclipse) (This guides assumes you are using Eclipse, other IDEs should work too. I think IntelliJ can even directly import Gradle projects)

How do I build my own cards?

This feature is in very early stages and there is no official support yet. There is no documentation at all. If you really want to start right now:

  • navigate to your MetaStone install folder
  • look for a folder named 'cards'
  • create a new folder named 'custom'
  • any .json file in there will be parsed and treated like built-in cards
  • to learn the format it is advised to copy an existing card, change the filename and the 'id' attribute (important!) and make small changes
  • you have to restart MetaStone for new cards to be detected
  • there is no notification if you make an error, the card will just not work or the program may crash
  • the card format is subject to change; cards you create now may not work in future versions

metastone's People

Contributors

demilich1 avatar webadict avatar joe1chen avatar wowsporkles avatar

Watchers

 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.