I'd weigh in and suggest to take a look at Duality, if you're into C# and 2D stuff. It's been around for a while and has accumulated quite a bit of usefulness over the years. Although I do not fully share this opinion, it is often described as "Unity for 2D games" - still kind of gives you an idea about it.
In case you're interested to expand the above list entry of Duality into a full description, here is a suggestion for it, which you can copy and/or modify, if you'd like to:
This post is heavily biased, because I am the main developer of Duality.
LÖVE is simple put powerful. Uses lua. Godot has a great editor but probably has more stuff than you may need. Uses custom scripting language.
Either one is open source and C/C++ based.
If you want to stick with C# then there is http://duality.adamslair.net which is also open source.
Depending on what you have in mind, Duality could be a worth a look. It's a C# game engine / editor combo focused on 2D, with a core that is a Portable Class Library (Profile 111, probably something around netstandard ~1.2 - 1.3).
It's not quite .Net Core, but not too far off either. The backend is actually based on OpenTK as well.
The Duality engine might be worth a look for you. It's 2D-focused and Open Source, and there have been some suggestions in the past that it might have a place in education as well.
Disclaimer: I'm heavily involved in the project, so not entirely bias-free :)
I use duality for 2D games. The learning curve is nice but there's not terribly many basic tutorials available. The guy in charge of the platform actively develops and answers questions in his forum. If you're in a coding school, this is a great platform to grow into if you have some reason to prefer a platform besides unity. Also I want to note that duality is .net 4.5 friendly which is what drew me to it so I could use WCF. http://duality.adamslair.net/
I would take a look at Duality.
It's has a lot of power and uses C# for any of the backend code you might want to do. I've had a lot of successes with this engine thus far. Like you, I have short bursts of time to put into my projects, and this offers plenty of velocity, for me at least.
>so I was wondering if it could be possible to animate various objects to reflect this
WPF can do that, see this video for an example: https://www.youtube.com/watch?v=X-6iDitLIJo Also search for "WPF animation" at google for more info and articles.
I wrote this big long thing on why you should look at C# over Java, but then I realized that none of it really matters for your purposes. What does matter is the development tools available to you, and for that I suggest Duality, since you won't likely be targeting 3d graphics (Duality is 2D only without doing some legwork on your own).
Duality is the best of both worlds when you're trying to decide between an all encompassing development environment like Unity, and a framework that stays out of your way and you can pick and choose parts from as you need.
Specifically, Duality provides a full editor so you can quickly visualize, troubleshoot and develop your project, but doesn't lock you into using any functionality you don't want to use. In fact, it was written specifically as a runtime framework with an editor that utilizes it, contrasted against Unity, which is an editor with a limited runtime framework.
Monogame seems like a nice framework. Bastion was made using it, as far as I know. However, if you'd like to start a little more low-level, I can also recommend OpenTK, which is mostly just a wrapper for OpenGL and OpenAL C# bindings, combined with cross-platform window management.
Also, may I add Duality this to your list? :)
Since you mentioned discarding Unity for 2D-specific issues, you could take a look at Duality. It has some similarities to Unity, but focuses exclusively on 2D. The main language you'll be using is C#. Very small, but friendly community.
It's not for everyone, but there's a general info page, as well as a wiki site detailing whether Duality would be a good fit for you in case you want to take a look.
Disclaimer: Involved in development, yada yada.
As far as general advice goes, I think crappyprogrammerart summed it up nicely.
Like with Godot's own scripting language, "GDScript," if you learn that, you're pretty much locked into that platform. Unityscript and GDScript can not be used outside of those two platforms. If you were to learn C#, you not only get access to Unity's scripting environment (and many other game engines), but you're able to take your C# skills elsewhere.
By drawing libraries, I mean a library that simply allows you to draw to the screen (via OpenGL, SDL, etc).
Hope that helps!
If you want to use something sort of like Unity but made specifically for 2D there's always Duality.
If you're really convinced that you want to write from a lower level, Monogame might work out nicely.
If you want to work at an even lower level than that - right down to OpenGL bindings - even though that's probably not a good idea - I guess there's OpenTK.
I'm surprised no one has suggested Duality yet. It's just what you're looking for: C#,focused on 2D game development, and like a lighter-weight Unity. Lots of example projects available. Give it a shot!
As far as free / open source game engines go, you could also take a look at Duality. It's a bit like Unity, but specialized completely on 2D games, and approaching some other things a bit differently.
If you have questions, feel free to ask. I'm the main developer of that framework and do my best to help.
I'm just going to do my usual thing when it comes to these questions and leave you a link to Duality. It's an C# Open Source 2D game engine similar to Unity and all that.
Some people reviewed it on IndieDB (some of which incorrectly though, it's not DX based for one), and there's a forum where you can talk to some guys using it and ask for help. Also, it's not a game engine "for everyone", you will either need to have or acquire some degree of programming skills.
Have fun with it - or don't, if you choose something else :)
Disclaimer: I'm the main developer of Duality.
I've tried Unity but I wasn't really a fan for some reason, I don't know why. I started with an engine called Duality because it used C# which was something I was kind of comfortable in. The engine's alright but it's a little limiting. I've switched to an engine called Godot now and I'm really liking it. It uses its own language called GDScript which is super nice and its syntax is a lot like python so it looks all nice and clean.
Pretty much any engine you start with you'll need to start with a guide, so expect that at least.
You might want to take a look at Duality. It's half visual editor and half based on the C# programming language, which I personally believe to be quite beginner friendly.
Biased answer though, because I'm kind of involved in the aforementioned engines development.