Commiting to svn & QuestMode discussion
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
22 posts
• Page 2 of 2 • 1, 2
Re: Commiting to svn & QuestMode discussion
by Braids » 14 Aug 2011, 23:54
@Hellfish: you posted while i was writing this Library of Leng. i have your back. here is some optimism.
of course, i'm also repeating some of what you just said.
Rob is one of the "owners" of forge. although we function without an official hierarchy, he has some de facto privilege in saying what is Forge and what is not. because the code is GNU Public Licensed, you have many freedoms. you could make a fork of the entire thing and call it "Max Forge". better yet, you could create a "plug-in" that isn't part of the official forge code, but works with it to provide the functionality you want.
i would suggest opening topics on this forum, especially for changing the quest rewards and distinguishing cards by set. if you're going to make something less hard coded, we will need documentation for the XML for it to be mentally digestible.
you mentioned MVC. in the case of Forge, how would you separate the model from the controller? usually the model is a database or file format, right? i've been operating under the assumption that separating the model from the controller breaks object oriented encapsulation, so i have been keeping them together.
i would implore you not to lose sight of your dreams, and also not to take Forge and try to create a fork right away. if you work with us, i think Forge as a whole will be better off!

Wizards of the Coast (WotC) can make life uncomfortable and annoying by serving legal documents to the sites that host Forge-related information. on two occasions, they have already done so. the first was resolved by a simple project name change. i do not remember the details of the second, but it was more substantive. the more Forge encroaches on their perceived intellectual property and profits, the more persistent they will be. yes, we can evade them by changing code repositories, going peer-to-peer, etc., but it is just plain annoying.Max mtg wrote:Why? The code can be improved enoght to allow this kind of gameplay... it's a matter of efforts and developers' skills working on this project.Rob Cashwalker wrote:Forge will NEVER be a human vs human app.
The wizards - they won't be happy, but who cares? They won't be able to persecute developers. That are players who use their copyrighted content, they are numberless and annonymous, they are legion.
Rob is one of the "owners" of forge. although we function without an official hierarchy, he has some de facto privilege in saying what is Forge and what is not. because the code is GNU Public Licensed, you have many freedoms. you could make a fork of the entire thing and call it "Max Forge". better yet, you could create a "plug-in" that isn't part of the official forge code, but works with it to provide the functionality you want.
all WotC has to argue is that if a single person plays Forge instead of purchasing Duels of the Planeswalkers 2012 or cards in Magic the Gathering Online, they have lost profit on their intellectual property.Max mtg wrote:DotP has uncomfortable deck building UI and a limited set of decks, 2012 being even worse than the 2010 edition, it also lacks cards collection, (as well as experience, achievements and so on...) - it is not a competitor niether to Forge, nor MTGO.
i will now share with you Braids's anarchaic development postulate. As a proposed change to the product approaches the end user's or another developer's experience, the more consensus you will need to garner among the developers for that change.Max mtg wrote:QuestMode first of all - better collection management, more reasonable rewards (ability to choose the prize booster edition or block at least) involving both UI and logics, while sticking to the MVC pattern to keep code like quest.addRares(10) away from Gui_WinLose classes. I would also love to make cards from different editions distinguishable, be stored as different cards, to make UNH-Plains a reward more rare than common lands from core sets.Chris H. wrote:What sort of changes would you like to make? And what sort of changes would you be capable of making? Play balance can be a tricky issue. Quest mode is fun to play and we all enjoy it ... granted, improvemnts to the quest mode can be a good thing
I don't like booster generation rules and fantasy-quest-store contents being hardcoded for now - would like to store these settings in XMLs... that is while I've looked through quite a little part of code.
i would suggest opening topics on this forum, especially for changing the quest rewards and distinguishing cards by set. if you're going to make something less hard coded, we will need documentation for the XML for it to be mentally digestible.
you mentioned MVC. in the case of Forge, how would you separate the model from the controller? usually the model is a database or file format, right? i've been operating under the assumption that separating the model from the controller breaks object oriented encapsulation, so i have been keeping them together.
implementing a minimax AI could help you indirectly with this. minimax needs to treat players more equally, without regard to species. in other words, it needs to be able to handle the human player and the computer player interchangeably. each could implement a more generic player interface. it is possible that someone later could implement some sort of remote player class that implements that interface, without having to change too much.Max mtg wrote:Later switch to duel UI, help separating logics from UI, develop a protocol so that two forge clients can communicate to each other directly or via a trusted "judge" forge-server.
aspirations are good. but sadly, we have some technical debt. our large CheckStyle, FindBugs, and PMD outputs are clear evidence of this. Forge is a large system with some design missteps {and way too much static cling}. making small changes can affect this system in unexpected ways.Max mtg wrote:That is a big plan and I doubt if I'll be able to complete everything in practice, however these are my aspirations.
i would implore you not to lose sight of your dreams, and also not to take Forge and try to create a fork right away. if you work with us, i think Forge as a whole will be better off!
"That is the dumbest thing I've ever seen." --Rob Cashwalker, regarding Innistrad double-sided cards. One of the first times he and I have ever agreed on something. 

-
Braids - Programmer
- Posts: 556
- Joined: 22 Jun 2011, 00:39
- Location: Unknown. Hobby: Driving myself and others to constructive madness.
- Has thanked: 1 time
- Been thanked: 1 time
Re: Commiting to svn & QuestMode discussion
by Rob Cashwalker » 15 Aug 2011, 01:15
I've been involved with this project since before Rares opened the source code. I do not "own" anything other than the cardforge.org domain, which could be the next target....
That said, someone needs to be a "leader"....
Everytime someone brings up human vs human, we answer "no". Technical challenges are the best excuse, though not impossible, there are AI assumptions in every corner of the game. Who's going to run the judge server?
Seriously, almost every other magic project is designed for human vs human, our niche is AI and the quest mode thing.
That said, someone needs to be a "leader"....
Everytime someone brings up human vs human, we answer "no". Technical challenges are the best excuse, though not impossible, there are AI assumptions in every corner of the game. Who's going to run the judge server?
Seriously, almost every other magic project is designed for human vs human, our niche is AI and the quest mode thing.
The Force will be with you, Always.
-
Rob Cashwalker - Programmer
- Posts: 2167
- Joined: 09 Sep 2008, 15:09
- Location: New York
- Has thanked: 5 times
- Been thanked: 40 times
Re: Commiting to svn & QuestMode discussion
by Max mtg » 15 Aug 2011, 03:23
I have noticed that. Google is not going to protect the project - they are not interested. It's easier for them to ban an account instead of checking if the files mentioned in letter are really voilating something. Slightlymagic.net is a much better hosting - I heard site admin lives in Russia and doesn't need to care about wizards' unhappiness.Hellfish wrote:They can, and in fact must do so periodically, in order to protect their trademark.You may not have noticed the recent move from google code svn->gitorious GIT->Slightlymagic svn. That was because of cease & desist letters from WOTC, the second time they have been sent, I believe.
1. Their "full legal rights" have no power in foreign countries.Hellfish wrote:Because when Forge starts to noticeably impact WOTC's profits (and even before that, see my first quote reply) they are within their full legal right to bring the proverbial hammer down, HARD.
Welp, I started writing this post with the intention of realism rather than pessimism.. Sorry about that.
2. An impact on profit cannot be proven or measured. How can they prove that all those people who downloaded and played Forge-Online for free, would otherwise - that is if forge online never existed - bring their money exactly to Wotc and measure that amount? Why at all are we speaking of any impact? Competitors don't accuse each other of lost profits, do they?
3. Which laws is Forge supposed to break? Patent 5,662,332? Valid only in US, host it abroad and the problem is gone. Call cards 'flat rectangular tokens' and this is no longer a card game. Copyrighted images of cards? Well, maybe... but users download card images by themselves and it is their personal responsibility. Anything else? Or is everyone just frightened by the almighty WotC?
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Commiting to svn & QuestMode discussion
by Rob Cashwalker » 15 Aug 2011, 03:51
The bulk of our copyright laws apply in most countries. If Hasbro has an office in a country, they can extend their legal impact. Notice Apple's lawsuit with Samsung is based in Germany, not the US. Gitorious.org wasn't US based, but their TOS included language for the DMCA, which is US-based legislation. About the only place we could truly operate risk-free would be China.... Next best option seems to be mother Russia.
I happen to like the game that they work their asses off to design... the cardboard version anyway. Ensuring that they can continue to do so by not promoting our project as a Magic Online replacement is a good start. If Wizards/Hasbro killed Magic then Forge would be a dead project anyway.
Competition to Magic are games like Pokemon and Yugioh, not Forge. The only thing somewhat unique to Forge is the quest mode. Otherwise, the only use for Forge is to play Magic. The original reason Rares wrote it was to play with power cards because he wouldn't buy them IRL, part because of money, mostly because of a lack of folks to play with in his remote location. Wizards hasn't made a dime directly from the power cards since they were printed 16 years ago. But M12 and Scars block are still being sold through Wizard's channels and Forge can draft from those sets instead of you going to your local game store to pick up 3 packs per player. So not only is Wizards losing money, the brick and mortar store loses money, hell, Magic Online itself has put some shops out of business.
We have various ideas planned to further remove various card information from the core of the game, into external files, which could be downloaded separate from the game itself. Not so much as legal appeasement, but because it would make the initial download package smaller and external files are easily updated by non-coders.
I happen to like the game that they work their asses off to design... the cardboard version anyway. Ensuring that they can continue to do so by not promoting our project as a Magic Online replacement is a good start. If Wizards/Hasbro killed Magic then Forge would be a dead project anyway.
Competition to Magic are games like Pokemon and Yugioh, not Forge. The only thing somewhat unique to Forge is the quest mode. Otherwise, the only use for Forge is to play Magic. The original reason Rares wrote it was to play with power cards because he wouldn't buy them IRL, part because of money, mostly because of a lack of folks to play with in his remote location. Wizards hasn't made a dime directly from the power cards since they were printed 16 years ago. But M12 and Scars block are still being sold through Wizard's channels and Forge can draft from those sets instead of you going to your local game store to pick up 3 packs per player. So not only is Wizards losing money, the brick and mortar store loses money, hell, Magic Online itself has put some shops out of business.
We have various ideas planned to further remove various card information from the core of the game, into external files, which could be downloaded separate from the game itself. Not so much as legal appeasement, but because it would make the initial download package smaller and external files are easily updated by non-coders.
The Force will be with you, Always.
-
Rob Cashwalker - Programmer
- Posts: 2167
- Joined: 09 Sep 2008, 15:09
- Location: New York
- Has thanked: 5 times
- Been thanked: 40 times
Re: Commiting to svn & QuestMode discussion
by Max mtg » 15 Aug 2011, 04:44
Use sites that are outside of US juristiction. I guess it's already done.Braids wrote:Wizards of the Coast (WotC) can make life uncomfortable and annoying by serving legal documents to the sites that host Forge-related information.
I don't get it. Maybe they would never get any profit from that particular person? Or what if that person _has_ bought DotP'12 or _has_ played several games in MTGO, but didn't like them and switched to Forge?Braids wrote:all WotC has to argue is that if a single person plays Forge instead of purchasing Duels of the Planeswalkers 2012 or cards in Magic the Gathering Online, they have lost profit on their intellectual property.
Sure thing.Braids wrote:i would suggest opening topics on this forum, especially for changing the quest rewards and distinguishing cards by set. if you're going to make something less hard coded, we will need documentation for the XML for it to be mentally digestible.
Yes, I mean to store all that data that describes the game/quest/decks state separately from the code that manipulates it and away from GUI - just in different classes. For instance QuestData has method addRandomRare() - that's bad (model and ctrl are metled together). There should be a separate class for CardCollection, with methods for adding a definite card or a set of them, even if it is just a warper around List<String>. It is controller-class who should determine which card is that random rare and update both model (to ensure it is added to cardpool now) and the view (pop up a messagebox or show it in a list).Braids wrote:you mentioned MVC. in the case of Forge, how would you separate the model from the controller? usually the model is a database or file format, right? i've been operating under the assumption that separating the model from the controller breaks object oriented encapsulation, so i have been keeping them together.
You are right, encapsulation as information hiding mechanism is gone once the data (model) is stored in one class and methods to process it are located in a different one (which I refer to as controller). On the other side it helps avoid having 5000-lines-of-code monster classes.
That would be very nice, so that players can duel, as well it might be like a unit test for AI - to pair two computers and be sure that a stronger deck wins.Braids wrote: in other words, it needs to be able to handle the human player and the computer player interchangeably. each could implement a more generic player interface.
I see. The bare refactoring (meant to improve overall code quality) is not a very interesting and rewarding task. So that I would make some changes and give the related files a better look on the go.Braids wrote:we have some technical debt. our large CheckStyle, FindBugs, and PMD outputs are clear evidence of this.
Last edited by Chris H. on 15 Aug 2011, 12:50, edited 2 times in total.
Reason: Fixed attribution.
Reason: Fixed attribution.
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Commiting to svn & QuestMode discussion
by Max mtg » 15 Aug 2011, 05:54
Gitourious has no reference to DMCA, but they agree to remove stolen copyrighted work. It's common practice.Rob Cashwalker wrote:The bulk of our copyright laws apply in most countries. If Hasbro has an office in a country, they can extend their legal impact. Notice Apple's lawsuit with Samsung is based in Germany, not the US. Gitorious.org wasn't US based, but their TOS included language for the DMCA, which is US-based legislation. About the only place we could truly operate risk-free would be China.... Next best option seems to be mother Russia.
As for me Russia seems way better than China

They won't promote forge or kill Magic. For this to happen Forge has to become much better than Mtgo... how long will it take?Rob Cashwalker wrote:I happen to like the game that they work their asses off to design... the cardboard version anyway. Ensuring that they can continue to do so by not promoting our project as a Magic Online replacement is a good start. If Wizards/Hasbro killed Magic then Forge would be a dead project anyway.
Why dead? Do you think people will forget magic if no more sets are printed? It will at all times have a group of fans, like old times games have now, and simulation programs, such as Forge will be appreciated.
We are competing for human's needs satisfaction, though not in quality but in avaliability of product. Those who cannot or don't want to pay, will play Forge, those who can, will keep playing mtgo.Rob Cashwalker wrote:Competition to Magic are games like Pokemon and Yugioh, not Forge. The only thing somewhat unique to Forge is the quest mode.
Quest mode is unique. It's was a great idea to make an rpg in mtg setting. Though people beg for Shandalaar clone, the quest mode Forge currently has is at least better than nothing.
Sure, it also helps one to get familiar with cards and perform better at tournaments or playing with friends.Rob Cashwalker wrote:Otherwise, the only use for Forge is to play Magic. The original reason Rares wrote it was to play with power cards because he wouldn't buy them IRL, part because of money, mostly because of a lack of folks to play with in his remote location.
When playing with friends offline or at a club, a choice for solid cards is out of question, so the retailes still have a chance to sell their SOM12 packs.Rob Cashwalker wrote:Wizards hasn't made a dime directly from the power cards since they were printed 16 years ago. But M12 and Scars block are still being sold through Wizard's channels and Forge can draft from those sets instead of you going to your local game store to pick up 3 packs per player. So not only is Wizards losing money, the brick and mortar store loses money, hell, Magic Online itself has put some shops out of business.
That would be great.Rob Cashwalker wrote:We have various ideas planned to further remove various card information from the core of the game, into external files, which could be downloaded separate from the game itself. Not so much as legal appeasement, but because it would make the initial download package smaller and external files are easily updated by non-coders.
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Commiting to svn & QuestMode discussion
by Braids » 16 Aug 2011, 02:47
which is why i referred to you as a de facto owner. i do need to correct myself, though. technically, i believe mtgrares {Rares} is the original licensor of the code, so Rares is the one with actual say as to what is and is not Forge. but this person may as well be Rob, who seems to know Rares better than a lot of us.Rob Cashwalker wrote:I've been involved with this project since before Rares opened the source code. I do not "own" anything other than the cardforge.org domain, which could be the next target.... That said, someone needs to be a "leader"....
you are right. besides, the rules-enforcing games will always be many steps behind the virtual tabletops. Online Play Table for example supports just about every card except Falling Star and Chaos Orb, for Circu's sake.Rob Cashwalker wrote:Seriously, almost every other magic project is designed for human vs human, our niche is AI and the quest mode thing.

it's droll how Rob and i agree on the means but not the reason here.Rob Cashwalker wrote:We have various ideas planned to further remove various card information from the core of the game, into external files, which could be downloaded separate from the game itself. Not so much as legal appeasement, but because it would make the initial download package smaller and external files are easily updated by non-coders.

i think you are right about Goblin Hero, the site admin. but last i checked, the actual slightlymagic.net site is in the Bavarian province {Bayern} of Germany.Max mtg wrote:. . . Slightlymagic.net is a much better hosting - I heard site admin lives in Russia and doesn't need to care about wizards' unhappiness.
i would describe our position as cautious and proactive. not fearful.Max mtg wrote:Or is everyone just frightened by the almighty WotC?
i'm not ready to say whether i think that's a bad idea, but i can say that i don't think the system is robust enough to handle the model-controller separation yet. i would prefer we pry the view apart from the model and controller, bundling the last two as the "model" for now. then decide where to go from there. i am talking about refactoring old code. if you want to introduce a controller separation in new code, i think i can stomach that. but please write clear javadoc.Max mtg wrote:Yes, I mean to store all that data that describes the game/quest/decks state separately from the code that manipulates it and away from GUI - just in different classes. For instance QuestData has method addRandomRare() - that's bad (model and ctrl are metled together). There should be a separate class for CardCollection, with methods for adding a definite card or a set of them, even if it is just a warper around List<String>. It is controller-class who should determine which card is that random rare and update both model (to ensure it is added to cardpool now) and the view (pop up a messagebox or show it in a list).Braids wrote:you mentioned MVC. in the case of Forge, how would you separate the model from the controller? . . . i've been operating under the assumption that separating the model from the controller breaks object oriented encapsulation, so i have been keeping them together.

well, there are ways of avoidingMax mtg wrote:You are right, encapsulation as information hiding mechanism is gone once the data (model) is stored in one class and methods to process it are located in a different one (which I refer to as controller). On the other side it helps avoid having 5000-lines-of-code monster classes.
AI versus AI for unit test sounds very nice.Max mtg wrote:That would be very nice, so that players can duel, as well it might be like a unit test for AI - to pair two computers and be sure that a stronger deck wins.Braids wrote: in other words, it needs to be able to handle the human player and the computer player interchangeably. each could implement a more generic player interface.

are you trying to say you'll refactor classes directly related to the features and/or fixes you are implementing? that makes a lot of sense, since you'll be testing those classes more rigorously as well. i hope you won't run into any of Forge's fragility in the process. if i misunderstood you, could you clarify?Max mtg wrote:I see. The bare refactoring (meant to improve overall code quality) is not a very interesting and rewarding task. So that I would make some changes and give the related files a better look on the go.Braids wrote:we have some technical debt. . .
"That is the dumbest thing I've ever seen." --Rob Cashwalker, regarding Innistrad double-sided cards. One of the first times he and I have ever agreed on something. 

-
Braids - Programmer
- Posts: 556
- Joined: 22 Jun 2011, 00:39
- Location: Unknown. Hobby: Driving myself and others to constructive madness.
- Has thanked: 1 time
- Been thanked: 1 time
22 posts
• Page 2 of 2 • 1, 2
Who is online
Users browsing this forum: No registered users and 20 guests