Open analytic-bias opened 4 years ago
Possible techstack: Unity3D, IKVM
Is there already a project similar to my proposal?
Is what I'm proposing allowed by you the developers?
How is the current XMage codebase in terms of compliace with the comprehensive rulebook?
Is there anyone wanting to join me developing this?
Unity uses C#, right? would that present an issue?
@theelk801 I don't think so. There's something called IKVM that allows such interoperation, and I'm going through the codes under Mage folder and it seems it's rather well-designed and decoupled.
Hi developers.
If it's not too bothering, could you please write and publish a short document on the API of XMage codebase like "invoke this to setup a deck, that for starting the game, that to play a card, that to tap" etc.
Player.java
. Search implements Player
for different implementation (empty/stub implementation, unit test, HumanPlayer, ComputerPlayer). Also can be usefull third party/console client implementation try from #4575.SessionHandler.java
. I recommends to search for LoadPlayer
from LoadTest
-- it's the simpler client realization for server connection and game start.@zhangyutong926
You might be interested in give Matag a look. (Disclaimer: I have done almost trivial contributions to it.)
MaTaG has a great UI (see below). Whereas its backend is quite limited, I think it could be possible to modify it to work as an XMage client. Just be aware that MaTaG's license is AGPL, so if it gets integrated into the XMage client, its license should be switched to AGPL...
Intergating project/service (bridge between xmage server/client and third party app) can be made at any license.
It always depends on the definition of "integrating".
The advantage I see in such a licensing choice is that this would prevent any attempt to "privatize" the code by any third-party. This is the case for Magarena (GPL3), Forge (GPL3), and MaTaG (AGPL3-or-later). Whereas the current XMage licensing choice (MIT) does not protect against this potential problem, its license is fortunately compatible with the others I mentioned. This is, XMage's code can be integrated into the other projects'.
It's not a code interaction. It's a separate apps.
I was working on this issue (integration with third party clients). And I came to the conclusion about the following architecture:
So no needs to rewrite network engine, no needs to change any licenses, all code compatible with any xmage servers. All must works from the box:
@JayDi85 Both are aspects of the same thing. There is no contradiction between what you said and what I said. Please, read carefully what I wrote :-)
@JayDi85 BTW: I updated my earlier comments. You may want to read them again :-)
@allentiak can you explain potential problems with MIT license for XMage (by example)?
Sure, @JayDi85 :-)
(Disclaimer: I am not a lawyer, and this is not legal advise - only my opinion.)
The main potential problem I see for XMage is simple: Loss of freedom by its users.
Anyone (including WoTC/Hasbro) can "privatize" XMage from its users. This is, they can integrate its code into their own product (this is, to take advantage of the huge collective work made by the XMage community) and prevent whoever uses that modified version from sharing those benefits back with the rest of the XMage community.
On the contrary, no one can "privatize" MaTaG (AGPL-licensed). Anyone who interacts with it (even a subscriber via a network) has the right to benefit from any improvements made to the program by whoever provides access to it, and to share them back upstream
In the case of the other projects I mentioned (Forge and Magarena), their license (GPL) does not fully protect them when using a client/server model (such as XMage's). People need direct access to the binaries to gain the right to benefit from any improvements made to the version they are using.
For a pragmatic rationale on how to choose a (libre software) license, I recommend this excellent article by Bruce Perens about Libre Software Licensing. It is the one I used when recommending the use of AGPL to the developer of MaTaG. (Yes, it was me :)
As a final reflection, it is clear to me that using the "open source" term helps preventing people from realizing these potential problems.
--Leandro
@zhangyutong926 Still interested in implementing this?
@cute-sayako Still interested in implementing this?
I would like to make something like MTGA with the codebase of XMage. The goal is to make it have the pros of both two games: friendly interface and good new-player experience (so that we can convert people to MTG, which is important) from MTGA and 10000+ cards and freedom (open sourced, no colletible function, no money invovled) from XMage.
Ideally, what I would expect is that it will be compatible with XMage codebase for all future versions (i.e. all future cards can be wrote once in Java and then usable to both XMage and the Unity3D recreation).
Here's some questions for the community: