Hello there, today i will tell you about my MMO/Singleplayer/anything else game engine.
I called this Epsilon and them written on C# Why im do this? Becouse there is no any engine like Unreal, Gamebryo for C# directly. Monogame? Re-implementation of XNA and they laggy. Unity3D? For be fair, that is NOT C# game engine. Well, i can provide API and runtime NET assembly runner or Emscriptenn (for convert them into JS) but that is not C#. Hmmm, just imagine, that is same to tell - OpenTibia written on LUA, OTClient & TFS - maded on lua Same way Unity3D do with C#...just like scripts.
Well, what is different to Monogame or other C# game engines?
(I dont wanna describe it like 2D, 3D blahblahblah).
1)SDL2 or SharpDX
2)Normal complex system for Client-Server communication (support websockets and all normal protocols).
3)Powerful multi-threaded Framework with alot of features like initialization steps before start. Just place attribute over your function. Like this:
4)About database: MySQL(main) and other drivers. For MySQL we have there a great serializer. You dont need write a query manually. You just declare class like that:
And easy can got already converted object via T Find<T> or List<T> FindAll<T>.
There is just an example of work:
Also, you dont need to care about creating database. Framework able to optimize, restore, backup re-create tables automatically. You just need write a classes like described before.
==============
And many other technical features it contains. Also, all of them exists in documentation. There will be over9000 lines of words for describe them all. Engine good for both - client and server side, dedicated for MMO Games.
Better ill show you what i can do with those engine
3D:
And upcoming 2D action rogue-like game! It's my own browser-based game (Yeah Epsilon can do that too).
Build your own spaceships, fly on it and pew pew in retro pixel-like style!
(Hardly inspired by RotMG, but why not? hehe)
Gifs Album
Those game will be released at this summer
=================================
I am hardly working on engine for make them great. If someone interesting in this, i also can share full source code of my engine in future (when some major things will be done). If you like C# and looking for game-engine, let me know. Also, if you have a knownlege for help me with that - you are always welcome!
Best Regards!
I called this Epsilon and them written on C# Why im do this? Becouse there is no any engine like Unreal, Gamebryo for C# directly. Monogame? Re-implementation of XNA and they laggy. Unity3D? For be fair, that is NOT C# game engine. Well, i can provide API and runtime NET assembly runner or Emscriptenn (for convert them into JS) but that is not C#. Hmmm, just imagine, that is same to tell - OpenTibia written on LUA, OTClient & TFS - maded on lua Same way Unity3D do with C#...just like scripts.
Well, what is different to Monogame or other C# game engines?
(I dont wanna describe it like 2D, 3D blahblahblah).
1)SDL2 or SharpDX
2)Normal complex system for Client-Server communication (support websockets and all normal protocols).
3)Powerful multi-threaded Framework with alot of features like initialization steps before start. Just place attribute over your function. Like this:
Code:
//also this will show Initialize Game Services message!
[Initialization(InitializationPass.First, "Initialize Game Services")]
private static void Init()
{
DBManager = DatabaseManager.Instance;
DBManager.Start();
}
Code:
[DBTable("accounts")]
public class Account : DataObject
{
[DBField("id", DataFieldType.INT, true)]
public int id;
[DBField("Username", DataFieldType.STRING, false, false)]
public string Username;
[DBField("Password", DataFieldType.STRING, false, false)]
public string Password;
[DBField("Email", DataFieldType.STRING, false, false)]
public string Email;
[DBField("EmailAuthToken", DataFieldType.STRING, false, false)]
public string EmailAuthToken;
[DBField("EmailConfirmed", DataFieldType.BOOL, false, true)]
public bool EmailConfirmed;
[DBField("accountKey", DataFieldType.STRING, false, false)]
public string accountKey;
[DBField("displayName", DataFieldType.STRING, false, true)]
public string displayName;
[DBField("AccessLevel", DataFieldType.INT, false, true)]
public int AccessLevel; //is Gamemaster?
}
And easy can got already converted object via T Find<T> or List<T> FindAll<T>.
There is just an example of work:
Code:
try
{
Account acc = new Account();
string key = KeyGenerator.GeneratePasswordToken();
acc.id = 0;
acc.Username = Username;
acc.Password = GetPasswordHash(Password, key);
acc.Email = Email;
acc.displayName = displayName;
acc.AccessLevel = 1;
acc.accountKey = key;
acc.Fame = GSSettings.NewAccountFame;
acc.Credits = GSSettings.NewAccountCredits;
acc.pilotSlots = GSSettings.NewAccountSlots;
if (GSSettings.SMTPEnabled)
{
acc.EmailAuthToken = KeyGenerator.GenerateEmailAuthToken();
acc.EmailConfirmed = false;
}
else
{
acc.EmailAuthToken = "empty";
acc.EmailConfirmed = true;
}
acc.Push();//MySQL INSERT
acc = null;//cleanup. value.
acc = GetAccountByLogin(Username);//reload it. SELECT * FROM blahblahblah
Also, you dont need to care about creating database. Framework able to optimize, restore, backup re-create tables automatically. You just need write a classes like described before.
==============
And many other technical features it contains. Also, all of them exists in documentation. There will be over9000 lines of words for describe them all. Engine good for both - client and server side, dedicated for MMO Games.
Better ill show you what i can do with those engine
3D:
Build your own spaceships, fly on it and pew pew in retro pixel-like style!
(Hardly inspired by RotMG, but why not? hehe)
Gifs Album
Those game will be released at this summer
=================================
I am hardly working on engine for make them great. If someone interesting in this, i also can share full source code of my engine in future (when some major things will be done). If you like C# and looking for game-engine, let me know. Also, if you have a knownlege for help me with that - you are always welcome!
Best Regards!