As with most open source projects, there comes a time when the main developer finds other things of interest. The cheat-free implementation of random numbers encountered implementation problems (the implementation only works with RSA keys with fixed size moduli for each participant, which is feasable, but requires a little back-end work again). Pending the development of the other areas of interest, the programming of the Boardgame Tool is temporarily on halt. The project will however continue.
The random number generation scheme that is being implemented at this moment is supposedly guaranteed cheat-free. All players in the game are able to add randomness to the number and check after generation that the actual number was created using their randomness. This guarantees that no combination of players can cheat on any single one player, because that player as well adds complete randomness to the selected value.
This algorithm also makes card shuffling an almost no-brainer, so that too might be implemented in the upcomming 0.2 release. This would immediately open the BoardGame Tool to a wide variety of available real-life boardgames.
The encryption setup has finally reached a point where a more or less complete system has evolved. The whole system allows users to manage private and public keys, as well as symmetric keys. Keys can be created, imported or exported, over the internet or to a file. Public keys can be signed and signatures checked.
The main key selector allows the user to encrypt and decrypt small texts, as well as sign and authenticate. Using right-click popup-menu's, new keys can be added or existing keys inspected.... read more
The completed encryption system should be submitted to CVS within the next few weeks. The final adjustments are now made, with only sending keys over the network remaining unimplemented at the moment. This final hurdle does not appear to be complex, though.
The system provides a selection window for public, private and symmetric ciphers and forms for creating keys and signatures of public ciphers. Keys can be exported to file and (when implemented) over the net to peers directly.... read more
The encryption code implementation is entering its last phase. Basic reading and writing of RSA implementing keys is complete. Administration of these keys through a key listing file is working as well. Encrypting this file is currently under investigation. Support for public-key certifications is next.
Once the local key administration is complete, one can select the current private key and administer the list of external public keys through the GUI, adding or updating persistent information. The private key selected through this menu (with a key selected automatically if only 1 private key is found) is used for the encryption methods implemented after this (random number/card shuffling).
The code to support Go was just submittted to CVS. It features support for the Situational Super-Ko rule, a crude but hopefully effective end-game scoring routine and support for a random-position AI.
Current development is temporarily delayed due to circumstances, but adding support for basic encryption proves to be difficult anyway. A GPG interface was investigated, using GPGMe (GPG Made Easy), but that turned out to not yield the required interface possibilities. Manipulation of keys was the biggest problem.
Currently, RSA public/private key encryption is under investigation and promises to become the basic standard. Although the OpenSSL library is greatly failing on the documentation part, it offers many good options and implementation of SSL encryption was planned for the future anyway.... read more
Task 85764 has just been implemented, which makes available the About box in the Help menu. With the new Documentation subtokens Title, Version and Author, game specifications can display various information on the game. More About tokens are scheduled later on, allowing more control over the text in that box.
Implementing the About box took more time than anticipated, largely due to social occupations, but the task was still finished within the scheduled time, which puts the 0.2 release at the start of may.... read more
Task 85958 has just been implemented, meaning that large parts of the control code have been abstracted in specific interfaces, allowing a cleaner compilation process as well as easier extension of the underlying support libraries.
This was done predominantly to support more GUI libraries. The GTK+ library is still the default, but by simple interface-implementation other GUIs can be supported in a straigh-forward manner. Selection of a GUI occurs through the configure script.... read more
BoardGame Tool version 0.1.1 has just been released. This release features the example game module containing updated licensing information.
The BoardGame Tool is a C++ front/end, Python back-end for boardgame implementation, featuring transparent network support, AI support and chat abilities. Implement your own favorite boardgame or adjust existing rules to your own flavor.
The BoardGame Tool is a C++ front-end/Python back-end for implementing all types of boardgames on a computer. It features transparent network play/chat, easy programmable AI and XML game specification.
The 0.1.0 release marks the public start of the project. Although still lacking in required features, the initial release allows a simple local network chess game with real life players or the simple Python chess AI. ... read more
The BoardGame Tool is a front-end/back-end driven boardgame simulation platform. Its code base has now been extended with a rudimentary implementation for AI support.
Task 85770 was just committed, enabling AI support for Python back-end scripts. The chess example in the data module implements this AI interface to provide a random-move chess AI. This example shows nicely how validation routines of the back-end can be used for AI and front-end validation at the same time. ... read more
Task 85745 was closed yesterday, marking the point where the client-client network interface entered a working state. It is now possible to play chess on 2 different computers over the internet.
This is one major milestone on the way to release 0.1. The remaining tasks are all of minor impact, except the image-code move (task 85753). That task however moves already correct code to a different place and is not likely to cause problems requiring difficult rewrites.
CVS Tarballs of the BoardGame Tool project are now available on the BoardGame Tool homepage (http://boardgametool.sf.net). These tarballs are created each night and compressed using the bzip2 algorithm. If this is a problem, please indicate so.
The initial Python interface documentation is available. Find out how to write Python scripts to run the game. Together with the XML specification, all information is now available to start writing your own games.
Initial documentation regarding the XML specification has been submitted just now. Find out how to create your own specification and how to fine-tune various details.
The basic BoardGame Tool source code has been imported into SourceForge CVS. Work is in progress to get ready for a 0.1 release in the next 2 months. Hoepfully a full Mac OS X port will be ready by then as well.