Checkers-Drafts Game: AI App Dev Style
appdev drafts checkers ai
Using AI Code development tools such as GitHub Copilot and Windsurf can not only speed up code development, testing and deployment nut also enables generation of project documentation including release notes in a methodical and consistent manner.
Specification
Specification is now the name of the game! Make the specs succinct whilst comprehensive and correct and you are away! Take an iterative approach in that you might specify at high but internally complete manner then add complexity as each step is complete and correct, drilling into the apps functionality. Make sure you have a definitive specification of what the app should do. This can take the form of a document that is then fed into AI. For example, you might specify the functionality of a new feature in a markdown file and then use that as a basis for writing the code and tests (whether coded or user functionality) for that feature. This way you have a clear specification of what you are trying to achieve and can ensure that your code meets that specification. When a stage is complete you can also use AI, using its reflection, to generate technical and release notes documentation. This documentation, the before and after, can then be used to remind the AI tools of what is going on with the app when you come back to the project; or when AI needs to be restarted because it gets into one of those endless hallucination loops!
About Voice Issues
An exercise in specifications and what can be implemented.
One of the features of the Checkers-Drafts in-game is voice chat. This is a complex feature that requires careful implementation and testing. The voice chat system was designed to be full-duplex, allowing players to communicate with each other in real-time. However, there have been some issues with the voice chat system that needed to be addressed. Initially text chat between players was implemented. This was used as a basis for Text to Speech (TTS) voice communications. This was simple to implement by AI and worked well.
Assigning supported TTS Voices was a bit problematic though as different voices are supported on different system, desktop-v-phone and OS-Windows-v-Android etc. Supported languages, regions and countries was also the mix. Desktop Windows also supports a number of male and female voices for each, for example English-Country. As far as it could be ascertained, Android phone only has one voice per country.
Full duplex voice chat sending audio bites was implemented at one stage but did not work well in a fully universal manner across all platforms. So, the voice chat system was redesigned to be half-duplex TTS button controlled like a walkie-talkie allowing players to take turns speaking. This has worked well and has been well received by players. The voice chat system is now fully functional and is a key feature of the Checkers-Drafts game.
A player can select a voice that the other player hears when they send voice chat if the first player is on a Windows desktop. When a player receives voice chat from another player a voice when no voice is specified (eg on desktop from a phone) a specific voice can be specified for the sender.
For more information on the failed approach see: voice-system-choice-implementation and voice-chat-implementation-summary
| Topic | Subtopic | |
| < Prev: | Checkers-Drafts Game | An Azure Deployment Issue |
| This Category Links | ||
| Category: | Application Dev Index: | Application Dev |
| < Prev: | GitHub | Codespaces |