I’ve been using Monogame for about 4 months now, I have an intermediate understanding of C#, but I keep starting games, and giving up because I run into things that are complicated. Right now, I’m working on a game that’s a 2D underwater sandbox, that I plan on adding bosses, enemies, and lot’s of features to. I’m able to make the pixel art, but I just feel like I might be getting ahead of myself. For getting comfortable with the XNA Framework, would you recommend working on a big game for a long time, or starting with a small clone and then maybe a slightly larger clone/basic game? I just want to be able to make really cool games, but I’m not quite able to yet, and I’m just wondering what an experienced game developer would say is the best path to getting there.
Start small, but finish the game. Keep doing that until you are confident to go bigger.
I’m not an experienced game developer, only helped get one published on XBOX1.
[Edit] Forgot about the WP7 game I did for Microsoft Studios in XNA too[/Edit]
Of course not, this is a horrible idea. Make tiny games, and only then go bigger.
I also don’t think Monogame is the right choice for a beginner. You’ll waste a lot of time making your engine without even knowing how engines work.
You won’t finish it. Classic beginner mistake.
Spend less time on the pixel art and more on the coding - you can spend many hours on graphics only to find it doesn’t look right in the game. Put in basic graphics first - you can always improve them later. (I’ve fallen into this trap many times :)).
It you get stuck on a particular issue, it may help to step back and write down what you want the game to do - i.e. specify your requirements - this is what is done in a professional IT environment ( a coder is given a specification of the work she has to do).
e.g. “I want my sharks to swim in a straight line but weaving from side to side, they swim 3 times as fast as the player but can only see prey that is visible from either of their 2 eyes.”
This can bring a lot of clarity to your thinking when coding.
Finally, if stuck on a techie issue, ask here or search for answers - stackoverflow.com is particularly good for this. Note anything you encounter has most like likely been solved already by someone somewhere ;).
p.s. I disagree that monogame is bad choice to start with - for me it already does a lot of the heavy lifting.
I think, to his point, it’s more about what your experience level is. For me, MonoGame was an excellent fit because I was already well versed in software development, and had some background with XNA. Additionally, one of my personal goals was to write a fully testable game engine, shooting for “100%” unit test coverage. Obviously you never achieve 100%, hence the quotes, but you can get pretty darn close… and I did! Which I never would have been able to do using something like Unity.
On the flip side though, if you don’t already have that background, using MonoGame is really difficult because you have a double learning curve. Using another engine lets you focus on your creativity without having to build a lot of infrastructure, and there’s definitely something to be said for that!
Past that though, definitely agree with everybody… start small. As someone who has worked on a butt ton of unfinished projects, I can tell you that it feels really, really nice when you do finish something. Even taking a small concept and seeing it through to completion brings with it a lot of work and learning, but being able to say “I’m done!” is super rewarding. It’s not to say that you should never work on the larger projects, but it’s something to keep in mind.
I started development on many complex 3d games when I first started in games. I had it rendering 3D models and all sorts but I never got very far because I always hit something difficult that would frustrate me.
Eventually I decided to make a defender clone, a pretty simple 2D game. This is where I truly learnt how to make games, I focused on making everything work together to make a complete game from player movement, animation and simple AI based enemies. I completed the game and released it on the old Indie Xbox 360 store and after that I made another 3 or 4 games using the knowledge I gained from the simple game, development was much easier because I now understood how to make a game and how everything connects together.
Put simply start small, make a clone game and make your game behave in the same way, it will make you truly think about what makes it behave like it does. Usually it all breaks down into very simple steps that are just strung together in the right way.
I hope that helps. One good quick game you can make is Pong, its simple but it will teach you have to string all the components together to make a complete game.
Good luck and most importantly have fun
A lot of games handle complexity by finding ways to provide a very simple solution that’s a compromise of what you wanted. Ask yourself if theres a simple way to make something that serves a similar purpose, and cut any feature you don’t think is core to the game.
Yes, I would love to educate myself on how 2D game engines work. Could you please guide me?
It really depends on your math and “game attuned” skill levels. If you start with a lot of side-skills and time you might want to put yourself head-down on a project you have at heart. If you don’t and plan to mature your skills in the process, I’d start with small projects, but know that it might be harder to have a burning passion for them.