On Tuesday, February 19th, Paul and I finished Sprint #4: Gaming Infrastructure – Phase 1. While there were two development stories that we didn’t finish in our three-week time frame, it was still a very successful sprint. Our completed stories were:
- Implement an Asynchronous Server I/O Comms Queue
- Implement User Authentication
- Game Module XML Metadata Definitions
- Game Module Scenario XML Metadata Definitions
The first two stories in the list achieved a major milestone: TClient can now communicate with the services engine hosted on the brickmillgames.com server using the home-grown Crux web applications framework, a design that I’ve been poking at for the better part of ten years.
The first story was pleasantly simple as I didn’t have to build my own asynchronous queue; Apple’s Foundation libraries include task scheduling queues for handling background I/O tasks, such as requesting services from remote servers.
The second story required a mix of server-side Ruby coding, server-side SQL coding and client-side Swift coding. The former two provided the service, including the generation of JWTs (JSON Web Tokens, pronounced “jots”) for ongoing session validation, while the latter created the proper request queries and scheduled them and handled them on a combination of dispatch queues. While the error handling needs some work wrt notifying the user with rational messages, and the service request query building requires inside knowledge of the server-side coding (which will be fixed in a later code generation story), the process has been proven. Paul and I can now authenticate ourselves and create validated, application sessions.
As the purpose of TClient is to play actual games, it is now time to begin construction of game module and game scenario data. Based on some previous work, Paul began defining our existing TOCS modules using XML data files.
One story that I didn’t complete was to build a custom view that would support the placement of a graphic counter on top of a graphic map. With limited time left in the sprint, and the failure of a very simple test case, I abandoned the story.
In the meantime, at the end of the sprint, Paul was working on an XML data reader to read in game module and scenario information into a form that TClient could easily understand. In Paul’s case as well, the story was much too large to complete with the time remaining.
For our next sprint, Paul will be continuing his work on the XML game information managers. For my part, I will be cleaning up some obsolete code, improving the user authentication error handling and working on a set of layout views, whether provided by Apple’s code libraries or building some myself.
TOCS – World War One
When I abandoned the layered counter/map view story, I went back to some research work on my WWI game ideas to clear my head. Ten Days in August will be our tactical game on the Siege of Liège, August 1914, while A Series of Catastrophes/Western Front will be an operational game covering the entirety of WWI on the Western Front.
The research work is contained in a multi-sheet spreadsheet containing data on ordnance (artillery and machine guns), TO&E (Table of Organization and Equipment) and OOBs (Orders of Battle) for each nationality for both the tactical and operational games. The bibliography currently contains 23 entries of books and multi-volume book sets and there’s more to come. It’s somewhat tedious work, but it’s also fun work, unwinding and interpreting history.