Diplomacy

AiClient

Release 8~2

Release Notice

Issue 1b

John Newbury       24 November 2012

Home > Diplomacy > Downloads > AiClient > AiClient 8~2 Release Notice

AI in the Game of Diplomacy: AiClient 8~2 Release Notice


Read the AiClient 8~2 Conditions of Use before use.

The Product

This product is called AiClient Release 8~2. As David Norman did not assign a version to his AiClient Framework, as such, the 8 here means derived from the full (common and client-specific) sources as they were when he released his then most recent client, DumbBot 8; the ~2 means my modification 2. It comprises two very similar sub-products:

Each sub-product comprises David Norman's AiClient Framework and his clients that are built upon it: BaseBot (the default, a non-playing observer), DumbBot, HoldBot and RandBot – all modified by John Newbury. All the clients have the same version as their sub-release: 8~2~<x>, where <x> is a or b. Apart from essential differences due to the presence or absence of MFC, each should be very similar to develop. Despite the source differences, it is unlikely, albeit possible, that there would be any significant differences between any versions of a given client (a or b; old or new), in terms of performance or reliability, in general or in AI aspects, albeit there are minor differences in functionality and appearance in some cases.

The extra functionality and convenience of MFC may be preferred by developers that have access to it (only available in expensive editions of Visual Studio). But the non-MFC form is also usable in the (free) Express editions of Visual Studio (which lack MFC), and would require less work to convert to a non-Microsoft platform. The two forms may provide a useful comparison of the two development environments. One of these clients should provide a simple and sound basis for developing further, more advanced, kinds.

Binary

The binary of all the above clients may be downloaded from johnnewbury.me.uk/diplomacy/downloads/aiclient/aiclient-8~2~b-binary.zip .

It comprises:

Source

The full source (AiClient Framework and that specific to each client, above) may be downloaded from:

Each comprises:

Client Documentation

See David Norman's site and comments in the source for information about the clients themselves.

Generating Clients

Each form of project, MFC (a) and non-MFC (b), is released ready to generate the Debug version of the basic AiClient observer client. (It will only observe and log, not play, in a game.) The details of how to use Visual Studio depend on the edition  used, and are outside the scope of this document. Visual Studio 6 will automatically generate a pre-processed version of the include files specified by StdAfx.h. Visual Studio 10 seems to require this to be done manually, but this is not essential, except to speed up compilation, which should not be a problem with these small clients. If running the client outside of the project, only the .exe file (in the Debug or Release folders, as applicable) is required.

To change clients:

Requirements

The following auxiliary products are also required:

All the above run under Microsoft Windows 7, but should all work on Windows XP onwards. The MFC (a) form has been tested in Visual Studio 6; the non-MFC version has been tested in Visual Studio 6 and 10 (Express). However, a modification to Visual Studio 6 is desirable on Windows 7, to allow the debugger to be stopped, without having to restart Visual Studio. (Replace Common/MSDev98/Bin/TLLOC.dll in the Visual Studio application folder by http://www.dr-hoiby.com/TLLOC.dll – see http://stackoverflow.com/questions/2110759/how-to-debug-with-visual-c-6-on-windows-7-x64

Change History

Most recent first ...

AiClient 8~2

AiClient 4~1

AiClient 4~0

Known Issues

No known issues.

Future Development

No further development is planned for the AiClient Framework or the above DAIDE clients, as such. However, when development is complete, BlabBot 3, which is derived from DumbBot, and hence the AiClient Framework, is to be released, along with its source. This will probably first be converted to non-MFC.

Any further significant development by John Newbury, of this or any other software product, is likely to be for non-MFC (b) forms only, using the free and portable wxWidgets library where non-trivial windowing is required.

The non-MFC (b) form of JPN::Sockets is to be enhanced to handle server-side sockets in the next release (with source) of MARS. It would probably be reasonably easy to transfer this enhancement to the MFC (a) form if required, but is probably unnecessary, as it should be able to coexist with MFC if MFC required.

JPN::String could usefully be derived from CString (as well as std::string), because the source of CString is supplied with MFC. (There are no obvious licence restrictions.)

Acknowledgements

The bulk of the product was produced by David Norman. Grateful thanks are also due to those in the DAIDE DipAi group who have contributed ideas over the years.


Tracking, including use of cookies, is used by this website: see Logging.
Comments about this page are welcome: please post to DipAi or email to me.