A Software Architecture for Developing Distributed Games that Teach Coding and Algorithmic Thinking | IEEE Conference Publication | IEEE Xplore