Today's Modern Mono Monday project is one by Filip Ekberg that I've been meaning to blog about for and I think is pretty cool, showing off a number of different things (and you all know how much I like projects that hit a number of bases...)
- Windows Store 8 App? Check
- SurfaceRT? Check
- MonoGame? Check
- XAML? Check
- DirectX? Check
- Separation of concerns, with server (Linux in this case) handling logic and client the display? Check
- SignalR? Check
Prerequisite; what you’ll need to install first
Before we can dig into the coding part we need to have some tooling installed first. I am going to use Visual Studio 2012 for this. There are however a lot of resources around that tells you how to use MonoGame with MonoDevelop on for instance a Mac.
All you really need to install if you already have Visual Studio 2012 installed is MonoGame. You can grab the latest version (3.0 Beta) over at the MonoGame CodePlex site.
After installing this you should be able to see the MonoGame (XAML) project template in the “New Project” dialog as seen in the image below.
This post has gone through a lot of interesting topics and just scratched the surface on many of them. But the idea was to wrap up all the cool things that we’ve looked at with SignalR and Windows 8 for the last couple of months. This post is far to long to fit in a tl;dr but here is a bullet list of the awesome things used in this post:
- Getting started with MonoGame
- Adding basic textures with MonoGame
- Understanding how to add basic images such as PNGs as XNBs with the annoying work-around
- Creating a basic application that uses both XAML and DirectX
- Running MonoGame on Surface
- Communicating with a server using SignalR which runs on Mono, Apache and Linux!
- Wrapping it all together and porting the Tic-Tac-Toe client to a Windows 8 “XNA” Game that runs on Surface!
I probably forgot one or two things in the list above, but you get the point! We looked at some very interesting things and I think that you can take it from here and make some amazing cross platform games and not be limited by what server software you are running (read: this works on linux with Mono and Apache!).
Code? Oh yeah...
Where can I get the code?
Don’t worry, you can download the entire solution that I worked on here. Remember that a lot of the code is based on the other SignalR posts that I’ve done:
Don’t forget to check out my screencast on SignalR, here it is again so you don’t forget: