Home

Awesome

HSOG-requester

2 TIME GRAND PRIZE WINNER OF THE GOLEM GITCOIN GR9 HACKATHON (Open track, Gaming on Golem) https://gitcoin.co/hackathon/gr9/?org=golemfactory

Associated Provider Project https://github.com/ChrisHelmsC/HearthStoneSimulationsOnGolem

Related Presentation https://drive.google.com/file/d/1ValDiXT4MLZl6B-lbtOmVHOzWXfj8oWR/view?usp=sharing

Related Video https://www.youtube.com/watch?v=b650X3D7P1k

NOTICE: This is a hackathon project and the quality of code is not guaranteed. Please do not judge anything for being messy, gross, heinous, ridiculous, ineffecient, convoluted, of poor quality, poorly designed, noobish, hackey, or downright disgusting. Everything in this project was written in a small amount of time and with little to no planning.

Table of Contents

Introduction

This project is designed to be run on the Golem Network (https://www.golem.network) as a requestor. It is intended to manage multiple instances of the HearthStoneSimulationsOnGolem provider image, located at https://github.com/ChrisHelmsC/HearthStoneSimulationsOnGolem.

This project is designed to help the HearthStone community in the design and building of decks. Users can provide a specific deck build and strategy to the application, and HearthStoneOnGolem is designed to run a large number of simulated games using that data. The results of each simulation will collected and combined into a single stat sheet that provides valuable information on the deck's performance and results. The deck can then be tweaked and then run again, until the desired result is produced.

Some development knowledge is required to use the application in its current state, as no front-end has been built and modifications may require code level changes.

Setup

Infile Definition

The infile is used to define the data that will be used to run the simulations. InFiles are defined based on an interface in /src/util/in.file.ts. An example infile example.in.file.json has also been included in the root directory. At the time of writing, an infile should contain:

Definitions of data for two players:

Output

The application output includes the following for each simulation run:

Once all simulations have been run, the applications combines all of the statistical outputs into one aggregated output. This aggregated outut provides a look at overall stats and performance of the decks and strategies used within the infile. This is located at dist/logging/output/fullreport and should be the first thing you check when the application is finished running.

Note: The FullReport outputs statistics in a [min, mean, max] format, which are computed from the data points collected over all of the simulations run.