Game Side Project 2 - Just go with a framework
Published: 2017-04-08 15:47:12

---
title: Game Side Project 2 - Just go with a framework
published: true
description: 
cover_image: 
tags: side-projects, game-programming, amateur-game-programming
---

So in my last game related post, I mentioned that I was trying to make a base game template for C++ so that I could just jump in and try prototyping games without having to do any of the nitty gritty setup.

I  thought I made good progress on that. My first goal was just to make a splash screen that goes to a menu screen that can either go to another state screen or exit the game. I believe I had everything I needed coded out *except* I still needed to actually render the screens. 

I started trying to find resources on what are some good graphics libraries and that ended up opening a whole can or worms (libraries that are out of date, libraries that have little to no documentation, libraries that require you to run python to compile before compiling with your C++ compiler, etc). I ended being stagnant and not writing anything while I just took little steps into investigating what was the best library to use.

I then got the idea to just look up what some of my favorite recent indie games used (my by far favorite being [Stardew Valley](https://en.wikipedia.org/wiki/Stardew_Valley). It turns out it uses XNA on C#! While I love going back and reminicing on C++, C# is my bread winner (I use it in my desk job) *and* a perk of my job is I get access to a lot of Microsoft products for personal use so I figured I'd look into this whole XNA thing Aaaaaaaand
> ... According to an email sent on 31 January 2013, XNA is no longer actively developped

Well wait, just because its not actively developed, that doesn't mean its no longer included as project templates in Visual Studios anymore, right? `Loads up VS 2017` `...` `Goes to game section` `...` `finds Unity... cocos.... No XNA...`

Hmmm... Lets read on in the XNA wikipedia page
>Alternative implementations ... A project called Mono.XNA was formed to port XNA to the open source and cross platform Mono framework. From the code base of Mono.XNA and SilverSprite, a new project called MonoGame was formed to port XNA to several mobile devices.... support is stable for iOS, Android, Mac OSX, Linux, Metro for Windows 8, Windows RT, Windows Phone 8, Playstation Mobile, and Raspberry Pi

Investigation into MonoGame reveals that [Bastion](https://en.wikipedia.org/wiki/Bastion_(video_game)) was made on it (another recent favorite) so I figured I'd look into their site. It turns out that there is a pluralsight course on MonoGame (which I get free with my MSDN subscription that I get from work) so I started going through that. The course link is [here](https://app.pluralsight.com/library/courses/monogame/table-of-contents) if anyone has a pluralsight account and wants to look into it. The course goes through making a clone of Pong. I'm mostly through it now and will post when I finished. I probably won't post the source code (just because I'm not sure what kind of licensing applies from following the course). 

I think I will probably make clones of other smaller games (mine sweeper maybe) and post the source for that until I get a good handle of what I'm doing. At that point, I'll probably start a real project myself.