My first showcase: 2D platformer demo

Hello guys,

I’m working my 2D video game engine based on MonoGame and I’ve decided to publish my first demo to showcase my work.
I’ve received lots of help from this great community, so I decided to share my work with you guys!
I hope you like it!

8 Likes

That looks awesome!

1 Like

Thank you!

Great work! Gameplay is on spot.
Could you tell me, how do I go about making my own game engine? If any books you would recommend?

Thank you and welcome to MonoGame!

I wasn’t using any books, but multiple resources. Great places to start:

That’s pretty much all the starter resource I can name. My approach was the following:

  • cope up with something and make it work, any way I can. If can’t figure out how, I used google to search for examples.
  • once it works, generalize the idea and/or make it part of the engine, so it can be easily reused and configured in your code elsewhere. For example, once you have working animations using the above RB Whitaker blog entry, make it generic (like a state machine or something) so you can easily use it for your game characters without having to code a lot. One thing will follow the other naturally.
  • optimize: test the new feature, stress test it, measure, and if the performance is not good enough, find bottlenecks and fix them

Also, have some example games that you can develop with it: it gives you ideas what’s still missing/broken and it keeps you motivated to see your engine evolving. Like a simple platformer and a simple top down game.
Once you are doing it, requirements and ideas will come naturally, like “okay now my character is can move and play animations, how do I do collisions?” and so on… One topic will follow another, as you will keep searching for them, you’ll encounter lots of great ideas and resources to broaden your horizons. Also, the MonoGame community is really helpful, I’m sure you’ll get tons of help here! Also, if you can’t find a specific topic in google for MonoGame, search for the same thing for XNA, there is a huge knowledge base out there and chances are it will work just fine :slight_smile:
For me it’s absolutely a “learning by doing” thing.
Don’t be afraid of changes and refactors, it’s perfectly okay and part of the process, chances are your very first implementation (of anything) will not be the last. As you continue to build examples with the engine, you’ll discover new aspects and you’ll realize that “this could be done much simpler” and/or find better way to do it.

Also, there are more experienced people than me around here, I’m sure you’ll get great help here!

2 Likes

Thank you!
Monogame has such a humble community. I would definitely look into these, but maybe that day is not today :sweat_smile:.
[You may stop reading here, If it wastes your time; you don’t have to reply to this.]
You see, I am very new to game programming itself. I have learnt basic C++11 and tried SDL2. But I found it very bare-bones. I have also fiddled with Unity and Godot. I found them too abstracted for my taste. I desire to learn game programming. I found Monogame, yesterday and It hits the sweet spot. But, now I have to learn C# (Unity got so little to do with it), and the resources I found indicate I’ll need to learn .NET framework with it? I am also skeptical that learning framework prior to learning to program would be the right route. I skimmed through “Game Engine Architecture” book by Jason Gregory, “Game Coding Complete” by Mike McShaffry; only to find that they target 3D game development. There are very sparse resources for 2D game development. Don’t know why? I am at complete loss here.

Kind sir, you are quintillions ahead of me. :smile: It’s been 1 year since I started this journey, I’ll keep persevering.

Great job ! This looks like a published game :smiley:

1 Like

Thank you!

If that gives you any comfort, I am also very new to game programming, I started about 5 months by writing this engine (although I consider myself a seasoned programmer in other areas). I also played a bit with UE4 back in the days and Unity, but it’s bad at 2D and Unity had no source I could look into, so they were a no-go for me :slight_smile:
You don’t actually need to learn .NET specifically (at least I didn’t do it at all), and C# is very easy to pick up, especially if you already know C++ or Java (it’s like a merge of that 2). I also wasn’t able to find any good books dedicated to 2D, that’s why I decided to make this engine as my bachelor’s thesis topic: designing a 2D game engine with MonoGame (I decided to finally finish my computer science degree I left in half some 10 years ago). I will publish it once it’s done (I have roughly 1 month to complete it, so it won’t be long) which will explain the core concepts I learned with some implementation details. Check my github or hit me up with a message in roughly 1-1.5 months if you’d like to read it, that will be a good headstart explaining fixed timesteps, animations, movements, optimizations, collision detection, user inputs, UI, scenes, raycasting, etc… This will also double as a design documentation for my engine.

1 Like

Actually you’ll need to learn a framework one way or the other, you cannot do but extremely basic without it. Keep in mind Monogame stops to help where there are already framework modules that do the job right.