I thought I might ask the whole community, what made you start using MonoGame (and in case you were around, what made you start using XNA)?
Simply put, because it uses C# and is not Unity
I have a whole pros/cons list from my decision, but here are the general points that led me to MonoGame:
- Free, open source, completely customizable, no splash screens or royalties. I’ve heard plenty of stories of people being happy with Unity for 90% of their game, but that last 10% makes them want to rip their hair out
- Cross platform (one of the other options I was considering was SceneKit)
- Familiar, as I started with XNA some 12 years ago, and I’ve always been biased toward the (ex-)Microsoft stack
- No makeshift scripting. I’ve tried Torque 2D/3D, Unity, and Unreal, and I was never a fan of having separate engine and scripting languages and tools. Unity and Unreal also seemed like they’re more geared towards artists to be able to just drop in assets, whereas I have a much stronger programming background.
- Not biased toward one genre. As much as I enjoyed messing around with Torque 3D, it was born out of an FPS and clearly favored FPS style games.
- Decent showcase lineup of indie games
As for XNA back in the day, I remember an article in the newspaper saying it was one of the first (first free?) or most approachable game frameworks, so I just ran with it.
I thought I might as well add my own expirience
Why I started using XNA:
XNA was just the only? option at that time to make games with C#, and I was just getting into doing more advanced programming. Back then I pretty much only made games with GameMaker 8, and my programming language knowledge was limited to C#, C++ and JS (and of course GML).
Why I started using MonoGame:
In 2012 I decided that I wanted to try out Linux, and part of the tools I was using did not work on it. Now of course I did not just straight up switch to it, it just seemed like a fun thing to have installed on the side, but the more I used it, the more I liked it so eventually I was more on Linux than on Windows and I needed to find some new development tools to work from it.
Most of the tools I wanted to find a replacement for already had something decent, however game dev tools were really Windows only back then, except XNA which had MonoGame project allowing it to run from Linux. As such I just jumped at using it.
Unfortunately, it was missing the pipeline tool on Unix systems, but I was pretty determent to use it so I made my own in a couple of days (no, seriously, made my own: MonoGame Pipeline Tool Mac and Linux ). After that it didn’t take long to get all the remaining parts working (besides effect compilation) and I was happy with using MonoGame ever since.
XNA:
Hobbying only – coming from Irrlicht, Orge, Crystal Space which is only C++ at that time… I wanted to start learning Managed Code specifically C# and I use MDX – Managed Direct-X to learn it, learning new language making games is fun ^ _ ^ y and XNA is the successor of MDX in making games using C# .
MG:
Looking for a code centrix game framework to continue my game development hobby under Android devices and I only find MonoGame last year… poor me T _ T
I started making games on the TI92 and TI89 in C with TIGCC, used tricks to simulate 4 gray levels and I loved doing all the lowlevel stuff. I used to trade them with a sandwich or candy.
Then I tried XNA, as I was able to make games on the xbox360. I never published anything, but I learnt a lot about shaders
When XNA was abandonned, I feld disappointed as it helped indie devs to pull out a part of the cake…
And I then discovered MonoGame You do everything yourself, and it doesn’t need 15GB of harddrive like with UE4, nor 3GB like Unity3D… It’s a lot of work but it’s more rewarding, as my purpose is not to publish many many games but to learn how this effect is achieved, or this one has a special trick etc…
I started learning C# as a hobby very recently and immediately looked for a way to utilise it for game development. I tried out Unity for a brief period of time, but to be honest that felt more like learning to service a space station than learning to code games. I thought I’d rather code what little functionality my simple games need myself than use an engine that has a fat flabber of functionality around it that I will never even touch (gross!). Then I learned about XNA, which got me really excited :)) then shortly after I learned that it was long discontinued, which got me really depressed ;(( But then I caught wind of MonoGame, so it was all good again.
I took a game dev course in college about 6 years ago, and we were required to use XNA to develop our projects. It was my first time making a game without a tool like GameMaker. I liked the flexibility it offered and had a good time using it in the class. Afterwards, I worked on a Beat 'Em Up game in XNA for a couple of years and learned a lot more doing so than I ever learned from my classes.
After XNA was discontinued, I picked up MonoGame since it’s an open-source version of XNA and supports multiple platforms. If there are critical bugs I need to be fixed now or I want to extend the API, I’m free to do so by simply pulling the source code, making modifications, and rebuilding it. I liked that I was able to learn more by reading the source code as well.
I used Unity in all of the jobs I’ve had so far, but I learn very little working in Unity in comparison to working in MonoGame. I find MonoGame just right in that it provides the very basics for a game and abstracts the low-level details; at the same time, it lets you do whatever you want, such as write your own SpriteBatch and other tools.
I felt I should add to my point above and while doing so, realised I should not just edit the original post, keep that for prospect and tell of my almost 20 years past with C#, leading up to MonoGame today.
It begins back in 1999, I had read something about a new programming language from Microsoft called C# or something, did not think much of it besides thinking I want to learn it in future, not being surrounded by the right types back then - my excuse entirely -, I had no clue where to begin.
I found myself one night outside the front door of a friend’s house, waiting for my friend to get ready to come out and found myself talking to an elder member of the family, one who was more ‘clued’ into computing at the time, we struck up a conversation surrounding this new thing from Microsoft and that was it for a long while.
Skipping points about my life in general [That, is for my memoir] which foretell why things went sideways for a while for me and my homelessness stint, [yes, I have been homeless once, no longer embarrassed by it] also shooting past my early computing days, managing to get online by myself, figuring it out somehow - and raising the phone bills, oops -, and also working out how to FDISK Windows 98SE onto my hard drive - how those were the days -, and building my first PC from bits here and there - which resulted in learning about FDISK -, complete with blood sweat and tears, literally; and the demise of said system along with my first.
Any-way, moving along.
I kept an ear out over the years for news of C# and later, the .NET developments and followed it with a half-half interest, until one day I had, had enough and wanted to create my own games since the days of 1997 and before, but specifically as of 1997. I recalled something from the 2008 tech demos of the NVIDIA PHYSX [Or AGEIA Physics for those who remember it, I still love 3dfx personally], at the end of these demos there was an advert for a game making tool of sorts and at the time, I thought nothing of it, not realising the tech demos were made using said tool.
Fast forward to 2010 Autumn time and I was hunting for the files online and on my DVD data archive, I found them after some three days of searching and made my first investment into game development by buying some books and the toolset, skipping the fact I had not read a book since primary school, I have since - as of late 2010 - read over 5,000 dense pages verbatim, both code related, novels and biographies [Not in the least forgetting the thousands of forum pages too]. For those wondering why, I have a secret that I only tell when asked about, or you can wait until my YouTube videos go up or my memoir comes out, but my Twitter account tells a lot.
Moving along.
I almost missed out the bit about why I did not step to C# immediately, it was because I knew it was too complex for someone that was just literally coming from a zero understanding and grasp perspective, not to mention books on the subject were few and still far in-between and not up to scratch to what is available today, trust me, I checked EVERYTHING; everything below the cost of £50 per book that is. So, here I was, learning something based on Bill Gates’ offering of BASIC back from the old days, though it - BASIC - originated from 1964 by Inventors John G. Kemeny and Thomas E. Kurtz and this helped me understand things like, top-down programming and function-based programming and the idea of Object Oriented Programming or OOP to give it its short name, these skills are so invaluable, I cannot stress the importance of this route to learning C#.
Moving along, the tools I found were becoming obsolete for where I wanted to be, and the originators dropped it entirely, so my 2-3-year investment was almost at a loss, until I plucked up the courage to learn C-like languages. Enter C and C++, read two books on these quickly and then onto C# immediately and hammered a 718-page book on illustrative C# 2012, [Similar title, go read it!] in 28 or so days, verbatim. Remember at this point, I have yet to be a reading type, so that was a feat in of itself; for me anyway [Not that the pages were dense, I might add].
I later progressed onto a 1471-page behemoth, [which was very dense, I should add], that included the .NET framework basics as well as C# all over again, - I am a strong believer in a minimum of 2 references where possible -, another thing I highly recommend doing [that, being a second blast with another reference, however I should add, it was three months in-between the first stint and the second], and yet again, yes verbatim although it did take me a few months this time around; But I stuck with it!
It was at the turning point when the toolset I was reliant on and had written a 400~ page book on as well as an entire tool for the command library, which are no longer available for download on the Windows Store, that I began looking around for alternative options that fitted my goals; the Windows Store distribution channel. MonoGame came up while looking up XNA as I had known XNA was C# based, I also looked up many other options and found gaping issues amongst them, namely, support materials such as books were lacking as well as a language barrier for some of them. As it would happen to be, a book from Adam Dawes was about, that literally tackled my choice direction and not to mention this was the time of Windows 8-8.1.
I am yet to make my way through said book, but I have since invested into many XNA books too and plan to make something of such a heavy investment that hopefully, helps the community as well as MonoGame too.
Now, some of you may have noticed me on the forum for some time now and may have noticed my works are somewhat lacking, that is easily explained by way of; life just keeps getting in the way. This is changing this year as I am delving deeper into my creative side, written, drawn and programmed, so I hope to get back into my flow soon, it literally pains me not to be doing something with MonoGame that shows it off to the world and to Microsoft.
I intend to begin writing tools for both myself and other MonoGame developers, - and if it helps others, so be it -, though these will focus solely on the UWP platform [sorry], though I do plan to release for Mac in future - when I can swallow the bill for the hardware -, or iOS as Apple seems determined to make it their dominating platform for some reason.
For Linux users, well, just hope that one day I get around to understanding how Open Source stuff works.
Any-way, my two pennies on the topic.
If you read this poorly formatted and grammatically ruinous piece, make a tea or coffee for yourself on my part [before you read it ]
Thanks,
– Vaseem Valentine
EDIT
Used the wrong word, prosperity, changed to prospect. was tired when writing it.
As stated by others it is C# and is not Unity. Honestly it is all about your game needs and requirements. One framework or game engine might fit your needs better, use it then.
Why did I end up going with MG?
I wanted a flexible framework to build on top of that was tested and proven. I did not want a pre-made game engine which boxes you into its designs. Not saying an engine like Unity is bad, for some devs it fits their requirements. Also there is no custom engine scripting, it is C# which has millions of tutorials/docs as well as a massive base of programmers to get advice from. Some of those other engines with their own custom scripting have docs and devs but will never be as large as the C# community for help.
Also because MG is open source. Unity as an example, has a lot of complex licensing rules especially when making profit on games.
D