Design Thoughts - Kyoril/mmo GitHub Wiki

Why write a custom engine?

Although there are a LOT cool engines out there which offer a great start when developing video games (like Unreal Engine 4, Unity Engine, CryEngine etc.), none of these is really suited to create a mmo-game (Massively Multiplayer Online).

They all support network code in some way, but what about authentification and other network services? They allow for easy integration of APIs like steam, which would allow accounting, achievements and other cool features, for sure. But those are restricted and maybe don't support features the way I want them to be. They are also closed source and can't be 100% managed by myself if I want to.

So long story short: I am creating my own engine here, because I want the maximum flexibility, even if this comes with the cost of having to write A LOT myself. I do think that this is doable, because I will only create features which I really need and the engine will evolve with the needs of the project. This means, that it will probably never support as many features as a third party game engine will, but it also doesn't need to do so.

Supported platforms

I intend to support Windows as the primary platform for everything. Everything in the repository will compile and run on Windows (althoug I will only guarantee for Windows 10). The servers are also supported to compile and run under modern linux distributions, while I will test them using Ubuntu 16.04 and newer.

Although the launcher has Mac OS X support (in some form), Mac OS X is not really supported for now. Also, the whole graphics api only has a d3d11 implementation so far, so any graphics-application (editor, game client) is not supported on Linux / Mac OS X, although this could be changed by an implementation of Vulcan / OpenGL / Metal for the graphics library, as it is already designes as an abstraction interface.

I will NEVER support web browsers nor mobile platforms like Android or iOS. This is meant to be a native Desktop application, period.

References

Obviously, World of Warcraft serves as a huge inspiration in terms of game design as well as technical design. I love the game and it's various expansions a lot.