There are several aspects of game programming with PlayN that I find useful for teaching undergraduates, including:
- using the main game loop to update game objects;
- managing the build and dependencies using Maven;
- incorporating cross-platform support via LWJGL, GWT, and Android;
- building a TriplePlay UI;
- fluent interface design; and
- functional-reactive programming via React.
Rather than walk through a series of slides on these topics, I decided to build a tech demo to show these elements in action. Note that, as part of my current cybersecurity education game development project, I have been learning IntelliJ IDEA, git, and GitHub. I was inspired by Michael Bayne's Reversi tutorial, whose code he posted on GitHub, using branches to separate each step. I decided to take the same approach with my tech demo, Angry Cardinal PlayN Demo. Each branch name starts with a number, indicating the sequence I plan to show it during my talk. It would be an exaggeration to call this a game of any kind, but with a lot of imagination, one could see how it's the seed of an Angry Birds clone. Unlike Bayne's tutorial, which aims to show how all the features of PlayN can come together to make a working game, my tech demo is designed to only show a few features, using the least code I can. I believe I can mitigate the dangers of live coding by simply switching between branches during my talk.
I have never given a live demo in this way, and I'm eager to see how it is received. Configuring this demo required me to get some more experience with branching, merging across branches, and IDEA's copyright profiles.