| Author |
Message |
Greg Schmidt (Gschmidt2)
New member Username: Gschmidt2
Post Number: 192 Registered: 1-2007
| | Posted on Thursday, July 05, 2018 - 4:23 pm: | |
Hello All, I just wanted to let everyone know that I've been working on a new project which I call "Zillions.NET". The idea is to bring Zillions into the 21st century by allowing custom plug-ins to be written as a .NET assembly (effectively a DLL) in a .NET language such as C#. I currently have this working, but will need some time to create a finished example, additional support tools (such as self play ability for assessing AI strength), and to package it with documentation and such in order to turn it into a proper Zillions submission. Just like the current Axiom plug-in, Zillions.NET is designed to work with both Zillions.exe and Axiom.exe (i.e. works with both the Zillions and Axiom game client). So perhaps I should call it "Zillions/Axiom.NET". The advantage of using the Axiom client is that your game can take full advantage of 64 bit computers, since the Axiom client can now be built for 64 bit. Zillions is and will likely always remain a 32 bit app. However, keep in mind that 32 bit applications will run on 64 bit computers so there will be no compatibility issues. This means that with a single package that deploys your game, you can: 1) Host your game via Zillions.exe on 32 bit and 64 bit computers (although it will run as a 32 bit app in the latter case too). This is really nothing new and I mention it only to point out that this behavior will continue to work even when using Zillions.NET. 2) Host your game via Axiom.exe on 32 and 64 bit computers (it will run as a 32 bit app in the first case, and 64 bit in the second case). Note: technically this works because the .NET plug-in is built for "AnyCPU" which means it will JIT for both 32 bit or 64 bit depending upon the Operating System. The inspiration for this work is motivated by the desire to incorporate relatively recent developments in game AI technology such as MCTS and Deep Neural Networks. The ability to use modern .NET languages will undoubtedly support this goal. I'm personally excited by this project as one of my longer term goals is to develop a "world class" program that plays the game of "Cluster". Feel free to respond if any of this is of interest to you. Regards, Greg P.S. Jeff/Mark - If you're listening, I would love to see a new release of Zillions ported to 64 bit! I'm not sure it would be that difficult to do and it's arguably the single most high value (per effort) update that would keep Zillions going strong in the years to come. |
david bennett (Dpoly)
New member Username: Dpoly
Post Number: 16 Registered: 4-2017
| | Posted on Thursday, July 05, 2018 - 11:47 pm: | |
Congratulations! Now all you have to do is link it up to the language engine and Unity player provided by Polygamo (also .NET) and you've got a serious contender for playing Zillions games on multiple platforms for years to come. |
Greg Schmidt (Gschmidt2)
New member Username: Gschmidt2
Post Number: 193 Registered: 1-2007
| | Posted on Friday, July 06, 2018 - 9:16 pm: | |
Thanks David! For the time being, I'll be happy if I can use C# to develop a strong AI! . As I'm sure you know, MCTS requires a lot of memory, hence 64 bit support becomes important. Also, for me, the .NET environment is a joy compared to C++. I'm doing this with a very specific purpose in mind right now, and that is an attempt to write a world class program that plays "Cluster" (by Philip Shoptaugh). BTW, I like what you've done with Polygamo! |
david bennett (Dpoly)
New member Username: Dpoly
Post Number: 17 Registered: 4-2017
| | Posted on Saturday, July 07, 2018 - 2:46 am: | |
Thanks! Polygamo can compile and run almost all Zillions games, apart from a couple of chess-specific things. It has an MCTS solver implementing a published algorithm. The main problems are (a) it takes a lot of iterations to converge, so it can be slow and (b) it has no tree pruning, so it can spend a lot of time on useless branches. You'll need to address those issues if you want a good outcome. Memory size was not a problem I ran into. Yes, I've been a fan of C# since 2000 (pre-release), and it leads easily into Unity. |
Greg Schmidt (Gschmidt2)
New member Username: Gschmidt2
Post Number: 194 Registered: 1-2007
| | Posted on Saturday, July 07, 2018 - 5:10 am: | |
David - One reason I'm concerned about memory is that I want to continue supporting the "Forever" thinking time setting that Zillions/Axiom provides. My computer has 16gb and it is exhausted after several minutes of thinking time. |
david bennett (Dpoly)
New member Username: Dpoly
Post Number: 18 Registered: 4-2017
| | Posted on Saturday, July 07, 2018 - 11:29 am: | |
Not everyone has the patient to wait several minutes for a move, but in any case it looks like you have that same problem I have with MCTS: slow convergence. You need to combine it with an evaluation function that lets you prune the tree. |
Greg Schmidt (Gschmidt2)
New member Username: Gschmidt2
Post Number: 195 Registered: 1-2007
| | Posted on Saturday, July 07, 2018 - 12:35 pm: | |
Yes, "stock" MCTS definitely has it's limitations, and the "AlphaZero" approach aside, I agree that sprinkling in a bit of domain knowledge can greatly improve the situation. |
Shigeki Watanabe (Watanabe)
New member Username: Watanabe
Post Number: 18 Registered: 3-2018
| | Posted on Sunday, July 08, 2018 - 2:40 pm: | |
That is a very interesting attempt. I am very much looking forward to it!! |
Greg Schmidt (Gschmidt2)
New member Username: Gschmidt2
Post Number: 196 Registered: 1-2007
| | Posted on Wednesday, July 11, 2018 - 12:37 am: | |
Thank you Shigeki. I have the basics working, but I need to develop some more tools first, such as the ability to automatically play a series of games against a pair of different AIs. I don't have much spare time, so it may be a few months before I have a published release. |