Le 14/02/2014 14:12, Inge Wallin a écrit :

On Friday, February 14, 2014 00:28:38 Bruno Coudoin wrote:

> Le 13/02/2014 23:17, Aaron J. Seigo a écrit :

> > On Thursday, February 13, 2014 22:54:12 Bruno Coudoin wrote:

> >> Anyway another approach is needed here for the new version.

> >

> > Knights, a chess program written with KDE libraries, has an XBoardProtocol

> > class (GPLv2+ licensed) that speaks to gnuchess. It does this over

> > stdout/stderr which isn’t awesome as you note, but it exists and could

> > perhaps be shared.

> >

> > It is part of a larger set of classes in the src/proto/ directory. The

> > classes in proto/ look fairly well self-contained (a single QObject class

> > hierarchy) so could be turned into a library with a little bit of effort.

> > Perhaps Knights and Gcompris could share this bit of code to at least

> > share the load of breakage?

> >

> > The project page for Knights is here:

> > https://projects.kde.org/projects/extragear/games/knights

>

> Hi,

>

> Thanks for the information. Depending on an external binary proved to be

> a mess for the portability between the distro and annoying extra work on

> Windows and MacOSX. To see if GCompris works after a port all I do is

> check if the chess activity works because it is more than often broken.

>

> Now if we add the tablets into the mix, I am much more reluctant to rely

> on an external binary. An option would be to see if we cannot find and

> integrate a small chess engine. One important feature I also like to

> have is a weak chess engine that the children can beat (and myself).

I am currently working on a board game AI library for kde games. The only thing you have to do to use it is to write a class representing a chess position, a move generator and an evaluation function and plug it in. (...and wait for me to finish, which should take a month or two) [1]

Those classes should be pretty easy to get from another chess engine, especially if weakness is more important than strength. :)


Hi, I just love this approach. We do not rely on external dependencies, we can use the same concept for other games beside chess and we can make it weak.

I have not looked at it and this is perhaps another topic but will it be Android compatible?

Btw, this is KDE and we love plugins. Do you have a plugin API for GCompris? If not, that would even make it possible for 3rd parties to create activites...


Yes, the Gtk version of GCompris is plugin based. Each activity is a plugin. In the Qt Quick prototype I took a similar approach. You can see the list of current activities:
https://github.com/bdoin/GCompris-qt/tree/master/src/activities

Each one follow a similar structure, a file ActivityInfo.qml which describes the plugin and its QML entry point. At startup, the core loads the menu plugin first that itself display the list of activity plugins to the user.

So yes in GCompris it is very important to make it easy to create a new activity, this is how we reached 140 activities while keeping the code easy to maintain. We have a core which exposes common features and ensure the coherency of the whole application.

Bruno.
_______________________________________________
kde-community mailing list
kde-community@kde.org
https://mail.kde.org/mailman/listinfo/kde-community

Reply via email to