Arimaa Forum (http://arimaa.com/arimaa/forum/cgi/YaBB.cgi)
Arimaa >> Bot Development >> New standalone application
(Message started by: Libor on Aug 21st, 2006, 8:20pm)

Title: New standalone application
Post by Libor on Aug 21st, 2006, 8:20pm
Hi everybody,

four years ago, I've made some chess computer program in C with ability to play against CPU. I've also read a Frederic Friedel's book about computer chess programming. I'm happy to research in this area, where the stupid brute force has almost no place :)

Inspired by the project of Chessbase, I would like to write a small GUI for Arimaa (there's no GUI for non-Windows platform, as I know, so I'll develop it in C#.NET to get more portable version - it could be theoretically playable on Pocket PC, who knows).

From my previous project, I have some components, that allow multilanguage GUI, XML settings (no registry usage, no installing), undo-redo support, dummy-proofing and other good stuff.

The reason for my post is just a terrain recognition. I would like to know, if there are people open to contribute to this project in any way, from translating the GUI to making support for bots, network play, database searcher, or web pages...

Title: Re: New standalone application
Post by seanick on Aug 21st, 2006, 10:57pm
if you make it an open source project, I would most likely contribute as I am debating the same type of thing. however, I know only windows programming- so the best I could do is help with the initial C# code, not porting it to other platforms

Title: Re: New standalone application
Post by Libor on Aug 22nd, 2006, 5:13am
This should be OK, since I keep all the code "manageable" (e.g. not accessing registry, Recycle Bin or other Win32 stuff).
The target licence will be GPL.
I'll do some work today or tommorow to show results, rather than talking about it...

Title: Re: New standalone application
Post by Libor on Aug 23rd, 2006, 7:22pm
OK, there it is. I've put some pre-alpha preview on the web, so you can download an take a look (It's built for Windows with .NET 2.0, but I'll port 1.0 version it on Linux asap):

http://bros.unas.cz/pub/ArimaaNET_preview.zip

I'm not sure about the layout. The bitmap chessboard is placed in the middle of client area and resizes with it. But this is quite slow even when I've used the fastest interpolation.

To make the game more playable, fixed-size chessboard may work faster. There will be also many "tool" controls, like clock, move stack, tutor, chat window etc. I don't know how to solve design problems with this. Should these controls be places on fixed positions on client area or made as tool windows? Any ideas? I want anyboy to tell me his opinion about the desing of this app, this will save much of my work and enhances user's comfort.

Drawing is made through GDI+ and sound works perfectly using FMOD Ex. Everything is under Arimaa or Creative Commons license. The whole project will be under GPL or Arimaa as well (I must read it first). Language engine has been done in my previous project, there's also a translator - application can be translated on the fly through language packs. And almost all resources can be easily changed or added by non-programmers.

Title: Re: New standalone application
Post by seanick on Aug 24th, 2006, 6:38am
I can't seem to download from that URL... it transfers like 14 kB of the file and then stops, then eventually times out. tried it last night and again this morning.
something strange about the server? can you email it to me or something? I can upload it and post a link if so.

Title: Re: New standalone application
Post by i_am_you on Aug 24th, 2006, 11:35am
The download worked fine for me...  ???

Title: Re: New standalone application
Post by Libor on Aug 26th, 2006, 6:50pm
The project is on SourceForge.net from now, please target your questions, suggestions, contributions etc. here:

http://sourceforge.net/projects/arimaa

Title: Re: New standalone application
Post by Libor on Apr 29th, 2007, 8:00pm
I've started working on the project again after a very long delay (work on some commercial software). Stay tuned  ;) I'm  postng news on the SourceForge and trying to make the alpha version available asap.

Title: Re: New standalone application
Post by omar on Apr 30th, 2007, 11:45pm
Feel free to use the Arimaa graphics and sound files. You can download them from here:

http://arimaa.com/arimaa/graphics/

Also I've written some specs on how the javaScript client is going to work. This may be of use to you in making decisions about the GUI.

Omar

Title: Re: New standalone application
Post by Libor on May 1st, 2007, 10:32am
The first preview version of the application can be downloaded from SourceForge (see the link above). From now, I'll post all the changes in the SF news, so if anyone want to have the most up-to-date info, please use Project News RSS feed (I'll post here only the major updates and improvements). I've built this on .NET 2.0 platform, the first usable version will be built on both .NET 2.0 for Windows and Mono 2.0 for Linux, Mac OS, Solaris and few other OSs  (I must first configure my virtual PC with Linux to test Arimaa.NET, but friend showed me it runs on Ubuntu Linux seamlessly).

This is what I have done till now:

1. Board, Move List and Move Generator
2. GUI (board, move list) - you can move pieces and browse move list just like in the web client - in fact, the game is already playable for two humans on local computer :)
4. Sounds with FModEx API (not yet imported into project, but tested and works)
5. Time control (with all the features of official tournament rules, not visible in the preview version)

My goal is to create very standard Arimaa game rather than just a strong computer engine. Arimaa.NET will support several types of players:

- Human Player (local) - a human player playing on his computer
- Network Player (LAN) - other Arimaa.NET client with IP address - should be a human player or any of the named player types...
- Network Player (Arimaa Gameroom) - a player from gameroom, should be a bot or a human player using web client
- CPU Player (Arimaa.NET Engine) - a computer player written as plug-in (.NET assembly (dll), to be precise) running on local computer
- CPU Player (Arimaa Bot) - Arimaa Bot running on local computer

The first versions will be very lightweight, because I want to test them for proper functionality and stability (because of not the best experiences with my previous chess software project that has a minor bug in board setup exploited on final presentation before hundreth people enjoyed by my disappointment of the bug).

I will implement all player types except "Network Player (Arimaa Gameroom)" and "Arimaa Bot" in the  first playable version (0.9 alpha). This player type can be implemented by someone else who wants to help, or by me with more time in future (but playing on gameroom with client app is one of the future priorities and seems not be a hard obstacle). The only engine I will write will be some dummy computer playing random moves just to show an example of working engine for possible developers.

I hope there will be some players interested in the project that write me about the bugs they found or feature requests.

Title: Re: New standalone application
Post by PMertens on May 2nd, 2007, 2:17pm
I am delighted ... and just downloaded your sources.

Might take me a moment to actively participate though ...

Title: Re: New standalone application
Post by Libor on May 8th, 2007, 11:22am
Thanks. The sources are not available now. I want to add enough comments and complete some 0.9 alpha before uploading the C# source code.

The bad news is that I have many exams at the university in the upcoming weeks, so I'll have to reduce time for programming Arimaa.NET and work more on school and my commercial project maintenance.

I hope the version with network play (possibly also in the gameroom, not only TCP/IP) will be available before I'll be completely busy, but no promise.

Title: Re: New standalone application
Post by Fritzlein on May 8th, 2007, 12:09pm
Thanks for your continued work on this project.  I am eager to try out the gameroom player when you get that functionality working.

Also I love your black rabbit forum icon!  Since I'm the white rabbit, does that make you my evil twin?

Title: Re: New standalone application
Post by Libor on May 9th, 2007, 9:23am
Actually, I asked my sister (she studies a school of art) to create a logo for my new Arimaa game. She also keeps this black rabbit called "Joe" and probably used it as a model. But don't worry, my black rabbit is a very weak Arimaa player  ;)

Title: Re: New standalone application
Post by omar on May 18th, 2007, 11:39pm
I tried out the Arimaa.NET client. Looks great. It is quite impressive how much you've implemented in less than a month.

I noticed that if after making a few moves, you go back to move 1b, the gold pieces are not shown. Everything else seemed to be working fine.

If I can ask for one feature it would be to allow the user to click on a square with an arrow to move the piece to that square. I guess I am too used to moving the pieces this way rather then dragging them :-)

I forgot to give the link to the Javascript client specs in my last post. Here it is:
 http://arimaa.com/arimaa/jsClient/specs/

I'm looking forward to seeing the next version.


Title: Re: New standalone application
Post by Libor on May 21st, 2007, 7:55am
Thanks. I have a lot of exams this time, almost no time for programming.

It will be no problem to implement another input method.

Now I'm about to implement event model between several major classes (Board, Player, Game, ...). It's a crucial thing and I want not to make it in hurry. I hope the game will be playable after implementing this.

Title: Re: New standalone application
Post by bozesan_mihai on Jun 7th, 2007, 3:29am
Hi all,
I would like to build an CPU Player (Arimaa Bot) for this application, but I can't fing any links to the C# source code.
I'd like to do this for school (Artificial Intelligence lab), and post it here also, but I don't have enough time to build the UI and all other stuff.
So, if it's open source and I can download the C# (.Net) code from somewhere, please help me out with a link.
Thanks!

Title: Re: New standalone application
Post by Fritzlein on Jun 7th, 2007, 7:54am
Welcome to the wacky world of Arimaa!  You will find some useful files here: http://arimaa.com/arimaa/download/  However, there is nothing in C# available so far, so the code for your bot would make a welcome contribution.

The sample bots are in C and Java.  The game room interface for bots is in Perl.

Good luck getting your own bot up and running!

Title: Re: New standalone application
Post by bozesan_mihai on Jun 7th, 2007, 9:53am
I followed this topic and I have read through the lines that somebody will publish this code soon, and I thought I might get it even if it is not finished yet.
I've never worked with Perl and Java, and it really wouldn't be a pleasure for me to work in C anymore.
I'd really like to contribute to this C# project, but I have a short deadline on this one. So, I could really use the existing code even without the event model between the major classes that Libor says it's working on.
Many thanks!

Title: Re: New standalone application
Post by PMertens on Jun 7th, 2007, 1:57pm
It should be relatively simple to convert the C++ Sample to C# if you know both languages, not that many lines of code ...

Title: Re: New standalone application
Post by bozesan_mihai on Jun 8th, 2007, 2:32am
Libor, do you think that your C# .Net code will be available soon?

Title: Re: New standalone application
Post by Libor on Jun 11th, 2007, 10:58am
I've sent you a message.

For the others: Code is now available at SourceForge.net, but it is still from about 20% complete. I will return to this project when I will have more free time, which I hope will be after about two weeks from now.

Title: Re: New standalone application
Post by leo on Dec 26th, 2007, 8:03pm
What's up? I'm not a C# programmer but I guess I could help at least about the structure of the program (I made various basic Arimaa board interfaces in C++ with OpenGL and GDI+ to help me in bot development).

With GDI+, image resizing and resampling should be done only on window resizing, then cached images optimized for the current graphic surface should be created and used until the next resizing. Does GDI+ on .NET port well to non-Windows platforms?

The really tricky part is the gameroom protocol though. A standalone client should keep up with the changes and improvements made to the web interface, and handle all the unexpexted intricacies inherent to internet programming. :)

But I'm very much in favor of a standalone gameroom client that could also be used to watch locally saved games offline, quickly browse downloaded archives, etc. It's hard to get people to work together as they all have different technical preferences, but such an application would be great to have.

EDIT: I had a look at the gameroom images Omar made public. The pieces in PNG format with smooth alpha contours are great. The marble board JPG files look over-compressed though. (But I guess you have more urgent things to worry about with the championship coming. :) )



Arimaa Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.