Comments (6)
But, when we need to re-calculate the enchanted states
--- which is a very often operation in game flow ---
we need to grab the original states from database
WHAT'S IMPORTANT IS...
If we're disconnected and then reconnected,
the game log contains only the current states.
That is, we have no idea what enchantments yield the current states.
In this situation, a fallback method might be
- Use the current state as the Base states
- Enchantments applied after this moment will be applied as usual
In this way, we can guarantee the re-calculation will be correct.
Even, we can deal with silence, as long as we load the base states from the database.
So, we might need to store un-enchanted states in entity.
BTW, this comes with a price.
- The game state has a larger memory footprint.
from hearthstone-ai.
Yes, we should store unenchanted states. So we can do enchantment re-calculation for aura-update phase.
from hearthstone-ai.
For the base stats, we could
- reload them from card database
--> Since card database is designed as a raw array, which supports fast access to card's raw data
For the enchantment recalculation issue when parsing from log, we could...
- The base states are fetched from card database
- Add aura minions normally
- Let the game engine resolve the board
- Compare the differences of the resolved board and the log-parsed board
- Add a special enchantment which counters the differences
Now, we should have a consistency states.
from hearthstone-ai.
Fixed in commit: 6a48407
from hearthstone-ai.
Some fields (e.g., owner, a.k.a. controller, player) does not resides in card database
So we still need to store the original states in entity
from hearthstone-ai.
Fixed in commit: fc9d27f
from hearthstone-ai.
Related Issues (20)
- generate_train_data depends on `neural_net`, where does `neural_net` come from? HOT 1
- Compilation with VS 2017 community (Windows)? HOT 9
- Metadata file 'GameEngineCppCLI.dll' could not be found HOT 1
- You are a bad person and should be isolated.
- run 'make' under generate_train_data failed
- What do resource feature represent in the game?
- judge: refine Recorder HOT 1
- Binaries HOT 1
- move mcts::board::* to engine module HOT 1
- randomize hidden information in judger HOT 1
- refine neural network implementation
- don't need to use double here
- integrate with TensorFlow C++ HOT 6
- I can't follow Installation process HOT 2
- Needs Simulator so we don't need the actual game to train data. HOT 3
- It is not working HOT 2
- BadImageFormatException when trying to run HearthstoneAI
- Building on macOS HOT 1
- contact email HOT 1
- Binaries?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hearthstone-ai.