Welcome to the Bird Watcher Tutorial
When the P3 was first announced, I was extremely excited about the possibility of the platform. The P3 Sample App included with the SDK is a great starting point for any app. However, it can be a little overwhelming, and hard to know where to start.
The purpose of this tutorial is to document an example of writing a complete pinball game, from idea to playable. Hopefully it will help explain some of the concepts of the platform, Unity, and help you overcome the getting started roadblock.
Why am I qualified to write this
I’m not.
But I know enough to be dangerous. I have worked as a professional software developer for over 15 years, working on things from high performance databases, mobile cryptography, applied machine learning, large scale distributed systems and much more. I have a Bachelor of Computer Science and a Masters of Computer Science.
When I started playing around with the SDK, I knew nothing about Unity, had never used C# and had never used Windows as a development environment.
Over the last few years, I have started developing a few P3 games, and got them all to a moderately playable state.
- Gammagoat Sample App: A simple EM-inspired game
- Double Super Jackpot: An app I wrote to enter into the Buffalo Pinball theme song cover contest
- Arena (Codename): A Rougelite card game.
Prerequisites
I am not going to cover setting up your programming environment. This assumes you have
- Installed Unity 5.6.7
-
Registered at multimorphic.com and downloaded the 0.8 SDK. See 3P Developers Page
Make sure you follow the SDK setup instructions and have copied your .multimorphic directory to your home directory
- Optionally installed other programs that might be useful like git, vscode, blender, gimp.
Recommended reading
-
It is a good idea as much as possible to follow the Microsoft C# Coding convensions. I do a terrible job at this, but it is a good idea to follow.
-
Read the SDK documentation. You should read it all. But at a minimum:
- Introduction to the P3 Development Kit
- Overview of the P3
- Structure of a P3 App