Game classes and play over network.
Previously in Forge we used to face situations when GUI was directly called from game classes. Luckily, after the game module was extracted this is no longer possible.
Now it's time to go further with that great divide and limit client's access to game classes. The actual state of game allows the client inputs (eg: pay mana ones) or code that still remains in GUI module to directly activate card's abilities, to change state of combat, potentially look into other players' decks and hands and even manipulate cards in those zones. Because all the data is stored in the same process, so any code may perform almost any change in every module.
When game state departs onto a remote server application, what data are the clients going to operate?
How will players pay mana or choose an ability to play then? Will there be the devmode and its cheats working?
Which part of game state has to be transferred to client? Which classes are going to hold that data?
I have some vision of how implement that, yet I would like to get to know your opinions to learn how much our ideas match and to have a chance to adjust my vision basing on your opinions.
Now it's time to go further with that great divide and limit client's access to game classes. The actual state of game allows the client inputs (eg: pay mana ones) or code that still remains in GUI module to directly activate card's abilities, to change state of combat, potentially look into other players' decks and hands and even manipulate cards in those zones. Because all the data is stored in the same process, so any code may perform almost any change in every module.
When game state departs onto a remote server application, what data are the clients going to operate?
How will players pay mana or choose an ability to play then? Will there be the devmode and its cheats working?
Which part of game state has to be transferred to client? Which classes are going to hold that data?
I have some vision of how implement that, yet I would like to get to know your opinions to learn how much our ideas match and to have a chance to adjust my vision basing on your opinions.