MonoGame vs SharpDX For Creating a Game Engine

Started by
4 comments, last by Syncaidius 8 years, 1 month ago
Hi !

I want to create a game engine from scratch and don't know where to start.

So, I have two choices: MonoGame and SharpDX.

The reason I didn't choose SharpDX is that I sometimes says why reinvent the wheel when there's MonoGame !

The reason I didn't choose MonoGame is that I want the engine to be mine and no one else's. I want everything to be created by me.

What do you think guys ?

Thanks in Advance
Advertisement

You'll probably have less work to do if you build on top of MonoGame.

MonoGame has content pipelines, sprite and texture, audio and 3D frameworks etc already written.

I do definitely agree you should try to avoid reinventing the wheel (unless your hobby is making wheels).

Good luck!

You'll probably have less work to do if you build on top of MonoGame.

MonoGame has content pipelines, sprite and texture, audio and 3D frameworks etc already written.

I do definitely agree you should try to avoid reinventing the wheel (unless your hobby is making wheels).

Good luck!

Thank you for your reply

Is there any term in MonoGame license regarding reselling it ? For example, if I want to sell my engine to someone else.

Monogame has a redistributable file which contains the runtime.

It's best to just tell developers that monogame is a dependency of your engine. A lot of big engines do this where they aren't allowed to bundle the dependencies directly.

Monogame has a redistributable file which contains the runtime.
It's best to just tell developers that monogame is a dependency of your engine. A lot of big engines do this where they aren't allowed to bundle the dependencies directly.


I think I'll just go with SharpDX since I like to know what's going on.

Thank you very much

A bit late but, I thought I'd throw in my two cents, since I've been building my own engine on SharpDX for the past year.

Making your own engine will take a lot (and I mean, a huge amount) of time under a graphical API/wrapper like SharpDX or OpenTK.

Before you can start rendering anything, you need to build at least some kind of basic device, shader, texture and buffer management framework.

Then comes the sound, input, file IO, etc.

Out of everything I've done in my own engine so far, the hardest part was dealing with loading the common texture and model formats. I wrote my own DDS loader/saver to avoid using WIC (Windows imaging component). That alone took me almost 2 weeks due to how many variants of the DDS format there are, and it's such a small thing in terms of a basic engine. MonoGame does all of that for you.

Now, back to MonoGame. If you're developing for PC, there are two things to consider. The first is that, MonoGame uses SharpDX under the hood for Win-desktop, WinPhone and universal apps. MonoGame is also open source, so if you run into something a bit lacking you can pop the hood open and start adding or tweaking stuff yourself.

At the end of it all though, I understand the desire to build something you own in its entirety, with no worry about licenses. I also think it's an invaluable learning experience. Even if you never finish your engine and jump ship, you'll have learned a fair amount from the endeavor.

My reason for rolling with SharpDX was mostly for the same reason you stated. I wanted an engine that I owned, forever. My other reason was because I didn't like Monogame's or Unity's content system. I wanted to be able to stream content in and avoid loading screens entirely. I've succeeded on that front, but in doing so, I've forgone things like cross-platform support. Adding it will take a lot of work, but its doable.

Lastly, if you need any inspiration/motivation to stick with your decision, check out Space Engineers on steam. It's built on a DX11 engine made with SharpDX. The original iteration of the engine was made by 1 guy (Marek Rosa), who started out with XNA, then later rebuilt it under DX9 SharpDX for another game called Miner Wars. So it's definitely achievable. ;)

This topic is closed to new replies.

Advertisement