Apologies for the delay, but I finally got around to packaging up the presentation that I did in my ONETUG presentation in august. For those who were not in attendance, the entire presentation was written in XNA. I also ended up using the FlatRedBall engine to handle a lot of the rendering and collision.
I originally didn't want to make a huge deal about the fact that I was using a third party engine because I wanted the focus of the presentation to be on techniques that you could use with or without an engine instead of specific APIs of that engine. However, the meeting attendees seemed very receptive and interested in the engine anyways ... which is great because FlatRedBall is a really great engine. I wholeheartedly suggest checking it out because it makes a great many things so much easier.
Another surprise to me was that there was a lot of interest in the code that ran the actual presentation. After an impromptu run-through of the code at the end of the presentation, I decided to put a few details for those who were interested (along with the download link below).
I had a great time doing the presentation and I wanted to thank all the good comments that came my way from it. I would definitely be interested in doing another one that dives into some more detail, particularly 3D concepts which seemed to be a recurring request.
- Presentation class, handles the main presentation navigation. Gamepad 1's left and right bumper provided the "forward" and "backwards" navigation.
- PresentationScreen class, handles secondary navigation between same-screen indexes. Also handles the updating of all "IndexActions". Gamepad 1's A and B buttons provided the forward/backwards index navigation
- IndexAction class, provides a simple mechanism to add custom functionality when a screen index is entered or exited.
- *.scnx files, created using FRB's SpriteEditor, each main presentation screen has one .scnx file, which itself defines multiple indexes using a naming convention.